pptx-react-viewer 2.5.1 → 2.5.3

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 (99) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{AiChatPanel-OHSLJNYG.js → AiChatPanel-DPMHPOWF.js} +22 -22
  3. package/dist/AiChatPanel-DPMHPOWF.js.br +0 -0
  4. package/dist/AiChatPanel-DPMHPOWF.js.gz +0 -0
  5. package/dist/{AiChatPanel-EMF3UYCE.mjs → AiChatPanel-OFOOWR4U.mjs} +3 -3
  6. package/dist/AiChatPanel-OFOOWR4U.mjs.br +0 -0
  7. package/dist/AiChatPanel-OFOOWR4U.mjs.gz +0 -0
  8. package/dist/{Model3DScene-X6QJTWHV.mjs → Model3DScene-P4OKVQBF.mjs} +1 -1
  9. package/dist/Model3DScene-P4OKVQBF.mjs.br +0 -0
  10. package/dist/Model3DScene-P4OKVQBF.mjs.gz +0 -0
  11. package/dist/{Model3DScene-ULHIJPMU.js → Model3DScene-PD2MDBIE.js} +2 -2
  12. package/dist/Model3DScene-PD2MDBIE.js.br +0 -0
  13. package/dist/Model3DScene-PD2MDBIE.js.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-K7Q5NYZ4.js → SurfaceChart3DScene-FECS3THE.js} +2 -2
  15. package/dist/SurfaceChart3DScene-FECS3THE.js.br +0 -0
  16. package/dist/SurfaceChart3DScene-FECS3THE.js.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-PRCKQJQQ.mjs → SurfaceChart3DScene-TL4ZIOI4.mjs} +1 -1
  18. package/dist/{SurfaceChart3DScene-PRCKQJQQ.mjs.br → SurfaceChart3DScene-TL4ZIOI4.mjs.br} +0 -0
  19. package/dist/SurfaceChart3DScene-TL4ZIOI4.mjs.gz +0 -0
  20. package/dist/{chunk-LTEDT475.js → chunk-23Q3I2LM.js} +17 -13
  21. package/dist/chunk-23Q3I2LM.js.br +0 -0
  22. package/dist/chunk-23Q3I2LM.js.gz +0 -0
  23. package/dist/{chunk-VOV2N3NY.mjs → chunk-6KOM27PS.mjs} +17 -13
  24. package/dist/chunk-6KOM27PS.mjs.br +0 -0
  25. package/dist/chunk-6KOM27PS.mjs.gz +0 -0
  26. package/dist/{chunk-SPSGMO5I.mjs → chunk-F3JUUSC4.mjs} +7 -7
  27. package/dist/chunk-F3JUUSC4.mjs.br +0 -0
  28. package/dist/chunk-F3JUUSC4.mjs.gz +0 -0
  29. package/dist/{chunk-NVH3RIN7.js → chunk-FFLUALX5.js} +235 -235
  30. package/dist/chunk-FFLUALX5.js.br +0 -0
  31. package/dist/chunk-FFLUALX5.js.gz +0 -0
  32. package/dist/{chunk-MJAEB43A.js → chunk-H2FZ2NJ7.js} +3 -3
  33. package/dist/chunk-H2FZ2NJ7.js.br +0 -0
  34. package/dist/chunk-H2FZ2NJ7.js.gz +0 -0
  35. package/dist/{chunk-TGVID6BB.mjs → chunk-QDIF3ZXF.mjs} +2 -2
  36. package/dist/chunk-QDIF3ZXF.mjs.br +0 -0
  37. package/dist/chunk-QDIF3ZXF.mjs.gz +0 -0
  38. package/dist/{chunk-WJKMTDXS.mjs → chunk-SAXG53MO.mjs} +1 -1
  39. package/dist/chunk-SAXG53MO.mjs.br +0 -0
  40. package/dist/chunk-SAXG53MO.mjs.gz +0 -0
  41. package/dist/{chunk-4MYZW7XT.js → chunk-USHZUHHG.js} +843 -843
  42. package/dist/chunk-USHZUHHG.js.br +0 -0
  43. package/dist/chunk-USHZUHHG.js.gz +0 -0
  44. package/dist/{chunk-7Q7AEPO7.js → chunk-UUS7QT22.js} +313 -313
  45. package/dist/chunk-UUS7QT22.js.br +0 -0
  46. package/dist/chunk-UUS7QT22.js.gz +0 -0
  47. package/dist/{chunk-LIQGO45T.mjs → chunk-ZZA62IND.mjs} +2 -2
  48. package/dist/chunk-ZZA62IND.mjs.br +0 -0
  49. package/dist/chunk-ZZA62IND.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.js +78 -78
  57. package/dist/internals.js.br +0 -0
  58. package/dist/internals.js.gz +0 -0
  59. package/dist/internals.mjs +3 -3
  60. package/dist/internals.mjs.br +0 -0
  61. package/dist/internals.mjs.gz +0 -0
  62. package/dist/viewer/index.js +21 -21
  63. package/dist/viewer/index.js.br +0 -0
  64. package/dist/viewer/index.js.gz +0 -0
  65. package/dist/viewer/index.mjs +5 -5
  66. package/dist/viewer/index.mjs.br +0 -0
  67. package/dist/viewer/index.mjs.gz +0 -0
  68. package/package.json +3 -3
  69. package/dist/AiChatPanel-EMF3UYCE.mjs.br +0 -0
  70. package/dist/AiChatPanel-EMF3UYCE.mjs.gz +0 -0
  71. package/dist/AiChatPanel-OHSLJNYG.js.br +0 -0
  72. package/dist/AiChatPanel-OHSLJNYG.js.gz +0 -0
  73. package/dist/Model3DScene-ULHIJPMU.js.br +0 -0
  74. package/dist/Model3DScene-ULHIJPMU.js.gz +0 -0
  75. package/dist/Model3DScene-X6QJTWHV.mjs.br +0 -0
  76. package/dist/Model3DScene-X6QJTWHV.mjs.gz +0 -0
  77. package/dist/SurfaceChart3DScene-K7Q5NYZ4.js.br +0 -0
  78. package/dist/SurfaceChart3DScene-K7Q5NYZ4.js.gz +0 -0
  79. package/dist/SurfaceChart3DScene-PRCKQJQQ.mjs.gz +0 -0
  80. package/dist/chunk-4MYZW7XT.js.br +0 -0
  81. package/dist/chunk-4MYZW7XT.js.gz +0 -0
  82. package/dist/chunk-7Q7AEPO7.js.br +0 -0
  83. package/dist/chunk-7Q7AEPO7.js.gz +0 -0
  84. package/dist/chunk-LIQGO45T.mjs.br +0 -0
  85. package/dist/chunk-LIQGO45T.mjs.gz +0 -0
  86. package/dist/chunk-LTEDT475.js.br +0 -0
  87. package/dist/chunk-LTEDT475.js.gz +0 -0
  88. package/dist/chunk-MJAEB43A.js.br +0 -0
  89. package/dist/chunk-MJAEB43A.js.gz +0 -0
  90. package/dist/chunk-NVH3RIN7.js.br +0 -0
  91. package/dist/chunk-NVH3RIN7.js.gz +0 -0
  92. package/dist/chunk-SPSGMO5I.mjs.br +0 -0
  93. package/dist/chunk-SPSGMO5I.mjs.gz +0 -0
  94. package/dist/chunk-TGVID6BB.mjs.br +0 -0
  95. package/dist/chunk-TGVID6BB.mjs.gz +0 -0
  96. package/dist/chunk-VOV2N3NY.mjs.br +0 -0
  97. package/dist/chunk-VOV2N3NY.mjs.gz +0 -0
  98. package/dist/chunk-WJKMTDXS.mjs.br +0 -0
  99. package/dist/chunk-WJKMTDXS.mjs.gz +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk25VSL2BB_js = require('./chunk-25VSL2BB.js');
