pptx-react-viewer 2.6.0 → 2.6.2

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 (97) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AiChatPanel-L5IOO72H.mjs → AiChatPanel-5IAXQYGH.mjs} +3 -3
  3. package/dist/AiChatPanel-5IAXQYGH.mjs.br +0 -0
  4. package/dist/AiChatPanel-5IAXQYGH.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-53W2JG6G.js → AiChatPanel-IC2Q3H3N.js} +22 -22
  6. package/dist/AiChatPanel-IC2Q3H3N.js.br +0 -0
  7. package/dist/AiChatPanel-IC2Q3H3N.js.gz +0 -0
  8. package/dist/{Model3DScene-E7JGXNJN.js → Model3DScene-GOFY2PQS.js} +2 -2
  9. package/dist/Model3DScene-GOFY2PQS.js.br +0 -0
  10. package/dist/Model3DScene-GOFY2PQS.js.gz +0 -0
  11. package/dist/{Model3DScene-EW7OWRJK.mjs → Model3DScene-UEU7L4QY.mjs} +1 -1
  12. package/dist/Model3DScene-UEU7L4QY.mjs.br +0 -0
  13. package/dist/Model3DScene-UEU7L4QY.mjs.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-3QB6NVKD.js → SurfaceChart3DScene-5TILKZMY.js} +2 -2
  15. package/dist/SurfaceChart3DScene-5TILKZMY.js.br +0 -0
  16. package/dist/SurfaceChart3DScene-5TILKZMY.js.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-64HI3U7Y.mjs → SurfaceChart3DScene-KCJUDJUK.mjs} +1 -1
  18. package/dist/{SurfaceChart3DScene-64HI3U7Y.mjs.br → SurfaceChart3DScene-KCJUDJUK.mjs.br} +0 -0
  19. package/dist/SurfaceChart3DScene-KCJUDJUK.mjs.gz +0 -0
  20. package/dist/{chunk-UVA55CRK.js → chunk-G7PJSVUS.js} +76 -19
  21. package/dist/chunk-G7PJSVUS.js.br +0 -0
  22. package/dist/{chunk-UVA55CRK.js.gz → chunk-G7PJSVUS.js.gz} +0 -0
  23. package/dist/{chunk-VBWWICDF.js → chunk-IGYK3NK5.js} +3 -3
  24. package/dist/chunk-IGYK3NK5.js.br +0 -0
  25. package/dist/chunk-IGYK3NK5.js.gz +0 -0
  26. package/dist/{chunk-UO55N46T.mjs → chunk-LJPRMPNA.mjs} +11 -9
  27. package/dist/chunk-LJPRMPNA.mjs.br +0 -0
  28. package/dist/chunk-LJPRMPNA.mjs.gz +0 -0
  29. package/dist/{chunk-WCO3NEH5.mjs → chunk-MQYNBEOY.mjs} +2 -2
  30. package/dist/chunk-MQYNBEOY.mjs.br +0 -0
  31. package/dist/{chunk-WCO3NEH5.mjs.gz → chunk-MQYNBEOY.mjs.gz} +0 -0
  32. package/dist/{chunk-V5XVTKFS.js → chunk-TMU7Z3CU.js} +847 -845
  33. package/dist/chunk-TMU7Z3CU.js.br +0 -0
  34. package/dist/chunk-TMU7Z3CU.js.gz +0 -0
  35. package/dist/{chunk-DWQJW3UM.mjs → chunk-UV5R7IQY.mjs} +11 -6
  36. package/dist/chunk-UV5R7IQY.mjs.br +0 -0
  37. package/dist/chunk-UV5R7IQY.mjs.gz +0 -0
  38. package/dist/{chunk-EJ24IFPL.js → chunk-W27U3GQS.js} +315 -315
  39. package/dist/chunk-W27U3GQS.js.br +0 -0
  40. package/dist/chunk-W27U3GQS.js.gz +0 -0
  41. package/dist/{chunk-NXSAYLYI.js → chunk-XROVGBFQ.js} +245 -240
  42. package/dist/chunk-XROVGBFQ.js.br +0 -0
  43. package/dist/chunk-XROVGBFQ.js.gz +0 -0
  44. package/dist/{chunk-PENV7S7Z.mjs → chunk-Y4TIW2MM.mjs} +1 -1
  45. package/dist/chunk-Y4TIW2MM.mjs.br +0 -0
  46. package/dist/chunk-Y4TIW2MM.mjs.gz +0 -0
  47. package/dist/{chunk-34ZW32XK.mjs → chunk-Y6H2RSLB.mjs} +76 -19
  48. package/dist/chunk-Y6H2RSLB.mjs.br +0 -0
  49. package/dist/{chunk-34ZW32XK.mjs.gz → chunk-Y6H2RSLB.mjs.gz} +0 -0
  50. package/dist/index.js +34 -34
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/index.mjs +5 -5
  54. package/dist/index.mjs.br +0 -0
  55. package/dist/index.mjs.gz +0 -0
  56. package/dist/internals.d.ts +5 -3
  57. package/dist/internals.js +78 -78
  58. package/dist/internals.js.br +0 -0
  59. package/dist/internals.js.gz +0 -0
  60. package/dist/internals.mjs +3 -3
  61. package/dist/internals.mjs.br +0 -0
  62. package/dist/internals.mjs.gz +0 -0
  63. package/dist/viewer/index.js +21 -21
  64. package/dist/viewer/index.js.br +0 -0
  65. package/dist/viewer/index.js.gz +0 -0
  66. package/dist/viewer/index.mjs +5 -5
  67. package/dist/viewer/index.mjs.br +0 -0
  68. package/dist/viewer/index.mjs.gz +0 -0
  69. package/package.json +1 -1
  70. package/dist/AiChatPanel-53W2JG6G.js.br +0 -0
  71. package/dist/AiChatPanel-53W2JG6G.js.gz +0 -0
  72. package/dist/AiChatPanel-L5IOO72H.mjs.br +0 -0
  73. package/dist/AiChatPanel-L5IOO72H.mjs.gz +0 -0
  74. package/dist/Model3DScene-E7JGXNJN.js.br +0 -0
  75. package/dist/Model3DScene-E7JGXNJN.js.gz +0 -0
  76. package/dist/Model3DScene-EW7OWRJK.mjs.br +0 -0
  77. package/dist/Model3DScene-EW7OWRJK.mjs.gz +0 -0
  78. package/dist/SurfaceChart3DScene-3QB6NVKD.js.br +0 -0
  79. package/dist/SurfaceChart3DScene-3QB6NVKD.js.gz +0 -0
  80. package/dist/SurfaceChart3DScene-64HI3U7Y.mjs.gz +0 -0
  81. package/dist/chunk-34ZW32XK.mjs.br +0 -0
  82. package/dist/chunk-DWQJW3UM.mjs.br +0 -0
  83. package/dist/chunk-DWQJW3UM.mjs.gz +0 -0
  84. package/dist/chunk-EJ24IFPL.js.br +0 -0
  85. package/dist/chunk-EJ24IFPL.js.gz +0 -0
  86. package/dist/chunk-NXSAYLYI.js.br +0 -0
  87. package/dist/chunk-NXSAYLYI.js.gz +0 -0
  88. package/dist/chunk-PENV7S7Z.mjs.br +0 -0
  89. package/dist/chunk-PENV7S7Z.mjs.gz +0 -0
  90. package/dist/chunk-UO55N46T.mjs.br +0 -0
  91. package/dist/chunk-UO55N46T.mjs.gz +0 -0
  92. package/dist/chunk-UVA55CRK.js.br +0 -0
  93. package/dist/chunk-V5XVTKFS.js.br +0 -0
  94. package/dist/chunk-V5XVTKFS.js.gz +0 -0
  95. package/dist/chunk-VBWWICDF.js.br +0 -0
  96. package/dist/chunk-VBWWICDF.js.gz +0 -0
  97. package/dist/chunk-WCO3NEH5.mjs.br +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk25VSL2BB_js = require('./chunk-25VSL2BB.js');
4
- var chunkUVA55CRK_js = require('./chunk-UVA55CRK.js');
4
+ var chunkG7PJSVUS_js = require('./chunk-G7PJSVUS.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 chunkUVA55CRK_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunkG7PJSVUS_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 chunkUVA55CRK_js.cloneHistorySnapshot(snapshot);
26
+ return chunkG7PJSVUS_js.cloneHistorySnapshot(snapshot);
27
27
  }
28
28
 
29
29
  // src/viewer/constants/scalar.ts
@@ -133,7 +133,7 @@ var GLYPH_COMPONENTS = {
133
133
  plus: lu.LuPlus,
134
134
  triangle: lu.LuTriangle
135
135
  };
