pptx-react-viewer 2.16.5 → 2.16.7

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 (109) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AiChatPanel-6B26AZGA.mjs → AiChatPanel-2YYL6AKX.mjs} +3 -9
  3. package/dist/AiChatPanel-2YYL6AKX.mjs.br +0 -0
  4. package/dist/AiChatPanel-2YYL6AKX.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-FGEIZQCD.js → AiChatPanel-XSXMU2Q5.js} +23 -29
  6. package/dist/AiChatPanel-XSXMU2Q5.js.br +0 -0
  7. package/dist/AiChatPanel-XSXMU2Q5.js.gz +0 -0
  8. package/dist/{Model3DScene-2JX5CUPK.js → Model3DScene-36UJZLCO.js} +2 -2
  9. package/dist/Model3DScene-36UJZLCO.js.br +0 -0
  10. package/dist/Model3DScene-36UJZLCO.js.gz +0 -0
  11. package/dist/{Model3DScene-NKYNKUPP.mjs → Model3DScene-NVFP3JBJ.mjs} +1 -1
  12. package/dist/Model3DScene-NVFP3JBJ.mjs.br +0 -0
  13. package/dist/Model3DScene-NVFP3JBJ.mjs.gz +0 -0
  14. package/dist/PowerPointViewer-Du7u4INi.d.ts.map +1 -1
  15. package/dist/{SurfaceChart3DScene-TTL2FTEG.mjs → SurfaceChart3DScene-BMFEDBLF.mjs} +1 -1
  16. package/dist/{SurfaceChart3DScene-TTL2FTEG.mjs.br → SurfaceChart3DScene-BMFEDBLF.mjs.br} +0 -0
  17. package/dist/SurfaceChart3DScene-BMFEDBLF.mjs.gz +0 -0
  18. package/dist/{SurfaceChart3DScene-AE5SKG7U.js → SurfaceChart3DScene-W6I255VU.js} +2 -2
  19. package/dist/SurfaceChart3DScene-W6I255VU.js.br +0 -0
  20. package/dist/SurfaceChart3DScene-W6I255VU.js.gz +0 -0
  21. package/dist/{chunk-LCWZ4TD4.js → chunk-77TMRPDU.js} +2144 -1527
  22. package/dist/chunk-77TMRPDU.js.br +0 -0
  23. package/dist/chunk-77TMRPDU.js.gz +0 -0
  24. package/dist/{chunk-247XH4EN.mjs → chunk-D5TAZ5NL.mjs} +1214 -53
  25. package/dist/chunk-D5TAZ5NL.mjs.br +0 -0
  26. package/dist/chunk-D5TAZ5NL.mjs.gz +0 -0
  27. package/dist/{chunk-EFZ4K6V5.mjs → chunk-J56KVWI5.mjs} +1132 -515
  28. package/dist/chunk-J56KVWI5.mjs.br +0 -0
  29. package/dist/chunk-J56KVWI5.mjs.gz +0 -0
  30. package/dist/{chunk-5YGTUHNO.mjs → chunk-J5V7UCD2.mjs} +15 -1403
  31. package/dist/chunk-J5V7UCD2.mjs.br +0 -0
  32. package/dist/chunk-J5V7UCD2.mjs.gz +0 -0
  33. package/dist/{chunk-VZI35LEF.js → chunk-JSJZWA43.js} +9 -3
  34. package/dist/chunk-JSJZWA43.js.br +0 -0
  35. package/dist/chunk-JSJZWA43.js.gz +0 -0
  36. package/dist/{chunk-Y6W5LGTR.mjs → chunk-KVNZGR3L.mjs} +14 -93
  37. package/dist/chunk-KVNZGR3L.mjs.br +0 -0
  38. package/dist/chunk-KVNZGR3L.mjs.gz +0 -0
  39. package/dist/{chunk-P65VL2I6.js → chunk-NFJLF7TX.js} +258 -1676
  40. package/dist/chunk-NFJLF7TX.js.br +0 -0
  41. package/dist/chunk-NFJLF7TX.js.gz +0 -0
  42. package/dist/{chunk-MZN2UIYT.mjs → chunk-QNKJUUKD.mjs} +7 -2
  43. package/dist/chunk-QNKJUUKD.mjs.br +0 -0
  44. package/dist/chunk-QNKJUUKD.mjs.gz +0 -0
  45. package/dist/{chunk-UNWU6D2M.js → chunk-S7HPAJRX.js} +350 -429
  46. package/dist/chunk-S7HPAJRX.js.br +0 -0
  47. package/dist/chunk-S7HPAJRX.js.gz +0 -0
  48. package/dist/{chunk-6QGTRYSC.js → chunk-USAJMMF2.js} +1248 -59
  49. package/dist/chunk-USAJMMF2.js.br +0 -0
  50. package/dist/chunk-USAJMMF2.js.gz +0 -0
  51. package/dist/index.d.ts +14 -0
  52. package/dist/index.js +39 -39
  53. package/dist/index.js.br +0 -0
  54. package/dist/index.js.gz +0 -0
  55. package/dist/index.mjs +5 -5
  56. package/dist/index.mjs.br +0 -0
  57. package/dist/index.mjs.gz +0 -0
  58. package/dist/internals.d.ts +37 -7
  59. package/dist/internals.d.ts.map +1 -1
  60. package/dist/internals.js +78 -78
  61. package/dist/internals.js.br +5 -4
  62. package/dist/internals.js.gz +0 -0
  63. package/dist/internals.mjs +3 -3
  64. package/dist/internals.mjs.br +0 -0
  65. package/dist/internals.mjs.gz +0 -0
  66. package/dist/pptx-viewer.css +1 -1
  67. package/dist/pptx-viewer.css.br +0 -0
  68. package/dist/pptx-viewer.css.gz +0 -0
  69. package/dist/{useViewerBuildingBlocks-CBZrHhxl.d.ts → useViewerBuildingBlocks-Xddn6SFj.d.ts} +15 -1
  70. package/dist/useViewerBuildingBlocks-Xddn6SFj.d.ts.map +1 -0
  71. package/dist/viewer/index.js +26 -26
  72. package/dist/viewer/index.js.br +0 -0
  73. package/dist/viewer/index.js.gz +0 -0
  74. package/dist/viewer/index.mjs +5 -5
  75. package/dist/viewer/index.mjs.br +0 -0
  76. package/dist/viewer/index.mjs.gz +0 -0
  77. package/package.json +1 -1
  78. package/dist/AiChatPanel-6B26AZGA.mjs.br +0 -0
  79. package/dist/AiChatPanel-6B26AZGA.mjs.gz +0 -0
  80. package/dist/AiChatPanel-FGEIZQCD.js.br +0 -0
  81. package/dist/AiChatPanel-FGEIZQCD.js.gz +0 -0
  82. package/dist/Model3DScene-2JX5CUPK.js.br +0 -0
  83. package/dist/Model3DScene-2JX5CUPK.js.gz +0 -0
  84. package/dist/Model3DScene-NKYNKUPP.mjs.br +0 -0
  85. package/dist/Model3DScene-NKYNKUPP.mjs.gz +0 -0
  86. package/dist/SurfaceChart3DScene-AE5SKG7U.js.br +0 -0
  87. package/dist/SurfaceChart3DScene-AE5SKG7U.js.gz +0 -0
  88. package/dist/SurfaceChart3DScene-TTL2FTEG.mjs.gz +0 -0
  89. package/dist/chunk-247XH4EN.mjs.br +0 -0
  90. package/dist/chunk-247XH4EN.mjs.gz +0 -0
  91. package/dist/chunk-5YGTUHNO.mjs.br +0 -0
  92. package/dist/chunk-5YGTUHNO.mjs.gz +0 -0
  93. package/dist/chunk-6QGTRYSC.js.br +0 -0
  94. package/dist/chunk-6QGTRYSC.js.gz +0 -0
  95. package/dist/chunk-EFZ4K6V5.mjs.br +0 -0
  96. package/dist/chunk-EFZ4K6V5.mjs.gz +0 -0
  97. package/dist/chunk-LCWZ4TD4.js.br +0 -0
  98. package/dist/chunk-LCWZ4TD4.js.gz +0 -0
  99. package/dist/chunk-MZN2UIYT.mjs.br +0 -0
  100. package/dist/chunk-MZN2UIYT.mjs.gz +0 -0
  101. package/dist/chunk-P65VL2I6.js.br +0 -0
  102. package/dist/chunk-P65VL2I6.js.gz +0 -0
  103. package/dist/chunk-UNWU6D2M.js.br +0 -0
  104. package/dist/chunk-UNWU6D2M.js.gz +0 -0
  105. package/dist/chunk-VZI35LEF.js.br +0 -0
  106. package/dist/chunk-VZI35LEF.js.gz +0 -0
  107. package/dist/chunk-Y6W5LGTR.mjs.br +0 -0
  108. package/dist/chunk-Y6W5LGTR.mjs.gz +0 -0
  109. package/dist/useViewerBuildingBlocks-CBZrHhxl.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkDVZF4ARG_js = require('./chunk-DVZF4ARG.js');
4
- var chunk6QGTRYSC_js = require('./chunk-6QGTRYSC.js');
4
+ var chunkUSAJMMF2_js = require('./chunk-USAJMMF2.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 chunk6QGTRYSC_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunkUSAJMMF2_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 chunk6QGTRYSC_js.cloneHistorySnapshot(snapshot);
26
+ return chunkUSAJMMF2_js.cloneHistorySnapshot(snapshot);
27
27
  }
28
28
 
29
29
  // src/viewer/constants/scalar.ts
@@ -63,7 +63,7 @@ var TOOLBAR_SECTIONS = [
63
63
  { id: "view", labelKey: "pptx.ribbon.tab.view" },
64
64
  { id: "help", labelKey: "pptx.ribbon.tab.help" }
65
65
  ];
66
- var SHORTCUT_REFERENCE_ITEMS = chunk6QGTRYSC_js.VIEWER_SHORTCUT_REFERENCE;
66
+ var SHORTCUT_REFERENCE_ITEMS = chunkUSAJMMF2_js.VIEWER_SHORTCUT_REFERENCE;
67
67
 
68
68
  // src/viewer/constants/theme.ts