4
- var chunkLTEDT475_js = require('./chunk-LTEDT475.js');
4
+ var chunk23Q3I2LM_js = require('./chunk-23Q3I2LM.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 chunkLTEDT475_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunk23Q3I2LM_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 chunkLTEDT475_js.cloneHistorySnapshot(snapshot);
26
+ return chunk23Q3I2LM_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 = chunkLTEDT475_js.SHAPE_PRESET_DEFS.map(
136
+ var SHAPE_PRESETS = chunk23Q3I2LM_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 (!chunkLTEDT475_js.hasShapeProperties(element)) {
254
+ if (!chunk23Q3I2LM_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) => chunkLTEDT475_js.isTemplateElement(el));
265
+ const template = slide.elements.filter((el) => chunk23Q3I2LM_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) => !chunkLTEDT475_js.isTemplateElement(el)) };
270
+ return { ...slide, elements: slide.elements.filter((el) => !chunk23Q3I2LM_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 (!chunkLTEDT475_js.hasShapeProperties(element)) {
286
+ if (!chunk23Q3I2LM_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 = chunkLTEDT475_js.getRoundRectRadiusPx(element);
295
+ const radiusPx = chunk23Q3I2LM_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 = chunkLTEDT475_js.getResolvedShapeClipPath(element);
307
+ const clipPath = chunk23Q3I2LM_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 (!chunkLTEDT475_js.isImageLikeElement(element)) {
315
+ if (!chunk23Q3I2LM_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 = chunkLTEDT475_js.clampCropValue(element.cropLeft);
324
- const cropTop = chunkLTEDT475_js.clampCropValue(element.cropTop);
325
- const cropRight = chunkLTEDT475_js.clampCropValue(element.cropRight);
326
- const cropBottom = chunkLTEDT475_js.clampCropValue(element.cropBottom);
323
+ const cropLeft = chunk23Q3I2LM_js.clampCropValue(element.cropLeft);
324
+ const cropTop = chunk23Q3I2LM_js.clampCropValue(element.cropTop);
325
+ const cropRight = chunk23Q3I2LM_js.clampCropValue(element.cropRight);
326
+ const cropBottom = chunk23Q3I2LM_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 = chunkLTEDT475_js.clampCropValue(cropLeft * safeHorizontalScale);
339
- const normalizedRight = chunkLTEDT475_js.clampCropValue(cropRight * safeHorizontalScale);
340
- const normalizedTop = chunkLTEDT475_js.clampCropValue(cropTop * safeVerticalScale);
341
- const normalizedBottom = chunkLTEDT475_js.clampCropValue(cropBottom * safeVerticalScale);
338
+ const normalizedLeft = chunk23Q3I2LM_js.clampCropValue(cropLeft * safeHorizontalScale);
339
+ const normalizedRight = chunk23Q3I2LM_js.clampCropValue(cropRight * safeHorizontalScale);
340
+ const normalizedTop = chunk23Q3I2LM_js.clampCropValue(cropTop * safeVerticalScale);
341
+ const normalizedBottom = chunk23Q3I2LM_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 (!chunkLTEDT475_js.isImageLikeElement(element)) {
370
+ if (!chunk23Q3I2LM_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 (!chunkLTEDT475_js.isImageLikeElement(element)) {
380
+ if (!chunk23Q3I2LM_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 (!chunkLTEDT475_js.isImageLikeElement(element) || !isImageTiled(element)) {
438
+ if (!chunk23Q3I2LM_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 = chunkLTEDT475_js.parseMediaCommand(command.command);
722
+ const parsed = chunk23Q3I2LM_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 (!chunkLTEDT475_js.hasTextProperties(element)) {
1174
+ if (!chunk23Q3I2LM_js.hasTextProperties(element)) {
1175
1175
  return { color: fallbackColor };
1176
1176
  }
1177
1177
  const textDecorationTokens = [];
@@ -1185,20 +1185,20 @@ 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 ? chunkLTEDT475_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunkLTEDT475_js.normalizeHexColor(element.textStyle?.color, fallbackColor);
1188
+ const resolvedTextColor = element.textStyle?.hyperlink ? chunk23Q3I2LM_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunk23Q3I2LM_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 = chunkLTEDT475_js.toCssWritingMode(element.textStyle?.textDirection);
1194
- const textOrientation = chunkLTEDT475_js.toCssTextOrientation(element.textStyle?.textDirection);
1195
- const verticalDirection = chunkLTEDT475_js.toCssVerticalDirection(element.textStyle?.textDirection);
1193
+ const writingMode = chunk23Q3I2LM_js.toCssWritingMode(element.textStyle?.textDirection);
1194
+ const textOrientation = chunk23Q3I2LM_js.toCssTextOrientation(element.textStyle?.textDirection);
1195
+ const verticalDirection = chunk23Q3I2LM_js.toCssVerticalDirection(element.textStyle?.textDirection);
1196
1196
  const resolvedDirection = verticalDirection || (isRtl ? "rtl" : "ltr");
1197
1197
  const resolvedUnicodeBidi = isRtl ? "plaintext" : void 0;
1198
1198
  const hasSegments = (element.textSegments?.length ?? 0) > 0;
1199
1199
  return {
1200
1200
  color: resolvedTextColor,
1201
- backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunkLTEDT475_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
1201
+ backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunk23Q3I2LM_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
1202
1202
  textAlign: (() => {
1203
1203
  const a = element.textStyle?.align;
1204
1204
  if (a === "justLow" || a === "dist" || a === "thaiDist") {
@@ -1214,7 +1214,7 @@ function getTextStyleForElement(element, fallbackColor) {
1214
1214
  textDecorationLine: textDecorationTokens.length > 0 ? textDecorationTokens.join(" ") : "none",
1215
1215
  textDecorationStyle,
1216
1216
  fontFamily: element.textStyle?.fontFamily || DEFAULT_FONT_FAMILY,
1217
- lineHeight: chunkLTEDT475_js.resolveLineHeight(element.textStyle, hasItalicRuns),
1217
+ lineHeight: chunk23Q3I2LM_js.resolveLineHeight(element.textStyle, hasItalicRuns),
1218
1218
  paddingTop: bodyTop + (hasItalicRuns ? 1 : 0),
1219
1219
  paddingBottom: bodyBottom + (hasItalicRuns ? 1 : 0),
1220
1220
  paddingLeft: bodyLeft + (element.textStyle?.paragraphMarginLeft || 0),
@@ -1227,7 +1227,7 @@ function getTextStyleForElement(element, fallbackColor) {
1227
1227
  // Auto-fit: use OOXML-provided fontScale/lnSpcReduction when available,
1228
1228
  // otherwise fall back to heuristic estimation. The pure font-scale maths
1229
1229
  // now lives in pptx-viewer-shared (computeAutoFitTextStyle).
1230
- ...chunkLTEDT475_js.computeAutoFitTextStyle({
1230
+ ...chunk23Q3I2LM_js.computeAutoFitTextStyle({
1231
1231
  textStyle: element.textStyle,
1232
1232
  text: element.text ?? "",
1233
1233
  width: element.width,
@@ -1261,13 +1261,13 @@ function computeTabSize(tabStops, defaultTabSize) {
1261
1261
  return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
1262
1262
  }
1263
1263
  function getTextLayoutStyle(element) {
1264
- if (!chunkLTEDT475_js.hasTextProperties(element)) {
1264
+ if (!chunk23Q3I2LM_js.hasTextProperties(element)) {
1265
1265
  return {};
1266
1266
  }
1267
1267
  const verticalAlign = element.textStyle?.vAlign || "top";
1268
- const writingMode = chunkLTEDT475_js.toCssWritingMode(element.textStyle?.textDirection);
1269
- const textOrientation = chunkLTEDT475_js.toCssTextOrientation(element.textStyle?.textDirection);
1270
- const verticalDirection = chunkLTEDT475_js.toCssVerticalDirection(element.textStyle?.textDirection);
1268
+ const writingMode = chunk23Q3I2LM_js.toCssWritingMode(element.textStyle?.textDirection);
1269
+ const textOrientation = chunk23Q3I2LM_js.toCssTextOrientation(element.textStyle?.textDirection);
1270
+ const verticalDirection = chunk23Q3I2LM_js.toCssVerticalDirection(element.textStyle?.textDirection);
1271
1271
  const parsedColumnCount = Number(element.textStyle?.columnCount);
1272
1272
  const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
1273
1273
  const hasColumns = columnCount > 1;
@@ -1275,7 +1275,7 @@ function getTextLayoutStyle(element) {
1275
1275
  const tabStops = element.textStyle?.tabStops;
1276
1276
  const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
1277
1277
  const textWrapNone = element.textStyle?.textWrap === "none";
1278
- const hasParagraphIndents = chunkLTEDT475_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
1278
+ const hasParagraphIndents = chunk23Q3I2LM_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
1279
1279
  const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
1280
1280
  const paragraphIndent = element.textStyle?.paragraphIndent;
1281
1281
  const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
@@ -1284,7 +1284,7 @@ function getTextLayoutStyle(element) {
1284
1284
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
1285
1285
  const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
1286
1286
  const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
1287
- const kinsokuStyles = chunkLTEDT475_js.getKinsokuLineBreakStyles(element.textStyle);
1287
+ const kinsokuStyles = chunk23Q3I2LM_js.getKinsokuLineBreakStyles(element.textStyle);
1288
1288
  if (hasColumns) {
1289
1289
  return {
1290
1290
  display: "block",
@@ -1331,10 +1331,10 @@ function getTextLayoutStyle(element) {
1331
1331
 
1332
1332
  // src/viewer/utils/text-effects.tsx
1333
1333
  function buildTextFillCss2(style) {
1334
- return chunkLTEDT475_js.buildTextFillCss(style);
1334
+ return chunk23Q3I2LM_js.buildTextFillCss(style);
1335
1335
  }
1336
1336
  function buildTextBody3DSceneStyle2(textStyle) {
1337
- return chunkLTEDT475_js.buildTextBody3DSceneStyle(textStyle);
1337
+ return chunk23Q3I2LM_js.buildTextBody3DSceneStyle(textStyle);
1338
1338
  }
1339
1339
 
1340
1340
  // src/viewer/utils/text-warp-css.tsx
@@ -1519,13 +1519,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1519
1519
  if (!subElementAnimStates || subElementAnimStates.size === 0) {
1520
1520
  return renderedSegments;
1521
1521
  }
1522
- const paraKey = `${elementId}${chunkLTEDT475_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1522
+ const paraKey = `${elementId}${chunk23Q3I2LM_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1523
1523
  const paraState = subElementAnimStates.get(paraKey);
1524
1524
  if (paraState) {
1525
1525
  const style = buildAnimStyle(paraState);
1526
1526
  return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
1527
1527
  }
1528
- const spec = chunkLTEDT475_js.buildTextBuildSpec(
1528
+ const spec = chunk23Q3I2LM_js.buildTextBuildSpec(
1529
1529
  elementId,
1530
1530
  paraIndex,
1531
1531
  paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
@@ -1543,7 +1543,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1543
1543
  "span",
1544
1544
  {
1545
1545
  "data-anim-id": span.animId,
1546
- style: chunkLTEDT475_js.textBuildSpanStyle(span),
1546
+ style: chunk23Q3I2LM_js.textBuildSpanStyle(span),
1547
1547
  children: content
1548
1548
  },
1549
1549
  span.animId
@@ -1687,10 +1687,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1687
1687
  if (!needsScriptFonts || !text) {
1688
1688
  return text;
1689
1689
  }
1690
- const runs = chunkLTEDT475_js.segmentByScript(text);
1690
+ const runs = chunk23Q3I2LM_js.segmentByScript(text);
1691
1691
  if (runs.length <= 1) {
1692
1692
  if (runs.length === 1) {
1693
- const font = chunkLTEDT475_js.resolveFontForScript(runs[0].script, scriptFonts);
1693
+ const font = chunk23Q3I2LM_js.resolveFontForScript(runs[0].script, scriptFonts);
1694
1694
  if (font && font !== baseFontFamily) {
1695
1695
  return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
1696
1696
  }
@@ -1698,7 +1698,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1698
1698
  return text;
1699
1699
  }
1700
1700
  return runs.map((run, i) => {
1701
- const font = chunkLTEDT475_js.resolveFontForScript(run.script, scriptFonts);
1701
+ const font = chunk23Q3I2LM_js.resolveFontForScript(run.script, scriptFonts);
1702
1702
  if (!font || font === baseFontFamily) {
1703
1703
  return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
1704
1704
  }
@@ -1770,8 +1770,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
1770
1770
  );
1771
1771
  }
1772
1772
  function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
1773
- const mathml = chunkLTEDT475_js.convertOmmlToMathMl(equationXml);
1774
- const safeMathml = mathml ? chunkLTEDT475_js.sanitizeMathMl(mathml) : "";
1773
+ const mathml = chunk23Q3I2LM_js.convertOmmlToMathMl(equationXml);
1774
+ const safeMathml = mathml ? chunk23Q3I2LM_js.sanitizeMathMl(mathml) : "";
1775
1775
  const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
1776
1776
  "span",
1777
1777
  {
@@ -1821,7 +1821,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
1821
1821
  return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
1822
1822
  }
1823
1823
  function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
1824
- const picture = chunkLTEDT475_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
1824
+ const picture = chunk23Q3I2LM_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
1825
1825
  sizePx: baseFontSize,
1826
1826
  fallbackMarker: "\u2022",
1827
1827
  accessibleLabel: "Bullet"
@@ -1871,7 +1871,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1871
1871
  );
1872
1872
  }
1873
1873
  const segmentStyle = segment.style || {};
1874
- const textValue = chunkLTEDT475_js.substituteFieldText(segment.text || "", segment.fieldType, fieldContext);
1874
+ const textValue = chunk23Q3I2LM_js.substituteFieldText(segment.text || "", segment.fieldType, fieldContext);
1875
1875
  const lines = textValue.split("\n");
1876
1876
  const textDecorationTokens = [];
1877
1877
  if (segmentStyle.underline || segmentStyle.hyperlink) {
@@ -1881,8 +1881,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1881
1881
  textDecorationTokens.push("line-through");
1882
1882
  }
1883
1883
  const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
1884
- const resolvedSegmentColor = segmentStyle.hyperlink ? chunkLTEDT475_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkLTEDT475_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
1885
- const underlineDecoration = chunkLTEDT475_js.resolveUnderlineDecorationStyle(
1884
+ const resolvedSegmentColor = segmentStyle.hyperlink ? chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
1885
+ const underlineDecoration = chunk23Q3I2LM_js.resolveUnderlineDecorationStyle(
1886
1886
  Boolean(isDoubleStrike),
1887
1887
  segmentStyle.underlineStyle
1888
1888
  );
@@ -1898,14 +1898,14 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1898
1898
  const baseFontSizePt = baseFontSize * (72 / 96);
1899
1899
  const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
1900
1900
  const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
1901
- const baseFontFamily = rawFontFamily ? chunkLTEDT475_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
1901
+ const baseFontFamily = rawFontFamily ? chunk23Q3I2LM_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
1902
1902
  const scriptFonts = {
1903
1903
  latin: baseFontFamily,
1904
1904
  eastAsia: segmentStyle.eastAsiaFont || element.textStyle?.eastAsiaFont || baseFontFamily,
1905
1905
  complexScript: segmentStyle.complexScriptFont || element.textStyle?.complexScriptFont || baseFontFamily,
1906
1906
  symbol: segmentStyle.symbolFont || element.textStyle?.symbolFont || baseFontFamily
1907
1907
  };
1908
- const needsScriptFonts = chunkLTEDT475_js.hasDistinctScriptFonts(scriptFonts);
1908
+ const needsScriptFonts = chunk23Q3I2LM_js.hasDistinctScriptFonts(scriptFonts);
1909
1909
  const spanStyle = {
1910
1910
  color: resolvedSegmentColor,
1911
1911
  fontSize: baseFontSize * baselineFontScale,
@@ -1923,15 +1923,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1923
1923
  fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
1924
1924
  letterSpacing,
1925
1925
  fontKerning,
1926
- backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkLTEDT475_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
1926
+ backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
1927
1927
  ...textFillStyles,
1928
- textDecorationColor: segmentStyle.underlineColor ? chunkLTEDT475_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
1929
- WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkLTEDT475_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
1928
+ textDecorationColor: segmentStyle.underlineColor ? chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
1929
+ WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunk23Q3I2LM_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
1930
1930
  paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
1931
- textShadow: chunkLTEDT475_js.buildTextShadowCss(segmentStyle),
1932
- filter: chunkLTEDT475_js.buildTextRunFilterChain(segmentStyle),
1933
- opacity: chunkLTEDT475_js.getTextAlphaOpacity(segmentStyle),
1934
- WebkitBoxReflect: chunkLTEDT475_js.buildTextReflectionCss(segmentStyle)
1931
+ textShadow: chunk23Q3I2LM_js.buildTextShadowCss(segmentStyle),
1932
+ filter: chunk23Q3I2LM_js.buildTextRunFilterChain(segmentStyle),
1933
+ opacity: chunk23Q3I2LM_js.getTextAlphaOpacity(segmentStyle),
1934
+ WebkitBoxReflect: chunk23Q3I2LM_js.buildTextReflectionCss(segmentStyle)
1935
1935
  };
1936
1936
  const runRtl = segmentStyle.rtl;
1937
1937
  if (runRtl !== void 0 && runRtl !== paragraphRtl) {
@@ -1951,7 +1951,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1951
1951
  spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
1952
1952
  }
1953
1953
  if (bulletInfo.color) {
1954
- spanStyle.color = chunkLTEDT475_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
1954
+ spanStyle.color = chunk23Q3I2LM_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
1955
1955
  }
1956
1956
  }
1957
1957
  if (bulletInfo?.imageDataUrl || bulletInfo?.imageRelId) {
@@ -1991,7 +1991,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1991
1991
  textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
1992
1992
  };
1993
1993
  if (segment.rubyStyle?.color) {
1994
- rubyStyle.color = chunkLTEDT475_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
1994
+ rubyStyle.color = chunk23Q3I2LM_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
1995
1995
  }
1996
1996
  innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
1997
1997
  baseContent,
@@ -2086,7 +2086,7 @@ function groupSegmentsIntoParagraphs(segments) {
2086
2086
  return paragraphs;
2087
2087
  }
2088
2088
  function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
2089
- if (!chunkLTEDT475_js.hasTextProperties(element)) {
2089
+ if (!chunk23Q3I2LM_js.hasTextProperties(element)) {
2090
2090
  return emptyFallback || null;
2091
2091
  }
2092
2092
  const effectiveSegments = segmentOverrides ?? element.textSegments;
@@ -2107,10 +2107,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2107
2107
  return element.text || emptyFallback || "";
2108
2108
  }
2109
2109
  const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
2110
- const paragraphIndents = chunkLTEDT475_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
2111
- const elementRtl = chunkLTEDT475_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
2112
- const elementAlign = chunkLTEDT475_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
2113
- const bodyStyle = chunkLTEDT475_js.hasTextProperties(element) ? element.textStyle : void 0;
2110
+ const paragraphIndents = chunk23Q3I2LM_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
2111
+ const elementRtl = chunk23Q3I2LM_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
2112
+ const elementAlign = chunk23Q3I2LM_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
2113
+ const bodyStyle = chunk23Q3I2LM_js.hasTextProperties(element) ? element.textStyle : void 0;
2114
2114
  const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
2115
2115
  return paragraphs.map((paraSegments, paraIndex) => {
2116
2116
  const paraIndent = paragraphIndents?.[paraIndex];
@@ -2125,14 +2125,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2125
2125
  return Boolean(segment.text) && segment.text.trim().length > 0;
2126
2126
  });
2127
2127
  const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
2128
- const paraRtl = chunkLTEDT475_js.resolveParagraphRtl(paraSegments, elementRtl);
2128
+ const paraRtl = chunk23Q3I2LM_js.resolveParagraphRtl(paraSegments, elementRtl);
2129
2129
  const isRtlParagraph = paraRtl === true;
2130
- const paraAlign = chunkLTEDT475_js.resolveParagraphAlign(paraSegments, elementAlign);
2131
- const cssTextAlign = chunkLTEDT475_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
2130
+ const paraAlign = chunk23Q3I2LM_js.resolveParagraphAlign(paraSegments, elementAlign);
2131
+ const cssTextAlign = chunk23Q3I2LM_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
2132
2132
  const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
2133
2133
  const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
2134
2134
  const paraTextIndent = rawTextIndent;
2135
- const paraKinsokuStyle = chunkLTEDT475_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
2135
+ const paraKinsokuStyle = chunk23Q3I2LM_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
2136
2136
  const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
2137
2137
  const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties;
2138
2138
  const spacing = resolveParagraphSpacing({
@@ -2234,13 +2234,13 @@ function hexToRgbUnit(hex) {
2234
2234
  };
2235
2235
  }
2236
2236
  function getDuotoneColors(element) {
2237
- if (!chunkLTEDT475_js.isImageLikeElement(element)) {
2237
+ if (!chunk23Q3I2LM_js.isImageLikeElement(element)) {
2238
2238
  return void 0;
2239
2239
  }
2240
2240
  return element.imageEffects?.duotone;
2241
2241
  }
2242
2242
  function buildLineShadowCss(element) {
2243
- if (!chunkLTEDT475_js.hasShapeProperties(element)) {
2243
+ if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
2244
2244
  return void 0;
2245
2245
  }
2246
2246
  const ss = element.shapeStyle;
@@ -2251,13 +2251,13 @@ function buildLineShadowCss(element) {
2251
2251
  const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
2252
2252
  const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
2253
2253
  const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
2254
- return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkLTEDT475_js.colorWithOpacity(
2255
- chunkLTEDT475_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
2254
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunk23Q3I2LM_js.colorWithOpacity(
2255
+ chunk23Q3I2LM_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
2256
2256
  opacity
2257
2257
  )}`;
2258
2258
  }
2259
2259
  function buildLineGlowFilter(element) {
2260
- if (!chunkLTEDT475_js.hasShapeProperties(element)) {
2260
+ if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
2261
2261
  return void 0;
2262
2262
  }
2263
2263
  const ss = element.shapeStyle;
@@ -2266,7 +2266,7 @@ function buildLineGlowFilter(element) {
2266
2266
  }
2267
2267
  const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
2268
2268
  const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
2269
- const glowCol = chunkLTEDT475_js.colorWithOpacity(chunkLTEDT475_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
2269
+ const glowCol = chunk23Q3I2LM_js.colorWithOpacity(chunk23Q3I2LM_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
2270
2270
  return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
2271
2271
  }
2272
2272
  function mapDagBlendModeToCss(blend) {
@@ -2290,7 +2290,7 @@ function getDagDuotoneFilterId(elementId) {
2290
2290
  return `dag-duotone-${elementId}`;
2291
2291
  }
2292
2292
  function hasDagDuotoneEffect(element) {
2293
- if (!chunkLTEDT475_js.hasShapeProperties(element)) {
2293
+ if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
2294
2294
  return false;
2295
2295
  }
2296
2296
  return Boolean(element.shapeStyle?.dagDuotone);
@@ -2353,7 +2353,7 @@ function getRoundRectRadiusPx2(element) {
2353
2353
 
2354
2354
  // src/viewer/utils/shape-visual-3d.ts
2355
2355
  function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
2356
- return chunkLTEDT475_js.build3DExtrusionData(
2356
+ return chunk23Q3I2LM_js.build3DExtrusionData(
2357
2357
  shape3d,
2358
2358
  scene3d,
2359
2359
  fillColor,
@@ -2362,7 +2362,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
2362
2362
  );
2363
2363
  }
2364
2364
  function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
2365
- chunkLTEDT475_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
2365
+ chunk23Q3I2LM_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
2366
2366
  }
2367
2367
 
2368
2368
  // src/viewer/utils/vector-subpath-paint.ts
@@ -2371,7 +2371,7 @@ function toHexByte(value) {
2371
2371
  return clamped.toString(16).padStart(2, "0");
2372
2372
  }
2373
2373
  function shiftHex(hex, factor, towardsWhite) {
2374
- const channels = chunkLTEDT475_js.hexToRgbChannels(hex);
2374
+ const channels = chunk23Q3I2LM_js.hexToRgbChannels(hex);
2375
2375
  if (!channels) {
2376
2376
  return hex;
2377
2377
  }
@@ -2397,13 +2397,13 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
2397
2397
  const fillOff = subpath.fillMode === "none" || !hasFill;
2398
2398
  return {
2399
2399
  d: subpath.d,
2400
- fill: fillOff ? "none" : chunkLTEDT475_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2400
+ fill: fillOff ? "none" : chunk23Q3I2LM_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2401
2401
  stroked: subpath.stroke !== false
2402
2402
  };
2403
2403
  });
2404
2404
  }
2405
2405
  function getStrokeOnlyPresetPaths(element) {
2406
- if (element.type !== "shape" || !chunkLTEDT475_js.hasShapeProperties(element)) {
2406
+ if (element.type !== "shape" || !chunk23Q3I2LM_js.hasShapeProperties(element)) {
2407
2407
  return void 0;
2408
2408
  }
2409
2409
  const shapeType = element.shapeType;
@@ -2413,7 +2413,7 @@ function getStrokeOnlyPresetPaths(element) {
2413
2413
  if (element.pathData) {
2414
2414
  return void 0;
2415
2415
  }
2416
- const result = chunkLTEDT475_js.evaluatePresetShape(
2416
+ const result = chunk23Q3I2LM_js.evaluatePresetShape(
2417
2417
  shapeType,
2418
2418
  Math.max(element.width, 1),
2419
2419
  Math.max(element.height, 1),
@@ -2428,27 +2428,27 @@ function getStrokeOnlyPresetPaths(element) {
2428
2428
 
2429
2429
  // src/viewer/utils/shape-visual-style.ts
2430
2430
  function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2431
- if (!chunkLTEDT475_js.hasShapeProperties(element)) {
2431
+ if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
2432
2432
  return {};
2433
2433
  }
2434
2434
  const normalizedShapeType = getShapeType(element.shapeType);
2435
- const clipPath = chunkLTEDT475_js.getResolvedShapeClipPath(element);
2435
+ const clipPath = chunk23Q3I2LM_js.getResolvedShapeClipPath(element);
2436
2436
  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;
2437
2437
  const rendersStrokeOnlyPreset = Boolean(getStrokeOnlyPresetPaths(element));
2438
2438
  const fillOpacity = element.shapeStyle?.fillOpacity;
2439
2439
  const strokeOpacity = element.shapeStyle?.strokeOpacity;
2440
- const strokeDash = chunkLTEDT475_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2441
- const fillGradient = chunkLTEDT475_js.buildCssGradientFromShapeStyle(element.shapeStyle) || element.shapeStyle?.fillGradient;
2442
- const shadowCss = chunkLTEDT475_js.buildShadowCssFromShapeStyle(element.shapeStyle);
2443
- const innerShadowCss = chunkLTEDT475_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
2444
- const resolvedFillColor = chunkLTEDT475_js.colorWithOpacity(fillColor, fillOpacity);
2445
- const resolvedStrokeColor = chunkLTEDT475_js.colorWithOpacity(strokeColor, strokeOpacity);
2440
+ const strokeDash = chunk23Q3I2LM_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2441
+ const fillGradient = chunk23Q3I2LM_js.buildCssGradientFromShapeStyle(element.shapeStyle) || element.shapeStyle?.fillGradient;
2442
+ const shadowCss = chunk23Q3I2LM_js.buildShadowCssFromShapeStyle(element.shapeStyle);
2443
+ const innerShadowCss = chunk23Q3I2LM_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
2444
+ const resolvedFillColor = chunk23Q3I2LM_js.colorWithOpacity(fillColor, fillOpacity);
2445
+ const resolvedStrokeColor = chunk23Q3I2LM_js.colorWithOpacity(strokeColor, strokeOpacity);
2446
2446
  const ss = element.shapeStyle;
2447
2447
  const hasFillOverlayColor = Boolean(
2448
2448
  ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
2449
2449
  );
2450
2450
  const combinedShadowParts = [];
2451
- const multiLayerShadow = chunkLTEDT475_js.buildMultiLayerShadowCss(element.shapeStyle);
2451
+ const multiLayerShadow = chunk23Q3I2LM_js.buildMultiLayerShadowCss(element.shapeStyle);
2452
2452
  if (multiLayerShadow) {
2453
2453
  combinedShadowParts.push(multiLayerShadow);
2454
2454
  } else if (shadowCss) {
@@ -2457,7 +2457,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2457
2457
  if (innerShadowCss) {
2458
2458
  combinedShadowParts.push(innerShadowCss);
2459
2459
  }
2460
- const glowBoxShadow = chunkLTEDT475_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
2460
+ const glowBoxShadow = chunk23Q3I2LM_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
2461
2461
  if (glowBoxShadow) {
2462
2462
  combinedShadowParts.push(glowBoxShadow);
2463
2463
  }
@@ -2465,7 +2465,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2465
2465
  if (lineShadow) {
2466
2466
  combinedShadowParts.push(lineShadow);
2467
2467
  }
2468
- const compoundLineShadow = chunkLTEDT475_js.getCompoundLineBoxShadow(
2468
+ const compoundLineShadow = chunk23Q3I2LM_js.getCompoundLineBoxShadow(
2469
2469
  element.shapeStyle?.compoundLine,
2470
2470
  strokeWidth,
2471
2471
  resolvedStrokeColor
@@ -2478,11 +2478,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2478
2478
  if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
2479
2479
  const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
2480
2480
  const glowRad = Math.round(Math.max(0, ss.glowRadius));
2481
- const glowCol = chunkLTEDT475_js.colorWithOpacity(chunkLTEDT475_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
2481
+ const glowCol = chunk23Q3I2LM_js.colorWithOpacity(chunk23Q3I2LM_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
2482
2482
  filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
2483
2483
  }
2484
2484
  if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
2485
- filterParts.push(`url(#${chunkLTEDT475_js.getSoftEdgeFilterId(element.id)})`);
2485
+ filterParts.push(`url(#${chunk23Q3I2LM_js.getSoftEdgeFilterId(element.id)})`);
2486
2486
  }
2487
2487
  if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
2488
2488
  filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
@@ -2491,13 +2491,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2491
2491
  if (lineGlowCss) {
2492
2492
  filterParts.push(lineGlowCss);
2493
2493
  }
2494
- const dagFilter = chunkLTEDT475_js.getEffectDagFilter(ss, element.id);
2494
+ const dagFilter = chunk23Q3I2LM_js.getEffectDagFilter(ss, element.id);
2495
2495
  if (dagFilter) {
2496
2496
  filterParts.push(dagFilter);
2497
2497
  }
2498
2498
  const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
2499
2499
  const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
2500
- const patternFill = chunkLTEDT475_js.buildPatternFillCss(element.shapeStyle);
2500
+ const patternFill = chunk23Q3I2LM_js.buildPatternFillCss(element.shapeStyle);
2501
2501
  const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
2502
2502
  const imageFillMode = ss?.fillImageMode || "stretch";
2503
2503
  let reflectCss;
@@ -2509,7 +2509,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2509
2509
  const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
2510
2510
  const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
2511
2511
  const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
2512
- reflectCss = chunkLTEDT475_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
2512
+ reflectCss = chunk23Q3I2LM_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
2513
2513
  }
2514
2514
  }
2515
2515
  const base = {
@@ -2543,9 +2543,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2543
2543
  // is present, `ShapeEffectOverlay` paints a separate blended tint layer so
2544
2544
  // the colour is actually rendered (and text/children are not tinted).
2545
2545
  mixBlendMode: hasFillOverlayColor ? void 0 : mapDagBlendModeToCss(ss?.dagFillOverlayBlend),
2546
- borderWidth: strokeWidth > 0 ? chunkLTEDT475_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : void 0,
2546
+ borderWidth: strokeWidth > 0 ? chunk23Q3I2LM_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : void 0,
2547
2547
  borderColor: strokeWidth > 0 ? resolvedStrokeColor : void 0,
2548
- borderStyle: strokeWidth > 0 ? chunkLTEDT475_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
2548
+ borderStyle: strokeWidth > 0 ? chunk23Q3I2LM_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
2549
2549
  strokeLinejoin: lineJoinCss,
2550
2550
  strokeMiterlimit: miterLimitCss,
2551
2551
  strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
@@ -2601,7 +2601,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2601
2601
  borderWidth: 0,
2602
2602
  borderTopWidth: Math.max(strokeWidth, 2),
2603
2603
  borderTopColor: resolvedStrokeColor,
2604
- borderTopStyle: chunkLTEDT475_js.getCssBorderDashStyle(strokeDash)
2604
+ borderTopStyle: chunk23Q3I2LM_js.getCssBorderDashStyle(strokeDash)
2605
2605
  };
2606
2606
  }
2607
2607
  if (normalizedShapeType === "cylinder") {
@@ -2615,13 +2615,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2615
2615
  function getConnectorAdjustment(element, key, fallback) {
2616
2616
  const direct = element.shapeAdjustments?.[key];
2617
2617
  if (typeof direct === "number" && Number.isFinite(direct)) {
2618
- return chunkLTEDT475_js.clampUnitInterval(direct / 1e5);
2618
+ return chunk23Q3I2LM_js.clampUnitInterval(direct / 1e5);
2619
2619
  }
2620
2620
  const fallbackKey = element.shapeAdjustments?.adj;
2621
2621
  if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
2622
- return chunkLTEDT475_js.clampUnitInterval(fallbackKey / 1e5);
2622
+ return chunk23Q3I2LM_js.clampUnitInterval(fallbackKey / 1e5);
2623
2623
  }
2624
- return chunkLTEDT475_js.clampUnitInterval(fallback);
2624
+ return chunk23Q3I2LM_js.clampUnitInterval(fallback);
2625
2625
  }
2626
2626
  function getConnectorPathGeometry(element) {
2627
2627
  const width = Math.max(element.width, 1);
@@ -2758,11 +2758,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
2758
2758
  strokePaint,
2759
2759
  strokeWidth,
2760
2760
  dashArray,
2761
- lineCap: chunkLTEDT475_js.svgLineCap(shapeStyle?.lineCap),
2761
+ lineCap: chunk23Q3I2LM_js.svgLineCap(shapeStyle?.lineCap),
2762
2762
  lineJoin,
2763
2763
  miterLimit,
2764
- offsets: chunkLTEDT475_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2765
- widths: chunkLTEDT475_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2764
+ offsets: chunk23Q3I2LM_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2765
+ widths: chunk23Q3I2LM_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2766
2766
  };
2767
2767
  }
2768
2768
  function strokeStrands(d, keyBase, ctx) {
@@ -2785,7 +2785,7 @@ function strokeStrands(d, keyBase, ctx) {
2785
2785
  }
2786
2786
  function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false) {
2787
2787
  const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
2788
- const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkLTEDT475_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2788
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunk23Q3I2LM_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2789
2789
  const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
2790
2790
  const nodes = [];
2791
2791
  if (subpaths && needsPerSubpath) {
@@ -2816,7 +2816,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2816
2816
  "path",
2817
2817
  {
2818
2818
  d: pathData,
2819
- fill: animatesFill ? "inherit" : chunkLTEDT475_js.colorWithOpacity(fillColor, fillOpacity),
2819
+ fill: animatesFill ? "inherit" : chunk23Q3I2LM_js.colorWithOpacity(fillColor, fillOpacity),
2820
2820
  stroke: "none",
2821
2821
  vectorEffect: "non-scaling-stroke"
2822
2822
  },
@@ -2858,14 +2858,14 @@ function renderStrokeOnlyPreset(presetPaths, width, height, shapeStyle, strokePa
2858
2858
  );
2859
2859
  }
2860
2860
  function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2861
- if (!chunkLTEDT475_js.hasShapeProperties(element)) {
2861
+ if (!chunk23Q3I2LM_js.hasShapeProperties(element)) {
2862
2862
  return null;
2863
2863
  }
2864
2864
  const normalizedType = (element.shapeType || "").toLowerCase();
2865
- const fillPaint = animatesFill ? "inherit" : chunkLTEDT475_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2866
- const strokePaint = animatesStroke ? "inherit" : chunkLTEDT475_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2867
- const dashType = chunkLTEDT475_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2868
- const dashArray = chunkLTEDT475_js.getSvgStrokeDasharray(
2865
+ const fillPaint = animatesFill ? "inherit" : chunk23Q3I2LM_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2866
+ const strokePaint = animatesStroke ? "inherit" : chunk23Q3I2LM_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2867
+ const dashType = chunk23Q3I2LM_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2868
+ const dashArray = chunk23Q3I2LM_js.getSvgStrokeDasharray(
2869
2869
  dashType,
2870
2870
  Math.max(strokeWidth, 1),
2871
2871
  element.shapeStyle?.customDashSegments
@@ -2944,18 +2944,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2944
2944
  Boolean(animatesFill)
2945
2945
  );
2946
2946
  }
2947
- if (chunkLTEDT475_js.isCalloutShape(normalizedType)) {
2947
+ if (chunk23Q3I2LM_js.isCalloutShape(normalizedType)) {
2948
2948
  const width = Math.max(element.width, 1);
2949
2949
  const height = Math.max(element.height, 1);
2950
- const geometry = chunkLTEDT475_js.getCalloutLeaderLineGeometry(
2950
+ const geometry = chunk23Q3I2LM_js.getCalloutLeaderLineGeometry(
2951
2951
  normalizedType,
2952
2952
  width,
2953
2953
  height,
2954
2954
  element.shapeAdjustments
2955
2955
  );
2956
2956
  if (geometry && geometry.points.length >= 2) {
2957
- const leaderPath = chunkLTEDT475_js.buildCalloutLeaderLineSvgPath(geometry);
2958
- const bounds = chunkLTEDT475_js.getCalloutViewBoxBounds(width, height, geometry);
2957
+ const leaderPath = chunk23Q3I2LM_js.buildCalloutLeaderLineSvgPath(geometry);
2958
+ const bounds = chunk23Q3I2LM_js.getCalloutViewBoxBounds(width, height, geometry);
2959
2959
  const lineStroke = Math.max(strokeWidth, 1);
2960
2960
  const offsetLeft = bounds.minX;
2961
2961
  const offsetTop = bounds.minY;
@@ -3018,10 +3018,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
3018
3018
  const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
3019
3019
  const endArrowL = element.shapeStyle?.connectorEndArrowLength;
3020
3020
  const compoundLine = element.shapeStyle?.compoundLine;
3021
- const connectorLineCap = chunkLTEDT475_js.svgLineCap(element.shapeStyle?.lineCap);
3021
+ const connectorLineCap = chunk23Q3I2LM_js.svgLineCap(element.shapeStyle?.lineCap);
3022
3022
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
3023
- const offsets = chunkLTEDT475_js.getCompoundLineOffsets(compoundLine, strokeWidth);
3024
- const widths = chunkLTEDT475_js.getCompoundLineWidths(compoundLine, strokeWidth);
3023
+ const offsets = chunk23Q3I2LM_js.getCompoundLineOffsets(compoundLine, strokeWidth);
3024
+ const widths = chunk23Q3I2LM_js.getCompoundLineWidths(compoundLine, strokeWidth);
3025
3025
  return /* @__PURE__ */ jsxRuntime.jsxs(
3026
3026
  "svg",
3027
3027
  {
@@ -3100,15 +3100,15 @@ function parseGradientFillCss(gradFill) {
3100
3100
  }
3101
3101
  const parsed = stops.map((gs) => {
3102
3102
  const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
3103
- const color = chunkLTEDT475_js.parseDrawingColor(gs) ?? "#888888";
3104
- const opacity = chunkLTEDT475_js.parseDrawingColorOpacity(gs);
3105
- return { pos, color: chunkLTEDT475_js.colorWithOpacity(color, opacity) };
3103
+ const color = chunk23Q3I2LM_js.parseDrawingColor(gs) ?? "#888888";
3104
+ const opacity = chunk23Q3I2LM_js.parseDrawingColorOpacity(gs);
3105
+ return { pos, color: chunk23Q3I2LM_js.colorWithOpacity(color, opacity) };
3106
3106
  }).sort((a, b) => a.pos - b.pos);
3107
3107
  const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
3108
3108
  const lin = gradFill["a:lin"];
3109
3109
  if (lin) {
3110
3110
  const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
3111
- const angleDeg = Math.round(chunkLTEDT475_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
3111
+ const angleDeg = Math.round(chunk23Q3I2LM_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
3112
3112
  return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
3113
3113
  }
3114
3114
  const path = gradFill["a:path"];
@@ -3143,8 +3143,8 @@ function parsePatternFillCss(pattFill) {
3143
3143
  if (!pattFill) {
3144
3144
  return void 0;
3145
3145
  }
3146
- const fgColor = chunkLTEDT475_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
3147
- const bgColor = chunkLTEDT475_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
3146
+ const fgColor = chunk23Q3I2LM_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
3147
+ const bgColor = chunk23Q3I2LM_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
3148
3148
  const preset = String(pattFill["@_prst"] || "ltDnDiag");
3149
3149
  switch (preset) {
3150
3150
  case "ltHorz":
@@ -3255,11 +3255,11 @@ function parseCellBorders(cellProperties) {
3255
3255
  const prstDash = ln["a:prstDash"];
3256
3256
  const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
3257
3257
  const cssBorderStyle = ooxmlDashToCss(dashVal);
3258
- const color = chunkLTEDT475_js.parseDrawingColor(ln["a:solidFill"]);
3258
+ const color = chunk23Q3I2LM_js.parseDrawingColor(ln["a:solidFill"]);
3259
3259
  if (color) {
3260
- const opacity = chunkLTEDT475_js.parseDrawingColorOpacity(ln["a:solidFill"]);
3260
+ const opacity = chunk23Q3I2LM_js.parseDrawingColorOpacity(ln["a:solidFill"]);
3261
3261
  const key = `${edge.prefix}`;
3262
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkLTEDT475_js.colorWithOpacity(color, opacity)}`;
3262
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunk23Q3I2LM_js.colorWithOpacity(color, opacity)}`;
3263
3263
  }
3264
3264
  }
3265
3265
  return borderStyle;
@@ -3272,7 +3272,7 @@ function parseCellTextEffects(runProps) {
3272
3272
  const textShadowParts = [];
3273
3273
  const outerShdw = effectLst["a:outerShdw"];
3274
3274
  if (outerShdw) {
3275
- const shdwColor = chunkLTEDT475_js.parseDrawingColor(outerShdw);
3275
+ const shdwColor = chunk23Q3I2LM_js.parseDrawingColor(outerShdw);
3276
3276
  if (shdwColor) {
3277
3277
  const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
3278
3278
  const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
@@ -3290,7 +3290,7 @@ function parseCellTextEffects(runProps) {
3290
3290
  }
3291
3291
  const glow = effectLst["a:glow"];
3292
3292
  if (glow) {
3293
- const glowColor = chunkLTEDT475_js.parseDrawingColor(glow);
3293
+ const glowColor = chunk23Q3I2LM_js.parseDrawingColor(glow);
3294
3294
  if (glowColor) {
3295
3295
  const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
3296
3296
  const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
@@ -3369,10 +3369,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3369
3369
  if (runProps?.["@_u"] !== void 0) {
3370
3370
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
3371
3371
  }
3372
- const runColor = chunkLTEDT475_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkLTEDT475_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
3372
+ const runColor = chunk23Q3I2LM_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunk23Q3I2LM_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
3373
3373
  if (runColor) {
3374
- const opacity = chunkLTEDT475_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
3375
- cellStyle.color = chunkLTEDT475_js.colorWithOpacity(runColor, opacity);
3374
+ const opacity = chunk23Q3I2LM_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
3375
+ cellStyle.color = chunk23Q3I2LM_js.colorWithOpacity(runColor, opacity);
3376
3376
  }
3377
3377
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
3378
3378
  if (fontFamily) {
@@ -3382,15 +3382,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3382
3382
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
3383
3383
  }
3384
3384
  const cellProperties = cellXml["a:tcPr"];
3385
- const cellFill = chunkLTEDT475_js.parseDrawingColor(
3385
+ const cellFill = chunk23Q3I2LM_js.parseDrawingColor(
3386
3386
  cellProperties?.["a:solidFill"],
3387
3387
  schemeColorOverrides
3388
3388
  );
3389
3389
  if (cellFill) {
3390
- const opacity = chunkLTEDT475_js.parseDrawingColorOpacity(
3390
+ const opacity = chunk23Q3I2LM_js.parseDrawingColorOpacity(
3391
3391
  cellProperties?.["a:solidFill"]
3392
3392
  );
3393
- cellStyle.backgroundColor = chunkLTEDT475_js.colorWithOpacity(cellFill, opacity);
3393
+ cellStyle.backgroundColor = chunk23Q3I2LM_js.colorWithOpacity(cellFill, opacity);
3394
3394
  } else {
3395
3395
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
3396
3396
  if (gradCss) {
@@ -3405,16 +3405,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3405
3405
  const edgeBorders = parseCellBorders(cellProperties);
3406
3406
  Object.assign(cellStyle, edgeBorders);
3407
3407
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
3408
- const borderColor = chunkLTEDT475_js.parseDrawingColor(
3408
+ const borderColor = chunk23Q3I2LM_js.parseDrawingColor(
3409
3409
  cellProperties?.["a:lnL"]?.["a:solidFill"],
3410
3410
  schemeColorOverrides
3411
- ) || chunkLTEDT475_js.parseDrawingColor(
3411
+ ) || chunk23Q3I2LM_js.parseDrawingColor(
3412
3412
  cellProperties?.["a:lnR"]?.["a:solidFill"],
3413
3413
  schemeColorOverrides
3414
- ) || chunkLTEDT475_js.parseDrawingColor(
3414
+ ) || chunk23Q3I2LM_js.parseDrawingColor(
3415
3415
  cellProperties?.["a:lnT"]?.["a:solidFill"],
3416
3416
  schemeColorOverrides
3417
- ) || chunkLTEDT475_js.parseDrawingColor(
3417
+ ) || chunk23Q3I2LM_js.parseDrawingColor(
3418
3418
  cellProperties?.["a:lnB"]?.["a:solidFill"],
3419
3419
  schemeColorOverrides
3420
3420
  );
@@ -3493,10 +3493,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
3493
3493
  }
3494
3494
  let color = base;
3495
3495
  if (fill.tint !== void 0 && fill.tint > 0) {
3496
- color = chunkLTEDT475_js.tintColor2(color, fill.tint / 1e5);
3496
+ color = chunk23Q3I2LM_js.tintColor2(color, fill.tint / 1e5);
3497
3497
  }
3498
3498
  if (fill.shade !== void 0 && fill.shade > 0) {
3499
- color = chunkLTEDT475_js.shadeColor2(color, 1 - fill.shade / 1e5);
3499
+ color = chunk23Q3I2LM_js.shadeColor2(color, 1 - fill.shade / 1e5);
3500
3500
  }
3501
3501
  return color;
3502
3502
  }
@@ -3521,7 +3521,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
3521
3521
  style.fontFamily = text.fontFace;
3522
3522
  applied = true;
3523
3523
  } else {
3524
- const refFont = chunkLTEDT475_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
3524
+ const refFont = chunk23Q3I2LM_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
3525
3525
  if (refFont) {
3526
3526
  style.fontFamily = refFont;
3527
3527
  applied = true;
@@ -3532,10 +3532,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
3532
3532
  if (base) {
3533
3533
  let color = base;
3534
3534
  if (text.fontTint !== void 0 && text.fontTint > 0) {
3535
- color = chunkLTEDT475_js.tintColor2(color, text.fontTint / 1e5);
3535
+ color = chunk23Q3I2LM_js.tintColor2(color, text.fontTint / 1e5);
3536
3536
  }
3537
3537
  if (text.fontShade !== void 0 && text.fontShade > 0) {
3538
- color = chunkLTEDT475_js.shadeColor2(color, 1 - text.fontShade / 1e5);
3538
+ color = chunk23Q3I2LM_js.shadeColor2(color, 1 - text.fontShade / 1e5);
3539
3539
  }
3540
3540
  style.color = color;
3541
3541
  applied = true;
@@ -3724,7 +3724,7 @@ function parseTableElementData(element, fallbackTextStyle) {
3724
3724
  };
3725
3725
  }
3726
3726
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
3727
- return chunkLTEDT475_js.getCellDiagonalBorders(style, tableData, pos, {
3727
+ return chunk23Q3I2LM_js.getCellDiagonalBorders(style, tableData, pos, {
3728
3728
  tableStyleMap: styleCtx?.tableStyleMap,
3729
3729
  colorScheme: styleCtx?.theme?.colorScheme,
3730
3730
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3872,9 +3872,9 @@ function cellStyleToCss(style) {
3872
3872
  if (style.gradientFillCss) {
3873
3873
  css.background = style.gradientFillCss;
3874
3874
  } else if (style.fillMode === "pattern" && style.patternFillPreset) {
3875
- const fg = chunkLTEDT475_js.normalizeHexColor(style.patternFillForeground, "#000000");
3876
- const bg = chunkLTEDT475_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
3877
- const svgPattern = chunkLTEDT475_js.getPatternSvg(style.patternFillPreset, fg, bg);
3875
+ const fg = chunk23Q3I2LM_js.normalizeHexColor(style.patternFillForeground, "#000000");
3876
+ const bg = chunk23Q3I2LM_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
3877
+ const svgPattern = chunk23Q3I2LM_js.getPatternSvg(style.patternFillPreset, fg, bg);
3878
3878
  if (svgPattern) {
3879
3879
  const encoded = encodeURIComponent(svgPattern);
3880
3880
  css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
@@ -3950,7 +3950,7 @@ function cellStyleToCss(style) {
3950
3950
  if (edge.width || edge.color) {
3951
3951
  const w = edge.width ?? 1;
3952
3952
  const c = edge.color ?? style.borderColor ?? "#000000";
3953
- const s = chunkLTEDT475_js.ooxmlDashToCssBorderStyle(edge.dash);
3953
+ const s = chunk23Q3I2LM_js.ooxmlDashToCssBorderStyle(edge.dash);
3954
3954
  css[edge.prefix] = `${w}px ${s} ${c}`;
3955
3955
  }
3956
3956
  }
@@ -3981,7 +3981,7 @@ function cellStyleToCss(style) {
3981
3981
  css.textShadow = textShadowParts.join(", ");
3982
3982
  }
3983
3983
  if (style.cell3D) {
3984
- Object.assign(css, chunkLTEDT475_js.cell3DBevelCss(style.cell3D));
3984
+ Object.assign(css, chunk23Q3I2LM_js.cell3DBevelCss(style.cell3D));
3985
3985
  }
3986
3986
  return css;
3987
3987
  }
@@ -3995,7 +3995,7 @@ function TableResizeOverlay({
3995
3995
  const containerRef = React6.useRef(null);
3996
3996
  const [rowBounds, setRowBounds] = React6.useState([]);
3997
3997
  const dragRef = React6.useRef(null);
3998
- const colBoundaries = React6.useMemo(() => chunkLTEDT475_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3998
+ const colBoundaries = React6.useMemo(() => chunk23Q3I2LM_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3999
3999
  const measureRows = React6.useCallback(() => {
4000
4000
  const container = containerRef.current;
4001
4001
  if (!container) {
@@ -4042,11 +4042,11 @@ function TableResizeOverlay({
4042
4042
  const rect = containerRef.current.getBoundingClientRect();
4043
4043
  if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
4044
4044
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
4045
- onResizeColumns(chunkLTEDT475_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
4045
+ onResizeColumns(chunk23Q3I2LM_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
4046
4046
  } else if (drag.type === "row" && onResizeRow) {
4047
4047
  const deltaY = e.clientY - drag.startPos;
4048
- const newHeight = chunkLTEDT475_js.computeResizedRowHeight(
4049
- drag.initialRowHeight ?? chunkLTEDT475_js.DEFAULT_ROW_HEIGHT,
4048
+ const newHeight = chunk23Q3I2LM_js.computeResizedRowHeight(
4049
+ drag.initialRowHeight ?? chunk23Q3I2LM_js.DEFAULT_ROW_HEIGHT,
4050
4050
  deltaY
4051
4051
  );
4052
4052
  onResizeRow(drag.index, newHeight);
@@ -4084,7 +4084,7 @@ function TableResizeOverlay({
4084
4084
  e.stopPropagation();
4085
4085
  const table = containerRef.current?.querySelector("table");
4086
4086
  const tr = table?.querySelectorAll("tbody > tr")[index];
4087
- const actualHeight = tr?.offsetHeight ?? chunkLTEDT475_js.DEFAULT_ROW_HEIGHT;
4087
+ const actualHeight = tr?.offsetHeight ?? chunk23Q3I2LM_js.DEFAULT_ROW_HEIGHT;
4088
4088
  document.body.style.cursor = "row-resize";
4089
4089
  document.body.style.userSelect = "none";
4090
4090
  dragRef.current = {
@@ -4132,7 +4132,7 @@ function renderTableFromTableData(element, textStyle, options) {
4132
4132
  }
4133
4133
  const first = selectedCell.selectedCells[0];
4134
4134
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
4135
- return chunkLTEDT475_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
4135
+ return chunk23Q3I2LM_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
4136
4136
  })();
4137
4137
  return /* @__PURE__ */ jsxRuntime.jsx(
4138
4138
  TableResizeOverlay,
@@ -4165,7 +4165,7 @@ function renderTableFromTableData(element, textStyle, options) {
4165
4165
  return null;
4166
4166
  }
4167
4167
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
4168
- const isInMultiSelection = chunkLTEDT475_js.isCellInRect(rowIndex, cellIndex, selectionRect);
4168
+ const isInMultiSelection = chunk23Q3I2LM_js.isCellInRect(rowIndex, cellIndex, selectionRect);
4169
4169
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
4170
4170
  const diag = getCellDiagonalBorders2(
4171
4171
  cell.style,
@@ -4195,7 +4195,7 @@ function renderTableFromTableData(element, textStyle, options) {
4195
4195
  }
4196
4196
  event.stopPropagation();
4197
4197
  if (event.shiftKey && selectedCell) {
4198
- const rect = chunkLTEDT475_js.computeSelectionRect(
4198
+ const rect = chunk23Q3I2LM_js.computeSelectionRect(
4199
4199
  selectedCell.rowIndex,
4200
4200
  selectedCell.columnIndex,
4201
4201
  rowIndex,
@@ -4205,7 +4205,7 @@ function renderTableFromTableData(element, textStyle, options) {
4205
4205
  options?.onSelectCell?.({
4206
4206
  rowIndex: selectedCell.rowIndex,
4207
4207
  columnIndex: selectedCell.columnIndex,
4208
- selectedCells: chunkLTEDT475_js.rectToCells(rect)
4208
+ selectedCells: chunk23Q3I2LM_js.rectToCells(rect)
4209
4209
  });
4210
4210
  } else {
4211
4211
  options?.onSelectCell?.({
@@ -4282,7 +4282,7 @@ function renderTableElement(element, textStyle, options) {
4282
4282
  }
4283
4283
  const first = selectedCell.selectedCells[0];
4284
4284
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
4285
- return chunkLTEDT475_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
4285
+ return chunk23Q3I2LM_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
4286
4286
  })();
4287
4287
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
4288
4288
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4359,7 +4359,7 @@ function renderTableElement(element, textStyle, options) {
4359
4359
  "border px-1 py-0.5 align-top",
4360
4360
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
4361
4361
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
4362
- chunkLTEDT475_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
4362
+ chunk23Q3I2LM_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
4363
4363
  ),
4364
4364
  colSpan,
4365
4365
  rowSpan: rSpan,
@@ -4370,7 +4370,7 @@ function renderTableElement(element, textStyle, options) {
4370
4370
  }
4371
4371
  event.stopPropagation();
4372
4372
  if (event.shiftKey && selectedCell && tableEl.tableData) {
4373
- const rect = chunkLTEDT475_js.computeSelectionRect(
4373
+ const rect = chunk23Q3I2LM_js.computeSelectionRect(
4374
4374
  selectedCell.rowIndex,
4375
4375
  selectedCell.columnIndex,
4376
4376
  rowIndex,
@@ -4380,7 +4380,7 @@ function renderTableElement(element, textStyle, options) {
4380
4380
  options?.onSelectCell?.({
4381
4381
  rowIndex: selectedCell.rowIndex,
4382
4382
  columnIndex: selectedCell.columnIndex,
4383
- selectedCells: chunkLTEDT475_js.rectToCells(rect)
4383
+ selectedCells: chunk23Q3I2LM_js.rectToCells(rect)
4384
4384
  });
4385
4385
  } else {
4386
4386
  options?.onSelectCell?.({
@@ -4435,24 +4435,24 @@ function renderTableElement(element, textStyle, options) {
4435
4435
  }
4436
4436
  var LEGEND_ITEM_WIDTH = 80;
4437
4437
  function partAttrs(part) {
4438
- return part ? chunkLTEDT475_js.chartPartToAttrs(part) : void 0;
4438
+ return part ? chunk23Q3I2LM_js.chartPartToAttrs(part) : void 0;
4439
4439
  }
4440
4440
  function resolveReactPalette(chartData) {
4441
4441
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
4442
4442
  return chartData.colorPalette;
4443
4443
  }
4444
- return [...chunkLTEDT475_js.getChartStylePalette(chartData.style?.styleId)];
4444
+ return [...chunk23Q3I2LM_js.getChartStylePalette(chartData.style?.styleId)];
4445
4445
  }
4446
4446
  function buildReactChartViewModel(element) {
4447
4447
  if (element.type !== "chart" || !element.chartData) {
4448
- return chunkLTEDT475_js.buildChartViewModel(element);
4448
+ return chunk23Q3I2LM_js.buildChartViewModel(element);
4449
4449
  }
4450
4450
  const palette = resolveReactPalette(element.chartData);
4451
4451
  const themedElement = {
4452
4452
  ...element,
4453
4453
  chartData: { ...element.chartData, colorPalette: palette }
4454
4454
  };
4455
- return chunkLTEDT475_js.buildChartViewModel(themedElement);
4455
+ return chunk23Q3I2LM_js.buildChartViewModel(themedElement);
4456
4456
  }
4457
4457
  function renderPrimitive(prim, key) {
4458
4458
  switch (prim.kind) {
@@ -4841,7 +4841,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4841
4841
  const unmatchedRows = [];
4842
4842
  categories.forEach((cat, i) => {
4843
4843
  const value = values[i] ?? 0;
4844
- const code = chunkLTEDT475_js.resolveRegionCode(cat);
4844
+ const code = chunk23Q3I2LM_js.resolveRegionCode(cat);
4845
4845
  if (code) {
4846
4846
  regionValueMap.set(code, { value, label: cat });
4847
4847
  } else {
@@ -4879,8 +4879,8 @@ function renderMapChart(element, chartData, categoryLabels) {
4879
4879
  let fill = "#e2e8f0";
4880
4880
  let dataLabel = null;
4881
4881
  if (entry) {
4882
- const t = chunkLTEDT475_js.normalizeValue(entry.value, minVal, maxVal);
4883
- fill = chunkLTEDT475_js.sequentialColorScale(t);
4882
+ const t = chunk23Q3I2LM_js.normalizeValue(entry.value, minVal, maxVal);
4883
+ fill = chunk23Q3I2LM_js.sequentialColorScale(t);
4884
4884
  dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
4885
4885
  "text",
4886
4886
  {
@@ -4891,7 +4891,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4891
4891
  fontWeight: 600,
4892
4892
  fill: "#1e293b",
4893
4893
  style: { pointerEvents: "none" },
4894
- children: chunkLTEDT475_js.formatAxisValue(entry.value)
4894
+ children: chunk23Q3I2LM_js.formatAxisValue(entry.value)
4895
4895
  },
4896
4896
  `${element.id}-map-dl-${region.code}`
4897
4897
  );
@@ -4909,7 +4909,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4909
4909
  opacity: 0.9,
4910
4910
  children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
4911
4911
  region.name,
4912
- entry ? `: ${chunkLTEDT475_js.formatAxisValue(entry.value)}` : ""
4912
+ entry ? `: ${chunk23Q3I2LM_js.formatAxisValue(entry.value)}` : ""
4913
4913
  ] })
4914
4914
  }
4915
4915
  ),
@@ -4947,7 +4947,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4947
4947
  fontSize: 7,
4948
4948
  fill: "#64748b",
4949
4949
  textAnchor: "middle",
4950
- children: chunkLTEDT475_js.formatAxisValue(minVal)
4950
+ children: chunk23Q3I2LM_js.formatAxisValue(minVal)
4951
4951
  },
4952
4952
  `${element.id}-map-legend-min`
4953
4953
  ),
@@ -4959,7 +4959,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4959
4959
  fontSize: 7,
4960
4960
  fill: "#64748b",
4961
4961
  textAnchor: "middle",
4962
- children: chunkLTEDT475_js.formatAxisValue(maxVal)
4962
+ children: chunk23Q3I2LM_js.formatAxisValue(maxVal)
4963
4963
  },
4964
4964
  `${element.id}-map-legend-max`
4965
4965
  )
@@ -5025,7 +5025,7 @@ function renderMapChart(element, chartData, categoryLabels) {
5025
5025
  y,
5026
5026
  fontSize,
5027
5027
  fill: "#475569",
5028
- children: chunkLTEDT475_js.formatAxisValue(row.value)
5028
+ children: chunk23Q3I2LM_js.formatAxisValue(row.value)
5029
5029
  },
5030
5030
  `${element.id}-map-ft-val-${i}`
5031
5031
  )
@@ -5096,7 +5096,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
5096
5096
 
5097
5097
  // src/viewer/utils/chart-overlay-utils.ts
5098
5098
  function sColor(series, idx) {
5099
- return chunkLTEDT475_js.seriesColor(series, idx);
5099
+ return chunk23Q3I2LM_js.seriesColor(series, idx);
5100
5100
  }
5101
5101
  function valToY(val, range, topY, bottomY) {
5102
5102
  const usable = bottomY - topY;
@@ -5635,7 +5635,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
5635
5635
  width: 10,
5636
5636
  height: 10,
5637
5637
  rx: 2,
5638
- fill: chunkLTEDT475_js.seriesColor(s, i, style?.styleId, colorPalette)
5638
+ fill: chunk23Q3I2LM_js.seriesColor(s, i, style?.styleId, colorPalette)
5639
5639
  },
5640
5640
  `${id}-leg-r-${i}`
5641
5641
  )
@@ -5659,7 +5659,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
5659
5659
  width: 10,
5660
5660
  height: 10,
5661
5661
  rx: 2,
5662
- fill: chunkLTEDT475_js.seriesColor(s, i, style?.styleId, colorPalette)
5662
+ fill: chunk23Q3I2LM_js.seriesColor(s, i, style?.styleId, colorPalette)
5663
5663
  }
5664
5664
  ),
5665
5665
  /* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
@@ -5672,9 +5672,9 @@ function renderGridlines(id, style, range, layout) {
5672
5672
  }
5673
5673
  const lines = [];
5674
5674
  if (range.logScale && range.logBase) {
5675
- const ticks = chunkLTEDT475_js.generateLogTicks(range);
5675
+ const ticks = chunk23Q3I2LM_js.generateLogTicks(range);
5676
5676
  ticks.forEach((tickVal, i) => {
5677
- const y = chunkLTEDT475_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5677
+ const y = chunk23Q3I2LM_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5678
5678
  lines.push(
5679
5679
  /* @__PURE__ */ jsxRuntime.jsx(
5680
5680
  "line",
@@ -5695,7 +5695,7 @@ function renderGridlines(id, style, range, layout) {
5695
5695
  const steps = 4;
5696
5696
  for (let i = 0; i <= steps; i++) {
5697
5697
  const val = range.min + range.span * i / steps;
5698
- const y = chunkLTEDT475_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5698
+ const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5699
5699
  lines.push(
5700
5700
  /* @__PURE__ */ jsxRuntime.jsx(
5701
5701
  "line",
@@ -5719,9 +5719,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5719
5719
  const labels = [];
5720
5720
  const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
5721
5721
  if (range.logScale && range.logBase) {
5722
- const ticks = chunkLTEDT475_js.generateLogTicks(range);
5722
+ const ticks = chunk23Q3I2LM_js.generateLogTicks(range);
5723
5723
  ticks.forEach((tickVal, i) => {
5724
- const y = chunkLTEDT475_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5724
+ const y = chunk23Q3I2LM_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5725
5725
  labels.push(
5726
5726
  /* @__PURE__ */ jsxRuntime.jsx(
5727
5727
  "text",
@@ -5731,7 +5731,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5731
5731
  textAnchor: "end",
5732
5732
  fontSize: 8,
5733
5733
  fill: "#64748b",
5734
- children: hasDisplayUnits ? chunkLTEDT475_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkLTEDT475_js.formatAxisValue(tickVal)
5734
+ children: hasDisplayUnits ? chunk23Q3I2LM_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunk23Q3I2LM_js.formatAxisValue(tickVal)
5735
5735
  },
5736
5736
  `${id}-vaxis-log-${i}`
5737
5737
  )
@@ -5741,7 +5741,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5741
5741
  const steps = 4;
5742
5742
  for (let i = 0; i <= steps; i++) {
5743
5743
  const val = range.min + range.span * i / steps;
5744
- const y = chunkLTEDT475_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5744
+ const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5745
5745
  labels.push(
5746
5746
  /* @__PURE__ */ jsxRuntime.jsx(
5747
5747
  "text",
@@ -5751,7 +5751,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5751
5751
  textAnchor: "end",
5752
5752
  fontSize: 8,
5753
5753
  fill: "#64748b",
5754
- children: hasDisplayUnits ? chunkLTEDT475_js.formatAxisValueWithUnits(val, axisFormatting) : chunkLTEDT475_js.formatAxisValue(val)
5754
+ children: hasDisplayUnits ? chunk23Q3I2LM_js.formatAxisValueWithUnits(val, axisFormatting) : chunk23Q3I2LM_js.formatAxisValue(val)
5755
5755
  },
5756
5756
  `${id}-vaxis-${i}`
5757
5757
  )
@@ -5759,7 +5759,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5759
5759
  }
5760
5760
  }
5761
5761
  if (hasDisplayUnits) {
5762
- const unitLabel = chunkLTEDT475_js.getDisplayUnitLabel(
5762
+ const unitLabel = chunk23Q3I2LM_js.getDisplayUnitLabel(
5763
5763
  axisFormatting.displayUnits,
5764
5764
  axisFormatting.displayUnitsLabel
5765
5765
  );
@@ -5834,7 +5834,7 @@ function renderZeroLine(id, range, layout) {
5834
5834
  if (range.min >= 0) {
5835
5835
  return null;
5836
5836
  }
5837
- const y = chunkLTEDT475_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
5837
+ const y = chunk23Q3I2LM_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
5838
5838
  return /* @__PURE__ */ jsxRuntime.jsx(
5839
5839
  "line",
5840
5840
  {
@@ -5858,7 +5858,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5858
5858
  const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
5859
5859
  for (let i = 0; i <= steps; i++) {
5860
5860
  const val = range.min + range.span * i / steps;
5861
- const y = chunkLTEDT475_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5861
+ const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5862
5862
  labels.push(
5863
5863
  /* @__PURE__ */ jsxRuntime.jsx(
5864
5864
  "text",
@@ -5870,7 +5870,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5870
5870
  fontFamily,
5871
5871
  fontWeight,
5872
5872
  fill: fontColor,
5873
- children: hasDisplayUnits ? chunkLTEDT475_js.formatAxisValueWithUnits(val, axisFormatting) : chunkLTEDT475_js.formatAxisValue(val)
5873
+ children: hasDisplayUnits ? chunk23Q3I2LM_js.formatAxisValueWithUnits(val, axisFormatting) : chunk23Q3I2LM_js.formatAxisValue(val)
5874
5874
  },
5875
5875
  `${id}-sec-vaxis-${i}`
5876
5876
  )
@@ -5894,7 +5894,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5894
5894
  );
5895
5895
  }
5896
5896
  if (hasDisplayUnits) {
5897
- const unitLabel = chunkLTEDT475_js.getDisplayUnitLabel(
5897
+ const unitLabel = chunk23Q3I2LM_js.getDisplayUnitLabel(
5898
5898
  axisFormatting.displayUnits,
5899
5899
  axisFormatting.displayUnitsLabel
5900
5900
  );
@@ -5925,7 +5925,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
5925
5925
  const ticks = [];
5926
5926
  for (let i = 0; i <= steps; i++) {
5927
5927
  const val = range.min + range.span * i / steps;
5928
- const y = chunkLTEDT475_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5928
+ const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5929
5929
  ticks.push(
5930
5930
  /* @__PURE__ */ jsxRuntime.jsx(
5931
5931
  "line",
@@ -5952,7 +5952,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
5952
5952
  const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
5953
5953
  for (let i = 0; i <= steps; i++) {
5954
5954
  const val = range.min + range.span * i / steps;
5955
- const y = chunkLTEDT475_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5955
+ const y = chunk23Q3I2LM_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5956
5956
  lines.push(
5957
5957
  /* @__PURE__ */ jsxRuntime.jsx(
5958
5958
  "line",
@@ -6114,7 +6114,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
6114
6114
  width: 8,
6115
6115
  height: 8,
6116
6116
  borderRadius: 2,
6117
- backgroundColor: chunkLTEDT475_js.seriesColor(
6117
+ backgroundColor: chunk23Q3I2LM_js.seriesColor(
6118
6118
  s,
6119
6119
  si,
6120
6120
  chartData.style?.styleId,
@@ -6153,8 +6153,8 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
6153
6153
  function renderStockChart(element, chartData, categoryLabels) {
6154
6154
  const style = chartData.style;
6155
6155
  const legendPos = style?.legendPosition || "b";
6156
- const range = chunkLTEDT475_js.computeValueRangeForChart(chartData.series, chartData.axes);
6157
- const layout = chunkLTEDT475_js.computeLayout(element.width, element.height, style, true, legendPos);
6156
+ const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
6157
+ const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, true, legendPos);
6158
6158
  const catCount = Math.max(categoryLabels.length, 1);
6159
6159
  const barGroupWidth = layout.plotWidth / catCount;
6160
6160
  const candleWidth = barGroupWidth * 0.5;
@@ -6175,10 +6175,10 @@ function renderStockChart(element, chartData, categoryLabels) {
6175
6175
  const close = closeSeries.values[ci] ?? high;
6176
6176
  const isUp = close >= open;
6177
6177
  const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
6178
- const highY = chunkLTEDT475_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
6179
- const lowY = chunkLTEDT475_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
6180
- const openY = chunkLTEDT475_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
6181
- const closeY = chunkLTEDT475_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
6178
+ const highY = chunk23Q3I2LM_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
6179
+ const lowY = chunk23Q3I2LM_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
6180
+ const openY = chunk23Q3I2LM_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
6181
+ const closeY = chunk23Q3I2LM_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
6182
6182
  elements.push(
6183
6183
  /* @__PURE__ */ jsxRuntime.jsx(
6184
6184
  "line",
@@ -6221,7 +6221,7 @@ function renderStockChart(element, chartData, categoryLabels) {
6221
6221
  textAnchor: "middle",
6222
6222
  fontSize: 7,
6223
6223
  fill: "#334155",
6224
- children: chunkLTEDT475_js.formatAxisValue(close)
6224
+ children: chunk23Q3I2LM_js.formatAxisValue(close)
6225
6225
  },
6226
6226
  `${element.id}-stock-dl-${ci}`
6227
6227
  )
@@ -6263,7 +6263,7 @@ function FailedToLoad() {
6263
6263
  var LazySurfaceChart3DScene = React6__default.default.lazy(
6264
6264
  async () => {
6265
6265
  try {
6266
- return await import('./SurfaceChart3DScene-K7Q5NYZ4.js');
6266
+ return await import('./SurfaceChart3DScene-FECS3THE.js');
6267
6267
  } catch {
6268
6268
  return { default: FailedToLoad };
6269
6269
  }
@@ -6287,7 +6287,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
6287
6287
  function buildSurfaceData(chartData, categoryLabels) {
6288
6288
  const rows = chartData.series.length;
6289
6289
  const cols = Math.max(categoryLabels.length, 1);
6290
- const range = chunkLTEDT475_js.computeValueRangeForChart(chartData.series, chartData.axes);
6290
+ const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
6291
6291
  const heightMap = new Float32Array(rows * cols);
6292
6292
  const colorMap = new Float32Array(rows * cols * 3);
6293
6293
  for (let r = 0; r < rows; r++) {
@@ -6407,8 +6407,8 @@ function darkenRgb(r, g, b, factor) {
6407
6407
  function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
6408
6408
  const style = chartData.style;
6409
6409
  const legendPos = style?.legendPosition || "b";
6410
- const layout = chunkLTEDT475_js.computeLayout(element.width, element.height, style, false, legendPos);
6411
- const range = chunkLTEDT475_js.computeValueRangeForChart(chartData.series, chartData.axes);
6410
+ const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, false, legendPos);
6411
+ const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
6412
6412
  const catCount = Math.max(categoryLabels.length, 1);
6413
6413
  const seriesCount = chartData.series.length;
6414
6414
  const cols = catCount - 1;
@@ -6498,8 +6498,8 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
6498
6498
  function renderFlatSurfaceChart(element, chartData, categoryLabels) {
6499
6499
  const style = chartData.style;
6500
6500
  const legendPos = style?.legendPosition || "b";
6501
- const layout = chunkLTEDT475_js.computeLayout(element.width, element.height, style, true, legendPos);
6502
- const range = chunkLTEDT475_js.computeValueRangeForChart(chartData.series, chartData.axes);
6501
+ const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, true, legendPos);
6502
+ const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
6503
6503
  const catCount = Math.max(categoryLabels.length, 1);
6504
6504
  const seriesCount = chartData.series.length;
6505
6505
  const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
@@ -6562,7 +6562,7 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
6562
6562
  function renderTreemapChart(element, chartData, categoryLabels) {
6563
6563
  const style = chartData.style;
6564
6564
  const legendPos = style?.legendPosition || "b";
6565
- const layout = chunkLTEDT475_js.computeLayout(element.width, element.height, style, false, legendPos);
6565
+ const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, false, legendPos);
6566
6566
  const allValues = chartData.series.flatMap((s) => s.values);
6567
6567
  const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
6568
6568
  const rects = [];
@@ -6585,7 +6585,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
6585
6585
  y: curY,
6586
6586
  width: Math.max(w - 1, 1),
6587
6587
  height: Math.max(h - 1, 1),
6588
- fill: chunkLTEDT475_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
6588
+ fill: chunk23Q3I2LM_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
6589
6589
  rx: 2,
6590
6590
  opacity: 0.85
6591
6591
  },
@@ -6638,8 +6638,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6638
6638
  const style = chartData.style;
6639
6639
  const legendPos = style?.legendPosition || "b";
6640
6640
  const values = chartData.series[0]?.values ?? [];
6641
- const range = chunkLTEDT475_js.computeValueRangeForChart(chartData.series, chartData.axes);
6642
- const layout = chunkLTEDT475_js.computeLayout(element.width, element.height, style, true, legendPos);
6641
+ const range = chunk23Q3I2LM_js.computeValueRangeForChart(chartData.series, chartData.axes);
6642
+ const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, true, legendPos);
6643
6643
  const catCount = Math.max(categoryLabels.length, values.length, 1);
6644
6644
  const barWidth = layout.plotWidth / catCount * 0.6;
6645
6645
  const gap = layout.plotWidth / catCount * 0.2;
@@ -6650,8 +6650,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6650
6650
  const isLast = i === values.length - 1;
6651
6651
  const startVal = isLast ? 0 : runningTotal;
6652
6652
  const endVal = isLast ? runningTotal + val : runningTotal + val;
6653
- const barStartY = chunkLTEDT475_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
6654
- const barEndY = chunkLTEDT475_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
6653
+ const barStartY = chunk23Q3I2LM_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
6654
+ const barEndY = chunk23Q3I2LM_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
6655
6655
  const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
6656
6656
  const y = Math.min(barStartY, barEndY);
6657
6657
  const h = Math.max(Math.abs(barEndY - barStartY), 1);
@@ -6680,7 +6680,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6680
6680
  textAnchor: "middle",
6681
6681
  fontSize: 7,
6682
6682
  fill: "#334155",
6683
- children: chunkLTEDT475_js.formatAxisValue(isLast ? endVal : val)
6683
+ children: chunk23Q3I2LM_js.formatAxisValue(isLast ? endVal : val)
6684
6684
  },
6685
6685
  `${element.id}-wf-dl-${i}`
6686
6686
  )
@@ -6728,18 +6728,18 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6728
6728
  function renderComboChart(element, chartData, categoryLabels) {
6729
6729
  const style = chartData.style;
6730
6730
  const legendPos = style?.legendPosition || "b";
6731
- const layoutOpts = chunkLTEDT475_js.computeLayoutOptions(
6731
+ const layoutOpts = chunk23Q3I2LM_js.computeLayoutOptions(
6732
6732
  chartData.axes,
6733
6733
  chartData.dataTable,
6734
6734
  chartData.series.length
6735
6735
  );
6736
- const layout = chunkLTEDT475_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
6737
- const { primary, secondary } = chunkLTEDT475_js.splitSeriesByAxis(chartData.series, chartData.axes);
6736
+ const layout = chunk23Q3I2LM_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
6737
+ const { primary, secondary } = chunk23Q3I2LM_js.splitSeriesByAxis(chartData.series, chartData.axes);
6738
6738
  const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
6739
6739
  const secondarySeries = secondary.map((e) => e.series);
6740
- const range = chunkLTEDT475_js.computeValueRangeForChart(primarySeries, chartData.axes);
6741
- const secondaryRange = secondarySeries.length > 0 ? chunkLTEDT475_js.computeValueRange(secondarySeries) : void 0;
6742
- const secondaryAxisFmt = chunkLTEDT475_js.getSecondaryValueAxis(chartData.axes);
6740
+ const range = chunk23Q3I2LM_js.computeValueRangeForChart(primarySeries, chartData.axes);
6741
+ const secondaryRange = secondarySeries.length > 0 ? chunk23Q3I2LM_js.computeValueRange(secondarySeries) : void 0;
6742
+ const secondaryAxisFmt = chunk23Q3I2LM_js.getSecondaryValueAxis(chartData.axes);
6743
6743
  const catCount = Math.max(categoryLabels.length, 1);
6744
6744
  const barSeriesCount = 1;
6745
6745
  const barGroupWidth = layout.plotWidth / catCount;
@@ -6755,8 +6755,8 @@ function renderComboChart(element, chartData, categoryLabels) {
6755
6755
  const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
6756
6756
  barSeries.values.forEach((val, vi) => {
6757
6757
  const x = layout.plotLeft + barGroupWidth * vi + barOffset;
6758
- const zeroY = chunkLTEDT475_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
6759
- const valY = chunkLTEDT475_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
6758
+ const zeroY = chunk23Q3I2LM_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
6759
+ const valY = chunk23Q3I2LM_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
6760
6760
  const y = Math.min(zeroY, valY);
6761
6761
  const h = Math.max(Math.abs(zeroY - valY), 1);
6762
6762
  barElements.push(
@@ -6767,7 +6767,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6767
6767
  y,
6768
6768
  width: barWidth,
6769
6769
  height: h,
6770
- fill: chunkLTEDT475_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
6770
+ fill: chunk23Q3I2LM_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
6771
6771
  rx: 1
6772
6772
  },
6773
6773
  `${element.id}-combo-bar-${vi}`
@@ -6783,7 +6783,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6783
6783
  textAnchor: "middle",
6784
6784
  fontSize: 7,
6785
6785
  fill: "#334155",
6786
- children: chunkLTEDT475_js.formatAxisValue(val)
6786
+ children: chunk23Q3I2LM_js.formatAxisValue(val)
6787
6787
  },
6788
6788
  `${element.id}-combo-bar-dl-${vi}`
6789
6789
  )
@@ -6800,10 +6800,10 @@ function renderComboChart(element, chartData, categoryLabels) {
6800
6800
  const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
6801
6801
  const points = series.values.map((val, vi) => {
6802
6802
  const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
6803
- const y = chunkLTEDT475_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
6803
+ const y = chunk23Q3I2LM_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
6804
6804
  return { x, y, val };
6805
6805
  });
6806
- const c = chunkLTEDT475_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
6806
+ const c = chunk23Q3I2LM_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
6807
6807
  lineElements.push(
6808
6808
  /* @__PURE__ */ jsxRuntime.jsx(
6809
6809
  "polyline",
@@ -6830,7 +6830,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6830
6830
  textAnchor: "middle",
6831
6831
  fontSize: 7,
6832
6832
  fill: "#334155",
6833
- children: chunkLTEDT475_js.formatAxisValue(p.val)
6833
+ children: chunk23Q3I2LM_js.formatAxisValue(p.val)
6834
6834
  },
6835
6835
  `${element.id}-combo-line-dl-${si}-${vi}`
6836
6836
  )
@@ -7976,14 +7976,14 @@ function buildNotesPdf(pages) {
7976
7976
  notes: page.notes,
7977
7977
  slideNumber: page.slideNumber
7978
7978
  }));
7979
- const bytes = chunkLTEDT475_js.buildNotesPdfBytes(images, meta);
7979
+ const bytes = chunk23Q3I2LM_js.buildNotesPdfBytes(images, meta);
7980
7980
  const blob = new Blob([bytes], { type: "application/pdf" });
7981
7981
  return URL.createObjectURL(blob);
7982
7982
  }
7983
7983
 
7984
7984
  // src/viewer/utils/pdf-builder-slides.ts
7985
7985
  function buildPdfFromImageData(images) {
7986
- const bytes = chunkLTEDT475_js.buildSlidesPdfBytes(images);
7986
+ const bytes = chunk23Q3I2LM_js.buildSlidesPdfBytes(images);
7987
7987
  const blob = new Blob([bytes], { type: "application/pdf" });
7988
7988
  return URL.createObjectURL(blob);
7989
7989
  }
@@ -7992,7 +7992,7 @@ function buildPdfFromImageData(images) {
7992
7992
  var activePreview = null;
7993
7993
  function startPreviewAnimation(elementId, preset, options) {
7994
7994
  stopPreviewAnimation();
7995
- const descriptor = chunkLTEDT475_js.buildPreviewAnimation(preset, options);
7995
+ const descriptor = chunk23Q3I2LM_js.buildPreviewAnimation(preset, options);
7996
7996
  if (!descriptor) {
7997
7997
  return;
7998
7998
  }