136
- var SHAPE_PRESETS = chunkUVA55CRK_js.SHAPE_PRESET_DEFS.map(
136
+ var SHAPE_PRESETS = chunkG7PJSVUS_js.SHAPE_PRESET_DEFS.map(
137
137
  (def) => ({
138
138
  type: def.type,
139
139
  label: def.label,
@@ -251,7 +251,7 @@ function isConnectorOrLineElement(element) {
251
251
  if (element.type === "connector") {
252
252
  return true;
253
253
  }
254
- if (!chunkUVA55CRK_js.hasShapeProperties(element)) {
254
+ if (!chunkG7PJSVUS_js.hasShapeProperties(element)) {
255
255
  return false;
256
256
  }
257
257
  const st = getShapeType(element.shapeType);
@@ -262,12 +262,12 @@ function isConnectorOrLineElement(element) {
262
262
  function partitionTemplateElements(slides) {
263
263
  const templateElementsBySlideId = {};
264
264
  const nextSlides = slides.map((slide) => {
265
- const template = slide.elements.filter((el) => chunkUVA55CRK_js.isTemplateElement(el));
265
+ const template = slide.elements.filter((el) => chunkG7PJSVUS_js.isTemplateElement(el));
266
266
  if (template.length === 0) {
267
267
  return slide;
268
268
  }
269
269
  templateElementsBySlideId[slide.id] = template;
270
- return { ...slide, elements: slide.elements.filter((el) => !chunkUVA55CRK_js.isTemplateElement(el)) };
270
+ return { ...slide, elements: slide.elements.filter((el) => !chunkG7PJSVUS_js.isTemplateElement(el)) };
271
271
  });
272
272
  return { slides: nextSlides, templateElementsBySlideId };
273
273
  }
@@ -283,7 +283,7 @@ function buildSaveSlides(slides, templateElementsBySlideId) {
283
283
 
284
284
  // src/viewer/utils/image-style.ts
285
285
  function getImageMaskStyle(element) {
286
- if (!chunkUVA55CRK_js.hasShapeProperties(element)) {
286
+ if (!chunkG7PJSVUS_js.hasShapeProperties(element)) {
287
287
  return void 0;
288
288
  }
289
289
  const shapeType = element.shapeType;
@@ -292,7 +292,7 @@ function getImageMaskStyle(element) {
292
292
  }
293
293
  const normalized = shapeType.toLowerCase();
294
294
  if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
295
- const radiusPx = chunkUVA55CRK_js.getRoundRectRadiusPx(element);
295
+ const radiusPx = chunkG7PJSVUS_js.getRoundRectRadiusPx(element);
296
296
  if (radiusPx <= 0.01) {
297
297
  return void 0;
298
298
  }
@@ -304,7 +304,7 @@ function getImageMaskStyle(element) {
304
304
  if (normalized === "can" || normalized === "cylinder") {
305
305
  return { borderRadius: "48% / 12%" };
306
306
  }
307
- const clipPath = chunkUVA55CRK_js.getResolvedShapeClipPath(element);
307
+ const clipPath = chunkG7PJSVUS_js.getResolvedShapeClipPath(element);
308
308
  if (!clipPath) {
309
309
  return void 0;
310
310
  }
@@ -312,7 +312,7 @@ function getImageMaskStyle(element) {
312
312
  }
313
313
  function getImageRenderStyle(element) {
314
314
  const maskStyle = getImageMaskStyle(element) || {};
315
- if (!chunkUVA55CRK_js.isImageLikeElement(element)) {
315
+ if (!chunkG7PJSVUS_js.isImageLikeElement(element)) {
316
316
  return {
317
317
  ...maskStyle,
318
318
  width: "100%",
@@ -320,10 +320,10 @@ function getImageRenderStyle(element) {
320
320
  objectFit: "cover"
321
321
  };
322
322
  }
323
- const cropLeft = chunkUVA55CRK_js.clampCropValue(element.cropLeft);
324
- const cropTop = chunkUVA55CRK_js.clampCropValue(element.cropTop);
325
- const cropRight = chunkUVA55CRK_js.clampCropValue(element.cropRight);
326
- const cropBottom = chunkUVA55CRK_js.clampCropValue(element.cropBottom);
323
+ const cropLeft = chunkG7PJSVUS_js.clampCropValue(element.cropLeft);
324
+ const cropTop = chunkG7PJSVUS_js.clampCropValue(element.cropTop);
325
+ const cropRight = chunkG7PJSVUS_js.clampCropValue(element.cropRight);
326
+ const cropBottom = chunkG7PJSVUS_js.clampCropValue(element.cropBottom);
327
327
  const hasCrop = cropLeft + cropRight > 1e-4 || cropTop + cropBottom > 1e-4;
328
328
  if (!hasCrop) {
329
329
  return {
@@ -335,10 +335,10 @@ function getImageRenderStyle(element) {
335
335
  }
336
336
  const safeHorizontalScale = cropLeft + cropRight >= 0.99 ? 0.99 / (cropLeft + cropRight) : 1;
337
337
  const safeVerticalScale = cropTop + cropBottom >= 0.99 ? 0.99 / (cropTop + cropBottom) : 1;
338
- const normalizedLeft = chunkUVA55CRK_js.clampCropValue(cropLeft * safeHorizontalScale);
339
- const normalizedRight = chunkUVA55CRK_js.clampCropValue(cropRight * safeHorizontalScale);
340
- const normalizedTop = chunkUVA55CRK_js.clampCropValue(cropTop * safeVerticalScale);
341
- const normalizedBottom = chunkUVA55CRK_js.clampCropValue(cropBottom * safeVerticalScale);
338
+ const normalizedLeft = chunkG7PJSVUS_js.clampCropValue(cropLeft * safeHorizontalScale);
339
+ const normalizedRight = chunkG7PJSVUS_js.clampCropValue(cropRight * safeHorizontalScale);
340
+ const normalizedTop = chunkG7PJSVUS_js.clampCropValue(cropTop * safeVerticalScale);
341
+ const normalizedBottom = chunkG7PJSVUS_js.clampCropValue(cropBottom * safeVerticalScale);
342
342
  const remainingWidth = Math.max(0.01, 1 - normalizedLeft - normalizedRight);
343
343
  const remainingHeight = Math.max(0.01, 1 - normalizedTop - normalizedBottom);
344
344
  const tx = Math.round(-normalizedLeft / remainingWidth * 1e4) / 100;
@@ -367,7 +367,7 @@ var CROP_SHAPE_CLIP_PATHS = {
367
367
  star: "polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)"
368
368
  };
369
369
  function getCropShapeClipPath(element) {
370
- if (!chunkUVA55CRK_js.isImageLikeElement(element)) {
370
+ if (!chunkG7PJSVUS_js.isImageLikeElement(element)) {
371
371
  return void 0;
372
372
  }
373
373
  const shape = element.cropShape;
@@ -377,7 +377,7 @@ function getCropShapeClipPath(element) {
377
377
  return CROP_SHAPE_CLIP_PATHS[shape];
378
378
  }
379
379
  function isImageTiled(element) {
380
- if (!chunkUVA55CRK_js.isImageLikeElement(element)) {
380
+ if (!chunkG7PJSVUS_js.isImageLikeElement(element)) {
381
381
  return false;
382
382
  }
383
383
  return typeof element.tileScaleX === "number" || typeof element.tileScaleY === "number";
@@ -435,7 +435,7 @@ function buildMirrorTiledBackground(src, flip, scaleX, scaleY) {
435
435
  };
436
436
  }
437
437
  function getImageTilingStyle(element) {
438
- if (!chunkUVA55CRK_js.isImageLikeElement(element) || !isImageTiled(element)) {
438
+ if (!chunkG7PJSVUS_js.isImageLikeElement(element) || !isImageTiled(element)) {
439
439
  return void 0;
440
440
  }
441
441
  const scaleX = typeof element.tileScaleX === "number" ? element.tileScaleX * 100 : 100;
@@ -719,7 +719,7 @@ function executeMediaCommand(command) {
719
719
  if (!el) {
720
720
  return false;
721
721
  }
722
- const parsed = chunkUVA55CRK_js.parseMediaCommand(command.command);
722
+ const parsed = chunkG7PJSVUS_js.parseMediaCommand(command.command);
723
723
  if (!parsed) {
724
724
  return false;
725
725
  }
@@ -1171,7 +1171,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
1171
1171
 
1172
1172
  // src/viewer/utils/text-utils.tsx
1173
1173
  function getTextStyleForElement(element, fallbackColor) {
1174
- if (!chunkUVA55CRK_js.hasTextProperties(element)) {
1174
+ if (!chunkG7PJSVUS_js.hasTextProperties(element)) {
1175
1175
  return { color: fallbackColor };
1176
1176
  }
1177
1177
  const textDecorationTokens = [];
@@ -1185,20 +1185,24 @@ function getTextStyleForElement(element, fallbackColor) {
1185
1185
  const textDecorationStyle = isDoubleStrike ? "double" : void 0;
1186
1186
  const hasItalicRuns = element.textStyle?.italic || Boolean(element.textSegments?.some((segment) => segment.style?.italic));
1187
1187
  const isRtl = element.textStyle?.rtl === true;
1188
- const resolvedTextColor = element.textStyle?.hyperlink ? chunkUVA55CRK_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunkUVA55CRK_js.normalizeHexColor(element.textStyle?.color, fallbackColor);
1188
+ const resolvedTextColor = element.textStyle?.hyperlink ? chunkG7PJSVUS_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunkG7PJSVUS_js.normalizeHexColor(element.textStyle?.color, fallbackColor);
1189
1189
  const bodyTop = element.textStyle?.bodyInsetTop ?? DEFAULT_BODY_INSET_TB_PX;
1190
1190
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
1191
1191
  const bodyLeft = element.textStyle?.bodyInsetLeft ?? DEFAULT_BODY_INSET_LR_PX;
1192
1192
  const bodyRight = element.textStyle?.bodyInsetRight ?? DEFAULT_BODY_INSET_LR_PX;
1193
- const writingMode = chunkUVA55CRK_js.toCssWritingMode(element.textStyle?.textDirection);
1194
- const textOrientation = chunkUVA55CRK_js.toCssTextOrientation(element.textStyle?.textDirection);
1195
- const verticalDirection = chunkUVA55CRK_js.toCssVerticalDirection(element.textStyle?.textDirection);
1193
+ const hasParagraphIndents = (element.paragraphIndents?.length ?? 0) > 0;
1194
+ const bodyIndent = hasParagraphIndents ? 0 : element.textStyle?.paragraphIndent || 0;
1195
+ const bodyMarginLeft = hasParagraphIndents ? 0 : element.textStyle?.paragraphMarginLeft || 0;
1196
+ const bodyMarginRight = hasParagraphIndents ? 0 : element.textStyle?.paragraphMarginRight || 0;
1197
+ const writingMode = chunkG7PJSVUS_js.toCssWritingMode(element.textStyle?.textDirection);
1198
+ const textOrientation = chunkG7PJSVUS_js.toCssTextOrientation(element.textStyle?.textDirection);
1199
+ const verticalDirection = chunkG7PJSVUS_js.toCssVerticalDirection(element.textStyle?.textDirection);
1196
1200
  const resolvedDirection = verticalDirection || (isRtl ? "rtl" : "ltr");
1197
1201
  const resolvedUnicodeBidi = isRtl ? "plaintext" : void 0;
1198
1202
  const hasSegments = (element.textSegments?.length ?? 0) > 0;
1199
1203
  return {
1200
1204
  color: resolvedTextColor,
1201
- backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunkUVA55CRK_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
1205
+ backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunkG7PJSVUS_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
1202
1206
  textAlign: (() => {
1203
1207
  const a = element.textStyle?.align;
1204
1208
  if (a === "justLow" || a === "dist" || a === "thaiDist") {
@@ -1214,12 +1218,12 @@ function getTextStyleForElement(element, fallbackColor) {
1214
1218
  textDecorationLine: textDecorationTokens.length > 0 ? textDecorationTokens.join(" ") : "none",
1215
1219
  textDecorationStyle,
1216
1220
  fontFamily: element.textStyle?.fontFamily || DEFAULT_FONT_FAMILY,
1217
- lineHeight: chunkUVA55CRK_js.resolveLineHeight(element.textStyle, hasItalicRuns),
1221
+ lineHeight: chunkG7PJSVUS_js.resolveLineHeight(element.textStyle, hasItalicRuns),
1218
1222
  paddingTop: bodyTop + (hasItalicRuns ? 1 : 0),
1219
1223
  paddingBottom: bodyBottom + (hasItalicRuns ? 1 : 0),
1220
- paddingLeft: bodyLeft + (element.textStyle?.paragraphMarginLeft || 0),
1221
- paddingRight: bodyRight + (element.textStyle?.paragraphMarginRight || 0),
1222
- textIndent: element.textStyle?.paragraphIndent || 0,
1224
+ paddingLeft: bodyLeft + bodyMarginLeft,
1225
+ paddingRight: bodyRight + bodyMarginRight,
1226
+ textIndent: bodyIndent,
1223
1227
  overflow: "visible",
1224
1228
  writingMode,
1225
1229
  textOrientation,
@@ -1227,7 +1231,7 @@ function getTextStyleForElement(element, fallbackColor) {
1227
1231
  // Auto-fit: use OOXML-provided fontScale/lnSpcReduction when available,
1228
1232
  // otherwise fall back to heuristic estimation. The pure font-scale maths
1229
1233
  // now lives in pptx-viewer-shared (computeAutoFitTextStyle).
1230
- ...chunkUVA55CRK_js.computeAutoFitTextStyle({
1234
+ ...chunkG7PJSVUS_js.computeAutoFitTextStyle({
1231
1235
  textStyle: element.textStyle,
1232
1236
  text: element.text ?? "",
1233
1237
  width: element.width,
@@ -1261,13 +1265,13 @@ function computeTabSize(tabStops, defaultTabSize) {
1261
1265
  return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
1262
1266
  }
1263
1267
  function getTextLayoutStyle(element) {
1264
- if (!chunkUVA55CRK_js.hasTextProperties(element)) {
1268
+ if (!chunkG7PJSVUS_js.hasTextProperties(element)) {
1265
1269
  return {};
1266
1270
  }
1267
1271
  const verticalAlign = element.textStyle?.vAlign || "top";
1268
- const writingMode = chunkUVA55CRK_js.toCssWritingMode(element.textStyle?.textDirection);
1269
- const textOrientation = chunkUVA55CRK_js.toCssTextOrientation(element.textStyle?.textDirection);
1270
- const verticalDirection = chunkUVA55CRK_js.toCssVerticalDirection(element.textStyle?.textDirection);
1272
+ const writingMode = chunkG7PJSVUS_js.toCssWritingMode(element.textStyle?.textDirection);
1273
+ const textOrientation = chunkG7PJSVUS_js.toCssTextOrientation(element.textStyle?.textDirection);
1274
+ const verticalDirection = chunkG7PJSVUS_js.toCssVerticalDirection(element.textStyle?.textDirection);
1271
1275
  const parsedColumnCount = Number(element.textStyle?.columnCount);
1272
1276
  const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
1273
1277
  const hasColumns = columnCount > 1;
@@ -1275,7 +1279,7 @@ function getTextLayoutStyle(element) {
1275
1279
  const tabStops = element.textStyle?.tabStops;
1276
1280
  const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
1277
1281
  const textWrapNone = element.textStyle?.textWrap === "none";
1278
- const hasParagraphIndents = chunkUVA55CRK_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
1282
+ const hasParagraphIndents = chunkG7PJSVUS_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
1279
1283
  const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
1280
1284
  const paragraphIndent = element.textStyle?.paragraphIndent;
1281
1285
  const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
@@ -1284,7 +1288,7 @@ function getTextLayoutStyle(element) {
1284
1288
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
1285
1289
  const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
1286
1290
  const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
1287
- const kinsokuStyles = chunkUVA55CRK_js.getKinsokuLineBreakStyles(element.textStyle);
1291
+ const kinsokuStyles = chunkG7PJSVUS_js.getKinsokuLineBreakStyles(element.textStyle);
1288
1292
  if (hasColumns) {
1289
1293
  return {
1290
1294
  display: "block",
@@ -1331,10 +1335,10 @@ function getTextLayoutStyle(element) {
1331
1335
 
1332
1336
  // src/viewer/utils/text-effects.tsx
1333
1337
  function buildTextFillCss2(style) {
1334
- return chunkUVA55CRK_js.buildTextFillCss(style);
1338
+ return chunkG7PJSVUS_js.buildTextFillCss(style);
1335
1339
  }
1336
1340
  function buildTextBody3DSceneStyle2(textStyle) {
1337
- return chunkUVA55CRK_js.buildTextBody3DSceneStyle(textStyle);
1341
+ return chunkG7PJSVUS_js.buildTextBody3DSceneStyle(textStyle);
1338
1342
  }
1339
1343
 
1340
1344
  // src/viewer/utils/text-warp-css.tsx
@@ -1519,13 +1523,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1519
1523
  if (!subElementAnimStates || subElementAnimStates.size === 0) {
1520
1524
  return renderedSegments;
1521
1525
  }
1522
- const paraKey = `${elementId}${chunkUVA55CRK_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1526
+ const paraKey = `${elementId}${chunkG7PJSVUS_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1523
1527
  const paraState = subElementAnimStates.get(paraKey);
1524
1528
  if (paraState) {
1525
1529
  const style = buildAnimStyle(paraState);
1526
1530
  return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
1527
1531
  }
1528
- const spec = chunkUVA55CRK_js.buildTextBuildSpec(
1532
+ const spec = chunkG7PJSVUS_js.buildTextBuildSpec(
1529
1533
  elementId,
1530
1534
  paraIndex,
1531
1535
  paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
@@ -1543,7 +1547,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1543
1547
  "span",
1544
1548
  {
1545
1549
  "data-anim-id": span.animId,
1546
- style: chunkUVA55CRK_js.textBuildSpanStyle(span),
1550
+ style: chunkG7PJSVUS_js.textBuildSpanStyle(span),
1547
1551
  children: content
1548
1552
  },
1549
1553
  span.animId
@@ -1687,10 +1691,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1687
1691
  if (!needsScriptFonts || !text) {
1688
1692
  return text;
1689
1693
  }
1690
- const runs = chunkUVA55CRK_js.segmentByScript(text);
1694
+ const runs = chunkG7PJSVUS_js.segmentByScript(text);
1691
1695
  if (runs.length <= 1) {
1692
1696
  if (runs.length === 1) {
1693
- const font = chunkUVA55CRK_js.resolveFontForScript(runs[0].script, scriptFonts);
1697
+ const font = chunkG7PJSVUS_js.resolveFontForScript(runs[0].script, scriptFonts);
1694
1698
  if (font && font !== baseFontFamily) {
1695
1699
  return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
1696
1700
  }
@@ -1698,7 +1702,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1698
1702
  return text;
1699
1703
  }
1700
1704
  return runs.map((run, i) => {
1701
- const font = chunkUVA55CRK_js.resolveFontForScript(run.script, scriptFonts);
1705
+ const font = chunkG7PJSVUS_js.resolveFontForScript(run.script, scriptFonts);
1702
1706
  if (!font || font === baseFontFamily) {
1703
1707
  return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
1704
1708
  }
@@ -1770,8 +1774,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
1770
1774
  );
1771
1775
  }
1772
1776
  function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
1773
- const mathml = chunkUVA55CRK_js.convertOmmlToMathMl(equationXml);
1774
- const safeMathml = mathml ? chunkUVA55CRK_js.sanitizeMathMl(mathml) : "";
1777
+ const mathml = chunkG7PJSVUS_js.convertOmmlToMathMl(equationXml);
1778
+ const safeMathml = mathml ? chunkG7PJSVUS_js.sanitizeMathMl(mathml) : "";
1775
1779
  const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
1776
1780
  "span",
1777
1781
  {
@@ -1821,7 +1825,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
1821
1825
  return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
1822
1826
  }
1823
1827
  function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
1824
- const picture = chunkUVA55CRK_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
1828
+ const picture = chunkG7PJSVUS_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
1825
1829
  sizePx: baseFontSize,
1826
1830
  fallbackMarker: "\u2022",
1827
1831
  accessibleLabel: "Bullet"
@@ -1871,7 +1875,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1871
1875
  );
1872
1876
  }
1873
1877
  const segmentStyle = segment.style || {};
1874
- const textValue = chunkUVA55CRK_js.substituteFieldText(segment.text || "", segment.fieldType, fieldContext);
1878
+ const textValue = chunkG7PJSVUS_js.substituteFieldText(segment.text || "", segment.fieldType, fieldContext);
1875
1879
  const lines = textValue.split("\n");
1876
1880
  const textDecorationTokens = [];
1877
1881
  if (segmentStyle.underline || segmentStyle.hyperlink) {
@@ -1881,8 +1885,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1881
1885
  textDecorationTokens.push("line-through");
1882
1886
  }
1883
1887
  const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
1884
- const resolvedSegmentColor = segmentStyle.hyperlink ? chunkUVA55CRK_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkUVA55CRK_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
1885
- const underlineDecoration = chunkUVA55CRK_js.resolveUnderlineDecorationStyle(
1888
+ const resolvedSegmentColor = segmentStyle.hyperlink ? chunkG7PJSVUS_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkG7PJSVUS_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
1889
+ const underlineDecoration = chunkG7PJSVUS_js.resolveUnderlineDecorationStyle(
1886
1890
  Boolean(isDoubleStrike),
1887
1891
  segmentStyle.underlineStyle
1888
1892
  );
@@ -1898,14 +1902,14 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1898
1902
  const baseFontSizePt = baseFontSize * (72 / 96);
1899
1903
  const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
1900
1904
  const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
1901
- const baseFontFamily = rawFontFamily ? chunkUVA55CRK_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
1905
+ const baseFontFamily = rawFontFamily ? chunkG7PJSVUS_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
1902
1906
  const scriptFonts = {
1903
1907
  latin: baseFontFamily,
1904
1908
  eastAsia: segmentStyle.eastAsiaFont || element.textStyle?.eastAsiaFont || baseFontFamily,
1905
1909
  complexScript: segmentStyle.complexScriptFont || element.textStyle?.complexScriptFont || baseFontFamily,
1906
1910
  symbol: segmentStyle.symbolFont || element.textStyle?.symbolFont || baseFontFamily
1907
1911
  };
1908
- const needsScriptFonts = chunkUVA55CRK_js.hasDistinctScriptFonts(scriptFonts);
1912
+ const needsScriptFonts = chunkG7PJSVUS_js.hasDistinctScriptFonts(scriptFonts);
1909
1913
  const spanStyle = {
1910
1914
  color: resolvedSegmentColor,
1911
1915
  fontSize: baseFontSize * baselineFontScale,
@@ -1923,15 +1927,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1923
1927
  fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
1924
1928
  letterSpacing,
1925
1929
  fontKerning,
1926
- backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkUVA55CRK_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
1930
+ backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkG7PJSVUS_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
1927
1931
  ...textFillStyles,
1928
- textDecorationColor: segmentStyle.underlineColor ? chunkUVA55CRK_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
1929
- WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkUVA55CRK_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
1932
+ textDecorationColor: segmentStyle.underlineColor ? chunkG7PJSVUS_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
1933
+ WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkG7PJSVUS_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
1930
1934
  paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
1931
- textShadow: chunkUVA55CRK_js.buildTextShadowCss(segmentStyle),
1932
- filter: chunkUVA55CRK_js.buildTextRunFilterChain(segmentStyle),
1933
- opacity: chunkUVA55CRK_js.getTextAlphaOpacity(segmentStyle),
1934
- WebkitBoxReflect: chunkUVA55CRK_js.buildTextReflectionCss(segmentStyle)
1935
+ textShadow: chunkG7PJSVUS_js.buildTextShadowCss(segmentStyle),
1936
+ filter: chunkG7PJSVUS_js.buildTextRunFilterChain(segmentStyle),
1937
+ opacity: chunkG7PJSVUS_js.getTextAlphaOpacity(segmentStyle),
1938
+ WebkitBoxReflect: chunkG7PJSVUS_js.buildTextReflectionCss(segmentStyle)
1935
1939
  };
1936
1940
  const runRtl = segmentStyle.rtl;
1937
1941
  if (runRtl !== void 0 && runRtl !== paragraphRtl) {
@@ -1951,7 +1955,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1951
1955
  spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
1952
1956
  }
1953
1957
  if (bulletInfo.color) {
1954
- spanStyle.color = chunkUVA55CRK_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
1958
+ spanStyle.color = chunkG7PJSVUS_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
1955
1959
  }
1956
1960
  }
1957
1961
  if (bulletInfo?.imageDataUrl || bulletInfo?.imageRelId) {
@@ -1991,7 +1995,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1991
1995
  textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
1992
1996
  };
1993
1997
  if (segment.rubyStyle?.color) {
1994
- rubyStyle.color = chunkUVA55CRK_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
1998
+ rubyStyle.color = chunkG7PJSVUS_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
1995
1999
  }
1996
2000
  innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
1997
2001
  baseContent,
@@ -2086,7 +2090,7 @@ function groupSegmentsIntoParagraphs(segments) {
2086
2090
  return paragraphs;
2087
2091
  }
2088
2092
  function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
2089
- if (!chunkUVA55CRK_js.hasTextProperties(element)) {
2093
+ if (!chunkG7PJSVUS_js.hasTextProperties(element)) {
2090
2094
  return emptyFallback || null;
2091
2095
  }
2092
2096
  const effectiveSegments = segmentOverrides ?? element.textSegments;
@@ -2107,10 +2111,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2107
2111
  return element.text || emptyFallback || "";
2108
2112
  }
2109
2113
  const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
2110
- const paragraphIndents = chunkUVA55CRK_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
2111
- const elementRtl = chunkUVA55CRK_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
2112
- const elementAlign = chunkUVA55CRK_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
2113
- const bodyStyle = chunkUVA55CRK_js.hasTextProperties(element) ? element.textStyle : void 0;
2114
+ const paragraphIndents = chunkG7PJSVUS_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
2115
+ const elementRtl = chunkG7PJSVUS_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
2116
+ const elementAlign = chunkG7PJSVUS_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
2117
+ const bodyStyle = chunkG7PJSVUS_js.hasTextProperties(element) ? element.textStyle : void 0;
2114
2118
  const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
2115
2119
  return paragraphs.map((paraSegments, paraIndex) => {
2116
2120
  const paraIndent = paragraphIndents?.[paraIndex];
@@ -2125,14 +2129,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2125
2129
  return Boolean(segment.text) && segment.text.trim().length > 0;
2126
2130
  });
2127
2131
  const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
2128
- const paraRtl = chunkUVA55CRK_js.resolveParagraphRtl(paraSegments, elementRtl);
2132
+ const paraRtl = chunkG7PJSVUS_js.resolveParagraphRtl(paraSegments, elementRtl);
2129
2133
  const isRtlParagraph = paraRtl === true;
2130
- const paraAlign = chunkUVA55CRK_js.resolveParagraphAlign(paraSegments, elementAlign);
2131
- const cssTextAlign = chunkUVA55CRK_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
2134
+ const paraAlign = chunkG7PJSVUS_js.resolveParagraphAlign(paraSegments, elementAlign);
2135
+ const cssTextAlign = chunkG7PJSVUS_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
2132
2136
  const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
2133
2137
  const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
2134
2138
  const paraTextIndent = rawTextIndent;
2135
- const paraKinsokuStyle = chunkUVA55CRK_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
2139
+ const paraKinsokuStyle = chunkG7PJSVUS_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
2136
2140
  const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
2137
2141
  const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties;
2138
2142
  const spacing = resolveParagraphSpacing({
@@ -2142,7 +2146,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2142
2146
  isLast: paraIndex === paragraphs.length - 1,
2143
2147
  spaceFirstLast
2144
2148
  });
2145
- const strutFontSize = chunkUVA55CRK_js.resolveParagraphStrutFontSize(
2149
+ const strutFontSize = chunkG7PJSVUS_js.resolveParagraphStrutFontSize(
2146
2150
  paraSegments.map(({ segment }) => segment),
2147
2151
  bodyStyle?.fontSize
2148
2152
  );
@@ -2220,13 +2224,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2220
2224
  requireCtrlClick
2221
2225
  )
2222
2226
  );
2227
+ const isBlankParagraph = renderedSegments.length === 0;
2223
2228
  if (!needsWrapper) {
2224
2229
  return /* @__PURE__ */ jsxRuntime.jsxs(React6__default.default.Fragment, { children: [
2225
2230
  wrappedContent,
2226
2231
  paraIndex < paragraphs.length - 1 ? /* @__PURE__ */ jsxRuntime.jsx("br", {}) : null
2227
2232
  ] }, `${element.id}-para-${paraIndex}`);
2228
2233
  }
2229
- return /* @__PURE__ */ jsxRuntime.jsx("div", { style: paraStyle, children: wrappedContent }, `${element.id}-para-${paraIndex}`);
2234
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: paraStyle, children: isBlankParagraph ? /* @__PURE__ */ jsxRuntime.jsx("br", {}) : wrappedContent }, `${element.id}-para-${paraIndex}`);
2230
2235
  });
2231
2236
  }
2232
2237
  function hexToRgbUnit(hex) {
@@ -2241,13 +2246,13 @@ function hexToRgbUnit(hex) {
2241
2246
  };
2242
2247
  }
2243
2248
  function getDuotoneColors(element) {
2244
- if (!chunkUVA55CRK_js.isImageLikeElement(element)) {
2249
+ if (!chunkG7PJSVUS_js.isImageLikeElement(element)) {
2245
2250
  return void 0;
2246
2251
  }
2247
2252
  return element.imageEffects?.duotone;
2248
2253
  }
2249
2254
  function buildLineShadowCss(element) {
2250
- if (!chunkUVA55CRK_js.hasShapeProperties(element)) {
2255
+ if (!chunkG7PJSVUS_js.hasShapeProperties(element)) {
2251
2256
  return void 0;
2252
2257
  }
2253
2258
  const ss = element.shapeStyle;
@@ -2258,13 +2263,13 @@ function buildLineShadowCss(element) {
2258
2263
  const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
2259
2264
  const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
2260
2265
  const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
2261
- return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkUVA55CRK_js.colorWithOpacity(
2262
- chunkUVA55CRK_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
2266
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkG7PJSVUS_js.colorWithOpacity(
2267
+ chunkG7PJSVUS_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
2263
2268
  opacity
2264
2269
  )}`;
2265
2270
  }
2266
2271
  function buildLineGlowFilter(element) {
2267
- if (!chunkUVA55CRK_js.hasShapeProperties(element)) {
2272
+ if (!chunkG7PJSVUS_js.hasShapeProperties(element)) {
2268
2273
  return void 0;
2269
2274
  }
2270
2275
  const ss = element.shapeStyle;
@@ -2273,7 +2278,7 @@ function buildLineGlowFilter(element) {
2273
2278
  }
2274
2279
  const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
2275
2280
  const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
2276
- const glowCol = chunkUVA55CRK_js.colorWithOpacity(chunkUVA55CRK_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
2281
+ const glowCol = chunkG7PJSVUS_js.colorWithOpacity(chunkG7PJSVUS_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
2277
2282
  return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
2278
2283
  }
2279
2284
  function mapDagBlendModeToCss(blend) {
@@ -2297,7 +2302,7 @@ function getDagDuotoneFilterId(elementId) {
2297
2302
  return `dag-duotone-${elementId}`;
2298
2303
  }
2299
2304
  function hasDagDuotoneEffect(element) {
2300
- if (!chunkUVA55CRK_js.hasShapeProperties(element)) {
2305
+ if (!chunkG7PJSVUS_js.hasShapeProperties(element)) {
2301
2306
  return false;
2302
2307
  }
2303
2308
  return Boolean(element.shapeStyle?.dagDuotone);
@@ -2360,7 +2365,7 @@ function getRoundRectRadiusPx2(element) {
2360
2365
 
2361
2366
  // src/viewer/utils/shape-visual-3d.ts
2362
2367
  function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
2363
- return chunkUVA55CRK_js.build3DExtrusionData(
2368
+ return chunkG7PJSVUS_js.build3DExtrusionData(
2364
2369
  shape3d,
2365
2370
  scene3d,
2366
2371
  fillColor,
@@ -2369,7 +2374,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
2369
2374
  );
2370
2375
  }
2371
2376
  function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
2372
- chunkUVA55CRK_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
2377
+ chunkG7PJSVUS_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
2373
2378
  }
2374
2379
 
2375
2380
  // src/viewer/utils/vector-subpath-paint.ts
@@ -2378,7 +2383,7 @@ function toHexByte(value) {
2378
2383
  return clamped.toString(16).padStart(2, "0");
2379
2384
  }
2380
2385
  function shiftHex(hex, factor, towardsWhite) {
2381
- const channels = chunkUVA55CRK_js.hexToRgbChannels(hex);
2386
+ const channels = chunkG7PJSVUS_js.hexToRgbChannels(hex);
2382
2387
  if (!channels) {
2383
2388
  return hex;
2384
2389
  }
@@ -2404,13 +2409,13 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
2404
2409
  const fillOff = subpath.fillMode === "none" || !hasFill;
2405
2410
  return {
2406
2411
  d: subpath.d,
2407
- fill: fillOff ? "none" : chunkUVA55CRK_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2412
+ fill: fillOff ? "none" : chunkG7PJSVUS_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2408
2413
  stroked: subpath.stroke !== false
2409
2414
  };
2410
2415
  });
2411
2416
  }
2412
2417
  function getStrokeOnlyPresetPaths(element) {
2413
- if (element.type !== "shape" || !chunkUVA55CRK_js.hasShapeProperties(element)) {
2418
+ if (element.type !== "shape" || !chunkG7PJSVUS_js.hasShapeProperties(element)) {
2414
2419
  return void 0;
2415
2420
  }
2416
2421
  const shapeType = element.shapeType;
@@ -2420,7 +2425,7 @@ function getStrokeOnlyPresetPaths(element) {
2420
2425
  if (element.pathData) {
2421
2426
  return void 0;
2422
2427
  }
2423
- const result = chunkUVA55CRK_js.evaluatePresetShape(
2428
+ const result = chunkG7PJSVUS_js.evaluatePresetShape(
2424
2429
  shapeType,
2425
2430
  Math.max(element.width, 1),
2426
2431
  Math.max(element.height, 1),
@@ -2435,27 +2440,27 @@ function getStrokeOnlyPresetPaths(element) {
2435
2440
 
2436
2441
  // src/viewer/utils/shape-visual-style.ts
2437
2442
  function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2438
- if (!chunkUVA55CRK_js.hasShapeProperties(element)) {
2443
+ if (!chunkG7PJSVUS_js.hasShapeProperties(element)) {
2439
2444
  return {};
2440
2445
  }
2441
2446
  const normalizedShapeType = getShapeType(element.shapeType);
2442
- const clipPath = chunkUVA55CRK_js.getResolvedShapeClipPath(element);
2447
+ const clipPath = chunkG7PJSVUS_js.getResolvedShapeClipPath(element);
2443
2448
  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;
2444
2449
  const rendersStrokeOnlyPreset = Boolean(getStrokeOnlyPresetPaths(element));
2445
2450
  const fillOpacity = element.shapeStyle?.fillOpacity;
2446
2451
  const strokeOpacity = element.shapeStyle?.strokeOpacity;
2447
- const strokeDash = chunkUVA55CRK_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2448
- const fillGradient = chunkUVA55CRK_js.buildCssGradientFromShapeStyle(element.shapeStyle) || element.shapeStyle?.fillGradient;
2449
- const shadowCss = chunkUVA55CRK_js.buildShadowCssFromShapeStyle(element.shapeStyle);
2450
- const innerShadowCss = chunkUVA55CRK_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
2451
- const resolvedFillColor = chunkUVA55CRK_js.colorWithOpacity(fillColor, fillOpacity);
2452
- const resolvedStrokeColor = chunkUVA55CRK_js.colorWithOpacity(strokeColor, strokeOpacity);
2452
+ const strokeDash = chunkG7PJSVUS_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2453
+ const fillGradient = chunkG7PJSVUS_js.buildCssGradientFromShapeStyle(element.shapeStyle) || element.shapeStyle?.fillGradient;
2454
+ const shadowCss = chunkG7PJSVUS_js.buildShadowCssFromShapeStyle(element.shapeStyle);
2455
+ const innerShadowCss = chunkG7PJSVUS_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
2456
+ const resolvedFillColor = chunkG7PJSVUS_js.colorWithOpacity(fillColor, fillOpacity);
2457
+ const resolvedStrokeColor = chunkG7PJSVUS_js.colorWithOpacity(strokeColor, strokeOpacity);
2453
2458
  const ss = element.shapeStyle;
2454
2459
  const hasFillOverlayColor = Boolean(
2455
2460
  ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
2456
2461
  );
2457
2462
  const combinedShadowParts = [];
2458
- const multiLayerShadow = chunkUVA55CRK_js.buildMultiLayerShadowCss(element.shapeStyle);
2463
+ const multiLayerShadow = chunkG7PJSVUS_js.buildMultiLayerShadowCss(element.shapeStyle);
2459
2464
  if (multiLayerShadow) {
2460
2465
  combinedShadowParts.push(multiLayerShadow);
2461
2466
  } else if (shadowCss) {
@@ -2464,7 +2469,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2464
2469
  if (innerShadowCss) {
2465
2470
  combinedShadowParts.push(innerShadowCss);
2466
2471
  }
2467
- const glowBoxShadow = chunkUVA55CRK_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
2472
+ const glowBoxShadow = chunkG7PJSVUS_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
2468
2473
  if (glowBoxShadow) {
2469
2474
  combinedShadowParts.push(glowBoxShadow);
2470
2475
  }
@@ -2472,7 +2477,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2472
2477
  if (lineShadow) {
2473
2478
  combinedShadowParts.push(lineShadow);
2474
2479
  }
2475
- const compoundLineShadow = chunkUVA55CRK_js.getCompoundLineBoxShadow(
2480
+ const compoundLineShadow = chunkG7PJSVUS_js.getCompoundLineBoxShadow(
2476
2481
  element.shapeStyle?.compoundLine,
2477
2482
  strokeWidth,
2478
2483
  resolvedStrokeColor
@@ -2485,11 +2490,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2485
2490
  if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
2486
2491
  const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
2487
2492
  const glowRad = Math.round(Math.max(0, ss.glowRadius));
2488
- const glowCol = chunkUVA55CRK_js.colorWithOpacity(chunkUVA55CRK_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
2493
+ const glowCol = chunkG7PJSVUS_js.colorWithOpacity(chunkG7PJSVUS_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
2489
2494
  filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
2490
2495
  }
2491
2496
  if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
2492
- filterParts.push(`url(#${chunkUVA55CRK_js.getSoftEdgeFilterId(element.id)})`);
2497
+ filterParts.push(`url(#${chunkG7PJSVUS_js.getSoftEdgeFilterId(element.id)})`);
2493
2498
  }
2494
2499
  if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
2495
2500
  filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
@@ -2498,13 +2503,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2498
2503
  if (lineGlowCss) {
2499
2504
  filterParts.push(lineGlowCss);
2500
2505
  }
2501
- const dagFilter = chunkUVA55CRK_js.getEffectDagFilter(ss, element.id);
2506
+ const dagFilter = chunkG7PJSVUS_js.getEffectDagFilter(ss, element.id);
2502
2507
  if (dagFilter) {
2503
2508
  filterParts.push(dagFilter);
2504
2509
  }
2505
2510
  const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
2506
2511
  const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
2507
- const patternFill = chunkUVA55CRK_js.buildPatternFillCss(element.shapeStyle);
2512
+ const patternFill = chunkG7PJSVUS_js.buildPatternFillCss(element.shapeStyle);
2508
2513
  const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
2509
2514
  const imageFillMode = ss?.fillImageMode || "stretch";
2510
2515
  let reflectCss;
@@ -2516,7 +2521,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2516
2521
  const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
2517
2522
  const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
2518
2523
  const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
2519
- reflectCss = chunkUVA55CRK_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
2524
+ reflectCss = chunkG7PJSVUS_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
2520
2525
  }
2521
2526
  }
2522
2527
  const base = {
@@ -2558,9 +2563,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2558
2563
  // two adjacent 40px buttons rendered with a 2px gap PowerPoint does not
2559
2564
  // draw. The affordance is an `outline` instead (see `ElementRenderer`),
2560
2565
  // which paints in the same place without taking part in layout.
2561
- borderWidth: strokeWidth > 0 ? chunkUVA55CRK_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
2566
+ borderWidth: strokeWidth > 0 ? chunkG7PJSVUS_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
2562
2567
  borderColor: strokeWidth > 0 ? resolvedStrokeColor : void 0,
2563
- borderStyle: strokeWidth > 0 ? chunkUVA55CRK_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
2568
+ borderStyle: strokeWidth > 0 ? chunkG7PJSVUS_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
2564
2569
  strokeLinejoin: lineJoinCss,
2565
2570
  strokeMiterlimit: miterLimitCss,
2566
2571
  strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
@@ -2616,7 +2621,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2616
2621
  borderWidth: 0,
2617
2622
  borderTopWidth: Math.max(strokeWidth, 2),
2618
2623
  borderTopColor: resolvedStrokeColor,
2619
- borderTopStyle: chunkUVA55CRK_js.getCssBorderDashStyle(strokeDash)
2624
+ borderTopStyle: chunkG7PJSVUS_js.getCssBorderDashStyle(strokeDash)
2620
2625
  };
2621
2626
  }
2622
2627
  if (normalizedShapeType === "cylinder") {
@@ -2630,13 +2635,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2630
2635
  function getConnectorAdjustment(element, key, fallback) {
2631
2636
  const direct = element.shapeAdjustments?.[key];
2632
2637
  if (typeof direct === "number" && Number.isFinite(direct)) {
2633
- return chunkUVA55CRK_js.clampUnitInterval(direct / 1e5);
2638
+ return chunkG7PJSVUS_js.clampUnitInterval(direct / 1e5);
2634
2639
  }
2635
2640
  const fallbackKey = element.shapeAdjustments?.adj;
2636
2641
  if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
2637
- return chunkUVA55CRK_js.clampUnitInterval(fallbackKey / 1e5);
2642
+ return chunkG7PJSVUS_js.clampUnitInterval(fallbackKey / 1e5);
2638
2643
  }
2639
- return chunkUVA55CRK_js.clampUnitInterval(fallback);
2644
+ return chunkG7PJSVUS_js.clampUnitInterval(fallback);
2640
2645
  }
2641
2646
  function getConnectorPathGeometry(element) {
2642
2647
  const width = Math.max(element.width, 1);
@@ -2773,11 +2778,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
2773
2778
  strokePaint,
2774
2779
  strokeWidth,
2775
2780
  dashArray,
2776
- lineCap: chunkUVA55CRK_js.svgLineCap(shapeStyle?.lineCap),
2781
+ lineCap: chunkG7PJSVUS_js.svgLineCap(shapeStyle?.lineCap),
2777
2782
  lineJoin,
2778
2783
  miterLimit,
2779
- offsets: chunkUVA55CRK_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2780
- widths: chunkUVA55CRK_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2784
+ offsets: chunkG7PJSVUS_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2785
+ widths: chunkG7PJSVUS_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2781
2786
  };
2782
2787
  }
2783
2788
  function strokeStrands(d, keyBase, ctx) {
@@ -2800,7 +2805,7 @@ function strokeStrands(d, keyBase, ctx) {
2800
2805
  }
2801
2806
  function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false) {
2802
2807
  const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
2803
- const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkUVA55CRK_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2808
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkG7PJSVUS_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2804
2809
  const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
2805
2810
  const nodes = [];
2806
2811
  if (subpaths && needsPerSubpath) {
@@ -2831,7 +2836,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2831
2836
  "path",
2832
2837
  {
2833
2838
  d: pathData,
2834
- fill: animatesFill ? "inherit" : chunkUVA55CRK_js.colorWithOpacity(fillColor, fillOpacity),
2839
+ fill: animatesFill ? "inherit" : chunkG7PJSVUS_js.colorWithOpacity(fillColor, fillOpacity),
2835
2840
  stroke: "none",
2836
2841
  vectorEffect: "non-scaling-stroke"
2837
2842
  },
@@ -2873,14 +2878,14 @@ function renderStrokeOnlyPreset(presetPaths, width, height, shapeStyle, strokePa
2873
2878
  );
2874
2879
  }
2875
2880
  function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2876
- if (!chunkUVA55CRK_js.hasShapeProperties(element)) {
2881
+ if (!chunkG7PJSVUS_js.hasShapeProperties(element)) {
2877
2882
  return null;
2878
2883
  }
2879
2884
  const normalizedType = (element.shapeType || "").toLowerCase();
2880
- const fillPaint = animatesFill ? "inherit" : chunkUVA55CRK_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2881
- const strokePaint = animatesStroke ? "inherit" : chunkUVA55CRK_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2882
- const dashType = chunkUVA55CRK_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2883
- const dashArray = chunkUVA55CRK_js.getSvgStrokeDasharray(
2885
+ const fillPaint = animatesFill ? "inherit" : chunkG7PJSVUS_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2886
+ const strokePaint = animatesStroke ? "inherit" : chunkG7PJSVUS_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2887
+ const dashType = chunkG7PJSVUS_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2888
+ const dashArray = chunkG7PJSVUS_js.getSvgStrokeDasharray(
2884
2889
  dashType,
2885
2890
  Math.max(strokeWidth, 1),
2886
2891
  element.shapeStyle?.customDashSegments
@@ -2959,18 +2964,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2959
2964
  Boolean(animatesFill)
2960
2965
  );
2961
2966
  }
2962
- if (chunkUVA55CRK_js.isCalloutShape(normalizedType)) {
2967
+ if (chunkG7PJSVUS_js.isCalloutShape(normalizedType)) {
2963
2968
  const width = Math.max(element.width, 1);
2964
2969
  const height = Math.max(element.height, 1);
2965
- const geometry = chunkUVA55CRK_js.getCalloutLeaderLineGeometry(
2970
+ const geometry = chunkG7PJSVUS_js.getCalloutLeaderLineGeometry(
2966
2971
  normalizedType,
2967
2972
  width,
2968
2973
  height,
2969
2974
  element.shapeAdjustments
2970
2975
  );
2971
2976
  if (geometry && geometry.points.length >= 2) {
2972
- const leaderPath = chunkUVA55CRK_js.buildCalloutLeaderLineSvgPath(geometry);
2973
- const bounds = chunkUVA55CRK_js.getCalloutViewBoxBounds(width, height, geometry);
2977
+ const leaderPath = chunkG7PJSVUS_js.buildCalloutLeaderLineSvgPath(geometry);
2978
+ const bounds = chunkG7PJSVUS_js.getCalloutViewBoxBounds(width, height, geometry);
2974
2979
  const lineStroke = Math.max(strokeWidth, 1);
2975
2980
  const offsetLeft = bounds.minX;
2976
2981
  const offsetTop = bounds.minY;
@@ -3033,10 +3038,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
3033
3038
  const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
3034
3039
  const endArrowL = element.shapeStyle?.connectorEndArrowLength;
3035
3040
  const compoundLine = element.shapeStyle?.compoundLine;
3036
- const connectorLineCap = chunkUVA55CRK_js.svgLineCap(element.shapeStyle?.lineCap);
3041
+ const connectorLineCap = chunkG7PJSVUS_js.svgLineCap(element.shapeStyle?.lineCap);
3037
3042
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
3038
- const offsets = chunkUVA55CRK_js.getCompoundLineOffsets(compoundLine, strokeWidth);
3039
- const widths = chunkUVA55CRK_js.getCompoundLineWidths(compoundLine, strokeWidth);
3043
+ const offsets = chunkG7PJSVUS_js.getCompoundLineOffsets(compoundLine, strokeWidth);
3044
+ const widths = chunkG7PJSVUS_js.getCompoundLineWidths(compoundLine, strokeWidth);
3040
3045
  return /* @__PURE__ */ jsxRuntime.jsxs(
3041
3046
  "svg",
3042
3047
  {
@@ -3115,15 +3120,15 @@ function parseGradientFillCss(gradFill) {
3115
3120
  }
3116
3121
  const parsed = stops.map((gs) => {
3117
3122
  const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
3118
- const color = chunkUVA55CRK_js.parseDrawingColor(gs) ?? "#888888";
3119
- const opacity = chunkUVA55CRK_js.parseDrawingColorOpacity(gs);
3120
- return { pos, color: chunkUVA55CRK_js.colorWithOpacity(color, opacity) };
3123
+ const color = chunkG7PJSVUS_js.parseDrawingColor(gs) ?? "#888888";
3124
+ const opacity = chunkG7PJSVUS_js.parseDrawingColorOpacity(gs);
3125
+ return { pos, color: chunkG7PJSVUS_js.colorWithOpacity(color, opacity) };
3121
3126
  }).sort((a, b) => a.pos - b.pos);
3122
3127
  const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
3123
3128
  const lin = gradFill["a:lin"];
3124
3129
  if (lin) {
3125
3130
  const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
3126
- const angleDeg = Math.round(chunkUVA55CRK_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
3131
+ const angleDeg = Math.round(chunkG7PJSVUS_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
3127
3132
  return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
3128
3133
  }
3129
3134
  const path = gradFill["a:path"];
@@ -3158,8 +3163,8 @@ function parsePatternFillCss(pattFill) {
3158
3163
  if (!pattFill) {
3159
3164
  return void 0;
3160
3165
  }
3161
- const fgColor = chunkUVA55CRK_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
3162
- const bgColor = chunkUVA55CRK_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
3166
+ const fgColor = chunkG7PJSVUS_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
3167
+ const bgColor = chunkG7PJSVUS_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
3163
3168
  const preset = String(pattFill["@_prst"] || "ltDnDiag");
3164
3169
  switch (preset) {
3165
3170
  case "ltHorz":
@@ -3270,11 +3275,11 @@ function parseCellBorders(cellProperties) {
3270
3275
  const prstDash = ln["a:prstDash"];
3271
3276
  const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
3272
3277
  const cssBorderStyle = ooxmlDashToCss(dashVal);
3273
- const color = chunkUVA55CRK_js.parseDrawingColor(ln["a:solidFill"]);
3278
+ const color = chunkG7PJSVUS_js.parseDrawingColor(ln["a:solidFill"]);
3274
3279
  if (color) {
3275
- const opacity = chunkUVA55CRK_js.parseDrawingColorOpacity(ln["a:solidFill"]);
3280
+ const opacity = chunkG7PJSVUS_js.parseDrawingColorOpacity(ln["a:solidFill"]);
3276
3281
  const key = `${edge.prefix}`;
3277
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkUVA55CRK_js.colorWithOpacity(color, opacity)}`;
3282
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkG7PJSVUS_js.colorWithOpacity(color, opacity)}`;
3278
3283
  }
3279
3284
  }
3280
3285
  return borderStyle;
@@ -3287,7 +3292,7 @@ function parseCellTextEffects(runProps) {
3287
3292
  const textShadowParts = [];
3288
3293
  const outerShdw = effectLst["a:outerShdw"];
3289
3294
  if (outerShdw) {
3290
- const shdwColor = chunkUVA55CRK_js.parseDrawingColor(outerShdw);
3295
+ const shdwColor = chunkG7PJSVUS_js.parseDrawingColor(outerShdw);
3291
3296
  if (shdwColor) {
3292
3297
  const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
3293
3298
  const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
@@ -3305,7 +3310,7 @@ function parseCellTextEffects(runProps) {
3305
3310
  }
3306
3311
  const glow = effectLst["a:glow"];
3307
3312
  if (glow) {
3308
- const glowColor = chunkUVA55CRK_js.parseDrawingColor(glow);
3313
+ const glowColor = chunkG7PJSVUS_js.parseDrawingColor(glow);
3309
3314
  if (glowColor) {
3310
3315
  const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
3311
3316
  const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
@@ -3384,10 +3389,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3384
3389
  if (runProps?.["@_u"] !== void 0) {
3385
3390
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
3386
3391
  }
3387
- const runColor = chunkUVA55CRK_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkUVA55CRK_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
3392
+ const runColor = chunkG7PJSVUS_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkG7PJSVUS_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
3388
3393
  if (runColor) {
3389
- const opacity = chunkUVA55CRK_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
3390
- cellStyle.color = chunkUVA55CRK_js.colorWithOpacity(runColor, opacity);
3394
+ const opacity = chunkG7PJSVUS_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
3395
+ cellStyle.color = chunkG7PJSVUS_js.colorWithOpacity(runColor, opacity);
3391
3396
  }
3392
3397
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
3393
3398
  if (fontFamily) {
@@ -3397,15 +3402,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3397
3402
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
3398
3403
  }
3399
3404
  const cellProperties = cellXml["a:tcPr"];
3400
- const cellFill = chunkUVA55CRK_js.parseDrawingColor(
3405
+ const cellFill = chunkG7PJSVUS_js.parseDrawingColor(
3401
3406
  cellProperties?.["a:solidFill"],
3402
3407
  schemeColorOverrides
3403
3408
  );
3404
3409
  if (cellFill) {
3405
- const opacity = chunkUVA55CRK_js.parseDrawingColorOpacity(
3410
+ const opacity = chunkG7PJSVUS_js.parseDrawingColorOpacity(
3406
3411
  cellProperties?.["a:solidFill"]
3407
3412
  );
3408
- cellStyle.backgroundColor = chunkUVA55CRK_js.colorWithOpacity(cellFill, opacity);
3413
+ cellStyle.backgroundColor = chunkG7PJSVUS_js.colorWithOpacity(cellFill, opacity);
3409
3414
  } else {
3410
3415
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
3411
3416
  if (gradCss) {
@@ -3420,16 +3425,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3420
3425
  const edgeBorders = parseCellBorders(cellProperties);
3421
3426
  Object.assign(cellStyle, edgeBorders);
3422
3427
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
3423
- const borderColor = chunkUVA55CRK_js.parseDrawingColor(
3428
+ const borderColor = chunkG7PJSVUS_js.parseDrawingColor(
3424
3429
  cellProperties?.["a:lnL"]?.["a:solidFill"],
3425
3430
  schemeColorOverrides
3426
- ) || chunkUVA55CRK_js.parseDrawingColor(
3431
+ ) || chunkG7PJSVUS_js.parseDrawingColor(
3427
3432
  cellProperties?.["a:lnR"]?.["a:solidFill"],
3428
3433
  schemeColorOverrides
3429
- ) || chunkUVA55CRK_js.parseDrawingColor(
3434
+ ) || chunkG7PJSVUS_js.parseDrawingColor(
3430
3435
  cellProperties?.["a:lnT"]?.["a:solidFill"],
3431
3436
  schemeColorOverrides
3432
- ) || chunkUVA55CRK_js.parseDrawingColor(
3437
+ ) || chunkG7PJSVUS_js.parseDrawingColor(
3433
3438
  cellProperties?.["a:lnB"]?.["a:solidFill"],
3434
3439
  schemeColorOverrides
3435
3440
  );
@@ -3508,10 +3513,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
3508
3513
  }
3509
3514
  let color = base;
3510
3515
  if (fill.tint !== void 0 && fill.tint > 0) {
3511
- color = chunkUVA55CRK_js.tintColor2(color, fill.tint / 1e5);
3516
+ color = chunkG7PJSVUS_js.tintColor2(color, fill.tint / 1e5);
3512
3517
  }
3513
3518
  if (fill.shade !== void 0 && fill.shade > 0) {
3514
- color = chunkUVA55CRK_js.shadeColor2(color, 1 - fill.shade / 1e5);
3519
+ color = chunkG7PJSVUS_js.shadeColor2(color, 1 - fill.shade / 1e5);
3515
3520
  }
3516
3521
  return color;
3517
3522
  }
@@ -3536,7 +3541,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
3536
3541
  style.fontFamily = text.fontFace;
3537
3542
  applied = true;
3538
3543
  } else {
3539
- const refFont = chunkUVA55CRK_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
3544
+ const refFont = chunkG7PJSVUS_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
3540
3545
  if (refFont) {
3541
3546
  style.fontFamily = refFont;
3542
3547
  applied = true;
@@ -3547,10 +3552,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
3547
3552
  if (base) {
3548
3553
  let color = base;
3549
3554
  if (text.fontTint !== void 0 && text.fontTint > 0) {
3550
- color = chunkUVA55CRK_js.tintColor2(color, text.fontTint / 1e5);
3555
+ color = chunkG7PJSVUS_js.tintColor2(color, text.fontTint / 1e5);
3551
3556
  }
3552
3557
  if (text.fontShade !== void 0 && text.fontShade > 0) {
3553
- color = chunkUVA55CRK_js.shadeColor2(color, 1 - text.fontShade / 1e5);
3558
+ color = chunkG7PJSVUS_js.shadeColor2(color, 1 - text.fontShade / 1e5);
3554
3559
  }
3555
3560
  style.color = color;
3556
3561
  applied = true;
@@ -3739,7 +3744,7 @@ function parseTableElementData(element, fallbackTextStyle) {
3739
3744
  };
3740
3745
  }
3741
3746
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
3742
- return chunkUVA55CRK_js.getCellDiagonalBorders(style, tableData, pos, {
3747
+ return chunkG7PJSVUS_js.getCellDiagonalBorders(style, tableData, pos, {
3743
3748
  tableStyleMap: styleCtx?.tableStyleMap,
3744
3749
  colorScheme: styleCtx?.theme?.colorScheme,
3745
3750
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3887,9 +3892,9 @@ function cellStyleToCss(style) {
3887
3892
  if (style.gradientFillCss) {
3888
3893
  css.background = style.gradientFillCss;
3889
3894
  } else if (style.fillMode === "pattern" && style.patternFillPreset) {
3890
- const fg = chunkUVA55CRK_js.normalizeHexColor(style.patternFillForeground, "#000000");
3891
- const bg = chunkUVA55CRK_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
3892
- const svgPattern = chunkUVA55CRK_js.getPatternSvg(style.patternFillPreset, fg, bg);
3895
+ const fg = chunkG7PJSVUS_js.normalizeHexColor(style.patternFillForeground, "#000000");
3896
+ const bg = chunkG7PJSVUS_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
3897
+ const svgPattern = chunkG7PJSVUS_js.getPatternSvg(style.patternFillPreset, fg, bg);
3893
3898
  if (svgPattern) {
3894
3899
  const encoded = encodeURIComponent(svgPattern);
3895
3900
  css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
@@ -3965,7 +3970,7 @@ function cellStyleToCss(style) {
3965
3970
  if (edge.width || edge.color) {
3966
3971
  const w = edge.width ?? 1;
3967
3972
  const c = edge.color ?? style.borderColor ?? "#000000";
3968
- const s = chunkUVA55CRK_js.ooxmlDashToCssBorderStyle(edge.dash);
3973
+ const s = chunkG7PJSVUS_js.ooxmlDashToCssBorderStyle(edge.dash);
3969
3974
  css[edge.prefix] = `${w}px ${s} ${c}`;
3970
3975
  }
3971
3976
  }
@@ -3996,7 +4001,7 @@ function cellStyleToCss(style) {
3996
4001
  css.textShadow = textShadowParts.join(", ");
3997
4002
  }
3998
4003
  if (style.cell3D) {
3999
- Object.assign(css, chunkUVA55CRK_js.cell3DBevelCss(style.cell3D));
4004
+ Object.assign(css, chunkG7PJSVUS_js.cell3DBevelCss(style.cell3D));
4000
4005
  }
4001
4006
  return css;
4002
4007
  }
@@ -4010,7 +4015,7 @@ function TableResizeOverlay({
4010
4015
  const containerRef = React6.useRef(null);
4011
4016
  const [rowBounds, setRowBounds] = React6.useState([]);
4012
4017
  const dragRef = React6.useRef(null);
4013
- const colBoundaries = React6.useMemo(() => chunkUVA55CRK_js.computeColumnBoundaries(columnWidths), [columnWidths]);
4018
+ const colBoundaries = React6.useMemo(() => chunkG7PJSVUS_js.computeColumnBoundaries(columnWidths), [columnWidths]);
4014
4019
  const measureRows = React6.useCallback(() => {
4015
4020
  const container = containerRef.current;
4016
4021
  if (!container) {
@@ -4057,11 +4062,11 @@ function TableResizeOverlay({
4057
4062
  const rect = containerRef.current.getBoundingClientRect();
4058
4063
  if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
4059
4064
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
4060
- onResizeColumns(chunkUVA55CRK_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
4065
+ onResizeColumns(chunkG7PJSVUS_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
4061
4066
  } else if (drag.type === "row" && onResizeRow) {
4062
4067
  const deltaY = e.clientY - drag.startPos;
4063
- const newHeight = chunkUVA55CRK_js.computeResizedRowHeight(
4064
- drag.initialRowHeight ?? chunkUVA55CRK_js.DEFAULT_ROW_HEIGHT,
4068
+ const newHeight = chunkG7PJSVUS_js.computeResizedRowHeight(
4069
+ drag.initialRowHeight ?? chunkG7PJSVUS_js.DEFAULT_ROW_HEIGHT,
4065
4070
  deltaY
4066
4071
  );
4067
4072
  onResizeRow(drag.index, newHeight);
@@ -4099,7 +4104,7 @@ function TableResizeOverlay({
4099
4104
  e.stopPropagation();
4100
4105
  const table = containerRef.current?.querySelector("table");
4101
4106
  const tr = table?.querySelectorAll("tbody > tr")[index];
4102
- const actualHeight = tr?.offsetHeight ?? chunkUVA55CRK_js.DEFAULT_ROW_HEIGHT;
4107
+ const actualHeight = tr?.offsetHeight ?? chunkG7PJSVUS_js.DEFAULT_ROW_HEIGHT;
4103
4108
  document.body.style.cursor = "row-resize";
4104
4109
  document.body.style.userSelect = "none";
4105
4110
  dragRef.current = {
@@ -4147,7 +4152,7 @@ function renderTableFromTableData(element, textStyle, options) {
4147
4152
  }
4148
4153
  const first = selectedCell.selectedCells[0];
4149
4154
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
4150
- return chunkUVA55CRK_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
4155
+ return chunkG7PJSVUS_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
4151
4156
  })();
4152
4157
  return /* @__PURE__ */ jsxRuntime.jsx(
4153
4158
  TableResizeOverlay,
@@ -4180,7 +4185,7 @@ function renderTableFromTableData(element, textStyle, options) {
4180
4185
  return null;
4181
4186
  }
4182
4187
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
4183
- const isInMultiSelection = chunkUVA55CRK_js.isCellInRect(rowIndex, cellIndex, selectionRect);
4188
+ const isInMultiSelection = chunkG7PJSVUS_js.isCellInRect(rowIndex, cellIndex, selectionRect);
4184
4189
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
4185
4190
  const diag = getCellDiagonalBorders2(
4186
4191
  cell.style,
@@ -4210,7 +4215,7 @@ function renderTableFromTableData(element, textStyle, options) {
4210
4215
  }
4211
4216
  event.stopPropagation();
4212
4217
  if (event.shiftKey && selectedCell) {
4213
- const rect = chunkUVA55CRK_js.computeSelectionRect(
4218
+ const rect = chunkG7PJSVUS_js.computeSelectionRect(
4214
4219
  selectedCell.rowIndex,
4215
4220
  selectedCell.columnIndex,
4216
4221
  rowIndex,
@@ -4220,7 +4225,7 @@ function renderTableFromTableData(element, textStyle, options) {
4220
4225
  options?.onSelectCell?.({
4221
4226
  rowIndex: selectedCell.rowIndex,
4222
4227
  columnIndex: selectedCell.columnIndex,
4223
- selectedCells: chunkUVA55CRK_js.rectToCells(rect)
4228
+ selectedCells: chunkG7PJSVUS_js.rectToCells(rect)
4224
4229
  });
4225
4230
  } else {
4226
4231
  options?.onSelectCell?.({
@@ -4297,7 +4302,7 @@ function renderTableElement(element, textStyle, options) {
4297
4302
  }
4298
4303
  const first = selectedCell.selectedCells[0];
4299
4304
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
4300
- return chunkUVA55CRK_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
4305
+ return chunkG7PJSVUS_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
4301
4306
  })();
4302
4307
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
4303
4308
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4374,7 +4379,7 @@ function renderTableElement(element, textStyle, options) {
4374
4379
  "border px-1 py-0.5 align-top",
4375
4380
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
4376
4381
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
4377
- chunkUVA55CRK_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
4382
+ chunkG7PJSVUS_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
4378
4383
  ),
4379
4384
  colSpan,
4380
4385
  rowSpan: rSpan,
@@ -4385,7 +4390,7 @@ function renderTableElement(element, textStyle, options) {
4385
4390
  }
4386
4391
  event.stopPropagation();
4387
4392
  if (event.shiftKey && selectedCell && tableEl.tableData) {
4388
- const rect = chunkUVA55CRK_js.computeSelectionRect(
4393
+ const rect = chunkG7PJSVUS_js.computeSelectionRect(
4389
4394
  selectedCell.rowIndex,
4390
4395
  selectedCell.columnIndex,
4391
4396
  rowIndex,
@@ -4395,7 +4400,7 @@ function renderTableElement(element, textStyle, options) {
4395
4400
  options?.onSelectCell?.({
4396
4401
  rowIndex: selectedCell.rowIndex,
4397
4402
  columnIndex: selectedCell.columnIndex,
4398
- selectedCells: chunkUVA55CRK_js.rectToCells(rect)
4403
+ selectedCells: chunkG7PJSVUS_js.rectToCells(rect)
4399
4404
  });
4400
4405
  } else {
4401
4406
  options?.onSelectCell?.({
@@ -4450,24 +4455,24 @@ function renderTableElement(element, textStyle, options) {
4450
4455
  }
4451
4456
  var LEGEND_ITEM_WIDTH = 80;
4452
4457
  function partAttrs(part) {
4453
- return part ? chunkUVA55CRK_js.chartPartToAttrs(part) : void 0;
4458
+ return part ? chunkG7PJSVUS_js.chartPartToAttrs(part) : void 0;
4454
4459
  }
4455
4460
  function resolveReactPalette(chartData) {
4456
4461
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
4457
4462
  return chartData.colorPalette;
4458
4463
  }
4459
- return [...chunkUVA55CRK_js.getChartStylePalette(chartData.style?.styleId)];
4464
+ return [...chunkG7PJSVUS_js.getChartStylePalette(chartData.style?.styleId)];
4460
4465
  }
4461
4466
  function buildReactChartViewModel(element) {
4462
4467
  if (element.type !== "chart" || !element.chartData) {
4463
- return chunkUVA55CRK_js.buildChartViewModel(element);
4468
+ return chunkG7PJSVUS_js.buildChartViewModel(element);
4464
4469
  }
4465
4470
  const palette = resolveReactPalette(element.chartData);
4466
4471
  const themedElement = {
4467
4472
  ...element,
4468
4473
  chartData: { ...element.chartData, colorPalette: palette }
4469
4474
  };
4470
- return chunkUVA55CRK_js.buildChartViewModel(themedElement);
4475
+ return chunkG7PJSVUS_js.buildChartViewModel(themedElement);
4471
4476
  }
4472
4477
  function renderPrimitive(prim, key) {
4473
4478
  switch (prim.kind) {
@@ -4856,7 +4861,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4856
4861
  const unmatchedRows = [];
4857
4862
  categories.forEach((cat, i) => {
4858
4863
  const value = values[i] ?? 0;
4859
- const code = chunkUVA55CRK_js.resolveRegionCode(cat);
4864
+ const code = chunkG7PJSVUS_js.resolveRegionCode(cat);
4860
4865
  if (code) {
4861
4866
  regionValueMap.set(code, { value, label: cat });
4862
4867
  } else {
@@ -4894,8 +4899,8 @@ function renderMapChart(element, chartData, categoryLabels) {
4894
4899
  let fill = "#e2e8f0";
4895
4900
  let dataLabel = null;
4896
4901
  if (entry) {
4897
- const t = chunkUVA55CRK_js.normalizeValue(entry.value, minVal, maxVal);
4898
- fill = chunkUVA55CRK_js.sequentialColorScale(t);
4902
+ const t = chunkG7PJSVUS_js.normalizeValue(entry.value, minVal, maxVal);
4903
+ fill = chunkG7PJSVUS_js.sequentialColorScale(t);
4899
4904
  dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
4900
4905
  "text",
4901
4906
  {
@@ -4906,7 +4911,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4906
4911
  fontWeight: 600,
4907
4912
  fill: "#1e293b",
4908
4913
  style: { pointerEvents: "none" },
4909
- children: chunkUVA55CRK_js.formatAxisValue(entry.value)
4914
+ children: chunkG7PJSVUS_js.formatAxisValue(entry.value)
4910
4915
  },
4911
4916
  `${element.id}-map-dl-${region.code}`
4912
4917
  );
@@ -4924,7 +4929,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4924
4929
  opacity: 0.9,
4925
4930
  children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
4926
4931
  region.name,
4927
- entry ? `: ${chunkUVA55CRK_js.formatAxisValue(entry.value)}` : ""
4932
+ entry ? `: ${chunkG7PJSVUS_js.formatAxisValue(entry.value)}` : ""
4928
4933
  ] })
4929
4934
  }
4930
4935
  ),
@@ -4962,7 +4967,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4962
4967
  fontSize: 7,
4963
4968
  fill: "#64748b",
4964
4969
  textAnchor: "middle",
4965
- children: chunkUVA55CRK_js.formatAxisValue(minVal)
4970
+ children: chunkG7PJSVUS_js.formatAxisValue(minVal)
4966
4971
  },
4967
4972
  `${element.id}-map-legend-min`
4968
4973
  ),
@@ -4974,7 +4979,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4974
4979
  fontSize: 7,
4975
4980
  fill: "#64748b",
4976
4981
  textAnchor: "middle",
4977
- children: chunkUVA55CRK_js.formatAxisValue(maxVal)
4982
+ children: chunkG7PJSVUS_js.formatAxisValue(maxVal)
4978
4983
  },
4979
4984
  `${element.id}-map-legend-max`
4980
4985
  )
@@ -5040,7 +5045,7 @@ function renderMapChart(element, chartData, categoryLabels) {
5040
5045
  y,
5041
5046
  fontSize,
5042
5047
  fill: "#475569",
5043
- children: chunkUVA55CRK_js.formatAxisValue(row.value)
5048
+ children: chunkG7PJSVUS_js.formatAxisValue(row.value)
5044
5049
  },
5045
5050
  `${element.id}-map-ft-val-${i}`
5046
5051
  )
@@ -5111,7 +5116,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
5111
5116
 
5112
5117
  // src/viewer/utils/chart-overlay-utils.ts
5113
5118
  function sColor(series, idx) {
5114
- return chunkUVA55CRK_js.seriesColor(series, idx);
5119
+ return chunkG7PJSVUS_js.seriesColor(series, idx);
5115
5120
  }
5116
5121
  function valToY(val, range, topY, bottomY) {
5117
5122
  const usable = bottomY - topY;
@@ -5650,7 +5655,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
5650
5655
  width: 10,
5651
5656
  height: 10,
5652
5657
  rx: 2,
5653
- fill: chunkUVA55CRK_js.seriesColor(s, i, style?.styleId, colorPalette)
5658
+ fill: chunkG7PJSVUS_js.seriesColor(s, i, style?.styleId, colorPalette)
5654
5659
  },
5655
5660
  `${id}-leg-r-${i}`
5656
5661
  )
@@ -5674,7 +5679,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
5674
5679
  width: 10,
5675
5680
  height: 10,
5676
5681
  rx: 2,
5677
- fill: chunkUVA55CRK_js.seriesColor(s, i, style?.styleId, colorPalette)
5682
+ fill: chunkG7PJSVUS_js.seriesColor(s, i, style?.styleId, colorPalette)
5678
5683
  }
5679
5684
  ),
5680
5685
  /* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
@@ -5687,9 +5692,9 @@ function renderGridlines(id, style, range, layout) {
5687
5692
  }
5688
5693
  const lines = [];
5689
5694
  if (range.logScale && range.logBase) {
5690
- const ticks = chunkUVA55CRK_js.generateLogTicks(range);
5695
+ const ticks = chunkG7PJSVUS_js.generateLogTicks(range);
5691
5696
  ticks.forEach((tickVal, i) => {
5692
- const y = chunkUVA55CRK_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5697
+ const y = chunkG7PJSVUS_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5693
5698
  lines.push(
5694
5699
  /* @__PURE__ */ jsxRuntime.jsx(
5695
5700
  "line",
@@ -5710,7 +5715,7 @@ function renderGridlines(id, style, range, layout) {
5710
5715
  const steps = 4;
5711
5716
  for (let i = 0; i <= steps; i++) {
5712
5717
  const val = range.min + range.span * i / steps;
5713
- const y = chunkUVA55CRK_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5718
+ const y = chunkG7PJSVUS_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5714
5719
  lines.push(
5715
5720
  /* @__PURE__ */ jsxRuntime.jsx(
5716
5721
  "line",
@@ -5734,9 +5739,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5734
5739
  const labels = [];
5735
5740
  const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
5736
5741
  if (range.logScale && range.logBase) {
5737
- const ticks = chunkUVA55CRK_js.generateLogTicks(range);
5742
+ const ticks = chunkG7PJSVUS_js.generateLogTicks(range);
5738
5743
  ticks.forEach((tickVal, i) => {
5739
- const y = chunkUVA55CRK_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5744
+ const y = chunkG7PJSVUS_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5740
5745
  labels.push(
5741
5746
  /* @__PURE__ */ jsxRuntime.jsx(
5742
5747
  "text",
@@ -5746,7 +5751,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5746
5751
  textAnchor: "end",
5747
5752
  fontSize: 8,
5748
5753
  fill: "#64748b",
5749
- children: hasDisplayUnits ? chunkUVA55CRK_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkUVA55CRK_js.formatAxisValue(tickVal)
5754
+ children: hasDisplayUnits ? chunkG7PJSVUS_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkG7PJSVUS_js.formatAxisValue(tickVal)
5750
5755
  },
5751
5756
  `${id}-vaxis-log-${i}`
5752
5757
  )
@@ -5756,7 +5761,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5756
5761
  const steps = 4;
5757
5762
  for (let i = 0; i <= steps; i++) {
5758
5763
  const val = range.min + range.span * i / steps;
5759
- const y = chunkUVA55CRK_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5764
+ const y = chunkG7PJSVUS_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5760
5765
  labels.push(
5761
5766
  /* @__PURE__ */ jsxRuntime.jsx(
5762
5767
  "text",
@@ -5766,7 +5771,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5766
5771
  textAnchor: "end",
5767
5772
  fontSize: 8,
5768
5773
  fill: "#64748b",
5769
- children: hasDisplayUnits ? chunkUVA55CRK_js.formatAxisValueWithUnits(val, axisFormatting) : chunkUVA55CRK_js.formatAxisValue(val)
5774
+ children: hasDisplayUnits ? chunkG7PJSVUS_js.formatAxisValueWithUnits(val, axisFormatting) : chunkG7PJSVUS_js.formatAxisValue(val)
5770
5775
  },
5771
5776
  `${id}-vaxis-${i}`
5772
5777
  )
@@ -5774,7 +5779,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5774
5779
  }
5775
5780
  }
5776
5781
  if (hasDisplayUnits) {
5777
- const unitLabel = chunkUVA55CRK_js.getDisplayUnitLabel(
5782
+ const unitLabel = chunkG7PJSVUS_js.getDisplayUnitLabel(
5778
5783
  axisFormatting.displayUnits,
5779
5784
  axisFormatting.displayUnitsLabel
5780
5785
  );
@@ -5849,7 +5854,7 @@ function renderZeroLine(id, range, layout) {
5849
5854
  if (range.min >= 0) {
5850
5855
  return null;
5851
5856
  }
5852
- const y = chunkUVA55CRK_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
5857
+ const y = chunkG7PJSVUS_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
5853
5858
  return /* @__PURE__ */ jsxRuntime.jsx(
5854
5859
  "line",
5855
5860
  {
@@ -5873,7 +5878,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5873
5878
  const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
5874
5879
  for (let i = 0; i <= steps; i++) {
5875
5880
  const val = range.min + range.span * i / steps;
5876
- const y = chunkUVA55CRK_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5881
+ const y = chunkG7PJSVUS_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5877
5882
  labels.push(
5878
5883
  /* @__PURE__ */ jsxRuntime.jsx(
5879
5884
  "text",
@@ -5885,7 +5890,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5885
5890
  fontFamily,
5886
5891
  fontWeight,
5887
5892
  fill: fontColor,
5888
- children: hasDisplayUnits ? chunkUVA55CRK_js.formatAxisValueWithUnits(val, axisFormatting) : chunkUVA55CRK_js.formatAxisValue(val)
5893
+ children: hasDisplayUnits ? chunkG7PJSVUS_js.formatAxisValueWithUnits(val, axisFormatting) : chunkG7PJSVUS_js.formatAxisValue(val)
5889
5894
  },
5890
5895
  `${id}-sec-vaxis-${i}`
5891
5896
  )
@@ -5909,7 +5914,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5909
5914
  );
5910
5915
  }
5911
5916
  if (hasDisplayUnits) {
5912
- const unitLabel = chunkUVA55CRK_js.getDisplayUnitLabel(
5917
+ const unitLabel = chunkG7PJSVUS_js.getDisplayUnitLabel(
5913
5918
  axisFormatting.displayUnits,
5914
5919
  axisFormatting.displayUnitsLabel
5915
5920
  );
@@ -5940,7 +5945,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
5940
5945
  const ticks = [];
5941
5946
  for (let i = 0; i <= steps; i++) {
5942
5947
  const val = range.min + range.span * i / steps;
5943
- const y = chunkUVA55CRK_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5948
+ const y = chunkG7PJSVUS_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5944
5949
  ticks.push(
5945
5950
  /* @__PURE__ */ jsxRuntime.jsx(
5946
5951
  "line",
@@ -5967,7 +5972,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
5967
5972
  const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
5968
5973
  for (let i = 0; i <= steps; i++) {
5969
5974
  const val = range.min + range.span * i / steps;
5970
- const y = chunkUVA55CRK_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5975
+ const y = chunkG7PJSVUS_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5971
5976
  lines.push(
5972
5977
  /* @__PURE__ */ jsxRuntime.jsx(
5973
5978
  "line",
@@ -6129,7 +6134,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
6129
6134
  width: 8,
6130
6135
  height: 8,
6131
6136
  borderRadius: 2,
6132
- backgroundColor: chunkUVA55CRK_js.seriesColor(
6137
+ backgroundColor: chunkG7PJSVUS_js.seriesColor(
6133
6138
  s,
6134
6139
  si,
6135
6140
  chartData.style?.styleId,
@@ -6168,8 +6173,8 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
6168
6173
  function renderStockChart(element, chartData, categoryLabels) {
6169
6174
  const style = chartData.style;
6170
6175
  const legendPos = style?.legendPosition || "b";
6171
- const range = chunkUVA55CRK_js.computeValueRangeForChart(chartData.series, chartData.axes);
6172
- const layout = chunkUVA55CRK_js.computeLayout(element.width, element.height, style, true, legendPos);
6176
+ const range = chunkG7PJSVUS_js.computeValueRangeForChart(chartData.series, chartData.axes);
6177
+ const layout = chunkG7PJSVUS_js.computeLayout(element.width, element.height, style, true, legendPos);
6173
6178
  const catCount = Math.max(categoryLabels.length, 1);
6174
6179
  const barGroupWidth = layout.plotWidth / catCount;
6175
6180
  const candleWidth = barGroupWidth * 0.5;
@@ -6190,10 +6195,10 @@ function renderStockChart(element, chartData, categoryLabels) {
6190
6195
  const close = closeSeries.values[ci] ?? high;
6191
6196
  const isUp = close >= open;
6192
6197
  const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
6193
- const highY = chunkUVA55CRK_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
6194
- const lowY = chunkUVA55CRK_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
6195
- const openY = chunkUVA55CRK_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
6196
- const closeY = chunkUVA55CRK_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
6198
+ const highY = chunkG7PJSVUS_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
6199
+ const lowY = chunkG7PJSVUS_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
6200
+ const openY = chunkG7PJSVUS_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
6201
+ const closeY = chunkG7PJSVUS_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
6197
6202
  elements.push(
6198
6203
  /* @__PURE__ */ jsxRuntime.jsx(
6199
6204
  "line",
@@ -6236,7 +6241,7 @@ function renderStockChart(element, chartData, categoryLabels) {
6236
6241
  textAnchor: "middle",
6237
6242
  fontSize: 7,
6238
6243
  fill: "#334155",
6239
- children: chunkUVA55CRK_js.formatAxisValue(close)
6244
+ children: chunkG7PJSVUS_js.formatAxisValue(close)
6240
6245
  },
6241
6246
  `${element.id}-stock-dl-${ci}`
6242
6247
  )
@@ -6278,7 +6283,7 @@ function FailedToLoad() {
6278
6283
  var LazySurfaceChart3DScene = React6__default.default.lazy(
6279
6284
  async () => {
6280
6285
  try {
6281
- return await import('./SurfaceChart3DScene-3QB6NVKD.js');
6286
+ return await import('./SurfaceChart3DScene-5TILKZMY.js');
6282
6287
  } catch {
6283
6288
  return { default: FailedToLoad };
6284
6289
  }
@@ -6302,7 +6307,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
6302
6307
  function buildSurfaceData(chartData, categoryLabels) {
6303
6308
  const rows = chartData.series.length;
6304
6309
  const cols = Math.max(categoryLabels.length, 1);
6305
- const range = chunkUVA55CRK_js.computeValueRangeForChart(chartData.series, chartData.axes);
6310
+ const range = chunkG7PJSVUS_js.computeValueRangeForChart(chartData.series, chartData.axes);
6306
6311
  const heightMap = new Float32Array(rows * cols);
6307
6312
  const colorMap = new Float32Array(rows * cols * 3);
6308
6313
  for (let r = 0; r < rows; r++) {
@@ -6422,8 +6427,8 @@ function darkenRgb(r, g, b, factor) {
6422
6427
  function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
6423
6428
  const style = chartData.style;
6424
6429
  const legendPos = style?.legendPosition || "b";
6425
- const layout = chunkUVA55CRK_js.computeLayout(element.width, element.height, style, false, legendPos);
6426
- const range = chunkUVA55CRK_js.computeValueRangeForChart(chartData.series, chartData.axes);
6430
+ const layout = chunkG7PJSVUS_js.computeLayout(element.width, element.height, style, false, legendPos);
6431
+ const range = chunkG7PJSVUS_js.computeValueRangeForChart(chartData.series, chartData.axes);
6427
6432
  const catCount = Math.max(categoryLabels.length, 1);
6428
6433
  const seriesCount = chartData.series.length;
6429
6434
  const cols = catCount - 1;
@@ -6513,8 +6518,8 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
6513
6518
  function renderFlatSurfaceChart(element, chartData, categoryLabels) {
6514
6519
  const style = chartData.style;
6515
6520
  const legendPos = style?.legendPosition || "b";
6516
- const layout = chunkUVA55CRK_js.computeLayout(element.width, element.height, style, true, legendPos);
6517
- const range = chunkUVA55CRK_js.computeValueRangeForChart(chartData.series, chartData.axes);
6521
+ const layout = chunkG7PJSVUS_js.computeLayout(element.width, element.height, style, true, legendPos);
6522
+ const range = chunkG7PJSVUS_js.computeValueRangeForChart(chartData.series, chartData.axes);
6518
6523
  const catCount = Math.max(categoryLabels.length, 1);
6519
6524
  const seriesCount = chartData.series.length;
6520
6525
  const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
@@ -6577,7 +6582,7 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
6577
6582
  function renderTreemapChart(element, chartData, categoryLabels) {
6578
6583
  const style = chartData.style;
6579
6584
  const legendPos = style?.legendPosition || "b";
6580
- const layout = chunkUVA55CRK_js.computeLayout(element.width, element.height, style, false, legendPos);
6585
+ const layout = chunkG7PJSVUS_js.computeLayout(element.width, element.height, style, false, legendPos);
6581
6586
  const allValues = chartData.series.flatMap((s) => s.values);
6582
6587
  const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
6583
6588
  const rects = [];
@@ -6600,7 +6605,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
6600
6605
  y: curY,
6601
6606
  width: Math.max(w - 1, 1),
6602
6607
  height: Math.max(h - 1, 1),
6603
- fill: chunkUVA55CRK_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
6608
+ fill: chunkG7PJSVUS_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
6604
6609
  rx: 2,
6605
6610
  opacity: 0.85
6606
6611
  },
@@ -6653,8 +6658,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6653
6658
  const style = chartData.style;
6654
6659
  const legendPos = style?.legendPosition || "b";
6655
6660
  const values = chartData.series[0]?.values ?? [];
6656
- const range = chunkUVA55CRK_js.computeValueRangeForChart(chartData.series, chartData.axes);
6657
- const layout = chunkUVA55CRK_js.computeLayout(element.width, element.height, style, true, legendPos);
6661
+ const range = chunkG7PJSVUS_js.computeValueRangeForChart(chartData.series, chartData.axes);
6662
+ const layout = chunkG7PJSVUS_js.computeLayout(element.width, element.height, style, true, legendPos);
6658
6663
  const catCount = Math.max(categoryLabels.length, values.length, 1);
6659
6664
  const barWidth = layout.plotWidth / catCount * 0.6;
6660
6665
  const gap = layout.plotWidth / catCount * 0.2;
@@ -6665,8 +6670,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6665
6670
  const isLast = i === values.length - 1;
6666
6671
  const startVal = isLast ? 0 : runningTotal;
6667
6672
  const endVal = isLast ? runningTotal + val : runningTotal + val;
6668
- const barStartY = chunkUVA55CRK_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
6669
- const barEndY = chunkUVA55CRK_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
6673
+ const barStartY = chunkG7PJSVUS_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
6674
+ const barEndY = chunkG7PJSVUS_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
6670
6675
  const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
6671
6676
  const y = Math.min(barStartY, barEndY);
6672
6677
  const h = Math.max(Math.abs(barEndY - barStartY), 1);
@@ -6695,7 +6700,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6695
6700
  textAnchor: "middle",
6696
6701
  fontSize: 7,
6697
6702
  fill: "#334155",
6698
- children: chunkUVA55CRK_js.formatAxisValue(isLast ? endVal : val)
6703
+ children: chunkG7PJSVUS_js.formatAxisValue(isLast ? endVal : val)
6699
6704
  },
6700
6705
  `${element.id}-wf-dl-${i}`
6701
6706
  )
@@ -6743,18 +6748,18 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6743
6748
  function renderComboChart(element, chartData, categoryLabels) {
6744
6749
  const style = chartData.style;
6745
6750
  const legendPos = style?.legendPosition || "b";
6746
- const layoutOpts = chunkUVA55CRK_js.computeLayoutOptions(
6751
+ const layoutOpts = chunkG7PJSVUS_js.computeLayoutOptions(
6747
6752
  chartData.axes,
6748
6753
  chartData.dataTable,
6749
6754
  chartData.series.length
6750
6755
  );
6751
- const layout = chunkUVA55CRK_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
6752
- const { primary, secondary } = chunkUVA55CRK_js.splitSeriesByAxis(chartData.series, chartData.axes);
6756
+ const layout = chunkG7PJSVUS_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
6757
+ const { primary, secondary } = chunkG7PJSVUS_js.splitSeriesByAxis(chartData.series, chartData.axes);
6753
6758
  const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
6754
6759
  const secondarySeries = secondary.map((e) => e.series);
6755
- const range = chunkUVA55CRK_js.computeValueRangeForChart(primarySeries, chartData.axes);
6756
- const secondaryRange = secondarySeries.length > 0 ? chunkUVA55CRK_js.computeValueRange(secondarySeries) : void 0;
6757
- const secondaryAxisFmt = chunkUVA55CRK_js.getSecondaryValueAxis(chartData.axes);
6760
+ const range = chunkG7PJSVUS_js.computeValueRangeForChart(primarySeries, chartData.axes);
6761
+ const secondaryRange = secondarySeries.length > 0 ? chunkG7PJSVUS_js.computeValueRange(secondarySeries) : void 0;
6762
+ const secondaryAxisFmt = chunkG7PJSVUS_js.getSecondaryValueAxis(chartData.axes);
6758
6763
  const catCount = Math.max(categoryLabels.length, 1);
6759
6764
  const barSeriesCount = 1;
6760
6765
  const barGroupWidth = layout.plotWidth / catCount;
@@ -6770,8 +6775,8 @@ function renderComboChart(element, chartData, categoryLabels) {
6770
6775
  const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
6771
6776
  barSeries.values.forEach((val, vi) => {
6772
6777
  const x = layout.plotLeft + barGroupWidth * vi + barOffset;
6773
- const zeroY = chunkUVA55CRK_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
6774
- const valY = chunkUVA55CRK_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
6778
+ const zeroY = chunkG7PJSVUS_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
6779
+ const valY = chunkG7PJSVUS_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
6775
6780
  const y = Math.min(zeroY, valY);
6776
6781
  const h = Math.max(Math.abs(zeroY - valY), 1);
6777
6782
  barElements.push(
@@ -6782,7 +6787,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6782
6787
  y,
6783
6788
  width: barWidth,
6784
6789
  height: h,
6785
- fill: chunkUVA55CRK_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
6790
+ fill: chunkG7PJSVUS_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
6786
6791
  rx: 1
6787
6792
  },
6788
6793
  `${element.id}-combo-bar-${vi}`
@@ -6798,7 +6803,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6798
6803
  textAnchor: "middle",
6799
6804
  fontSize: 7,
6800
6805
  fill: "#334155",
6801
- children: chunkUVA55CRK_js.formatAxisValue(val)
6806
+ children: chunkG7PJSVUS_js.formatAxisValue(val)
6802
6807
  },
6803
6808
  `${element.id}-combo-bar-dl-${vi}`
6804
6809
  )
@@ -6815,10 +6820,10 @@ function renderComboChart(element, chartData, categoryLabels) {
6815
6820
  const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
6816
6821
  const points = series.values.map((val, vi) => {
6817
6822
  const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
6818
- const y = chunkUVA55CRK_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
6823
+ const y = chunkG7PJSVUS_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
6819
6824
  return { x, y, val };
6820
6825
  });
6821
- const c = chunkUVA55CRK_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
6826
+ const c = chunkG7PJSVUS_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
6822
6827
  lineElements.push(
6823
6828
  /* @__PURE__ */ jsxRuntime.jsx(
6824
6829
  "polyline",
@@ -6845,7 +6850,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6845
6850
  textAnchor: "middle",
6846
6851
  fontSize: 7,
6847
6852
  fill: "#334155",
6848
- children: chunkUVA55CRK_js.formatAxisValue(p.val)
6853
+ children: chunkG7PJSVUS_js.formatAxisValue(p.val)
6849
6854
  },
6850
6855
  `${element.id}-combo-line-dl-${si}-${vi}`
6851
6856
  )
@@ -7991,14 +7996,14 @@ function buildNotesPdf(pages) {
7991
7996
  notes: page.notes,
7992
7997
  slideNumber: page.slideNumber
7993
7998
  }));
7994
- const bytes = chunkUVA55CRK_js.buildNotesPdfBytes(images, meta);
7999
+ const bytes = chunkG7PJSVUS_js.buildNotesPdfBytes(images, meta);
7995
8000
  const blob = new Blob([bytes], { type: "application/pdf" });
7996
8001
  return URL.createObjectURL(blob);
7997
8002
  }
7998
8003
 
7999
8004
  // src/viewer/utils/pdf-builder-slides.ts
8000
8005
  function buildPdfFromImageData(images) {
8001
- const bytes = chunkUVA55CRK_js.buildSlidesPdfBytes(images);
8006
+ const bytes = chunkG7PJSVUS_js.buildSlidesPdfBytes(images);
8002
8007
  const blob = new Blob([bytes], { type: "application/pdf" });
8003
8008
  return URL.createObjectURL(blob);
8004
8009
  }
@@ -8007,7 +8012,7 @@ function buildPdfFromImageData(images) {
8007
8012
  var activePreview = null;
8008
8013
  function startPreviewAnimation(elementId, preset, options) {
8009
8014
  stopPreviewAnimation();
8010
- const descriptor = chunkUVA55CRK_js.buildPreviewAnimation(preset, options);
8015
+ const descriptor = chunkG7PJSVUS_js.buildPreviewAnimation(preset, options);
8011
8016
  if (!descriptor) {
8012
8017
  return;
8013
8018
  }