69
69
  var THEME_COLOR_SWATCHES = [
@@ -107,7 +107,7 @@ var GLYPH_COMPONENTS = {
107
107
  plus: lu.LuPlus,
108
108
  triangle: lu.LuTriangle
109
109
  };
110
- var SHAPE_PRESETS = chunk6QGTRYSC_js.SHAPE_PRESET_DEFS.map(
110
+ var SHAPE_PRESETS = chunkUSAJMMF2_js.SHAPE_PRESET_DEFS.map(
111
111
  (def) => ({
112
112
  type: def.type,
113
113
  label: def.label,
@@ -266,39 +266,16 @@ function isConnectorOrLineElement(element) {
266
266
  if (element.type === "connector") {
267
267
  return true;
268
268
  }
269
- if (!chunk6QGTRYSC_js.hasShapeProperties(element)) {
269
+ if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
270
270
  return false;
271
271
  }
272
272
  const st = getShapeType(element.shapeType);
273
273
  return st === "connector" || st === "line" || element.shapeType === "line";
274
274
  }
275
275
 
276
- // src/viewer/utils/template-editing.ts
277
- function partitionTemplateElements(slides) {
278
- const templateElementsBySlideId = {};
279
- const nextSlides = slides.map((slide) => {
280
- const template = slide.elements.filter((el) => chunk6QGTRYSC_js.isTemplateElement(el));
281
- if (template.length === 0) {
282
- return slide;
283
- }
284
- templateElementsBySlideId[slide.id] = template;
285
- return { ...slide, elements: slide.elements.filter((el) => !chunk6QGTRYSC_js.isTemplateElement(el)) };
286
- });
287
- return { slides: nextSlides, templateElementsBySlideId };
288
- }
289
- function buildSaveSlides(slides, templateElementsBySlideId) {
290
- return slides.map((slide) => {
291
- const template = templateElementsBySlideId[slide.id];
292
- if (!template || template.length === 0) {
293
- return slide;
294
- }
295
- return { ...slide, elements: [...template, ...slide.elements] };
296
- });
297
- }
298
-
299
276
  // src/viewer/utils/image-style.ts
300
277
  function getImageMaskStyle(element) {
301
- if (!chunk6QGTRYSC_js.hasShapeProperties(element)) {
278
+ if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
302
279
  return void 0;
303
280
  }
304
281
  const shapeType = element.shapeType;
@@ -307,7 +284,7 @@ function getImageMaskStyle(element) {
307
284
  }
308
285
  const normalized = shapeType.toLowerCase();
309
286
  if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
310
- const radiusPx = chunk6QGTRYSC_js.getRoundRectRadiusPx2(element);
287
+ const radiusPx = chunkUSAJMMF2_js.getRoundRectRadiusPx2(element);
311
288
  if (radiusPx <= 0.01) {
312
289
  return void 0;
313
290
  }
@@ -319,7 +296,7 @@ function getImageMaskStyle(element) {
319
296
  if (normalized === "can" || normalized === "cylinder") {
320
297
  return { borderRadius: "48% / 12%" };
321
298
  }
322
- const clipPath = chunk6QGTRYSC_js.getResolvedShapeClipPath(element);
299
+ const clipPath = chunkUSAJMMF2_js.getResolvedShapeClipPath(element);
323
300
  if (!clipPath) {
324
301
  return void 0;
325
302
  }
@@ -328,7 +305,7 @@ function getImageMaskStyle(element) {
328
305
  function getImageRenderStyle(element) {
329
306
  return {
330
307
  ...getImageMaskStyle(element) || {},
331
- ...chunk6QGTRYSC_js.getImageFitStyle(element)
308
+ ...chunkUSAJMMF2_js.getImageFitStyle(element)
332
309
  };
333
310
  }
334
311
  var CROP_SHAPE_CLIP_PATHS = {
@@ -341,7 +318,7 @@ var CROP_SHAPE_CLIP_PATHS = {
341
318
  star: "polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)"
342
319
  };
343
320
  function getCropShapeClipPath(element) {
344
- if (!chunk6QGTRYSC_js.isImageLikeElement(element)) {
321
+ if (!chunkUSAJMMF2_js.isImageLikeElement(element)) {
345
322
  return void 0;
346
323
  }
347
324
  const shape = element.cropShape;
@@ -351,7 +328,7 @@ function getCropShapeClipPath(element) {
351
328
  return CROP_SHAPE_CLIP_PATHS[shape];
352
329
  }
353
330
  function isImageTiled(element) {
354
- if (!chunk6QGTRYSC_js.isImageLikeElement(element)) {
331
+ if (!chunkUSAJMMF2_js.isImageLikeElement(element)) {
355
332
  return false;
356
333
  }
357
334
  return typeof element.tileScaleX === "number" || typeof element.tileScaleY === "number";
@@ -409,7 +386,7 @@ function buildMirrorTiledBackground(src, flip, scaleX, scaleY) {
409
386
  };
410
387
  }
411
388
  function getImageTilingStyle(element) {
412
- if (!chunk6QGTRYSC_js.isImageLikeElement(element) || !isImageTiled(element)) {
389
+ if (!chunkUSAJMMF2_js.isImageLikeElement(element) || !isImageTiled(element)) {
413
390
  return void 0;
414
391
  }
415
392
  const scaleX = typeof element.tileScaleX === "number" ? element.tileScaleX * 100 : 100;
@@ -629,9 +606,9 @@ function registerMediaElement(elementId, el) {
629
606
  };
630
607
  }
631
608
  function executeMediaCommand(command, frameRoot) {
632
- return chunk6QGTRYSC_js.runMediaCommand(
609
+ return chunkUSAJMMF2_js.runMediaCommand(
633
610
  command,
634
- (targetId) => registry.get(targetId) ?? chunk6QGTRYSC_js.findMediaElementByElementId(targetId, frameRoot?.())
611
+ (targetId) => registry.get(targetId) ?? chunkUSAJMMF2_js.findMediaElementByElementId(targetId, frameRoot?.())
635
612
  );
636
613
  }
637
614
  function PresentationMediaController({
@@ -675,7 +652,7 @@ function PresentationMediaController({
675
652
  loop: shouldLoop,
676
653
  volume: playbackVolume,
677
654
  playbackRate
678
- } = chunk6QGTRYSC_js.mediaPlaybackAttributes({
655
+ } = chunkUSAJMMF2_js.mediaPlaybackAttributes({
679
656
  loop: element.loop,
680
657
  volume: element.volume,
681
658
  playbackSpeed: element.playbackSpeed
@@ -811,7 +788,7 @@ function PresentationMediaController({
811
788
  if (element.playAcrossSlides && element.mediaType === "audio") {
812
789
  const dataUrl = element.mediaData ?? resolvedDataUrl;
813
790
  if (dataUrl) {
814
- chunk6QGTRYSC_js.registerPersistentAudio(
791
+ chunkUSAJMMF2_js.registerPersistentAudio(
815
792
  element.id,
816
793
  dataUrl,
817
794
  element.mediaMimeType,
@@ -909,17 +886,17 @@ function Badge({
909
886
  "div",
910
887
  {
911
888
  className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
912
- ...{ [chunk6QGTRYSC_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
889
+ ...{ [chunkUSAJMMF2_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
913
890
  children: [
914
891
  /* @__PURE__ */ jsxRuntime.jsx(
915
892
  FallbackIcon,
916
893
  {
917
- paths: chunk6QGTRYSC_js.mediaFallbackIcon(visual, element.mediaType),
894
+ paths: chunkUSAJMMF2_js.mediaFallbackIcon(visual, element.mediaType),
918
895
  size: isMissing ? 32 : 48,
919
896
  className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
920
897
  }
921
898
  ),
922
- isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunk6QGTRYSC_js.mediaFallbackLabelKey(visual, element.mediaType)) })
899
+ isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkUSAJMMF2_js.mediaFallbackLabelKey(visual, element.mediaType)) })
923
900
  ]
924
901
  }
925
902
  );
@@ -936,17 +913,17 @@ function Placeholder({
936
913
  "div",
937
914
  {
938
915
  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"}`,
939
- ...{ [chunk6QGTRYSC_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
916
+ ...{ [chunkUSAJMMF2_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
940
917
  children: [
941
918
  /* @__PURE__ */ jsxRuntime.jsx(
942
919
  FallbackIcon,
943
920
  {
944
- paths: chunk6QGTRYSC_js.mediaFallbackIcon(visual, element.mediaType),
921
+ paths: chunkUSAJMMF2_js.mediaFallbackIcon(visual, element.mediaType),
945
922
  size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
946
923
  className: isMissing ? "text-white/50" : "text-white/70"
947
924
  }
948
925
  ),
949
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunk6QGTRYSC_js.mediaFallbackLabelKey(visual, element.mediaType)) })
926
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkUSAJMMF2_js.mediaFallbackLabelKey(visual, element.mediaType)) })
950
927
  ]
951
928
  }
952
929
  );
@@ -956,7 +933,7 @@ function renderMediaFallback({
956
933
  posterUrl,
957
934
  surface
958
935
  }) {
959
- const visual = chunk6QGTRYSC_js.mediaFallbackVisual(surface, {
936
+ const visual = chunkUSAJMMF2_js.mediaFallbackVisual(surface, {
960
937
  hasPoster: Boolean(posterUrl),
961
938
  missing: element.mediaMissing === true
962
939
  });
@@ -985,7 +962,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
985
962
  const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
986
963
  const trimFragment = buildTrimFragment(element);
987
964
  const posterUrl = element.posterFrameData ?? void 0;
988
- const shouldLoop = chunk6QGTRYSC_js.mediaPlaybackAttributes(element).loop;
965
+ const shouldLoop = chunkUSAJMMF2_js.mediaPlaybackAttributes(element).loop;
989
966
  const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
990
967
  const isFullScreen = options?.fullScreen === true;
991
968
  const isPresentationMode = options?.isPresentationMode === true;
@@ -1068,7 +1045,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
1068
1045
 
1069
1046
  // src/viewer/utils/text-utils.tsx
1070
1047
  function getTextStyleForElement(element, fallbackColor) {
1071
- return chunk6QGTRYSC_js.buildTextBlockStyle(element, { fallbackColor });
1048
+ return chunkUSAJMMF2_js.buildTextBlockStyle(element, { fallbackColor });
1072
1049
  }
1073
1050
 
1074
1051
  // src/viewer/utils/text-layout.tsx
@@ -1093,13 +1070,13 @@ function computeTabSize(tabStops, defaultTabSize) {
1093
1070
  return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
1094
1071
  }
1095
1072
  function getTextLayoutStyle(element) {
1096
- if (!chunk6QGTRYSC_js.hasTextProperties(element)) {
1073
+ if (!chunkUSAJMMF2_js.hasTextProperties(element)) {
1097
1074
  return {};
1098
1075
  }
1099
1076
  const verticalAlign = element.textStyle?.vAlign || "top";
1100
- const writingMode = chunk6QGTRYSC_js.toCssWritingMode(element.textStyle?.textDirection);
1101
- const textOrientation = chunk6QGTRYSC_js.toCssTextOrientation(element.textStyle?.textDirection);
1102
- const verticalDirection = chunk6QGTRYSC_js.toCssVerticalDirection(element.textStyle?.textDirection);
1077
+ const writingMode = chunkUSAJMMF2_js.toCssWritingMode(element.textStyle?.textDirection);
1078
+ const textOrientation = chunkUSAJMMF2_js.toCssTextOrientation(element.textStyle?.textDirection);
1079
+ const verticalDirection = chunkUSAJMMF2_js.toCssVerticalDirection(element.textStyle?.textDirection);
1103
1080
  const parsedColumnCount = Number(element.textStyle?.columnCount);
1104
1081
  const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
1105
1082
  const hasColumns = columnCount > 1;
@@ -1107,7 +1084,7 @@ function getTextLayoutStyle(element) {
1107
1084
  const tabStops = element.textStyle?.tabStops;
1108
1085
  const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
1109
1086
  const textWrapNone = element.textStyle?.textWrap === "none";
1110
- const hasParagraphIndents = chunk6QGTRYSC_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
1087
+ const hasParagraphIndents = chunkUSAJMMF2_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
1111
1088
  const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
1112
1089
  const paragraphIndent = element.textStyle?.paragraphIndent;
1113
1090
  const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
@@ -1116,7 +1093,7 @@ function getTextLayoutStyle(element) {
1116
1093
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
1117
1094
  const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
1118
1095
  const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
1119
- const kinsokuStyles = chunk6QGTRYSC_js.getKinsokuLineBreakStyles(element.textStyle);
1096
+ const kinsokuStyles = chunkUSAJMMF2_js.getKinsokuLineBreakStyles(element.textStyle);
1120
1097
  if (hasColumns) {
1121
1098
  return {
1122
1099
  display: "block",
@@ -1163,10 +1140,10 @@ function getTextLayoutStyle(element) {
1163
1140
 
1164
1141
  // src/viewer/utils/text-effects.tsx
1165
1142
  function buildTextFillCss2(style) {
1166
- return chunk6QGTRYSC_js.buildTextFillCss(style);
1143
+ return chunkUSAJMMF2_js.buildTextFillCss(style);
1167
1144
  }
1168
1145
  function buildTextBody3DSceneStyle2(textStyle) {
1169
- return chunk6QGTRYSC_js.buildTextBody3DSceneStyle(textStyle);
1146
+ return chunkUSAJMMF2_js.buildTextBody3DSceneStyle(textStyle);
1170
1147
  }
1171
1148
 
1172
1149
  // src/viewer/utils/text-warp-css.tsx
@@ -1351,13 +1328,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1351
1328
  if (!subElementAnimStates || subElementAnimStates.size === 0) {
1352
1329
  return renderedSegments;
1353
1330
  }
1354
- const paraKey = `${elementId}${chunk6QGTRYSC_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1331
+ const paraKey = `${elementId}${chunkUSAJMMF2_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1355
1332
  const paraState = subElementAnimStates.get(paraKey);
1356
1333
  if (paraState) {
1357
1334
  const style = buildAnimStyle(paraState);
1358
1335
  return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
1359
1336
  }
1360
- const spec = chunk6QGTRYSC_js.buildTextBuildSpec(
1337
+ const spec = chunkUSAJMMF2_js.buildTextBuildSpec(
1361
1338
  elementId,
1362
1339
  paraIndex,
1363
1340
  paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
@@ -1375,7 +1352,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1375
1352
  "span",
1376
1353
  {
1377
1354
  "data-anim-id": span.animId,
1378
- style: chunk6QGTRYSC_js.textBuildSpanStyle(span),
1355
+ style: chunkUSAJMMF2_js.textBuildSpanStyle(span),
1379
1356
  children: content
1380
1357
  },
1381
1358
  span.animId
@@ -1519,10 +1496,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1519
1496
  if (!needsScriptFonts || !text) {
1520
1497
  return text;
1521
1498
  }
1522
- const runs = chunk6QGTRYSC_js.segmentByScript(text);
1499
+ const runs = chunkUSAJMMF2_js.segmentByScript(text);
1523
1500
  if (runs.length <= 1) {
1524
1501
  if (runs.length === 1) {
1525
- const font = chunk6QGTRYSC_js.resolveFontForScript(runs[0].script, scriptFonts);
1502
+ const font = chunkUSAJMMF2_js.resolveFontForScript(runs[0].script, scriptFonts);
1526
1503
  if (font && font !== baseFontFamily) {
1527
1504
  return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
1528
1505
  }
@@ -1530,7 +1507,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1530
1507
  return text;
1531
1508
  }
1532
1509
  return runs.map((run, i) => {
1533
- const font = chunk6QGTRYSC_js.resolveFontForScript(run.script, scriptFonts);
1510
+ const font = chunkUSAJMMF2_js.resolveFontForScript(run.script, scriptFonts);
1534
1511
  if (!font || font === baseFontFamily) {
1535
1512
  return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
1536
1513
  }
@@ -1541,14 +1518,14 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1541
1518
  if (!metric || !text) {
1542
1519
  return inner(text, keyPrefix);
1543
1520
  }
1544
- const pieces = chunk6QGTRYSC_js.splitRunForMetrics(text, metric.font);
1521
+ const pieces = chunkUSAJMMF2_js.splitRunForMetrics(text, metric.font);
1545
1522
  if (pieces.length <= 1) {
1546
1523
  return inner(text, keyPrefix);
1547
1524
  }
1548
1525
  return pieces.map((piece, i) => /* @__PURE__ */ jsxRuntime.jsx(
1549
1526
  "span",
1550
1527
  {
1551
- style: { letterSpacing: chunk6QGTRYSC_js.pieceLetterSpacing(metric.authoredPx, piece.tracking) },
1528
+ style: { letterSpacing: chunkUSAJMMF2_js.pieceLetterSpacing(metric.authoredPx, piece.tracking) },
1552
1529
  children: inner(piece.text, `${keyPrefix}-w${i}`)
1553
1530
  },
1554
1531
  `${keyPrefix}-w${i}`
@@ -1619,8 +1596,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
1619
1596
  });
1620
1597
  }
1621
1598
  function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
1622
- const mathml = chunk6QGTRYSC_js.convertOmmlToMathMl(equationXml);
1623
- const safeMathml = mathml ? chunk6QGTRYSC_js.sanitizeMathMl(mathml) : "";
1599
+ const mathml = chunkUSAJMMF2_js.convertOmmlToMathMl(equationXml);
1600
+ const safeMathml = mathml ? chunkUSAJMMF2_js.sanitizeMathMl(mathml) : "";
1624
1601
  const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
1625
1602
  "span",
1626
1603
  {
@@ -1670,7 +1647,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
1670
1647
  return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
1671
1648
  }
1672
1649
  function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
1673
- const picture = chunk6QGTRYSC_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
1650
+ const picture = chunkUSAJMMF2_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
1674
1651
  sizePx: baseFontSize,
1675
1652
  fallbackMarker: "\u2022",
1676
1653
  accessibleLabel: "Bullet"
@@ -1721,7 +1698,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1721
1698
  }
1722
1699
  const segmentStyle = segment.style || {};
1723
1700
  const rawText = bulletInfo && typeof bulletHangPx === "number" ? (segment.text || "").trimEnd() : segment.text || "";
1724
- const textValue = chunk6QGTRYSC_js.substituteFieldText(rawText, segment.fieldType, fieldContext);
1701
+ const textValue = chunkUSAJMMF2_js.substituteFieldText(rawText, segment.fieldType, fieldContext);
1725
1702
  const lines = textValue.split("\n");
1726
1703
  const textDecorationTokens = [];
1727
1704
  if (segmentStyle.underline || segmentStyle.hyperlink) {
@@ -1731,8 +1708,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1731
1708
  textDecorationTokens.push("line-through");
1732
1709
  }
1733
1710
  const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
1734
- const resolvedSegmentColor = segmentStyle.hyperlink ? chunk6QGTRYSC_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunk6QGTRYSC_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
1735
- const underlineDecoration = chunk6QGTRYSC_js.resolveUnderlineDecorationStyle(
1711
+ const resolvedSegmentColor = segmentStyle.hyperlink ? chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
1712
+ const underlineDecoration = chunkUSAJMMF2_js.resolveUnderlineDecorationStyle(
1736
1713
  Boolean(isDoubleStrike),
1737
1714
  segmentStyle.underlineStyle
1738
1715
  );
@@ -1742,17 +1719,17 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1742
1719
  const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
1743
1720
  const textFillStyles = buildTextFillCss2(segmentStyle);
1744
1721
  const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
1745
- const autoFitScale = chunk6QGTRYSC_js.resolveAutoFitFontScale(element.textStyle);
1722
+ const autoFitScale = chunkUSAJMMF2_js.resolveAutoFitFontScale(element.textStyle);
1746
1723
  const baseFontSize = rawFontSize * autoFitScale;
1747
1724
  const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
1748
1725
  const baseFontSizePt = baseFontSize * (72 / 96);
1749
1726
  const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
1750
1727
  const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
1751
- const baseFontFamily = rawFontFamily ? chunk6QGTRYSC_js.getSubstituteFontFamily(
1728
+ const baseFontFamily = rawFontFamily ? chunkUSAJMMF2_js.getSubstituteFontFamily(
1752
1729
  rawFontFamily,
1753
- chunk6QGTRYSC_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1730
+ chunkUSAJMMF2_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1754
1731
  ) : DEFAULT_FONT_FAMILY2;
1755
- const scriptFont = (name, panose) => name ? chunk6QGTRYSC_js.getSubstituteFontFamily(name, chunk6QGTRYSC_js.parsePanoseString(panose)) : baseFontFamily;
1732
+ const scriptFont = (name, panose) => name ? chunkUSAJMMF2_js.getSubstituteFontFamily(name, chunkUSAJMMF2_js.parsePanoseString(panose)) : baseFontFamily;
1756
1733
  const scriptFonts = {
1757
1734
  latin: baseFontFamily,
1758
1735
  eastAsia: scriptFont(
@@ -1768,7 +1745,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1768
1745
  segmentStyle.symbolFontPanose ?? element.textStyle?.symbolFontPanose
1769
1746
  )
1770
1747
  };
1771
- const needsScriptFonts = chunk6QGTRYSC_js.hasDistinctScriptFonts(scriptFonts);
1748
+ const needsScriptFonts = chunkUSAJMMF2_js.hasDistinctScriptFonts(scriptFonts);
1772
1749
  const metricFont = {
1773
1750
  fontFamily: baseFontFamily,
1774
1751
  fontSizePx: baseFontSize * baselineFontScale,
@@ -1776,9 +1753,9 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1776
1753
  italic: Boolean(segmentStyle.italic)
1777
1754
  };
1778
1755
  const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing };
1779
- const letterSpacing = chunk6QGTRYSC_js.pieceLetterSpacing(
1756
+ const letterSpacing = chunkUSAJMMF2_js.pieceLetterSpacing(
1780
1757
  authoredLetterSpacing,
1781
- chunk6QGTRYSC_js.resolveMetricTrackingPx(textValue, metricFont)
1758
+ chunkUSAJMMF2_js.resolveMetricTrackingPx(textValue, metricFont)
1782
1759
  );
1783
1760
  const spanStyle = {
1784
1761
  color: resolvedSegmentColor,
@@ -1797,15 +1774,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1797
1774
  fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
1798
1775
  letterSpacing,
1799
1776
  fontKerning,
1800
- backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunk6QGTRYSC_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
1777
+ backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
1801
1778
  ...textFillStyles,
1802
- textDecorationColor: segmentStyle.underlineColor ? chunk6QGTRYSC_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
1803
- WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunk6QGTRYSC_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
1779
+ textDecorationColor: segmentStyle.underlineColor ? chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
1780
+ WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkUSAJMMF2_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
1804
1781
  paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
1805
- textShadow: chunk6QGTRYSC_js.buildTextShadowCss(segmentStyle),
1806
- filter: chunk6QGTRYSC_js.buildTextRunFilterChain(segmentStyle),
1807
- opacity: chunk6QGTRYSC_js.getTextAlphaOpacity(segmentStyle),
1808
- WebkitBoxReflect: chunk6QGTRYSC_js.buildTextReflectionCss(segmentStyle)
1782
+ textShadow: chunkUSAJMMF2_js.buildTextShadowCss(segmentStyle),
1783
+ filter: chunkUSAJMMF2_js.buildTextRunFilterChain(segmentStyle),
1784
+ opacity: chunkUSAJMMF2_js.getTextAlphaOpacity(segmentStyle),
1785
+ WebkitBoxReflect: chunkUSAJMMF2_js.buildTextReflectionCss(segmentStyle)
1809
1786
  };
1810
1787
  const runRtl = segmentStyle.rtl;
1811
1788
  if (runRtl !== void 0 && runRtl !== paragraphRtl) {
@@ -1825,7 +1802,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1825
1802
  spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
1826
1803
  }
1827
1804
  if (bulletInfo.color) {
1828
- spanStyle.color = chunk6QGTRYSC_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
1805
+ spanStyle.color = chunkUSAJMMF2_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
1829
1806
  }
1830
1807
  if (typeof bulletHangPx === "number" && bulletHangPx > 0) {
1831
1808
  spanStyle.display = "inline-block";
@@ -1871,7 +1848,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1871
1848
  textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
1872
1849
  };
1873
1850
  if (segment.rubyStyle?.color) {
1874
- rubyStyle.color = chunk6QGTRYSC_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
1851
+ rubyStyle.color = chunkUSAJMMF2_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
1875
1852
  }
1876
1853
  innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
1877
1854
  baseContent,
@@ -1923,31 +1900,6 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1923
1900
  }
1924
1901
  return spanNode;
1925
1902
  }
1926
-
1927
- // src/viewer/utils/text-paragraph-spacing.ts
1928
- var PT_TO_PX = 96 / 72;
1929
- function resolveParagraphSpacing(input) {
1930
- const { paraProps, bodyStyle, isFirst, isLast, spaceFirstLast } = input;
1931
- const result = {};
1932
- const before = paraProps?.paragraphSpacingBefore ?? bodyStyle?.paragraphSpacingBefore;
1933
- if (typeof before === "number" && before > 0 && (!isFirst || spaceFirstLast)) {
1934
- result.marginTop = before;
1935
- }
1936
- const after = paraProps?.paragraphSpacingAfter ?? bodyStyle?.paragraphSpacingAfter;
1937
- if (typeof after === "number" && after > 0 && (!isLast || spaceFirstLast)) {
1938
- result.marginBottom = after;
1939
- }
1940
- const hasOwnLine = paraProps?.lineSpacing !== void 0 || paraProps?.lineSpacingExactPt !== void 0;
1941
- const lineSrc = hasOwnLine ? paraProps : bodyStyle;
1942
- const exactPt = lineSrc?.lineSpacingExactPt;
1943
- const multiplier = lineSrc?.lineSpacing;
1944
- if (typeof exactPt === "number" && exactPt > 0) {
1945
- result.lineHeight = `${exactPt * PT_TO_PX}px`;
1946
- } else if (typeof multiplier === "number" && multiplier > 0) {
1947
- result.lineHeight = chunk6QGTRYSC_js.proportionalLineHeight(multiplier);
1948
- }
1949
- return result;
1950
- }
1951
1903
  function groupSegmentsIntoParagraphs(segments) {
1952
1904
  const paragraphs = [];
1953
1905
  let current = [];
@@ -1966,7 +1918,7 @@ function groupSegmentsIntoParagraphs(segments) {
1966
1918
  return paragraphs;
1967
1919
  }
1968
1920
  function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
1969
- if (!chunk6QGTRYSC_js.hasTextProperties(element)) {
1921
+ if (!chunkUSAJMMF2_js.hasTextProperties(element)) {
1970
1922
  return emptyFallback || null;
1971
1923
  }
1972
1924
  const effectiveSegments = segmentOverrides ?? element.textSegments;
@@ -1987,10 +1939,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
1987
1939
  return element.text || emptyFallback || "";
1988
1940
  }
1989
1941
  const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
1990
- const paragraphIndents = chunk6QGTRYSC_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
1991
- const elementRtl = chunk6QGTRYSC_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
1992
- const elementAlign = chunk6QGTRYSC_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
1993
- const bodyStyle = chunk6QGTRYSC_js.hasTextProperties(element) ? element.textStyle : void 0;
1942
+ const paragraphIndents = chunkUSAJMMF2_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
1943
+ const elementRtl = chunkUSAJMMF2_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
1944
+ const elementAlign = chunkUSAJMMF2_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
1945
+ const bodyStyle = chunkUSAJMMF2_js.hasTextProperties(element) ? element.textStyle : void 0;
1994
1946
  const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
1995
1947
  return paragraphs.map(({ entries: paraSegments, terminator }, paraIndex) => {
1996
1948
  const paraIndent = paragraphIndents?.[paraIndex];
@@ -2005,39 +1957,39 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2005
1957
  return Boolean(segment.text) && segment.text.trim().length > 0;
2006
1958
  });
2007
1959
  const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
2008
- const paraRtl = chunk6QGTRYSC_js.resolveParagraphRtl(paraSegments, elementRtl);
1960
+ const paraRtl = chunkUSAJMMF2_js.resolveParagraphRtl(paraSegments, elementRtl);
2009
1961
  const isRtlParagraph = paraRtl === true;
2010
- const paraAlign = chunk6QGTRYSC_js.resolveParagraphAlign(paraSegments, elementAlign);
2011
- const cssTextAlign = chunk6QGTRYSC_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
1962
+ const paraAlign = chunkUSAJMMF2_js.resolveParagraphAlign(paraSegments, elementAlign);
1963
+ const cssTextAlign = chunkUSAJMMF2_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
2012
1964
  const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
2013
1965
  const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
2014
1966
  const paraTextIndent = rawTextIndent;
2015
- const paraKinsokuStyle = chunk6QGTRYSC_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
1967
+ const paraKinsokuStyle = chunkUSAJMMF2_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
2016
1968
  const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
2017
1969
  const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties ?? (paraSegments.length === 0 ? terminator?.paragraphProperties : void 0);
2018
- const spacing = resolveParagraphSpacing({
1970
+ const spacing = chunkUSAJMMF2_js.resolveParagraphSpacing({
2019
1971
  paraProps,
2020
1972
  bodyStyle,
2021
1973
  isFirst: paraIndex === 0,
2022
1974
  isLast: paraIndex === paragraphs.length - 1,
2023
1975
  spaceFirstLast
2024
1976
  });
2025
- const strutFontSize = chunk6QGTRYSC_js.resolveParagraphStrutFontSize(
1977
+ const strutFontSize = chunkUSAJMMF2_js.resolveParagraphStrutFontSize(
2026
1978
  paraSegments.length > 0 ? paraSegments.map(({ segment }) => segment) : terminator ? [terminator] : [],
2027
1979
  bodyStyle?.fontSize
2028
1980
  );
2029
- const hasParaSpacing = spacing.marginTop !== void 0 || spacing.marginBottom !== void 0 || spacing.lineHeight !== void 0;
1981
+ const hasParaSpacing = spacing.spaceBeforePx !== void 0 || spacing.spaceAfterPx !== void 0 || spacing.lineHeight !== void 0;
2030
1982
  const paraStyle = {
2031
1983
  ...paraKinsokuStyle
2032
1984
  };
2033
1985
  if (strutFontSize !== void 0) {
2034
1986
  paraStyle.fontSize = strutFontSize;
2035
1987
  }
2036
- if (spacing.marginTop !== void 0) {
2037
- paraStyle.marginTop = spacing.marginTop;
1988
+ if (spacing.spaceBeforePx !== void 0) {
1989
+ paraStyle.marginTop = spacing.spaceBeforePx;
2038
1990
  }
2039
- if (spacing.marginBottom !== void 0) {
2040
- paraStyle.marginBottom = spacing.marginBottom;
1991
+ if (spacing.spaceAfterPx !== void 0) {
1992
+ paraStyle.marginBottom = spacing.spaceAfterPx;
2041
1993
  }
2042
1994
  if (spacing.lineHeight !== void 0) {
2043
1995
  paraStyle.lineHeight = spacing.lineHeight;
@@ -2126,13 +2078,13 @@ function hexToRgbUnit(hex) {
2126
2078
  };
2127
2079
  }
2128
2080
  function getDuotoneColors(element) {
2129
- if (!chunk6QGTRYSC_js.isImageLikeElement(element)) {
2081
+ if (!chunkUSAJMMF2_js.isImageLikeElement(element)) {
2130
2082
  return void 0;
2131
2083
  }
2132
2084
  return element.imageEffects?.duotone;
2133
2085
  }
2134
2086
  function buildLineShadowCss(element) {
2135
- if (!chunk6QGTRYSC_js.hasShapeProperties(element)) {
2087
+ if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
2136
2088
  return void 0;
2137
2089
  }
2138
2090
  const ss = element.shapeStyle;
@@ -2143,13 +2095,13 @@ function buildLineShadowCss(element) {
2143
2095
  const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
2144
2096
  const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
2145
2097
  const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
2146
- return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunk6QGTRYSC_js.colorWithOpacity(
2147
- chunk6QGTRYSC_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
2098
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkUSAJMMF2_js.colorWithOpacity(
2099
+ chunkUSAJMMF2_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
2148
2100
  opacity
2149
2101
  )}`;
2150
2102
  }
2151
2103
  function buildLineGlowFilter(element) {
2152
- if (!chunk6QGTRYSC_js.hasShapeProperties(element)) {
2104
+ if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
2153
2105
  return void 0;
2154
2106
  }
2155
2107
  const ss = element.shapeStyle;
@@ -2158,7 +2110,7 @@ function buildLineGlowFilter(element) {
2158
2110
  }
2159
2111
  const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
2160
2112
  const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
2161
- const glowCol = chunk6QGTRYSC_js.colorWithOpacity(chunk6QGTRYSC_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
2113
+ const glowCol = chunkUSAJMMF2_js.colorWithOpacity(chunkUSAJMMF2_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
2162
2114
  return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
2163
2115
  }
2164
2116
  function mapDagBlendModeToCss(blend) {
@@ -2182,7 +2134,7 @@ function getDagDuotoneFilterId(elementId) {
2182
2134
  return `dag-duotone-${elementId}`;
2183
2135
  }
2184
2136
  function hasDagDuotoneEffect(element) {
2185
- if (!chunk6QGTRYSC_js.hasShapeProperties(element)) {
2137
+ if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
2186
2138
  return false;
2187
2139
  }
2188
2140
  return Boolean(element.shapeStyle?.dagDuotone);
@@ -2245,7 +2197,7 @@ function getRoundRectRadiusPx(element) {
2245
2197
 
2246
2198
  // src/viewer/utils/shape-visual-3d.ts
2247
2199
  function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
2248
- return chunk6QGTRYSC_js.build3DExtrusionData(
2200
+ return chunkUSAJMMF2_js.build3DExtrusionData(
2249
2201
  shape3d,
2250
2202
  scene3d,
2251
2203
  fillColor,
@@ -2254,7 +2206,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
2254
2206
  );
2255
2207
  }
2256
2208
  function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
2257
- chunk6QGTRYSC_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
2209
+ chunkUSAJMMF2_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
2258
2210
  }
2259
2211
 
2260
2212
  // src/viewer/utils/shape-visual-style.ts
@@ -2262,43 +2214,43 @@ function getGradientTilingCss(style) {
2262
2214
  if (!style || style.fillMode !== "gradient") {
2263
2215
  return void 0;
2264
2216
  }
2265
- const isStructuredLinear = (style.fillGradientType || "linear") === "linear" && chunk6QGTRYSC_js.sanitizeGradientStops(style.fillGradientStops).length > 0;
2217
+ const isStructuredLinear = (style.fillGradientType || "linear") === "linear" && chunkUSAJMMF2_js.sanitizeGradientStops(style.fillGradientStops).length > 0;
2266
2218
  if (isStructuredLinear) {
2267
- const flip = chunk6QGTRYSC_js.getGradientTileFlipCss(style.fillGradientFlip);
2219
+ const flip = chunkUSAJMMF2_js.getGradientTileFlipCss(style.fillGradientFlip);
2268
2220
  if (flip) {
2269
2221
  return flip;
2270
2222
  }
2271
2223
  }
2272
- return chunk6QGTRYSC_js.getGradientTileRectCss(style.fillGradientTileRect);
2224
+ return chunkUSAJMMF2_js.getGradientTileRectCss(style.fillGradientTileRect);
2273
2225
  }
2274
2226
  function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2275
- if (!chunk6QGTRYSC_js.hasShapeProperties(element)) {
2227
+ if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
2276
2228
  return {};
2277
2229
  }
2278
2230
  const normalizedShapeType = getShapeType(element.shapeType);
2279
- const clipPath = chunk6QGTRYSC_js.isIdentityRectClip(element) ? void 0 : chunk6QGTRYSC_js.getResolvedShapeClipPath(element);
2231
+ const clipPath = chunkUSAJMMF2_js.isIdentityRectClip(element) ? void 0 : chunkUSAJMMF2_js.getResolvedShapeClipPath(element);
2280
2232
  const rendersCustomVectorPath = (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;
2281
- const rendersStrokeOnlyPreset = chunk6QGTRYSC_js.isStrokeOnlyPresetElement(element);
2233
+ const rendersStrokeOnlyPreset = chunkUSAJMMF2_js.isStrokeOnlyPresetElement(element);
2282
2234
  const fillOpacity = element.shapeStyle?.fillOpacity;
2283
2235
  const strokeOpacity = element.shapeStyle?.strokeOpacity;
2284
- const strokeDash = chunk6QGTRYSC_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2285
- const fillGradient = chunk6QGTRYSC_js.buildCssGradientFromShapeStyle(element.shapeStyle, {
2236
+ const strokeDash = chunkUSAJMMF2_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2237
+ const fillGradient = chunkUSAJMMF2_js.buildCssGradientFromShapeStyle(element.shapeStyle, {
2286
2238
  rotation: element.rotation,
2287
2239
  width: element.width,
2288
2240
  height: element.height
2289
2241
  }) || element.shapeStyle?.fillGradient;
2290
- const shadowCss = chunk6QGTRYSC_js.buildShadowCssFromShapeStyle(element.shapeStyle);
2291
- const innerShadowCss = chunk6QGTRYSC_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
2292
- const resolvedFillColor = chunk6QGTRYSC_js.colorWithOpacity(fillColor, fillOpacity);
2293
- const resolvedStrokeColor = chunk6QGTRYSC_js.colorWithOpacity(strokeColor, strokeOpacity);
2242
+ const shadowCss = chunkUSAJMMF2_js.buildShadowCssFromShapeStyle(element.shapeStyle);
2243
+ const innerShadowCss = chunkUSAJMMF2_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
2244
+ const resolvedFillColor = chunkUSAJMMF2_js.colorWithOpacity(fillColor, fillOpacity);
2245
+ const resolvedStrokeColor = chunkUSAJMMF2_js.colorWithOpacity(strokeColor, strokeOpacity);
2294
2246
  const ss = element.shapeStyle;
2295
2247
  const gradientTiling = getGradientTilingCss(ss);
2296
- const paintsGradientOutline = chunk6QGTRYSC_js.suppressesCssBorder(element);
2248
+ const paintsGradientOutline = chunkUSAJMMF2_js.suppressesCssBorder(element);
2297
2249
  const hasFillOverlayColor = Boolean(
2298
2250
  ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
2299
2251
  );
2300
2252
  const combinedShadowParts = [];
2301
- const multiLayerShadow = chunk6QGTRYSC_js.buildMultiLayerShadowCss(element.shapeStyle);
2253
+ const multiLayerShadow = chunkUSAJMMF2_js.buildMultiLayerShadowCss(element.shapeStyle);
2302
2254
  if (multiLayerShadow) {
2303
2255
  combinedShadowParts.push(multiLayerShadow);
2304
2256
  } else if (shadowCss) {
@@ -2307,7 +2259,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2307
2259
  if (innerShadowCss) {
2308
2260
  combinedShadowParts.push(innerShadowCss);
2309
2261
  }
2310
- const glowBoxShadow = chunk6QGTRYSC_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
2262
+ const glowBoxShadow = chunkUSAJMMF2_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
2311
2263
  if (glowBoxShadow) {
2312
2264
  combinedShadowParts.push(glowBoxShadow);
2313
2265
  }
@@ -2315,7 +2267,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2315
2267
  if (lineShadow) {
2316
2268
  combinedShadowParts.push(lineShadow);
2317
2269
  }
2318
- const compoundLineShadow = chunk6QGTRYSC_js.getCompoundLineBoxShadow(
2270
+ const compoundLineShadow = chunkUSAJMMF2_js.getCompoundLineBoxShadow(
2319
2271
  element.shapeStyle?.compoundLine,
2320
2272
  strokeWidth,
2321
2273
  resolvedStrokeColor
@@ -2328,11 +2280,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2328
2280
  if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
2329
2281
  const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
2330
2282
  const glowRad = Math.round(Math.max(0, ss.glowRadius));
2331
- const glowCol = chunk6QGTRYSC_js.colorWithOpacity(chunk6QGTRYSC_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
2283
+ const glowCol = chunkUSAJMMF2_js.colorWithOpacity(chunkUSAJMMF2_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
2332
2284
  filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
2333
2285
  }
2334
2286
  if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
2335
- filterParts.push(`url(#${chunk6QGTRYSC_js.getSoftEdgeFilterId(element.id)})`);
2287
+ filterParts.push(`url(#${chunkUSAJMMF2_js.getSoftEdgeFilterId(element.id)})`);
2336
2288
  }
2337
2289
  if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
2338
2290
  filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
@@ -2341,13 +2293,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2341
2293
  if (lineGlowCss) {
2342
2294
  filterParts.push(lineGlowCss);
2343
2295
  }
2344
- const dagFilter = chunk6QGTRYSC_js.getEffectDagFilter(ss, element.id);
2296
+ const dagFilter = chunkUSAJMMF2_js.getEffectDagFilter(ss, element.id);
2345
2297
  if (dagFilter) {
2346
2298
  filterParts.push(dagFilter);
2347
2299
  }
2348
2300
  const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
2349
2301
  const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
2350
- const patternFill = chunk6QGTRYSC_js.buildPatternFillCss(element.shapeStyle);
2302
+ const patternFill = chunkUSAJMMF2_js.buildPatternFillCss(element.shapeStyle);
2351
2303
  const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
2352
2304
  const imageFillMode = ss?.fillImageMode || "stretch";
2353
2305
  let reflectCss;
@@ -2359,7 +2311,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2359
2311
  const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
2360
2312
  const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
2361
2313
  const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
2362
- reflectCss = chunk6QGTRYSC_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
2314
+ reflectCss = chunkUSAJMMF2_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
2363
2315
  }
2364
2316
  }
2365
2317
  const base = {
@@ -2405,9 +2357,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2405
2357
  // path following the shape's geometry, because a CSS border can only take
2406
2358
  // one colour. Keeping the border too would draw the parser's averaged
2407
2359
  // solid underneath the gradient.
2408
- borderWidth: strokeWidth > 0 && !paintsGradientOutline ? chunk6QGTRYSC_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
2360
+ borderWidth: strokeWidth > 0 && !paintsGradientOutline ? chunkUSAJMMF2_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
2409
2361
  borderColor: strokeWidth > 0 && !paintsGradientOutline ? resolvedStrokeColor : void 0,
2410
- borderStyle: strokeWidth > 0 && !paintsGradientOutline ? chunk6QGTRYSC_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
2362
+ borderStyle: strokeWidth > 0 && !paintsGradientOutline ? chunkUSAJMMF2_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
2411
2363
  strokeLinejoin: lineJoinCss,
2412
2364
  strokeMiterlimit: miterLimitCss,
2413
2365
  strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
@@ -2467,7 +2419,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2467
2419
  borderWidth: 0,
2468
2420
  borderTopWidth: Math.max(strokeWidth, 2),
2469
2421
  borderTopColor: resolvedStrokeColor,
2470
- borderTopStyle: chunk6QGTRYSC_js.getCssBorderDashStyle(strokeDash)
2422
+ borderTopStyle: chunkUSAJMMF2_js.getCssBorderDashStyle(strokeDash)
2471
2423
  };
2472
2424
  }
2473
2425
  if (normalizedShapeType === "cylinder") {
@@ -2481,13 +2433,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2481
2433
  function getConnectorAdjustment(element, key, fallback) {
2482
2434
  const direct = element.shapeAdjustments?.[key];
2483
2435
  if (typeof direct === "number" && Number.isFinite(direct)) {
2484
- return chunk6QGTRYSC_js.clampUnitInterval(direct / 1e5);
2436
+ return chunkUSAJMMF2_js.clampUnitInterval(direct / 1e5);
2485
2437
  }
2486
2438
  const fallbackKey = element.shapeAdjustments?.adj;
2487
2439
  if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
2488
- return chunk6QGTRYSC_js.clampUnitInterval(fallbackKey / 1e5);
2440
+ return chunkUSAJMMF2_js.clampUnitInterval(fallbackKey / 1e5);
2489
2441
  }
2490
- return chunk6QGTRYSC_js.clampUnitInterval(fallback);
2442
+ return chunkUSAJMMF2_js.clampUnitInterval(fallback);
2491
2443
  }
2492
2444
  function getConnectorPathGeometry(element) {
2493
2445
  const width = Math.max(element.width, 0);
@@ -2620,7 +2572,7 @@ function toHexByte(value) {
2620
2572
  return clamped.toString(16).padStart(2, "0");
2621
2573
  }
2622
2574
  function shiftHex(hex, factor, towardsWhite) {
2623
- const channels = chunk6QGTRYSC_js.hexToRgbChannels(hex);
2575
+ const channels = chunkUSAJMMF2_js.hexToRgbChannels(hex);
2624
2576
  if (!channels) {
2625
2577
  return hex;
2626
2578
  }
@@ -2646,7 +2598,7 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
2646
2598
  const fillOff = subpath.fillMode === "none" || !hasFill;
2647
2599
  return {
2648
2600
  d: subpath.d,
2649
- fill: fillOff ? "none" : chunk6QGTRYSC_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2601
+ fill: fillOff ? "none" : chunkUSAJMMF2_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2650
2602
  stroked: subpath.stroke !== false
2651
2603
  };
2652
2604
  });
@@ -2662,11 +2614,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
2662
2614
  strokePaint,
2663
2615
  strokeWidth,
2664
2616
  dashArray,
2665
- lineCap: chunk6QGTRYSC_js.svgLineCap(shapeStyle?.lineCap),
2617
+ lineCap: chunkUSAJMMF2_js.svgLineCap(shapeStyle?.lineCap),
2666
2618
  lineJoin,
2667
2619
  miterLimit,
2668
- offsets: chunk6QGTRYSC_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2669
- widths: chunk6QGTRYSC_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2620
+ offsets: chunkUSAJMMF2_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2621
+ widths: chunkUSAJMMF2_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2670
2622
  };
2671
2623
  }
2672
2624
  function strokeStrands(d, keyBase, ctx) {
@@ -2714,9 +2666,9 @@ function gradientDefs(gradient) {
2714
2666
  }
2715
2667
  function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
2716
2668
  const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
2717
- const subpaths = structuredPaths && structuredPaths.length > 0 ? chunk6QGTRYSC_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2669
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkUSAJMMF2_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2718
2670
  const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
2719
- const gradientPaint = gradient ? chunk6QGTRYSC_js.svgGradientFillRef(gradient) : void 0;
2671
+ const gradientPaint = gradient ? chunkUSAJMMF2_js.svgGradientFillRef(gradient) : void 0;
2720
2672
  const nodes = [];
2721
2673
  if (subpaths && needsPerSubpath) {
2722
2674
  const paints = buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
@@ -2748,7 +2700,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2748
2700
  "path",
2749
2701
  {
2750
2702
  d: pathData,
2751
- fill: animatesFill ? "inherit" : gradientPaint ?? chunk6QGTRYSC_js.colorWithOpacity(fillColor, fillOpacity),
2703
+ fill: animatesFill ? "inherit" : gradientPaint ?? chunkUSAJMMF2_js.colorWithOpacity(fillColor, fillOpacity),
2752
2704
  stroke: "none",
2753
2705
  vectorEffect: "non-scaling-stroke"
2754
2706
  },
@@ -2774,14 +2726,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2774
2726
  );
2775
2727
  }
2776
2728
  function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2777
- if (!chunk6QGTRYSC_js.hasShapeProperties(element)) {
2729
+ if (!chunkUSAJMMF2_js.hasShapeProperties(element)) {
2778
2730
  return null;
2779
2731
  }
2780
2732
  const normalizedType = (element.shapeType || "").toLowerCase();
2781
- const fillPaint = animatesFill ? "inherit" : chunk6QGTRYSC_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2782
- const strokePaint = animatesStroke ? "inherit" : chunk6QGTRYSC_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2783
- const dashType = chunk6QGTRYSC_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2784
- const dashArray = chunk6QGTRYSC_js.getSvgStrokeDasharray(
2733
+ const fillPaint = animatesFill ? "inherit" : chunkUSAJMMF2_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2734
+ const strokePaint = animatesStroke ? "inherit" : chunkUSAJMMF2_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2735
+ const dashType = chunkUSAJMMF2_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2736
+ const dashArray = chunkUSAJMMF2_js.getSvgStrokeDasharray(
2785
2737
  dashType,
2786
2738
  Math.max(strokeWidth, 1),
2787
2739
  element.shapeStyle?.customDashSegments
@@ -2862,21 +2814,21 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2862
2814
  // container's `background-image` is suppressed for custom geometry, so
2863
2815
  // without this the shape fell back to the parser's representative solid
2864
2816
  // and lost every fade (issue #132).
2865
- chunk6QGTRYSC_js.buildSvgGradientDef(element.shapeStyle, element.id)
2817
+ chunkUSAJMMF2_js.buildSvgGradientDef(element.shapeStyle, element.id)
2866
2818
  );
2867
2819
  }
2868
- if (chunk6QGTRYSC_js.isCalloutShape(normalizedType)) {
2820
+ if (chunkUSAJMMF2_js.isCalloutShape(normalizedType)) {
2869
2821
  const width = Math.max(element.width, 1);
2870
2822
  const height = Math.max(element.height, 1);
2871
- const geometry = chunk6QGTRYSC_js.getCalloutLeaderLineGeometry(
2823
+ const geometry = chunkUSAJMMF2_js.getCalloutLeaderLineGeometry(
2872
2824
  normalizedType,
2873
2825
  width,
2874
2826
  height,
2875
2827
  element.shapeAdjustments
2876
2828
  );
2877
2829
  if (geometry && geometry.points.length >= 2) {
2878
- const leaderPath = chunk6QGTRYSC_js.buildCalloutLeaderLineSvgPath(geometry);
2879
- const bounds = chunk6QGTRYSC_js.getCalloutViewBoxBounds(width, height, geometry);
2830
+ const leaderPath = chunkUSAJMMF2_js.buildCalloutLeaderLineSvgPath(geometry);
2831
+ const bounds = chunkUSAJMMF2_js.getCalloutViewBoxBounds(width, height, geometry);
2880
2832
  const lineStroke = Math.max(strokeWidth, 1);
2881
2833
  const offsetLeft = bounds.minX;
2882
2834
  const offsetTop = bounds.minY;
@@ -2939,10 +2891,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2939
2891
  const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
2940
2892
  const endArrowL = element.shapeStyle?.connectorEndArrowLength;
2941
2893
  const compoundLine = element.shapeStyle?.compoundLine;
2942
- const connectorLineCap = chunk6QGTRYSC_js.svgLineCap(element.shapeStyle?.lineCap);
2894
+ const connectorLineCap = chunkUSAJMMF2_js.svgLineCap(element.shapeStyle?.lineCap);
2943
2895
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
2944
- const offsets = chunk6QGTRYSC_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2945
- const widths = chunk6QGTRYSC_js.getCompoundLineWidths(compoundLine, strokeWidth);
2896
+ const offsets = chunkUSAJMMF2_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2897
+ const widths = chunkUSAJMMF2_js.getCompoundLineWidths(compoundLine, strokeWidth);
2946
2898
  return /* @__PURE__ */ jsxRuntime.jsxs(
2947
2899
  "svg",
2948
2900
  {
@@ -3009,15 +2961,15 @@ function parseGradientFillCss(gradFill) {
3009
2961
  }
3010
2962
  const parsed = stops.map((gs) => {
3011
2963
  const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
3012
- const color = chunk6QGTRYSC_js.parseDrawingColor(gs) ?? "#888888";
3013
- const opacity = chunk6QGTRYSC_js.parseDrawingColorOpacity(gs);
3014
- return { pos, color: chunk6QGTRYSC_js.colorWithOpacity(color, opacity) };
2964
+ const color = chunkUSAJMMF2_js.parseDrawingColor(gs) ?? "#888888";
2965
+ const opacity = chunkUSAJMMF2_js.parseDrawingColorOpacity(gs);
2966
+ return { pos, color: chunkUSAJMMF2_js.colorWithOpacity(color, opacity) };
3015
2967
  }).sort((a, b) => a.pos - b.pos);
3016
2968
  const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
3017
2969
  const lin = gradFill["a:lin"];
3018
2970
  if (lin) {
3019
2971
  const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
3020
- const angleDeg = Math.round(chunk6QGTRYSC_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2972
+ const angleDeg = Math.round(chunkUSAJMMF2_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
3021
2973
  return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
3022
2974
  }
3023
2975
  const path = gradFill["a:path"];
@@ -3052,8 +3004,8 @@ function parsePatternFillCss(pattFill) {
3052
3004
  if (!pattFill) {
3053
3005
  return void 0;
3054
3006
  }
3055
- const fgColor = chunk6QGTRYSC_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
3056
- const bgColor = chunk6QGTRYSC_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
3007
+ const fgColor = chunkUSAJMMF2_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
3008
+ const bgColor = chunkUSAJMMF2_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
3057
3009
  const preset = String(pattFill["@_prst"] || "ltDnDiag");
3058
3010
  switch (preset) {
3059
3011
  case "ltHorz":
@@ -3164,11 +3116,11 @@ function parseCellBorders(cellProperties) {
3164
3116
  const prstDash = ln["a:prstDash"];
3165
3117
  const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
3166
3118
  const cssBorderStyle = ooxmlDashToCss(dashVal);
3167
- const color = chunk6QGTRYSC_js.parseDrawingColor(ln["a:solidFill"]);
3119
+ const color = chunkUSAJMMF2_js.parseDrawingColor(ln["a:solidFill"]);
3168
3120
  if (color) {
3169
- const opacity = chunk6QGTRYSC_js.parseDrawingColorOpacity(ln["a:solidFill"]);
3121
+ const opacity = chunkUSAJMMF2_js.parseDrawingColorOpacity(ln["a:solidFill"]);
3170
3122
  const key = `${edge.prefix}`;
3171
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunk6QGTRYSC_js.colorWithOpacity(color, opacity)}`;
3123
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkUSAJMMF2_js.colorWithOpacity(color, opacity)}`;
3172
3124
  }
3173
3125
  }
3174
3126
  return borderStyle;
@@ -3181,7 +3133,7 @@ function parseCellTextEffects(runProps) {
3181
3133
  const textShadowParts = [];
3182
3134
  const outerShdw = effectLst["a:outerShdw"];
3183
3135
  if (outerShdw) {
3184
- const shdwColor = chunk6QGTRYSC_js.parseDrawingColor(outerShdw);
3136
+ const shdwColor = chunkUSAJMMF2_js.parseDrawingColor(outerShdw);
3185
3137
  if (shdwColor) {
3186
3138
  const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
3187
3139
  const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
@@ -3199,7 +3151,7 @@ function parseCellTextEffects(runProps) {
3199
3151
  }
3200
3152
  const glow = effectLst["a:glow"];
3201
3153
  if (glow) {
3202
- const glowColor = chunk6QGTRYSC_js.parseDrawingColor(glow);
3154
+ const glowColor = chunkUSAJMMF2_js.parseDrawingColor(glow);
3203
3155
  if (glowColor) {
3204
3156
  const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
3205
3157
  const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
@@ -3278,10 +3230,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3278
3230
  if (runProps?.["@_u"] !== void 0) {
3279
3231
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
3280
3232
  }
3281
- const runColor = chunk6QGTRYSC_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunk6QGTRYSC_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
3233
+ const runColor = chunkUSAJMMF2_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkUSAJMMF2_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
3282
3234
  if (runColor) {
3283
- const opacity = chunk6QGTRYSC_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
3284
- cellStyle.color = chunk6QGTRYSC_js.colorWithOpacity(runColor, opacity);
3235
+ const opacity = chunkUSAJMMF2_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
3236
+ cellStyle.color = chunkUSAJMMF2_js.colorWithOpacity(runColor, opacity);
3285
3237
  }
3286
3238
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
3287
3239
  if (fontFamily) {
@@ -3291,15 +3243,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3291
3243
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
3292
3244
  }
3293
3245
  const cellProperties = cellXml["a:tcPr"];
3294
- const cellFill = chunk6QGTRYSC_js.parseDrawingColor(
3246
+ const cellFill = chunkUSAJMMF2_js.parseDrawingColor(
3295
3247
  cellProperties?.["a:solidFill"],
3296
3248
  schemeColorOverrides
3297
3249
  );
3298
3250
  if (cellFill) {
3299
- const opacity = chunk6QGTRYSC_js.parseDrawingColorOpacity(
3251
+ const opacity = chunkUSAJMMF2_js.parseDrawingColorOpacity(
3300
3252
  cellProperties?.["a:solidFill"]
3301
3253
  );
3302
- cellStyle.backgroundColor = chunk6QGTRYSC_js.colorWithOpacity(cellFill, opacity);
3254
+ cellStyle.backgroundColor = chunkUSAJMMF2_js.colorWithOpacity(cellFill, opacity);
3303
3255
  } else {
3304
3256
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
3305
3257
  if (gradCss) {
@@ -3314,16 +3266,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3314
3266
  const edgeBorders = parseCellBorders(cellProperties);
3315
3267
  Object.assign(cellStyle, edgeBorders);
3316
3268
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
3317
- const borderColor = chunk6QGTRYSC_js.parseDrawingColor(
3269
+ const borderColor = chunkUSAJMMF2_js.parseDrawingColor(
3318
3270
  cellProperties?.["a:lnL"]?.["a:solidFill"],
3319
3271
  schemeColorOverrides
3320
- ) || chunk6QGTRYSC_js.parseDrawingColor(
3272
+ ) || chunkUSAJMMF2_js.parseDrawingColor(
3321
3273
  cellProperties?.["a:lnR"]?.["a:solidFill"],
3322
3274
  schemeColorOverrides
3323
- ) || chunk6QGTRYSC_js.parseDrawingColor(
3275
+ ) || chunkUSAJMMF2_js.parseDrawingColor(
3324
3276
  cellProperties?.["a:lnT"]?.["a:solidFill"],
3325
3277
  schemeColorOverrides
3326
- ) || chunk6QGTRYSC_js.parseDrawingColor(
3278
+ ) || chunkUSAJMMF2_js.parseDrawingColor(
3327
3279
  cellProperties?.["a:lnB"]?.["a:solidFill"],
3328
3280
  schemeColorOverrides
3329
3281
  );
@@ -3391,191 +3343,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3391
3343
  }
3392
3344
 
3393
3345
  // src/viewer/utils/table-band-style.tsx
3394
- function resolveTableStyleFillColor(fill, colorScheme) {
3395
- if (!fill) {
3396
- return void 0;
3397
- }
3398
- const key = fill.schemeColor;
3399
- const base = colorScheme ? colorScheme[key] : void 0;
3400
- if (!base) {
3401
- return void 0;
3402
- }
3403
- let color = base;
3404
- if (fill.tint !== void 0 && fill.tint > 0) {
3405
- color = chunk6QGTRYSC_js.tintColor2(color, fill.tint / 1e5);
3406
- }
3407
- if (fill.shade !== void 0 && fill.shade > 0) {
3408
- color = chunk6QGTRYSC_js.shadeColor2(color, 1 - fill.shade / 1e5);
3409
- }
3410
- return color;
3411
- }
3412
- function applyTableStyleText(text, colorScheme, style, fontScheme) {
3413
- if (!text) {
3414
- return false;
3415
- }
3416
- let applied = false;
3417
- if (text.bold) {
3418
- style.fontWeight = 700;
3419
- applied = true;
3420
- }
3421
- if (text.italic) {
3422
- style.fontStyle = "italic";
3423
- applied = true;
3424
- }
3425
- if (text.underline) {
3426
- style.textDecorationLine = "underline";
3427
- applied = true;
3428
- }
3429
- if (text.fontFace) {
3430
- style.fontFamily = text.fontFace;
3431
- applied = true;
3432
- } else {
3433
- const refFont = chunk6QGTRYSC_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
3434
- if (refFont) {
3435
- style.fontFamily = refFont;
3436
- applied = true;
3437
- }
3438
- }
3439
- if (text.fontSchemeColor && colorScheme) {
3440
- const base = colorScheme[text.fontSchemeColor];
3441
- if (base) {
3442
- let color = base;
3443
- if (text.fontTint !== void 0 && text.fontTint > 0) {
3444
- color = chunk6QGTRYSC_js.tintColor2(color, text.fontTint / 1e5);
3445
- }
3446
- if (text.fontShade !== void 0 && text.fontShade > 0) {
3447
- color = chunk6QGTRYSC_js.shadeColor2(color, 1 - text.fontShade / 1e5);
3448
- }
3449
- style.color = color;
3450
- applied = true;
3451
- }
3452
- }
3453
- return applied;
3454
- }
3455
- function resolveTableStyleEntry(tableStyleId, tableStyleMap) {
3456
- if (!tableStyleId || !tableStyleMap) {
3457
- return void 0;
3458
- }
3459
- const direct = tableStyleMap[tableStyleId];
3460
- if (direct) {
3461
- return direct;
3462
- }
3463
- const normalised = tableStyleId.trim().toUpperCase();
3464
- const withBraces = normalised.startsWith("{") ? normalised : `{${normalised}}`;
3465
- return tableStyleMap[withBraces];
3466
- }
3467
- function getTableCellBandStyle(element, rowIndex, cellIndex, rowCount, columnCount, styleCtx) {
3346
+ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCount, styleCtx) {
3468
3347
  if (element.type !== "table") {
3469
3348
  return void 0;
3470
3349
  }
3471
- const td = element.tableData;
3472
- if (!td) {
3473
- return void 0;
3474
- }
3475
- const styleEntry = resolveTableStyleEntry(td.tableStyleId, styleCtx?.tableStyleMap);
3476
- const colorScheme = styleCtx?.theme?.colorScheme;
3477
- const fontScheme = styleCtx?.theme?.fontScheme;
3478
- const resolveFill = (fill, fallback) => resolveTableStyleFillColor(fill, colorScheme) ?? fallback;
3479
- const style = {};
3480
- let applied = false;
3481
- if (styleEntry?.wholeTblFill) {
3482
- const wholeBg = resolveFill(styleEntry.wholeTblFill, "");
3483
- if (wholeBg) {
3484
- style.backgroundColor = wholeBg;
3485
- applied = true;
3486
- }
3487
- }
3488
- if (applyTableStyleText(styleEntry?.wholeTblText, colorScheme, style, fontScheme)) {
3489
- applied = true;
3490
- }
3491
- const bandStartRow = td.firstRowHeader ? 1 : 0;
3492
- const bandEndRow = td.lastRow ? rowCount - 1 : rowCount;
3493
- if (td.bandedRows && rowIndex >= bandStartRow && rowIndex < bandEndRow) {
3494
- const bandIndex = rowIndex - bandStartRow;
3495
- const rowCycle = Math.max(td.bandRowCycle ?? 1, 1);
3496
- const bandGroup = Math.floor(bandIndex / rowCycle) % 2;
3497
- if (bandGroup === 0) {
3498
- const band1Bg = resolveFill(styleEntry?.band1HFill, "rgba(217, 226, 243, 0.5)");
3499
- style.backgroundColor = band1Bg;
3500
- applied = true;
3501
- } else if (styleEntry?.band2HFill) {
3502
- const band2Bg = resolveFill(styleEntry.band2HFill, "");
3503
- if (band2Bg) {
3504
- style.backgroundColor = band2Bg;
3505
- applied = true;
3506
- }
3507
- }
3508
- }
3509
- if (td.bandedColumns) {
3510
- const isFirstCol = td.firstCol;
3511
- const isLastCol = td.lastCol;
3512
- const colBandIndex = isFirstCol && cellIndex > 0 ? cellIndex - 1 : cellIndex;
3513
- const skipCol = isFirstCol && cellIndex === 0 || isLastCol && cellIndex === columnCount - 1;
3514
- if (!skipCol) {
3515
- const colCycle = Math.max(td.bandColCycle ?? 1, 1);
3516
- const colBandGroup = Math.floor(colBandIndex / colCycle) % 2;
3517
- if (colBandGroup === 0) {
3518
- if (!style.backgroundColor || !td.bandedRows) {
3519
- const band1Bg = resolveFill(styleEntry?.band1VFill, "rgba(217, 226, 243, 0.35)");
3520
- style.backgroundColor = band1Bg;
3521
- applied = true;
3522
- }
3523
- } else if (styleEntry?.band2VFill) {
3524
- if (!style.backgroundColor || !td.bandedRows) {
3525
- const band2Bg = resolveFill(styleEntry.band2VFill, "");
3526
- if (band2Bg) {
3527
- style.backgroundColor = band2Bg;
3528
- applied = true;
3529
- }
3530
- }
3531
- }
3532
- }
3533
- }
3534
- if (td.firstRowHeader && rowIndex === 0) {
3535
- style.fontWeight = 700;
3536
- const headerBg = resolveFill(styleEntry?.firstRowFill, "rgba(68, 114, 196, 0.85)");
3537
- style.backgroundColor = headerBg;
3538
- style.color = "#ffffff";
3539
- applyTableStyleText(styleEntry?.firstRowText, colorScheme, style, fontScheme);
3540
- applied = true;
3541
- }
3542
- if (td.lastRow && rowIndex === rowCount - 1) {
3543
- style.fontWeight = 700;
3544
- if (styleEntry?.lastRowFill) {
3545
- const lastRowBg = resolveFill(styleEntry.lastRowFill, "");
3546
- if (lastRowBg) {
3547
- style.backgroundColor = lastRowBg;
3548
- }
3549
- }
3550
- style.borderTopWidth = 2;
3551
- style.borderTopColor = resolveFill(styleEntry?.firstRowFill, "rgba(68, 114, 196, 0.7)");
3552
- style.borderTopStyle = "solid";
3553
- applyTableStyleText(styleEntry?.lastRowText, colorScheme, style, fontScheme);
3554
- applied = true;
3555
- }
3556
- if (td.firstCol && cellIndex === 0) {
3557
- style.fontWeight = 700;
3558
- if (styleEntry?.firstColFill) {
3559
- const firstColBg = resolveFill(styleEntry.firstColFill, "");
3560
- if (firstColBg) {
3561
- style.backgroundColor = firstColBg;
3562
- }
3563
- }
3564
- applyTableStyleText(styleEntry?.firstColText, colorScheme, style, fontScheme);
3565
- applied = true;
3566
- }
3567
- if (td.lastCol && cellIndex === columnCount - 1) {
3568
- style.fontWeight = 700;
3569
- if (styleEntry?.lastColFill) {
3570
- const lastColBg = resolveFill(styleEntry.lastColFill, "");
3571
- if (lastColBg) {
3572
- style.backgroundColor = lastColBg;
3573
- }
3574
- }
3575
- applyTableStyleText(styleEntry?.lastColText, colorScheme, style, fontScheme);
3576
- applied = true;
3577
- }
3578
- return applied ? style : void 0;
3350
+ return chunkUSAJMMF2_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
3351
+ tableStyleMap: styleCtx?.tableStyleMap,
3352
+ colorScheme: styleCtx?.theme?.colorScheme,
3353
+ fontScheme: styleCtx?.theme?.fontScheme
3354
+ });
3579
3355
  }
3580
3356
 
3581
3357
  // src/viewer/utils/table-data-parse.tsx
@@ -3633,7 +3409,7 @@ function parseTableElementData(element, fallbackTextStyle) {
3633
3409
  };
3634
3410
  }
3635
3411
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
3636
- return chunk6QGTRYSC_js.getCellDiagonalBorders(style, tableData, pos, {
3412
+ return chunkUSAJMMF2_js.getCellDiagonalBorders(style, tableData, pos, {
3637
3413
  tableStyleMap: styleCtx?.tableStyleMap,
3638
3414
  colorScheme: styleCtx?.theme?.colorScheme,
3639
3415
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3756,144 +3532,6 @@ function TableCellInput({
3756
3532
  }
3757
3533
  );
3758
3534
  }
3759
-
3760
- // src/viewer/utils/table-render-helpers.ts
3761
- function cellStyleToCss(style) {
3762
- if (!style) {
3763
- return {};
3764
- }
3765
- const css = {};
3766
- if (style.fontSize) {
3767
- css.fontSize = style.fontSize;
3768
- }
3769
- if (style.bold) {
3770
- css.fontWeight = "bold";
3771
- }
3772
- if (style.italic) {
3773
- css.fontStyle = "italic";
3774
- }
3775
- if (style.underline) {
3776
- css.textDecorationLine = "underline";
3777
- }
3778
- if (style.color) {
3779
- css.color = style.color;
3780
- }
3781
- if (style.gradientFillCss) {
3782
- css.background = style.gradientFillCss;
3783
- } else if (style.fillMode === "pattern" && style.patternFillPreset) {
3784
- const fg = chunk6QGTRYSC_js.normalizeHexColor(style.patternFillForeground, "#000000");
3785
- const bg = chunk6QGTRYSC_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
3786
- const svgPattern = chunk6QGTRYSC_js.getPatternSvg(style.patternFillPreset, fg, bg);
3787
- if (svgPattern) {
3788
- const encoded = encodeURIComponent(svgPattern);
3789
- css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
3790
- css.backgroundColor = bg;
3791
- } else if (style.backgroundColor) {
3792
- css.backgroundColor = style.backgroundColor;
3793
- }
3794
- } else if (style.backgroundColor) {
3795
- css.backgroundColor = style.backgroundColor;
3796
- }
3797
- if (style.align) {
3798
- css.textAlign = style.align;
3799
- } else if (style.anchorCtr) {
3800
- css.textAlign = "center";
3801
- }
3802
- if (style.vAlign) {
3803
- css.verticalAlign = style.vAlign;
3804
- }
3805
- if (style.horzOverflow === "clip") {
3806
- css.overflowX = "hidden";
3807
- } else if (style.horzOverflow === "overflow") {
3808
- css.overflowX = "visible";
3809
- }
3810
- if (style.textDirection) {
3811
- switch (style.textDirection) {
3812
- case "vert":
3813
- case "eaVert":
3814
- case "wordArtVert":
3815
- case "wordArtVertRtl":
3816
- css.writingMode = "vertical-rl";
3817
- break;
3818
- case "vert270":
3819
- case "mongolianVert":
3820
- css.writingMode = "vertical-lr";
3821
- break;
3822
- }
3823
- if (style.textDirection === "wordArtVert") {
3824
- css.textOrientation = "upright";
3825
- } else if (css.writingMode) {
3826
- css.textOrientation = "mixed";
3827
- }
3828
- if (style.textDirection === "wordArtVertRtl") {
3829
- css.direction = "rtl";
3830
- }
3831
- }
3832
- const borderEdges = [
3833
- {
3834
- prefix: "borderTop",
3835
- width: style.borderTopWidth,
3836
- color: style.borderTopColor,
3837
- dash: style.borderTopDash
3838
- },
3839
- {
3840
- prefix: "borderBottom",
3841
- width: style.borderBottomWidth,
3842
- color: style.borderBottomColor,
3843
- dash: style.borderBottomDash
3844
- },
3845
- {
3846
- prefix: "borderLeft",
3847
- width: style.borderLeftWidth,
3848
- color: style.borderLeftColor,
3849
- dash: style.borderLeftDash
3850
- },
3851
- {
3852
- prefix: "borderRight",
3853
- width: style.borderRightWidth,
3854
- color: style.borderRightColor,
3855
- dash: style.borderRightDash
3856
- }
3857
- ];
3858
- for (const edge of borderEdges) {
3859
- if (edge.width || edge.color) {
3860
- const w = edge.width ?? 1;
3861
- const c = edge.color ?? style.borderColor ?? "#000000";
3862
- const s = chunk6QGTRYSC_js.ooxmlDashToCssBorderStyle(edge.dash);
3863
- css[edge.prefix] = `${w}px ${s} ${c}`;
3864
- }
3865
- }
3866
- if (style.marginLeft) {
3867
- css.paddingLeft = style.marginLeft;
3868
- }
3869
- if (style.marginRight) {
3870
- css.paddingRight = style.marginRight;
3871
- }
3872
- if (style.marginTop) {
3873
- css.paddingTop = style.marginTop;
3874
- }
3875
- if (style.marginBottom) {
3876
- css.paddingBottom = style.marginBottom;
3877
- }
3878
- const textShadowParts = [];
3879
- if (style.textShadowColor) {
3880
- const offX = style.textShadowOffsetX ?? 1;
3881
- const offY = style.textShadowOffsetY ?? 1;
3882
- const blur = style.textShadowBlur ?? 0;
3883
- textShadowParts.push(`${offX}px ${offY}px ${blur}px ${style.textShadowColor}`);
3884
- }
3885
- if (style.textGlowColor) {
3886
- const radius = style.textGlowRadius ?? 2;
3887
- textShadowParts.push(`0px 0px ${radius}px ${style.textGlowColor}`);
3888
- }
3889
- if (textShadowParts.length > 0) {
3890
- css.textShadow = textShadowParts.join(", ");
3891
- }
3892
- if (style.cell3D) {
3893
- Object.assign(css, chunk6QGTRYSC_js.cell3DBevelCss(style.cell3D));
3894
- }
3895
- return css;
3896
- }
3897
3535
  function TableResizeOverlay({
3898
3536
  children,
3899
3537
  columnWidths,
@@ -3904,7 +3542,7 @@ function TableResizeOverlay({
3904
3542
  const containerRef = React6.useRef(null);
3905
3543
  const [rowBounds, setRowBounds] = React6.useState([]);
3906
3544
  const dragRef = React6.useRef(null);
3907
- const colBoundaries = React6.useMemo(() => chunk6QGTRYSC_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3545
+ const colBoundaries = React6.useMemo(() => chunkUSAJMMF2_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3908
3546
  const measureRows = React6.useCallback(() => {
3909
3547
  const container = containerRef.current;
3910
3548
  if (!container) {
@@ -3951,11 +3589,11 @@ function TableResizeOverlay({
3951
3589
  const rect = containerRef.current.getBoundingClientRect();
3952
3590
  if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
3953
3591
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
3954
- onResizeColumns(chunk6QGTRYSC_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3592
+ onResizeColumns(chunkUSAJMMF2_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3955
3593
  } else if (drag.type === "row" && onResizeRow) {
3956
3594
  const deltaY = e.clientY - drag.startPos;
3957
- const newHeight = chunk6QGTRYSC_js.computeResizedRowHeight(
3958
- drag.initialRowHeight ?? chunk6QGTRYSC_js.DEFAULT_ROW_HEIGHT,
3595
+ const newHeight = chunkUSAJMMF2_js.computeResizedRowHeight(
3596
+ drag.initialRowHeight ?? chunkUSAJMMF2_js.DEFAULT_ROW_HEIGHT,
3959
3597
  deltaY
3960
3598
  );
3961
3599
  onResizeRow(drag.index, newHeight);
@@ -3993,7 +3631,7 @@ function TableResizeOverlay({
3993
3631
  e.stopPropagation();
3994
3632
  const table = containerRef.current?.querySelector("table");
3995
3633
  const tr = table?.querySelectorAll("tbody > tr")[index];
3996
- const actualHeight = tr?.offsetHeight ?? chunk6QGTRYSC_js.DEFAULT_ROW_HEIGHT;
3634
+ const actualHeight = tr?.offsetHeight ?? chunkUSAJMMF2_js.DEFAULT_ROW_HEIGHT;
3997
3635
  document.body.style.cursor = "row-resize";
3998
3636
  document.body.style.userSelect = "none";
3999
3637
  dragRef.current = {
@@ -4041,7 +3679,7 @@ function renderTableFromTableData(element, textStyle, options) {
4041
3679
  }
4042
3680
  const first = selectedCell.selectedCells[0];
4043
3681
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
4044
- return chunk6QGTRYSC_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3682
+ return chunkUSAJMMF2_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
4045
3683
  })();
4046
3684
  return /* @__PURE__ */ jsxRuntime.jsx(
4047
3685
  TableResizeOverlay,
@@ -4061,7 +3699,7 @@ function renderTableFromTableData(element, textStyle, options) {
4061
3699
  "table",
4062
3700
  {
4063
3701
  className: "w-full h-full border-collapse table-fixed",
4064
- style: { fontFamily: chunk6QGTRYSC_js.DEFAULT_FONT_FAMILY },
3702
+ style: { fontFamily: chunkUSAJMMF2_js.DEFAULT_FONT_FAMILY },
4065
3703
  children: [
4066
3704
  tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
4067
3705
  "col",
@@ -4079,7 +3717,7 @@ function renderTableFromTableData(element, textStyle, options) {
4079
3717
  return null;
4080
3718
  }
4081
3719
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
4082
- const isInMultiSelection = chunk6QGTRYSC_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3720
+ const isInMultiSelection = chunkUSAJMMF2_js.isCellInRect(rowIndex, cellIndex, selectionRect);
4083
3721
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
4084
3722
  const diag = getCellDiagonalBorders2(
4085
3723
  cell.style,
@@ -4100,7 +3738,7 @@ function renderTableFromTableData(element, textStyle, options) {
4100
3738
  rowSpan: cell.rowSpan && cell.rowSpan > 1 ? cell.rowSpan : void 0,
4101
3739
  style: {
4102
3740
  ...textStyle,
4103
- ...cellStyleToCss(cell.style),
3741
+ ...chunkUSAJMMF2_js.cellStyleToCss(cell.style),
4104
3742
  ...diag ? { position: "relative" } : void 0
4105
3743
  },
4106
3744
  onClick: (event) => {
@@ -4109,7 +3747,7 @@ function renderTableFromTableData(element, textStyle, options) {
4109
3747
  }
4110
3748
  event.stopPropagation();
4111
3749
  if (event.shiftKey && selectedCell) {
4112
- const rect = chunk6QGTRYSC_js.computeSelectionRect(
3750
+ const rect = chunkUSAJMMF2_js.computeSelectionRect(
4113
3751
  selectedCell.rowIndex,
4114
3752
  selectedCell.columnIndex,
4115
3753
  rowIndex,
@@ -4119,7 +3757,7 @@ function renderTableFromTableData(element, textStyle, options) {
4119
3757
  options?.onSelectCell?.({
4120
3758
  rowIndex: selectedCell.rowIndex,
4121
3759
  columnIndex: selectedCell.columnIndex,
4122
- selectedCells: chunk6QGTRYSC_js.rectToCells(rect)
3760
+ selectedCells: chunkUSAJMMF2_js.rectToCells(rect)
4123
3761
  });
4124
3762
  } else {
4125
3763
  options?.onSelectCell?.({
@@ -4147,7 +3785,7 @@ function renderTableFromTableData(element, textStyle, options) {
4147
3785
  initialText: cell.text ?? "",
4148
3786
  style: {
4149
3787
  ...textStyle,
4150
- ...cellStyleToCss(cell.style)
3788
+ ...chunkUSAJMMF2_js.cellStyleToCss(cell.style)
4151
3789
  },
4152
3790
  onCommit: (text) => {
4153
3791
  options?.onCommitCellEdit?.(rowIndex, cellIndex, text);
@@ -4198,7 +3836,7 @@ function renderTableElement(element, textStyle, options) {
4198
3836
  }
4199
3837
  const first = selectedCell.selectedCells[0];
4200
3838
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
4201
- return chunk6QGTRYSC_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3839
+ return chunkUSAJMMF2_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
4202
3840
  })();
4203
3841
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
4204
3842
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4219,7 +3857,7 @@ function renderTableElement(element, textStyle, options) {
4219
3857
  "table",
4220
3858
  {
4221
3859
  className: "w-full h-full border-collapse table-fixed",
4222
- style: { fontFamily: chunk6QGTRYSC_js.DEFAULT_FONT_FAMILY },
3860
+ style: { fontFamily: chunkUSAJMMF2_js.DEFAULT_FONT_FAMILY },
4223
3861
  children: [
4224
3862
  parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
4225
3863
  "col",
@@ -4246,7 +3884,7 @@ function renderTableElement(element, textStyle, options) {
4246
3884
  const colSpan = Number.isFinite(gridSpanRaw) && gridSpanRaw > 1 ? gridSpanRaw : void 0;
4247
3885
  const rowSpanRaw = Number.parseInt(String(cell["@_rowSpan"] || ""), 10);
4248
3886
  const rSpan = Number.isFinite(rowSpanRaw) && rowSpanRaw > 1 ? rowSpanRaw : void 0;
4249
- const bandStyle = getTableCellBandStyle(
3887
+ const bandStyle = getTableCellBandStyle2(
4250
3888
  element,
4251
3889
  rowIndex,
4252
3890
  cellIndex,
@@ -4270,7 +3908,7 @@ function renderTableElement(element, textStyle, options) {
4270
3908
  const mergedStyle = {
4271
3909
  ...bandStyle,
4272
3910
  ...xmlCellStyle,
4273
- ...tdCellOverride ? cellStyleToCss(tdCellOverride) : void 0,
3911
+ ...tdCellOverride ? chunkUSAJMMF2_js.cellStyleToCss(tdCellOverride) : void 0,
4274
3912
  ...diag ? { position: "relative" } : void 0
4275
3913
  };
4276
3914
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -4280,7 +3918,7 @@ function renderTableElement(element, textStyle, options) {
4280
3918
  "border px-1 py-0.5 align-top",
4281
3919
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
4282
3920
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
4283
- chunk6QGTRYSC_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3921
+ chunkUSAJMMF2_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
4284
3922
  ),
4285
3923
  colSpan,
4286
3924
  rowSpan: rSpan,
@@ -4291,7 +3929,7 @@ function renderTableElement(element, textStyle, options) {
4291
3929
  }
4292
3930
  event.stopPropagation();
4293
3931
  if (event.shiftKey && selectedCell && tableEl.tableData) {
4294
- const rect = chunk6QGTRYSC_js.computeSelectionRect(
3932
+ const rect = chunkUSAJMMF2_js.computeSelectionRect(
4295
3933
  selectedCell.rowIndex,
4296
3934
  selectedCell.columnIndex,
4297
3935
  rowIndex,
@@ -4301,7 +3939,7 @@ function renderTableElement(element, textStyle, options) {
4301
3939
  options?.onSelectCell?.({
4302
3940
  rowIndex: selectedCell.rowIndex,
4303
3941
  columnIndex: selectedCell.columnIndex,
4304
- selectedCells: chunk6QGTRYSC_js.rectToCells(rect)
3942
+ selectedCells: chunkUSAJMMF2_js.rectToCells(rect)
4305
3943
  });
4306
3944
  } else {
4307
3945
  options?.onSelectCell?.({
@@ -4358,24 +3996,24 @@ function renderTableElement(element, textStyle, options) {
4358
3996
  }
4359
3997
  var LEGEND_ITEM_WIDTH = 80;
4360
3998
  function partAttrs(part) {
4361
- return part ? chunk6QGTRYSC_js.chartPartToAttrs(part) : void 0;
3999
+ return part ? chunkUSAJMMF2_js.chartPartToAttrs(part) : void 0;
4362
4000
  }
4363
4001
  function resolveReactPalette(chartData) {
4364
4002
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
4365
4003
  return chartData.colorPalette;
4366
4004
  }
4367
- return [...chunk6QGTRYSC_js.getChartStylePalette(chartData.style?.styleId)];
4005
+ return [...chunkUSAJMMF2_js.getChartStylePalette(chartData.style?.styleId)];
4368
4006
  }
4369
4007
  function buildReactChartViewModel(element) {
4370
4008
  if (element.type !== "chart" || !element.chartData) {
4371
- return chunk6QGTRYSC_js.buildChartViewModel(element);
4009
+ return chunkUSAJMMF2_js.buildChartViewModel(element);
4372
4010
  }
4373
4011
  const palette = resolveReactPalette(element.chartData);
4374
4012
  const themedElement = {
4375
4013
  ...element,
4376
4014
  chartData: { ...element.chartData, colorPalette: palette }
4377
4015
  };
4378
- return chunk6QGTRYSC_js.buildChartViewModel(themedElement);
4016
+ return chunkUSAJMMF2_js.buildChartViewModel(themedElement);
4379
4017
  }
4380
4018
  function renderPrimitive(prim, key) {
4381
4019
  switch (prim.kind) {
@@ -4764,7 +4402,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4764
4402
  const unmatchedRows = [];
4765
4403
  categories.forEach((cat, i) => {
4766
4404
  const value = values[i] ?? 0;
4767
- const code = chunk6QGTRYSC_js.resolveRegionCode(cat);
4405
+ const code = chunkUSAJMMF2_js.resolveRegionCode(cat);
4768
4406
  if (code) {
4769
4407
  regionValueMap.set(code, { value, label: cat });
4770
4408
  } else {
@@ -4802,8 +4440,8 @@ function renderMapChart(element, chartData, categoryLabels) {
4802
4440
  let fill = "#e2e8f0";
4803
4441
  let dataLabel = null;
4804
4442
  if (entry) {
4805
- const t = chunk6QGTRYSC_js.normalizeValue(entry.value, minVal, maxVal);
4806
- fill = chunk6QGTRYSC_js.sequentialColorScale(t);
4443
+ const t = chunkUSAJMMF2_js.normalizeValue(entry.value, minVal, maxVal);
4444
+ fill = chunkUSAJMMF2_js.sequentialColorScale(t);
4807
4445
  dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
4808
4446
  "text",
4809
4447
  {
@@ -4814,7 +4452,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4814
4452
  fontWeight: 600,
4815
4453
  fill: "#1e293b",
4816
4454
  style: { pointerEvents: "none" },
4817
- children: chunk6QGTRYSC_js.formatAxisValue(entry.value)
4455
+ children: chunkUSAJMMF2_js.formatAxisValue(entry.value)
4818
4456
  },
4819
4457
  `${element.id}-map-dl-${region.code}`
4820
4458
  );
@@ -4832,7 +4470,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4832
4470
  opacity: 0.9,
4833
4471
  children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
4834
4472
  region.name,
4835
- entry ? `: ${chunk6QGTRYSC_js.formatAxisValue(entry.value)}` : ""
4473
+ entry ? `: ${chunkUSAJMMF2_js.formatAxisValue(entry.value)}` : ""
4836
4474
  ] })
4837
4475
  }
4838
4476
  ),
@@ -4870,7 +4508,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4870
4508
  fontSize: 7,
4871
4509
  fill: "#64748b",
4872
4510
  textAnchor: "middle",
4873
- children: chunk6QGTRYSC_js.formatAxisValue(minVal)
4511
+ children: chunkUSAJMMF2_js.formatAxisValue(minVal)
4874
4512
  },
4875
4513
  `${element.id}-map-legend-min`
4876
4514
  ),
@@ -4882,7 +4520,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4882
4520
  fontSize: 7,
4883
4521
  fill: "#64748b",
4884
4522
  textAnchor: "middle",
4885
- children: chunk6QGTRYSC_js.formatAxisValue(maxVal)
4523
+ children: chunkUSAJMMF2_js.formatAxisValue(maxVal)
4886
4524
  },
4887
4525
  `${element.id}-map-legend-max`
4888
4526
  )
@@ -4948,7 +4586,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4948
4586
  y,
4949
4587
  fontSize,
4950
4588
  fill: "#475569",
4951
- children: chunk6QGTRYSC_js.formatAxisValue(row.value)
4589
+ children: chunkUSAJMMF2_js.formatAxisValue(row.value)
4952
4590
  },
4953
4591
  `${element.id}-map-ft-val-${i}`
4954
4592
  )
@@ -5019,7 +4657,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
5019
4657
 
5020
4658
  // src/viewer/utils/chart-overlay-utils.ts
5021
4659
  function sColor(series, idx) {
5022
- return chunk6QGTRYSC_js.seriesColor(series, idx);
4660
+ return chunkUSAJMMF2_js.seriesColor(series, idx);
5023
4661
  }
5024
4662
  function valToY(val, range, topY, bottomY) {
5025
4663
  const usable = bottomY - topY;
@@ -5558,7 +5196,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
5558
5196
  width: 10,
5559
5197
  height: 10,
5560
5198
  rx: 2,
5561
- fill: chunk6QGTRYSC_js.seriesColor(s, i, style?.styleId, colorPalette)
5199
+ fill: chunkUSAJMMF2_js.seriesColor(s, i, style?.styleId, colorPalette)
5562
5200
  },
5563
5201
  `${id}-leg-r-${i}`
5564
5202
  )
@@ -5582,7 +5220,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
5582
5220
  width: 10,
5583
5221
  height: 10,
5584
5222
  rx: 2,
5585
- fill: chunk6QGTRYSC_js.seriesColor(s, i, style?.styleId, colorPalette)
5223
+ fill: chunkUSAJMMF2_js.seriesColor(s, i, style?.styleId, colorPalette)
5586
5224
  }
5587
5225
  ),
5588
5226
  /* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
@@ -5595,9 +5233,9 @@ function renderGridlines(id, style, range, layout) {
5595
5233
  }
5596
5234
  const lines = [];
5597
5235
  if (range.logScale && range.logBase) {
5598
- const ticks = chunk6QGTRYSC_js.generateLogTicks(range);
5236
+ const ticks = chunkUSAJMMF2_js.generateLogTicks(range);
5599
5237
  ticks.forEach((tickVal, i) => {
5600
- const y = chunk6QGTRYSC_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5238
+ const y = chunkUSAJMMF2_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5601
5239
  lines.push(
5602
5240
  /* @__PURE__ */ jsxRuntime.jsx(
5603
5241
  "line",
@@ -5618,7 +5256,7 @@ function renderGridlines(id, style, range, layout) {
5618
5256
  const steps = 4;
5619
5257
  for (let i = 0; i <= steps; i++) {
5620
5258
  const val = range.min + range.span * i / steps;
5621
- const y = chunk6QGTRYSC_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5259
+ const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5622
5260
  lines.push(
5623
5261
  /* @__PURE__ */ jsxRuntime.jsx(
5624
5262
  "line",
@@ -5642,9 +5280,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5642
5280
  const labels = [];
5643
5281
  const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
5644
5282
  if (range.logScale && range.logBase) {
5645
- const ticks = chunk6QGTRYSC_js.generateLogTicks(range);
5283
+ const ticks = chunkUSAJMMF2_js.generateLogTicks(range);
5646
5284
  ticks.forEach((tickVal, i) => {
5647
- const y = chunk6QGTRYSC_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5285
+ const y = chunkUSAJMMF2_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5648
5286
  labels.push(
5649
5287
  /* @__PURE__ */ jsxRuntime.jsx(
5650
5288
  "text",
@@ -5654,7 +5292,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5654
5292
  textAnchor: "end",
5655
5293
  fontSize: 8,
5656
5294
  fill: "#64748b",
5657
- children: hasDisplayUnits ? chunk6QGTRYSC_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunk6QGTRYSC_js.formatAxisValue(tickVal)
5295
+ children: hasDisplayUnits ? chunkUSAJMMF2_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkUSAJMMF2_js.formatAxisValue(tickVal)
5658
5296
  },
5659
5297
  `${id}-vaxis-log-${i}`
5660
5298
  )
@@ -5664,7 +5302,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5664
5302
  const steps = 4;
5665
5303
  for (let i = 0; i <= steps; i++) {
5666
5304
  const val = range.min + range.span * i / steps;
5667
- const y = chunk6QGTRYSC_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5305
+ const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5668
5306
  labels.push(
5669
5307
  /* @__PURE__ */ jsxRuntime.jsx(
5670
5308
  "text",
@@ -5674,7 +5312,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5674
5312
  textAnchor: "end",
5675
5313
  fontSize: 8,
5676
5314
  fill: "#64748b",
5677
- children: hasDisplayUnits ? chunk6QGTRYSC_js.formatAxisValueWithUnits(val, axisFormatting) : chunk6QGTRYSC_js.formatAxisValue(val)
5315
+ children: hasDisplayUnits ? chunkUSAJMMF2_js.formatAxisValueWithUnits(val, axisFormatting) : chunkUSAJMMF2_js.formatAxisValue(val)
5678
5316
  },
5679
5317
  `${id}-vaxis-${i}`
5680
5318
  )
@@ -5682,7 +5320,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5682
5320
  }
5683
5321
  }
5684
5322
  if (hasDisplayUnits) {
5685
- const unitLabel = chunk6QGTRYSC_js.getDisplayUnitLabel(
5323
+ const unitLabel = chunkUSAJMMF2_js.getDisplayUnitLabel(
5686
5324
  axisFormatting.displayUnits,
5687
5325
  axisFormatting.displayUnitsLabel
5688
5326
  );
@@ -5757,7 +5395,7 @@ function renderZeroLine(id, range, layout) {
5757
5395
  if (range.min >= 0) {
5758
5396
  return null;
5759
5397
  }
5760
- const y = chunk6QGTRYSC_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
5398
+ const y = chunkUSAJMMF2_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
5761
5399
  return /* @__PURE__ */ jsxRuntime.jsx(
5762
5400
  "line",
5763
5401
  {
@@ -5781,7 +5419,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5781
5419
  const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
5782
5420
  for (let i = 0; i <= steps; i++) {
5783
5421
  const val = range.min + range.span * i / steps;
5784
- const y = chunk6QGTRYSC_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5422
+ const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5785
5423
  labels.push(
5786
5424
  /* @__PURE__ */ jsxRuntime.jsx(
5787
5425
  "text",
@@ -5793,7 +5431,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5793
5431
  fontFamily,
5794
5432
  fontWeight,
5795
5433
  fill: fontColor,
5796
- children: hasDisplayUnits ? chunk6QGTRYSC_js.formatAxisValueWithUnits(val, axisFormatting) : chunk6QGTRYSC_js.formatAxisValue(val)
5434
+ children: hasDisplayUnits ? chunkUSAJMMF2_js.formatAxisValueWithUnits(val, axisFormatting) : chunkUSAJMMF2_js.formatAxisValue(val)
5797
5435
  },
5798
5436
  `${id}-sec-vaxis-${i}`
5799
5437
  )
@@ -5817,7 +5455,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5817
5455
  );
5818
5456
  }
5819
5457
  if (hasDisplayUnits) {
5820
- const unitLabel = chunk6QGTRYSC_js.getDisplayUnitLabel(
5458
+ const unitLabel = chunkUSAJMMF2_js.getDisplayUnitLabel(
5821
5459
  axisFormatting.displayUnits,
5822
5460
  axisFormatting.displayUnitsLabel
5823
5461
  );
@@ -5848,7 +5486,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
5848
5486
  const ticks = [];
5849
5487
  for (let i = 0; i <= steps; i++) {
5850
5488
  const val = range.min + range.span * i / steps;
5851
- const y = chunk6QGTRYSC_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5489
+ const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5852
5490
  ticks.push(
5853
5491
  /* @__PURE__ */ jsxRuntime.jsx(
5854
5492
  "line",
@@ -5875,7 +5513,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
5875
5513
  const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
5876
5514
  for (let i = 0; i <= steps; i++) {
5877
5515
  const val = range.min + range.span * i / steps;
5878
- const y = chunk6QGTRYSC_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5516
+ const y = chunkUSAJMMF2_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5879
5517
  lines.push(
5880
5518
  /* @__PURE__ */ jsxRuntime.jsx(
5881
5519
  "line",
@@ -6037,7 +5675,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
6037
5675
  width: 8,
6038
5676
  height: 8,
6039
5677
  borderRadius: 2,
6040
- backgroundColor: chunk6QGTRYSC_js.seriesColor(
5678
+ backgroundColor: chunkUSAJMMF2_js.seriesColor(
6041
5679
  s,
6042
5680
  si,
6043
5681
  chartData.style?.styleId,
@@ -6075,10 +5713,10 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
6075
5713
  }
6076
5714
  function renderStockChart(element, chartData, categoryLabels) {
6077
5715
  const style = chartData.style;
6078
- const areaFill = chunk6QGTRYSC_js.chartAreaFill(chartData);
5716
+ const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
6079
5717
  const legendPos = style?.legendPosition || "b";
6080
- const range = chunk6QGTRYSC_js.computeValueRangeForChart(chartData.series, chartData.axes);
6081
- const layout = chunk6QGTRYSC_js.computeLayout(element.width, element.height, style, true, legendPos);
5718
+ const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
5719
+ const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, true, legendPos);
6082
5720
  const catCount = Math.max(categoryLabels.length, 1);
6083
5721
  const barGroupWidth = layout.plotWidth / catCount;
6084
5722
  const candleWidth = barGroupWidth * 0.5;
@@ -6099,10 +5737,10 @@ function renderStockChart(element, chartData, categoryLabels) {
6099
5737
  const close = closeSeries.values[ci] ?? high;
6100
5738
  const isUp = close >= open;
6101
5739
  const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
6102
- const highY = chunk6QGTRYSC_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
6103
- const lowY = chunk6QGTRYSC_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
6104
- const openY = chunk6QGTRYSC_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
6105
- const closeY = chunk6QGTRYSC_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
5740
+ const highY = chunkUSAJMMF2_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
5741
+ const lowY = chunkUSAJMMF2_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
5742
+ const openY = chunkUSAJMMF2_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
5743
+ const closeY = chunkUSAJMMF2_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
6106
5744
  elements.push(
6107
5745
  /* @__PURE__ */ jsxRuntime.jsx(
6108
5746
  "line",
@@ -6145,7 +5783,7 @@ function renderStockChart(element, chartData, categoryLabels) {
6145
5783
  textAnchor: "middle",
6146
5784
  fontSize: 7,
6147
5785
  fill: "#334155",
6148
- children: chunk6QGTRYSC_js.formatAxisValue(close)
5786
+ children: chunkUSAJMMF2_js.formatAxisValue(close)
6149
5787
  },
6150
5788
  `${element.id}-stock-dl-${ci}`
6151
5789
  )
@@ -6187,7 +5825,7 @@ function FailedToLoad() {
6187
5825
  var LazySurfaceChart3DScene = React6__default.default.lazy(
6188
5826
  async () => {
6189
5827
  try {
6190
- return await import('./SurfaceChart3DScene-AE5SKG7U.js');
5828
+ return await import('./SurfaceChart3DScene-W6I255VU.js');
6191
5829
  } catch {
6192
5830
  return { default: FailedToLoad };
6193
5831
  }
@@ -6211,7 +5849,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
6211
5849
  function buildSurfaceData(chartData, categoryLabels) {
6212
5850
  const rows = chartData.series.length;
6213
5851
  const cols = Math.max(categoryLabels.length, 1);
6214
- const range = chunk6QGTRYSC_js.computeValueRangeForChart(chartData.series, chartData.axes);
5852
+ const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
6215
5853
  const heightMap = new Float32Array(rows * cols);
6216
5854
  const colorMap = new Float32Array(rows * cols * 3);
6217
5855
  for (let r = 0; r < rows; r++) {
@@ -6330,10 +5968,10 @@ function darkenRgb(r, g, b, factor) {
6330
5968
  }
6331
5969
  function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
6332
5970
  const style = chartData.style;
6333
- const areaFill = chunk6QGTRYSC_js.chartAreaFill(chartData);
5971
+ const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
6334
5972
  const legendPos = style?.legendPosition || "b";
6335
- const layout = chunk6QGTRYSC_js.computeLayout(element.width, element.height, style, false, legendPos);
6336
- const range = chunk6QGTRYSC_js.computeValueRangeForChart(chartData.series, chartData.axes);
5973
+ const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, false, legendPos);
5974
+ const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
6337
5975
  const catCount = Math.max(categoryLabels.length, 1);
6338
5976
  const seriesCount = chartData.series.length;
6339
5977
  const cols = catCount - 1;
@@ -6422,10 +6060,10 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
6422
6060
  }
6423
6061
  function renderFlatSurfaceChart(element, chartData, categoryLabels) {
6424
6062
  const style = chartData.style;
6425
- const areaFill = chunk6QGTRYSC_js.chartAreaFill(chartData);
6063
+ const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
6426
6064
  const legendPos = style?.legendPosition || "b";
6427
- const layout = chunk6QGTRYSC_js.computeLayout(element.width, element.height, style, true, legendPos);
6428
- const range = chunk6QGTRYSC_js.computeValueRangeForChart(chartData.series, chartData.axes);
6065
+ const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, true, legendPos);
6066
+ const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
6429
6067
  const catCount = Math.max(categoryLabels.length, 1);
6430
6068
  const seriesCount = chartData.series.length;
6431
6069
  const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
@@ -6487,9 +6125,9 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
6487
6125
  }
6488
6126
  function renderTreemapChart(element, chartData, categoryLabels) {
6489
6127
  const style = chartData.style;
6490
- const areaFill = chunk6QGTRYSC_js.chartAreaFill(chartData);
6128
+ const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
6491
6129
  const legendPos = style?.legendPosition || "b";
6492
- const layout = chunk6QGTRYSC_js.computeLayout(element.width, element.height, style, false, legendPos);
6130
+ const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, false, legendPos);
6493
6131
  const allValues = chartData.series.flatMap((s) => s.values);
6494
6132
  const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
6495
6133
  const rects = [];
@@ -6512,7 +6150,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
6512
6150
  y: curY,
6513
6151
  width: Math.max(w - 1, 1),
6514
6152
  height: Math.max(h - 1, 1),
6515
- fill: chunk6QGTRYSC_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
6153
+ fill: chunkUSAJMMF2_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
6516
6154
  rx: 2,
6517
6155
  opacity: 0.85
6518
6156
  },
@@ -6563,11 +6201,11 @@ function renderTreemapChart(element, chartData, categoryLabels) {
6563
6201
  }
6564
6202
  function renderWaterfallChart(element, chartData, categoryLabels) {
6565
6203
  const style = chartData.style;
6566
- const areaFill = chunk6QGTRYSC_js.chartAreaFill(chartData);
6204
+ const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
6567
6205
  const legendPos = style?.legendPosition || "b";
6568
6206
  const values = chartData.series[0]?.values ?? [];
6569
- const range = chunk6QGTRYSC_js.computeValueRangeForChart(chartData.series, chartData.axes);
6570
- const layout = chunk6QGTRYSC_js.computeLayout(element.width, element.height, style, true, legendPos);
6207
+ const range = chunkUSAJMMF2_js.computeValueRangeForChart(chartData.series, chartData.axes);
6208
+ const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, true, legendPos);
6571
6209
  const catCount = Math.max(categoryLabels.length, values.length, 1);
6572
6210
  const barWidth = layout.plotWidth / catCount * 0.6;
6573
6211
  const gap = layout.plotWidth / catCount * 0.2;
@@ -6578,8 +6216,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6578
6216
  const isLast = i === values.length - 1;
6579
6217
  const startVal = isLast ? 0 : runningTotal;
6580
6218
  const endVal = isLast ? runningTotal + val : runningTotal + val;
6581
- const barStartY = chunk6QGTRYSC_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
6582
- const barEndY = chunk6QGTRYSC_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
6219
+ const barStartY = chunkUSAJMMF2_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
6220
+ const barEndY = chunkUSAJMMF2_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
6583
6221
  const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
6584
6222
  const y = Math.min(barStartY, barEndY);
6585
6223
  const h = Math.max(Math.abs(barEndY - barStartY), 1);
@@ -6608,7 +6246,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6608
6246
  textAnchor: "middle",
6609
6247
  fontSize: 7,
6610
6248
  fill: "#334155",
6611
- children: chunk6QGTRYSC_js.formatAxisValue(isLast ? endVal : val)
6249
+ children: chunkUSAJMMF2_js.formatAxisValue(isLast ? endVal : val)
6612
6250
  },
6613
6251
  `${element.id}-wf-dl-${i}`
6614
6252
  )
@@ -6655,20 +6293,20 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6655
6293
  }
6656
6294
  function renderComboChart(element, chartData, categoryLabels) {
6657
6295
  const style = chartData.style;
6658
- const areaFill = chunk6QGTRYSC_js.chartAreaFill(chartData);
6296
+ const areaFill = chunkUSAJMMF2_js.chartAreaFill(chartData);
6659
6297
  const legendPos = style?.legendPosition || "b";
6660
- const layoutOpts = chunk6QGTRYSC_js.computeLayoutOptions(
6298
+ const layoutOpts = chunkUSAJMMF2_js.computeLayoutOptions(
6661
6299
  chartData.axes,
6662
6300
  chartData.dataTable,
6663
6301
  chartData.series.length
6664
6302
  );
6665
- const layout = chunk6QGTRYSC_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
6666
- const { primary, secondary } = chunk6QGTRYSC_js.splitSeriesByAxis(chartData.series, chartData.axes);
6303
+ const layout = chunkUSAJMMF2_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
6304
+ const { primary, secondary } = chunkUSAJMMF2_js.splitSeriesByAxis(chartData.series, chartData.axes);
6667
6305
  const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
6668
6306
  const secondarySeries = secondary.map((e) => e.series);
6669
- const range = chunk6QGTRYSC_js.computeValueRangeForChart(primarySeries, chartData.axes);
6670
- const secondaryRange = secondarySeries.length > 0 ? chunk6QGTRYSC_js.computeValueRange(secondarySeries) : void 0;
6671
- const secondaryAxisFmt = chunk6QGTRYSC_js.getSecondaryValueAxis(chartData.axes);
6307
+ const range = chunkUSAJMMF2_js.computeValueRangeForChart(primarySeries, chartData.axes);
6308
+ const secondaryRange = secondarySeries.length > 0 ? chunkUSAJMMF2_js.computeValueRange(secondarySeries) : void 0;
6309
+ const secondaryAxisFmt = chunkUSAJMMF2_js.getSecondaryValueAxis(chartData.axes);
6672
6310
  const catCount = Math.max(categoryLabels.length, 1);
6673
6311
  const barSeriesCount = 1;
6674
6312
  const barGroupWidth = layout.plotWidth / catCount;
@@ -6684,8 +6322,8 @@ function renderComboChart(element, chartData, categoryLabels) {
6684
6322
  const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
6685
6323
  barSeries.values.forEach((val, vi) => {
6686
6324
  const x = layout.plotLeft + barGroupWidth * vi + barOffset;
6687
- const zeroY = chunk6QGTRYSC_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
6688
- const valY = chunk6QGTRYSC_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
6325
+ const zeroY = chunkUSAJMMF2_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
6326
+ const valY = chunkUSAJMMF2_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
6689
6327
  const y = Math.min(zeroY, valY);
6690
6328
  const h = Math.max(Math.abs(zeroY - valY), 1);
6691
6329
  barElements.push(
@@ -6696,7 +6334,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6696
6334
  y,
6697
6335
  width: barWidth,
6698
6336
  height: h,
6699
- fill: chunk6QGTRYSC_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
6337
+ fill: chunkUSAJMMF2_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
6700
6338
  rx: 1
6701
6339
  },
6702
6340
  `${element.id}-combo-bar-${vi}`
@@ -6712,7 +6350,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6712
6350
  textAnchor: "middle",
6713
6351
  fontSize: 7,
6714
6352
  fill: "#334155",
6715
- children: chunk6QGTRYSC_js.formatAxisValue(val)
6353
+ children: chunkUSAJMMF2_js.formatAxisValue(val)
6716
6354
  },
6717
6355
  `${element.id}-combo-bar-dl-${vi}`
6718
6356
  )
@@ -6729,10 +6367,10 @@ function renderComboChart(element, chartData, categoryLabels) {
6729
6367
  const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
6730
6368
  const points = series.values.map((val, vi) => {
6731
6369
  const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
6732
- const y = chunk6QGTRYSC_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
6370
+ const y = chunkUSAJMMF2_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
6733
6371
  return { x, y, val };
6734
6372
  });
6735
- const c = chunk6QGTRYSC_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
6373
+ const c = chunkUSAJMMF2_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
6736
6374
  lineElements.push(
6737
6375
  /* @__PURE__ */ jsxRuntime.jsx(
6738
6376
  "polyline",
@@ -6759,7 +6397,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6759
6397
  textAnchor: "middle",
6760
6398
  fontSize: 7,
6761
6399
  fill: "#334155",
6762
- children: chunk6QGTRYSC_js.formatAxisValue(p.val)
6400
+ children: chunkUSAJMMF2_js.formatAxisValue(p.val)
6763
6401
  },
6764
6402
  `${element.id}-combo-line-dl-${si}-${vi}`
6765
6403
  )
@@ -6862,1032 +6500,6 @@ function renderChartElement(element) {
6862
6500
  }
6863
6501
  return renderDefaultBarChart(element);
6864
6502
  }
6865
- var PALETTES = {
6866
- colorful1: ["#3b82f6", "#22c55e", "#f97316", "#eab308", "#a855f7", "#ec4899"],
6867
- colorful2: ["#6366f1", "#14b8a6", "#f59e0b", "#ef4444", "#8b5cf6", "#06b6d4"],
6868
- colorful3: ["#0ea5e9", "#84cc16", "#f43e5e", "#a855f7", "#f97316", "#10b981"],
6869
- monochromatic1: ["#3b82f6", "#60a5fa", "#93c5fd", "#bfdbfe", "#2563eb", "#1d4ed8"],
6870
- monochromatic2: ["#6366f1", "#818cf8", "#a5b4fc", "#c7d2fe", "#4f46e5", "#4338ca"]
6871
- };
6872
- var DEFAULT_PALETTE = PALETTES.colorful1;
6873
- function colour(index, palette = DEFAULT_PALETTE) {
6874
- return palette[index % palette.length];
6875
- }
6876
- function nodeOpacity(index, total, style) {
6877
- const base = style === "intense" ? 1 : style === "moderate" ? 0.92 : 0.85;
6878
- if (total <= 1) {
6879
- return base;
6880
- }
6881
- return base - index / (total - 1) * 0.15;
6882
- }
6883
- function styleShadow(style) {
6884
- if (style === "intense") {
6885
- return "drop-shadow(0 2px 6px rgba(0,0,0,0.35))";
6886
- }
6887
- if (style === "moderate") {
6888
- return "drop-shadow(0 1px 3px rgba(0,0,0,0.2))";
6889
- }
6890
- return void 0;
6891
- }
6892
- function styleStroke(style) {
6893
- if (style === "intense") {
6894
- return 2;
6895
- }
6896
- if (style === "moderate") {
6897
- return 1.5;
6898
- }
6899
- return 0;
6900
- }
6901
- function truncate(text, max) {
6902
- if (text.length <= max) {
6903
- return text;
6904
- }
6905
- return `${text.slice(0, max - 1)}\u2026`;
6906
- }
6907
- function resolvePalette(el) {
6908
- if (el.type !== "smartArt" || !el.smartArtData) {
6909
- return DEFAULT_PALETTE;
6910
- }
6911
- const ctFills = el.smartArtData.colorTransform?.fillColors;
6912
- if (ctFills && ctFills.length > 0) {
6913
- return ctFills;
6914
- }
6915
- return PALETTES[el.smartArtData.colorScheme ?? "colorful1"] ?? DEFAULT_PALETTE;
6916
- }
6917
- function resolveStyle(el) {
6918
- if (el.type !== "smartArt" || !el.smartArtData) {
6919
- return "flat";
6920
- }
6921
- return el.smartArtData.style ?? "flat";
6922
- }
6923
- function resolveSmartArtDataPalette(data) {
6924
- const ctFills = data.colorTransform?.fillColors;
6925
- if (ctFills && ctFills.length > 0) {
6926
- return ctFills;
6927
- }
6928
- return PALETTES[data.colorScheme ?? "colorful1"] ?? DEFAULT_PALETTE;
6929
- }
6930
- function buildTree(nodes) {
6931
- const map = /* @__PURE__ */ new Map();
6932
- for (const n of nodes) {
6933
- map.set(n.id, { node: n, children: [] });
6934
- }
6935
- const roots = [];
6936
- for (const n of nodes) {
6937
- const treeNode = map.get(n.id);
6938
- if (n.parentId && map.has(n.parentId)) {
6939
- map.get(n.parentId).children.push(treeNode);
6940
- } else {
6941
- roots.push(treeNode);
6942
- }
6943
- }
6944
- return roots;
6945
- }
6946
- function treeWidth(t) {
6947
- if (t.children.length === 0) {
6948
- return 1;
6949
- }
6950
- return t.children.reduce((sum, c) => sum + treeWidth(c), 0);
6951
- }
6952
- function treeDepth(t) {
6953
- if (t.children.length === 0) {
6954
- return 1;
6955
- }
6956
- return 1 + Math.max(...t.children.map(treeDepth));
6957
- }
6958
- function layoutToCategory(layout) {
6959
- if (!layout) {
6960
- return "list";
6961
- }
6962
- const map = {
6963
- basicBlockList: "list",
6964
- alternatingHexagons: "list",
6965
- basicChevronProcess: "process",
6966
- basicCycle: "cycle",
6967
- basicPie: "cycle",
6968
- basicRadial: "radial",
6969
- basicVenn: "venn",
6970
- continuousBlockProcess: "process",
6971
- convergingRadial: "radial",
6972
- hierarchy: "hierarchy",
6973
- horizontalBulletList: "list",
6974
- linearVenn: "venn",
6975
- segmentedProcess: "process",
6976
- stackedList: "list",
6977
- tableList: "list",
6978
- trapezoidList: "list",
6979
- upwardArrow: "process",
6980
- basicFunnel: "funnel",
6981
- basicTarget: "radial",
6982
- interlockingGears: "radial",
6983
- basicTimeline: "process",
6984
- basicMatrix: "matrix",
6985
- basicPyramid: "pyramid",
6986
- invertedPyramid: "pyramid",
6987
- bendingProcess: "process",
6988
- stepDownProcess: "stepdown",
6989
- alternatingFlow: "alternatingflow",
6990
- descendingProcess: "descending",
6991
- pictureAccentList: "pictureaccent",
6992
- verticalBlockList: "verticalblock",
6993
- groupedList: "grouped",
6994
- pyramidList: "pyramidlist",
6995
- horizontalPictureList: "horizontalpicture",
6996
- accentProcess: "accentprocess",
6997
- verticalChevronList: "verticalchevron"
6998
- };
6999
- return map[layout] ?? "list";
7000
- }
7001
- function smartArtNodeGroupProps(nodeId, shadow, label2) {
7002
- const props = {
7003
- "data-smartart-node-id": nodeId,
7004
- style: { filter: shadow, pointerEvents: "auto" }
7005
- };
7006
- if (label2) {
7007
- props.role = "img";
7008
- props["aria-label"] = label2;
7009
- }
7010
- return props;
7011
- }
7012
- function fitFontSize(text, maxWidth, maxHeight, baseSize) {
7013
- const charWidthRatio = 0.6;
7014
- const maxByWidth = maxWidth / (text.length * charWidthRatio);
7015
- const maxByHeight = maxHeight * 0.5;
7016
- return Math.max(6, Math.min(baseSize, maxByWidth, maxByHeight));
7017
- }
7018
- function chevronPoints(x, y, w, h) {
7019
- const depth = Math.min(w * 0.2, h * 0.4);
7020
- return [
7021
- `${x},${y}`,
7022
- `${x + w - depth},${y}`,
7023
- `${x + w},${y + h / 2}`,
7024
- `${x + w - depth},${y + h}`,
7025
- `${x},${y + h}`,
7026
- `${x + depth},${y + h / 2}`
7027
- ].join(" ");
7028
- }
7029
- function gearPath(cx, cy, outerR, innerR, teeth) {
7030
- const segments = [];
7031
- const step = Math.PI * 2 / (teeth * 2);
7032
- for (let i = 0; i < teeth * 2; i++) {
7033
- const angle = i * step - Math.PI / 2;
7034
- const r = i % 2 === 0 ? outerR : innerR;
7035
- const x = cx + r * Math.cos(angle);
7036
- const y = cy + r * Math.sin(angle);
7037
- segments.push(i === 0 ? `M${x},${y}` : `L${x},${y}`);
7038
- }
7039
- segments.push("Z");
7040
- return segments.join(" ");
7041
- }
7042
- function SmartArtNodeText({
7043
- text,
7044
- x,
7045
- y,
7046
- fill,
7047
- fontSize,
7048
- fontWeight,
7049
- fontStyle,
7050
- className,
7051
- anchor = "middle"
7052
- }) {
7053
- const lines = text.split("\n").filter((l) => l.length > 0);
7054
- const lineHeight = fontSize * 1.2;
7055
- let startY;
7056
- let dominantBaseline;
7057
- if (anchor === "bottom") {
7058
- startY = lines.length > 0 ? y - (lines.length - 1) * lineHeight : y;
7059
- dominantBaseline = "auto";
7060
- } else if (anchor === "top") {
7061
- startY = y;
7062
- dominantBaseline = "hanging";
7063
- } else {
7064
- const totalHeight = lines.length * lineHeight;
7065
- startY = lines.length > 0 ? y - totalHeight / 2 + lineHeight / 2 : y;
7066
- dominantBaseline = "central";
7067
- }
7068
- return /* @__PURE__ */ jsxRuntime.jsx(
7069
- "text",
7070
- {
7071
- x,
7072
- textAnchor: "middle",
7073
- dominantBaseline,
7074
- fill,
7075
- fontSize,
7076
- fontWeight,
7077
- fontStyle,
7078
- className,
7079
- children: lines.map((line, i) => /* @__PURE__ */ jsxRuntime.jsx("tspan", { x, y: startY + i * lineHeight, children: line }, i))
7080
- }
7081
- );
7082
- }
7083
- function wrapChrome(chrome, content, className, a11y) {
7084
- const wrapperStyle = {};
7085
- if (chrome?.backgroundColor) {
7086
- wrapperStyle.backgroundColor = chrome.backgroundColor;
7087
- }
7088
- if (chrome?.outlineColor) {
7089
- wrapperStyle.border = `${chrome.outlineWidth ?? 1}px solid ${chrome.outlineColor}`;
7090
- }
7091
- return /* @__PURE__ */ jsxRuntime.jsx(
7092
- "div",
7093
- {
7094
- className: `w-full h-full ${className}`,
7095
- style: wrapperStyle,
7096
- role: a11y?.role,
7097
- "aria-label": a11y?.label,
7098
- children: content
7099
- }
7100
- );
7101
- }
7102
- function renderStepDownProcess(element, nodes, palette, style) {
7103
- const w = element.width;
7104
- const h = element.height;
7105
- const pad = 8;
7106
- const usableW = w - pad * 2;
7107
- const usableH = h - pad * 2;
7108
- const stepW = usableW / nodes.length;
7109
- const stepH = usableH / nodes.length;
7110
- const boxW = stepW * 0.85;
7111
- const boxH = stepH * 0.6;
7112
- const shadow = styleShadow(style);
7113
- const sw = styleStroke(style);
7114
- return /* @__PURE__ */ jsxRuntime.jsx(
7115
- "svg",
7116
- {
7117
- className: "w-full h-full pointer-events-none",
7118
- viewBox: `0 0 ${w} ${h}`,
7119
- preserveAspectRatio: "xMidYMid meet",
7120
- style: { filter: shadow },
7121
- children: nodes.map((node, i) => {
7122
- const x = pad + i * stepW;
7123
- const y = pad + i * stepH;
7124
- const fontSize = Math.max(7, Math.min(10, boxW * 0.1));
7125
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7126
- i < nodes.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(
7127
- "line",
7128
- {
7129
- x1: x + boxW,
7130
- y1: y + boxH / 2,
7131
- x2: x + stepW,
7132
- y2: y + stepH + boxH / 2,
7133
- stroke: "#94a3b8",
7134
- strokeWidth: 1.5,
7135
- opacity: 0.5
7136
- }
7137
- ),
7138
- /* @__PURE__ */ jsxRuntime.jsx(
7139
- "rect",
7140
- {
7141
- x,
7142
- y,
7143
- width: boxW,
7144
- height: boxH,
7145
- rx: 5,
7146
- fill: colour(i, palette),
7147
- opacity: nodeOpacity(i, nodes.length, style),
7148
- stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
7149
- strokeWidth: sw
7150
- }
7151
- ),
7152
- /* @__PURE__ */ jsxRuntime.jsx(
7153
- SmartArtNodeText,
7154
- {
7155
- x: x + boxW / 2,
7156
- y: y + boxH / 2,
7157
- text: truncate(node.text, 20),
7158
- fill: "white",
7159
- fontSize,
7160
- className: "pointer-events-none"
7161
- }
7162
- )
7163
- ] }, `${element.id}-stepdown-${node.id}-${i}`);
7164
- })
7165
- }
7166
- );
7167
- }
7168
- function renderAlternatingFlow(element, nodes, palette, style) {
7169
- const w = element.width;
7170
- const h = element.height;
7171
- const pad = 8;
7172
- const usableH = h - pad * 2;
7173
- const rowH = usableH / nodes.length;
7174
- const halfW = (w - pad * 2) / 2;
7175
- const boxW = halfW * 0.8;
7176
- const boxH = Math.min(rowH * 0.7, 40);
7177
- const centerX = w / 2;
7178
- const shadow = styleShadow(style);
7179
- const sw = styleStroke(style);
7180
- return /* @__PURE__ */ jsxRuntime.jsxs(
7181
- "svg",
7182
- {
7183
- className: "w-full h-full pointer-events-none",
7184
- viewBox: `0 0 ${w} ${h}`,
7185
- preserveAspectRatio: "xMidYMid meet",
7186
- style: { filter: shadow },
7187
- children: [
7188
- /* @__PURE__ */ jsxRuntime.jsx(
7189
- "line",
7190
- {
7191
- x1: centerX,
7192
- y1: pad,
7193
- x2: centerX,
7194
- y2: h - pad,
7195
- stroke: "#94a3b8",
7196
- strokeWidth: 2,
7197
- opacity: 0.3
7198
- }
7199
- ),
7200
- nodes.map((node, i) => {
7201
- const isLeft = i % 2 === 0;
7202
- const y = pad + i * rowH + (rowH - boxH) / 2;
7203
- const x = isLeft ? centerX - boxW - 12 : centerX + 12;
7204
- const fontSize = Math.max(7, Math.min(10, boxW * 0.1));
7205
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7206
- /* @__PURE__ */ jsxRuntime.jsx(
7207
- "line",
7208
- {
7209
- x1: isLeft ? x + boxW : x,
7210
- y1: y + boxH / 2,
7211
- x2: centerX,
7212
- y2: y + boxH / 2,
7213
- stroke: colour(i, palette),
7214
- strokeWidth: 1.5,
7215
- opacity: 0.5
7216
- }
7217
- ),
7218
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: centerX, cy: y + boxH / 2, r: 3, fill: colour(i, palette), opacity: 0.8 }),
7219
- /* @__PURE__ */ jsxRuntime.jsx(
7220
- "rect",
7221
- {
7222
- x,
7223
- y,
7224
- width: boxW,
7225
- height: boxH,
7226
- rx: 5,
7227
- fill: colour(i, palette),
7228
- opacity: nodeOpacity(i, nodes.length, style),
7229
- stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
7230
- strokeWidth: sw
7231
- }
7232
- ),
7233
- /* @__PURE__ */ jsxRuntime.jsx(
7234
- SmartArtNodeText,
7235
- {
7236
- x: x + boxW / 2,
7237
- y: y + boxH / 2,
7238
- text: truncate(node.text, 20),
7239
- fill: "white",
7240
- fontSize,
7241
- className: "pointer-events-none"
7242
- }
7243
- )
7244
- ] }, `${element.id}-altflow-${node.id}-${i}`);
7245
- })
7246
- ]
7247
- }
7248
- );
7249
- }
7250
- function renderDescendingProcess(element, nodes, palette, style) {
7251
- const w = element.width;
7252
- const h = element.height;
7253
- const pad = 8;
7254
- const gap = 4;
7255
- const usableH = h - pad * 2;
7256
- const maxW = w - pad * 2;
7257
- const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
7258
- const shadow = styleShadow(style);
7259
- const sw = styleStroke(style);
7260
- return /* @__PURE__ */ jsxRuntime.jsx(
7261
- "svg",
7262
- {
7263
- className: "w-full h-full pointer-events-none",
7264
- viewBox: `0 0 ${w} ${h}`,
7265
- preserveAspectRatio: "xMidYMid meet",
7266
- style: { filter: shadow },
7267
- children: nodes.map((node, i) => {
7268
- const widthFraction = 1 - i / Math.max(nodes.length, 1) * 0.5;
7269
- const bw = maxW * widthFraction;
7270
- const x = (w - bw) / 2;
7271
- const y = pad + i * (itemH + gap);
7272
- const fontSize = Math.max(7, Math.min(11, itemH * 0.4));
7273
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7274
- i < nodes.length - 1 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7275
- /* @__PURE__ */ jsxRuntime.jsx(
7276
- "line",
7277
- {
7278
- x1: w / 2,
7279
- y1: y + itemH,
7280
- x2: w / 2,
7281
- y2: y + itemH + gap,
7282
- stroke: "#94a3b8",
7283
- strokeWidth: 1.5,
7284
- opacity: 0.5
7285
- }
7286
- ),
7287
- /* @__PURE__ */ jsxRuntime.jsx(
7288
- "polygon",
7289
- {
7290
- points: `${w / 2 - 3},${y + itemH + gap - 4} ${w / 2},${y + itemH + gap} ${w / 2 + 3},${y + itemH + gap - 4}`,
7291
- fill: "#94a3b8",
7292
- opacity: 0.5
7293
- }
7294
- )
7295
- ] }),
7296
- /* @__PURE__ */ jsxRuntime.jsx(
7297
- "rect",
7298
- {
7299
- x,
7300
- y,
7301
- width: bw,
7302
- height: itemH,
7303
- rx: 5,
7304
- fill: colour(i, palette),
7305
- opacity: nodeOpacity(i, nodes.length, style),
7306
- stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
7307
- strokeWidth: sw
7308
- }
7309
- ),
7310
- /* @__PURE__ */ jsxRuntime.jsx(
7311
- SmartArtNodeText,
7312
- {
7313
- x: w / 2,
7314
- y: y + itemH / 2,
7315
- text: truncate(node.text, 30),
7316
- fill: "white",
7317
- fontSize,
7318
- className: "pointer-events-none"
7319
- }
7320
- )
7321
- ] }, `${element.id}-desc-${node.id}-${i}`);
7322
- })
7323
- }
7324
- );
7325
- }
7326
- function renderPictureAccentList(element, nodes, palette, style) {
7327
- const w = element.width;
7328
- const h = element.height;
7329
- const pad = 8;
7330
- const gap = 6;
7331
- const usableH = h - pad * 2;
7332
- const usableW = w - pad * 2;
7333
- const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
7334
- const circleR = Math.min(itemH * 0.38, 18);
7335
- const textX = pad + circleR * 2 + 12;
7336
- const textW = usableW - circleR * 2 - 16;
7337
- const shadow = styleShadow(style);
7338
- const sw = styleStroke(style);
7339
- return /* @__PURE__ */ jsxRuntime.jsx(
7340
- "svg",
7341
- {
7342
- className: "w-full h-full pointer-events-none",
7343
- viewBox: `0 0 ${w} ${h}`,
7344
- preserveAspectRatio: "xMidYMid meet",
7345
- style: { filter: shadow },
7346
- children: nodes.map((node, i) => {
7347
- const y = pad + i * (itemH + gap);
7348
- const cy = y + itemH / 2;
7349
- const col = colour(i, palette);
7350
- const fontSize = Math.max(7, Math.min(11, itemH * 0.35));
7351
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7352
- /* @__PURE__ */ jsxRuntime.jsx(
7353
- "circle",
7354
- {
7355
- cx: pad + circleR,
7356
- cy,
7357
- r: circleR,
7358
- fill: col,
7359
- opacity: nodeOpacity(i, nodes.length, style)
7360
- }
7361
- ),
7362
- /* @__PURE__ */ jsxRuntime.jsx(
7363
- "text",
7364
- {
7365
- x: pad + circleR,
7366
- y: cy,
7367
- textAnchor: "middle",
7368
- dominantBaseline: "central",
7369
- fill: "white",
7370
- fontSize: Math.max(7, circleR * 0.7),
7371
- fontWeight: "bold",
7372
- className: "pointer-events-none",
7373
- children: i + 1
7374
- }
7375
- ),
7376
- /* @__PURE__ */ jsxRuntime.jsx(
7377
- "rect",
7378
- {
7379
- x: textX,
7380
- y: y + 2,
7381
- width: textW,
7382
- height: itemH - 4,
7383
- rx: 4,
7384
- fill: col,
7385
- opacity: 0.12,
7386
- stroke: col,
7387
- strokeWidth: sw > 0 ? sw : 1,
7388
- strokeOpacity: 0.3
7389
- }
7390
- ),
7391
- /* @__PURE__ */ jsxRuntime.jsx(
7392
- "text",
7393
- {
7394
- x: textX + 8,
7395
- y: cy,
7396
- textAnchor: "start",
7397
- dominantBaseline: "central",
7398
- fill: col,
7399
- fontSize,
7400
- className: "pointer-events-none",
7401
- children: truncate(node.text, 40)
7402
- }
7403
- )
7404
- ] }, `${element.id}-picacc-${node.id}-${i}`);
7405
- })
7406
- }
7407
- );
7408
- }
7409
- function renderVerticalBlockList(element, nodes, palette, style) {
7410
- const w = element.width;
7411
- const h = element.height;
7412
- const pad = 8;
7413
- const gap = 4;
7414
- const usableH = h - pad * 2;
7415
- const usableW = w - pad * 2;
7416
- const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
7417
- const headerW = usableW * 0.22;
7418
- const bodyW = usableW - headerW - 4;
7419
- const shadow = styleShadow(style);
7420
- const sw = styleStroke(style);
7421
- return /* @__PURE__ */ jsxRuntime.jsx(
7422
- "svg",
7423
- {
7424
- className: "w-full h-full pointer-events-none",
7425
- viewBox: `0 0 ${w} ${h}`,
7426
- preserveAspectRatio: "xMidYMid meet",
7427
- style: { filter: shadow },
7428
- children: nodes.map((node, i) => {
7429
- const y = pad + i * (itemH + gap);
7430
- const col = colour(i, palette);
7431
- const fontSize = Math.max(7, Math.min(11, itemH * 0.35));
7432
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7433
- /* @__PURE__ */ jsxRuntime.jsx(
7434
- "rect",
7435
- {
7436
- x: pad,
7437
- y,
7438
- width: headerW,
7439
- height: itemH,
7440
- rx: 3,
7441
- fill: col,
7442
- opacity: nodeOpacity(i, nodes.length, style),
7443
- stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
7444
- strokeWidth: sw
7445
- }
7446
- ),
7447
- /* @__PURE__ */ jsxRuntime.jsx(
7448
- "text",
7449
- {
7450
- x: pad + headerW / 2,
7451
- y: y + itemH / 2,
7452
- textAnchor: "middle",
7453
- dominantBaseline: "central",
7454
- fill: "white",
7455
- fontSize: Math.max(8, itemH * 0.4),
7456
- fontWeight: "bold",
7457
- className: "pointer-events-none",
7458
- children: i + 1
7459
- }
7460
- ),
7461
- /* @__PURE__ */ jsxRuntime.jsx(
7462
- "rect",
7463
- {
7464
- x: pad + headerW + 4,
7465
- y,
7466
- width: bodyW,
7467
- height: itemH,
7468
- rx: 3,
7469
- fill: col,
7470
- opacity: 0.1,
7471
- stroke: col,
7472
- strokeWidth: 1,
7473
- strokeOpacity: 0.3
7474
- }
7475
- ),
7476
- /* @__PURE__ */ jsxRuntime.jsx(
7477
- "text",
7478
- {
7479
- x: pad + headerW + 12,
7480
- y: y + itemH / 2,
7481
- textAnchor: "start",
7482
- dominantBaseline: "central",
7483
- fill: col,
7484
- fontSize,
7485
- className: "pointer-events-none",
7486
- children: truncate(node.text, 40)
7487
- }
7488
- )
7489
- ] }, `${element.id}-vblk-${node.id}-${i}`);
7490
- })
7491
- }
7492
- );
7493
- }
7494
- function renderGroupedList(element, nodes, palette, style) {
7495
- const w = element.width;
7496
- const h = element.height;
7497
- const pad = 8;
7498
- const gap = 8;
7499
- const shadow = styleShadow(style);
7500
- const sw = styleStroke(style);
7501
- const groupSize = nodes.length <= 4 ? 2 : 3;
7502
- const groups = [];
7503
- for (let i = 0; i < nodes.length; i += groupSize) {
7504
- groups.push(nodes.slice(i, i + groupSize));
7505
- }
7506
- const usableW = w - pad * 2;
7507
- const groupW = (usableW - gap * (groups.length - 1)) / groups.length;
7508
- const usableH = h - pad * 2;
7509
- const headerH = usableH * 0.18;
7510
- return /* @__PURE__ */ jsxRuntime.jsx(
7511
- "svg",
7512
- {
7513
- className: "w-full h-full pointer-events-none",
7514
- viewBox: `0 0 ${w} ${h}`,
7515
- preserveAspectRatio: "xMidYMid meet",
7516
- style: { filter: shadow },
7517
- children: groups.map((group, gi) => {
7518
- const gx = pad + gi * (groupW + gap);
7519
- const col = colour(gi, palette);
7520
- const subItemGap = 3;
7521
- const subItemH = (usableH - headerH - 4 - subItemGap * (group.length - 1)) / group.length;
7522
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7523
- /* @__PURE__ */ jsxRuntime.jsx(
7524
- "rect",
7525
- {
7526
- x: gx,
7527
- y: pad,
7528
- width: groupW,
7529
- height: headerH,
7530
- rx: 4,
7531
- fill: col,
7532
- opacity: nodeOpacity(gi, groups.length, style),
7533
- stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
7534
- strokeWidth: sw
7535
- }
7536
- ),
7537
- /* @__PURE__ */ jsxRuntime.jsx(
7538
- "text",
7539
- {
7540
- x: gx + groupW / 2,
7541
- y: pad + headerH / 2,
7542
- textAnchor: "middle",
7543
- dominantBaseline: "central",
7544
- fill: "white",
7545
- fontSize: Math.max(7, Math.min(10, groupW * 0.08)),
7546
- fontWeight: "bold",
7547
- className: "pointer-events-none",
7548
- children: `Group ${gi + 1}`
7549
- }
7550
- ),
7551
- group.map((node, si) => {
7552
- const sy = pad + headerH + 4 + si * (subItemH + subItemGap);
7553
- const fontSize = Math.max(7, Math.min(10, subItemH * 0.35));
7554
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7555
- /* @__PURE__ */ jsxRuntime.jsx(
7556
- "rect",
7557
- {
7558
- x: gx + 4,
7559
- y: sy,
7560
- width: groupW - 8,
7561
- height: subItemH,
7562
- rx: 3,
7563
- fill: col,
7564
- opacity: 0.15,
7565
- stroke: col,
7566
- strokeWidth: 1,
7567
- strokeOpacity: 0.3
7568
- }
7569
- ),
7570
- /* @__PURE__ */ jsxRuntime.jsx(
7571
- SmartArtNodeText,
7572
- {
7573
- x: gx + groupW / 2,
7574
- y: sy + subItemH / 2,
7575
- text: truncate(node.text, 20),
7576
- fill: col,
7577
- fontSize,
7578
- className: "pointer-events-none"
7579
- }
7580
- )
7581
- ] }, `${element.id}-grp-${gi}-item-${node.id}-${si}`);
7582
- })
7583
- ] }, `${element.id}-grp-${gi}`);
7584
- })
7585
- }
7586
- );
7587
- }
7588
- function renderPyramidList(element, nodes, palette, style) {
7589
- const w = element.width;
7590
- const h = element.height;
7591
- const pad = 8;
7592
- const gap = 4;
7593
- const usableH = h - pad * 2;
7594
- const pyramidW = w * 0.35;
7595
- const labelStartX = pyramidW + pad + 16;
7596
- const labelW = w - labelStartX - pad;
7597
- const bandH = (usableH - gap * (nodes.length - 1)) / nodes.length;
7598
- const shadow = styleShadow(style);
7599
- return /* @__PURE__ */ jsxRuntime.jsx(
7600
- "svg",
7601
- {
7602
- className: "w-full h-full pointer-events-none",
7603
- viewBox: `0 0 ${w} ${h}`,
7604
- preserveAspectRatio: "xMidYMid meet",
7605
- style: { filter: shadow },
7606
- children: nodes.map((node, i) => {
7607
- const y = pad + i * (bandH + gap);
7608
- const col = colour(i, palette);
7609
- const topFrac = 0.3 + i / Math.max(nodes.length - 1, 1) * 0.7;
7610
- const segW = pyramidW * topFrac;
7611
- const segX = pad + (pyramidW - segW) / 2;
7612
- const fontSize = Math.max(7, Math.min(11, bandH * 0.35));
7613
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7614
- /* @__PURE__ */ jsxRuntime.jsx(
7615
- "rect",
7616
- {
7617
- x: segX,
7618
- y,
7619
- width: segW,
7620
- height: bandH,
7621
- rx: 2,
7622
- fill: col,
7623
- opacity: nodeOpacity(i, nodes.length, style)
7624
- }
7625
- ),
7626
- /* @__PURE__ */ jsxRuntime.jsx(
7627
- "line",
7628
- {
7629
- x1: segX + segW,
7630
- y1: y + bandH / 2,
7631
- x2: labelStartX - 4,
7632
- y2: y + bandH / 2,
7633
- stroke: col,
7634
- strokeWidth: 1,
7635
- opacity: 0.5,
7636
- strokeDasharray: "3,2"
7637
- }
7638
- ),
7639
- /* @__PURE__ */ jsxRuntime.jsx(
7640
- "rect",
7641
- {
7642
- x: labelStartX,
7643
- y: y + 2,
7644
- width: labelW,
7645
- height: bandH - 4,
7646
- rx: 3,
7647
- fill: col,
7648
- opacity: 0.1,
7649
- stroke: col,
7650
- strokeWidth: 1,
7651
- strokeOpacity: 0.25
7652
- }
7653
- ),
7654
- /* @__PURE__ */ jsxRuntime.jsx(
7655
- "text",
7656
- {
7657
- x: labelStartX + 8,
7658
- y: y + bandH / 2,
7659
- textAnchor: "start",
7660
- dominantBaseline: "central",
7661
- fill: col,
7662
- fontSize,
7663
- className: "pointer-events-none",
7664
- children: truncate(node.text, 30)
7665
- }
7666
- )
7667
- ] }, `${element.id}-pyrlist-${node.id}-${i}`);
7668
- })
7669
- }
7670
- );
7671
- }
7672
- function renderHorizontalPictureList(element, nodes, palette, style) {
7673
- const w = element.width;
7674
- const h = element.height;
7675
- const pad = 8;
7676
- const gap = 8;
7677
- const usableW = w - pad * 2;
7678
- const colW = (usableW - gap * (nodes.length - 1)) / nodes.length;
7679
- const usableH = h - pad * 2;
7680
- const circleR = Math.min(colW * 0.38, usableH * 0.28);
7681
- const shadow = styleShadow(style);
7682
- const sw = styleStroke(style);
7683
- return /* @__PURE__ */ jsxRuntime.jsx(
7684
- "svg",
7685
- {
7686
- className: "w-full h-full pointer-events-none",
7687
- viewBox: `0 0 ${w} ${h}`,
7688
- preserveAspectRatio: "xMidYMid meet",
7689
- style: { filter: shadow },
7690
- children: nodes.map((node, i) => {
7691
- const cx = pad + i * (colW + gap) + colW / 2;
7692
- const cy = pad + circleR + 4;
7693
- const col = colour(i, palette);
7694
- const labelY = cy + circleR + 10;
7695
- const fontSize = Math.max(7, Math.min(10, colW * 0.1));
7696
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7697
- /* @__PURE__ */ jsxRuntime.jsx(
7698
- "circle",
7699
- {
7700
- cx,
7701
- cy,
7702
- r: circleR,
7703
- fill: col,
7704
- opacity: nodeOpacity(i, nodes.length, style),
7705
- stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
7706
- strokeWidth: sw
7707
- }
7708
- ),
7709
- /* @__PURE__ */ jsxRuntime.jsx(
7710
- "text",
7711
- {
7712
- x: cx,
7713
- y: cy,
7714
- textAnchor: "middle",
7715
- dominantBaseline: "central",
7716
- fill: "white",
7717
- fontSize: Math.max(8, circleR * 0.5),
7718
- fontWeight: "bold",
7719
- className: "pointer-events-none",
7720
- children: i + 1
7721
- }
7722
- ),
7723
- /* @__PURE__ */ jsxRuntime.jsx(
7724
- "text",
7725
- {
7726
- x: cx,
7727
- y: labelY,
7728
- textAnchor: "middle",
7729
- dominantBaseline: "hanging",
7730
- fill: col,
7731
- fontSize,
7732
- className: "pointer-events-none",
7733
- children: truncate(node.text, 15)
7734
- }
7735
- )
7736
- ] }, `${element.id}-hpic-${node.id}-${i}`);
7737
- })
7738
- }
7739
- );
7740
- }
7741
- function renderAccentProcess(element, nodes, palette, style) {
7742
- const w = element.width;
7743
- const h = element.height;
7744
- const pad = 8;
7745
- const arrowGap = 16;
7746
- const usableW = w - pad * 2;
7747
- const nodeW = (usableW - arrowGap * (nodes.length - 1)) / nodes.length;
7748
- const nodeH = h * 0.45;
7749
- const yMid = h / 2;
7750
- const circleR = Math.min(nodeW, nodeH) * 0.55;
7751
- const shadow = styleShadow(style);
7752
- const sw = styleStroke(style);
7753
- return /* @__PURE__ */ jsxRuntime.jsx(
7754
- "svg",
7755
- {
7756
- className: "w-full h-full pointer-events-none",
7757
- viewBox: `0 0 ${w} ${h}`,
7758
- preserveAspectRatio: "xMidYMid meet",
7759
- style: { filter: shadow },
7760
- children: nodes.map((node, i) => {
7761
- const x = pad + i * (nodeW + arrowGap);
7762
- const cx = x + nodeW / 2;
7763
- const col = colour(i, palette);
7764
- const fontSize = Math.max(7, Math.min(11, nodeW * 0.1));
7765
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7766
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: yMid, r: circleR, fill: col, opacity: 0.15 }),
7767
- /* @__PURE__ */ jsxRuntime.jsx(
7768
- "rect",
7769
- {
7770
- x,
7771
- y: yMid - nodeH / 2,
7772
- width: nodeW,
7773
- height: nodeH,
7774
- rx: 5,
7775
- fill: col,
7776
- opacity: nodeOpacity(i, nodes.length, style),
7777
- stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
7778
- strokeWidth: sw
7779
- }
7780
- ),
7781
- /* @__PURE__ */ jsxRuntime.jsx(
7782
- SmartArtNodeText,
7783
- {
7784
- x: cx,
7785
- y: yMid,
7786
- text: truncate(node.text, 20),
7787
- fill: "white",
7788
- fontSize,
7789
- className: "pointer-events-none"
7790
- }
7791
- ),
7792
- i < nodes.length - 1 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7793
- /* @__PURE__ */ jsxRuntime.jsx(
7794
- "line",
7795
- {
7796
- x1: x + nodeW + 2,
7797
- y1: yMid,
7798
- x2: x + nodeW + arrowGap - 2,
7799
- y2: yMid,
7800
- stroke: "#94a3b8",
7801
- strokeWidth: 1.5,
7802
- opacity: 0.5
7803
- }
7804
- ),
7805
- /* @__PURE__ */ jsxRuntime.jsx(
7806
- "polygon",
7807
- {
7808
- points: `${x + nodeW + arrowGap - 6},${yMid - 3} ${x + nodeW + arrowGap - 2},${yMid} ${x + nodeW + arrowGap - 6},${yMid + 3}`,
7809
- fill: "#94a3b8",
7810
- opacity: 0.5
7811
- }
7812
- )
7813
- ] })
7814
- ] }, `${element.id}-accproc-${node.id}-${i}`);
7815
- })
7816
- }
7817
- );
7818
- }
7819
- function renderVerticalChevronList(element, nodes, palette, style) {
7820
- const w = element.width;
7821
- const h = element.height;
7822
- const pad = 8;
7823
- const gap = 2;
7824
- const usableW = w - pad * 2;
7825
- const usableH = h - pad * 2;
7826
- const itemH = (usableH - gap * (nodes.length - 1)) / nodes.length;
7827
- const chevDepth = Math.min(12, itemH * 0.3);
7828
- const shadow = styleShadow(style);
7829
- const sw = styleStroke(style);
7830
- return /* @__PURE__ */ jsxRuntime.jsx(
7831
- "svg",
7832
- {
7833
- className: "w-full h-full pointer-events-none",
7834
- viewBox: `0 0 ${w} ${h}`,
7835
- preserveAspectRatio: "xMidYMid meet",
7836
- style: { filter: shadow },
7837
- children: nodes.map((node, i) => {
7838
- const x = pad;
7839
- const y = pad + i * (itemH + gap);
7840
- const col = colour(i, palette);
7841
- const fontSize = Math.max(7, Math.min(11, itemH * 0.4));
7842
- const isFirst = i === 0;
7843
- const isLast = i === nodes.length - 1;
7844
- const points = isFirst ? [
7845
- `${x},${y}`,
7846
- `${x + usableW},${y}`,
7847
- `${x + usableW},${y + itemH - chevDepth}`,
7848
- `${x + usableW / 2},${y + itemH}`,
7849
- `${x},${y + itemH - chevDepth}`
7850
- ].join(" ") : isLast ? [
7851
- `${x},${y + chevDepth}`,
7852
- `${x + usableW / 2},${y}`,
7853
- `${x + usableW},${y + chevDepth}`,
7854
- `${x + usableW},${y + itemH}`,
7855
- `${x},${y + itemH}`
7856
- ].join(" ") : [
7857
- `${x},${y + chevDepth}`,
7858
- `${x + usableW / 2},${y}`,
7859
- `${x + usableW},${y + chevDepth}`,
7860
- `${x + usableW},${y + itemH - chevDepth}`,
7861
- `${x + usableW / 2},${y + itemH}`,
7862
- `${x},${y + itemH - chevDepth}`
7863
- ].join(" ");
7864
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
7865
- /* @__PURE__ */ jsxRuntime.jsx(
7866
- "polygon",
7867
- {
7868
- points,
7869
- fill: col,
7870
- opacity: nodeOpacity(i, nodes.length, style),
7871
- stroke: sw > 0 ? "rgba(255,255,255,0.3)" : "none",
7872
- strokeWidth: sw
7873
- }
7874
- ),
7875
- /* @__PURE__ */ jsxRuntime.jsx(
7876
- SmartArtNodeText,
7877
- {
7878
- x: x + usableW / 2,
7879
- y: y + itemH / 2,
7880
- text: truncate(node.text, 30),
7881
- fill: "white",
7882
- fontSize,
7883
- className: "pointer-events-none"
7884
- }
7885
- )
7886
- ] }, `${element.id}-vchev-${node.id}-${i}`);
7887
- })
7888
- }
7889
- );
7890
- }
7891
6503
 
7892
6504
  // src/viewer/utils/pdf-builder-notes-builder.ts
7893
6505
  function buildNotesPdf(pages) {
@@ -7905,14 +6517,14 @@ function buildNotesPdf(pages) {
7905
6517
  notes: page.notes,
7906
6518
  slideNumber: page.slideNumber
7907
6519
  }));
7908
- const bytes = chunk6QGTRYSC_js.buildNotesPdfBytes(images, meta);
6520
+ const bytes = chunkUSAJMMF2_js.buildNotesPdfBytes(images, meta);
7909
6521
  const blob = new Blob([bytes], { type: "application/pdf" });
7910
6522
  return URL.createObjectURL(blob);
7911
6523
  }
7912
6524
 
7913
6525
  // src/viewer/utils/pdf-builder-slides.ts
7914
6526
  function buildPdfFromImageData(images) {
7915
- const bytes = chunk6QGTRYSC_js.buildSlidesPdfBytes(images);
6527
+ const bytes = chunkUSAJMMF2_js.buildSlidesPdfBytes(images);
7916
6528
  const blob = new Blob([bytes], { type: "application/pdf" });
7917
6529
  return URL.createObjectURL(blob);
7918
6530
  }
@@ -7921,7 +6533,7 @@ function buildPdfFromImageData(images) {
7921
6533
  var activePreview = null;
7922
6534
  function startPreviewAnimation(elementId, preset, options) {
7923
6535
  stopPreviewAnimation();
7924
- const descriptor = chunk6QGTRYSC_js.buildPreviewAnimation(preset, options);
6536
+ const descriptor = chunkUSAJMMF2_js.buildPreviewAnimation(preset, options);
7925
6537
  if (!descriptor) {
7926
6538
  return;
7927
6539
  }
@@ -7934,7 +6546,7 @@ function startMotionPathPreview(elementId, path, options) {
7934
6546
  return;
7935
6547
  }
7936
6548
  const stage = domEl.offsetParent;
7937
- const descriptor = chunk6QGTRYSC_js.buildMotionPathPreview({
6549
+ const descriptor = chunkUSAJMMF2_js.buildMotionPathPreview({
7938
6550
  path,
7939
6551
  slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
7940
6552
  slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,
@@ -8013,7 +6625,6 @@ exports.SHAPE_PRESETS = SHAPE_PRESETS;
8013
6625
  exports.SHORTCUT_REFERENCE_ITEMS = SHORTCUT_REFERENCE_ITEMS;
8014
6626
  exports.SLIDE_NAV_THUMBNAIL_WIDTH = SLIDE_NAV_THUMBNAIL_WIDTH;
8015
6627
  exports.STROKE_DASH_OPTIONS = STROKE_DASH_OPTIONS;
8016
- exports.SmartArtNodeText = SmartArtNodeText;
8017
6628
  exports.THEME_COLOR_SWATCHES = THEME_COLOR_SWATCHES;
8018
6629
  exports.TOOLBAR_SECTIONS = TOOLBAR_SECTIONS;
8019
6630
  exports.UNGROUPED_SECTION_ID = UNGROUPED_SECTION_ID;
@@ -8024,16 +6635,10 @@ exports.buildLineShadowCss = buildLineShadowCss;
8024
6635
  exports.buildNotesPdf = buildNotesPdf;
8025
6636
  exports.buildPdfFromImageData = buildPdfFromImageData;
8026
6637
  exports.buildReactChartViewModel = buildReactChartViewModel;
8027
- exports.buildSaveSlides = buildSaveSlides;
8028
6638
  exports.buildTextBody3DSceneStyle = buildTextBody3DSceneStyle2;
8029
- exports.buildTree = buildTree;
8030
- exports.chevronPoints = chevronPoints;
8031
6639
  exports.cloneHistorySnapshot = cloneHistorySnapshot2;
8032
6640
  exports.cn = cn;
8033
- exports.colour = colour;
8034
6641
  exports.executeMediaCommand = executeMediaCommand;
8035
- exports.fitFontSize = fitFontSize;
8036
- exports.gearPath = gearPath;
8037
6642
  exports.getAnimationInitialStyle = getAnimationInitialStyle2;
8038
6643
  exports.getConnectorPathGeometry = getConnectorPathGeometry;
8039
6644
  exports.getCropShapeClipPath = getCropShapeClipPath;
@@ -8047,37 +6652,14 @@ exports.getTextWarpStyle = getTextWarpStyle;
8047
6652
  exports.hasDagDuotoneEffect = hasDagDuotoneEffect;
8048
6653
  exports.isConnectorOrLineElement = isConnectorOrLineElement;
8049
6654
  exports.isImageTiled = isImageTiled;
8050
- exports.layoutToCategory = layoutToCategory;
8051
- exports.nodeOpacity = nodeOpacity;
8052
- exports.partitionTemplateElements = partitionTemplateElements;
8053
- exports.renderAccentProcess = renderAccentProcess;
8054
- exports.renderAlternatingFlow = renderAlternatingFlow;
8055
6655
  exports.renderChartElement = renderChartElement;
8056
6656
  exports.renderConnectorMarker = renderConnectorMarker;
8057
6657
  exports.renderDagDuotoneSvgFilter = renderDagDuotoneSvgFilter;
8058
- exports.renderDescendingProcess = renderDescendingProcess;
8059
- exports.renderGroupedList = renderGroupedList;
8060
- exports.renderHorizontalPictureList = renderHorizontalPictureList;
8061
6658
  exports.renderMediaElement = renderMediaElement;
8062
- exports.renderPictureAccentList = renderPictureAccentList;
8063
- exports.renderPyramidList = renderPyramidList;
8064
- exports.renderStepDownProcess = renderStepDownProcess;
8065
6659
  exports.renderTableElement = renderTableElement;
8066
6660
  exports.renderTextSegments = renderTextSegments;
8067
6661
  exports.renderVectorShape = renderVectorShape;
8068
- exports.renderVerticalBlockList = renderVerticalBlockList;
8069
- exports.renderVerticalChevronList = renderVerticalChevronList;
8070
- exports.resolvePalette = resolvePalette;
8071
- exports.resolveSmartArtDataPalette = resolveSmartArtDataPalette;
8072
- exports.resolveStyle = resolveStyle;
8073
6662
  exports.shouldRenderFallbackLabel = shouldRenderFallbackLabel;
8074
- exports.smartArtNodeGroupProps = smartArtNodeGroupProps;
8075
6663
  exports.startMotionPathPreview = startMotionPathPreview;
8076
6664
  exports.startPreviewAnimation = startPreviewAnimation;
8077
6665
  exports.stopPreviewAnimation = stopPreviewAnimation;
8078
- exports.styleShadow = styleShadow;
8079
- exports.styleStroke = styleStroke;
8080
- exports.treeDepth = treeDepth;
8081
- exports.treeWidth = treeWidth;
8082
- exports.truncate = truncate;
8083
- exports.wrapChrome = wrapChrome;