pptx-react-viewer 2.6.1 → 2.6.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 (97) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AiChatPanel-RVZOGGFK.mjs → AiChatPanel-XT26Z3KM.mjs} +3 -3
  3. package/dist/AiChatPanel-XT26Z3KM.mjs.br +0 -0
  4. package/dist/AiChatPanel-XT26Z3KM.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-LBK6YRKH.js → AiChatPanel-Y4XJ4THX.js} +22 -22
  6. package/dist/AiChatPanel-Y4XJ4THX.js.br +0 -0
  7. package/dist/AiChatPanel-Y4XJ4THX.js.gz +0 -0
  8. package/dist/{Model3DScene-WBUZ74G3.mjs → Model3DScene-IQDJJZAM.mjs} +1 -1
  9. package/dist/Model3DScene-IQDJJZAM.mjs.br +0 -0
  10. package/dist/Model3DScene-IQDJJZAM.mjs.gz +0 -0
  11. package/dist/{Model3DScene-L46RNRU5.js → Model3DScene-OBG67YKJ.js} +2 -2
  12. package/dist/Model3DScene-OBG67YKJ.js.br +0 -0
  13. package/dist/Model3DScene-OBG67YKJ.js.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-CB32AJS4.mjs → SurfaceChart3DScene-KFIHKHEB.mjs} +1 -1
  15. package/dist/{SurfaceChart3DScene-CB32AJS4.mjs.br → SurfaceChart3DScene-KFIHKHEB.mjs.br} +0 -0
  16. package/dist/SurfaceChart3DScene-KFIHKHEB.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-RWMGMREC.js → SurfaceChart3DScene-OJR7PBUU.js} +2 -2
  18. package/dist/SurfaceChart3DScene-OJR7PBUU.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-OJR7PBUU.js.gz +0 -0
  20. package/dist/{chunk-4O7PPQ2V.js → chunk-5ZI2ZG5E.js} +236 -236
  21. package/dist/chunk-5ZI2ZG5E.js.br +0 -0
  22. package/dist/chunk-5ZI2ZG5E.js.gz +0 -0
  23. package/dist/{chunk-IEFH47TF.js → chunk-6W4AEXA3.js} +843 -843
  24. package/dist/chunk-6W4AEXA3.js.br +0 -0
  25. package/dist/chunk-6W4AEXA3.js.gz +0 -0
  26. package/dist/{chunk-ZUNDIOGD.mjs → chunk-77XK7DJE.mjs} +2 -2
  27. package/dist/chunk-77XK7DJE.mjs.br +0 -0
  28. package/dist/chunk-77XK7DJE.mjs.gz +0 -0
  29. package/dist/{chunk-AX4Q5JWN.js → chunk-AH5DPIY2.js} +3 -3
  30. package/dist/chunk-AH5DPIY2.js.br +0 -0
  31. package/dist/chunk-AH5DPIY2.js.gz +0 -0
  32. package/dist/{chunk-EI456HZK.mjs → chunk-FV5GXJ4L.mjs} +22 -2
  33. package/dist/chunk-FV5GXJ4L.mjs.br +0 -0
  34. package/dist/{chunk-EI456HZK.mjs.gz → chunk-FV5GXJ4L.mjs.gz} +0 -0
  35. package/dist/{chunk-T7AMP24E.js → chunk-HHQRYCLW.js} +22 -2
  36. package/dist/chunk-HHQRYCLW.js.br +0 -0
  37. package/dist/{chunk-T7AMP24E.js.gz → chunk-HHQRYCLW.js.gz} +0 -0
  38. package/dist/{chunk-54FSVX3O.mjs → chunk-I6XL525L.mjs} +10 -4
  39. package/dist/chunk-I6XL525L.mjs.br +0 -0
  40. package/dist/chunk-I6XL525L.mjs.gz +0 -0
  41. package/dist/{chunk-2VE3LVKZ.js → chunk-JPACC7ZB.js} +323 -317
  42. package/dist/chunk-JPACC7ZB.js.br +0 -0
  43. package/dist/chunk-JPACC7ZB.js.gz +0 -0
  44. package/dist/{chunk-GC6HQMVG.mjs → chunk-KYAV5V7C.mjs} +1 -1
  45. package/dist/chunk-KYAV5V7C.mjs.br +0 -0
  46. package/dist/chunk-KYAV5V7C.mjs.gz +0 -0
  47. package/dist/{chunk-BL3WW2BS.mjs → chunk-V6HOH4XZ.mjs} +7 -7
  48. package/dist/chunk-V6HOH4XZ.mjs.br +0 -0
  49. package/dist/chunk-V6HOH4XZ.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 +1 -1
  69. package/dist/AiChatPanel-LBK6YRKH.js.br +0 -0
  70. package/dist/AiChatPanel-LBK6YRKH.js.gz +0 -0
  71. package/dist/AiChatPanel-RVZOGGFK.mjs.br +0 -0
  72. package/dist/AiChatPanel-RVZOGGFK.mjs.gz +0 -0
  73. package/dist/Model3DScene-L46RNRU5.js.br +0 -0
  74. package/dist/Model3DScene-L46RNRU5.js.gz +0 -0
  75. package/dist/Model3DScene-WBUZ74G3.mjs.br +0 -0
  76. package/dist/Model3DScene-WBUZ74G3.mjs.gz +0 -0
  77. package/dist/SurfaceChart3DScene-CB32AJS4.mjs.gz +0 -0
  78. package/dist/SurfaceChart3DScene-RWMGMREC.js.br +0 -0
  79. package/dist/SurfaceChart3DScene-RWMGMREC.js.gz +0 -0
  80. package/dist/chunk-2VE3LVKZ.js.br +0 -0
  81. package/dist/chunk-2VE3LVKZ.js.gz +0 -0
  82. package/dist/chunk-4O7PPQ2V.js.br +0 -0
  83. package/dist/chunk-4O7PPQ2V.js.gz +0 -0
  84. package/dist/chunk-54FSVX3O.mjs.br +0 -0
  85. package/dist/chunk-54FSVX3O.mjs.gz +0 -0
  86. package/dist/chunk-AX4Q5JWN.js.br +0 -0
  87. package/dist/chunk-AX4Q5JWN.js.gz +0 -0
  88. package/dist/chunk-BL3WW2BS.mjs.br +0 -0
  89. package/dist/chunk-BL3WW2BS.mjs.gz +0 -0
  90. package/dist/chunk-EI456HZK.mjs.br +0 -0
  91. package/dist/chunk-GC6HQMVG.mjs.br +0 -0
  92. package/dist/chunk-GC6HQMVG.mjs.gz +0 -0
  93. package/dist/chunk-IEFH47TF.js.br +0 -0
  94. package/dist/chunk-IEFH47TF.js.gz +0 -0
  95. package/dist/chunk-T7AMP24E.js.br +0 -0
  96. package/dist/chunk-ZUNDIOGD.mjs.br +0 -0
  97. package/dist/chunk-ZUNDIOGD.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 chunkT7AMP24E_js = require('./chunk-T7AMP24E.js');
4
+ var chunkHHQRYCLW_js = require('./chunk-HHQRYCLW.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 chunkT7AMP24E_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunkHHQRYCLW_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 chunkT7AMP24E_js.cloneHistorySnapshot(snapshot);
26
+ return chunkHHQRYCLW_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 = chunkT7AMP24E_js.SHAPE_PRESET_DEFS.map(
136
+ var SHAPE_PRESETS = chunkHHQRYCLW_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 (!chunkT7AMP24E_js.hasShapeProperties(element)) {
254
+ if (!chunkHHQRYCLW_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) => chunkT7AMP24E_js.isTemplateElement(el));
265
+ const template = slide.elements.filter((el) => chunkHHQRYCLW_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) => !chunkT7AMP24E_js.isTemplateElement(el)) };
270
+ return { ...slide, elements: slide.elements.filter((el) => !chunkHHQRYCLW_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 (!chunkT7AMP24E_js.hasShapeProperties(element)) {
286
+ if (!chunkHHQRYCLW_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 = chunkT7AMP24E_js.getRoundRectRadiusPx(element);
295
+ const radiusPx = chunkHHQRYCLW_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 = chunkT7AMP24E_js.getResolvedShapeClipPath(element);
307
+ const clipPath = chunkHHQRYCLW_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 (!chunkT7AMP24E_js.isImageLikeElement(element)) {
315
+ if (!chunkHHQRYCLW_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 = chunkT7AMP24E_js.clampCropValue(element.cropLeft);
324
- const cropTop = chunkT7AMP24E_js.clampCropValue(element.cropTop);
325
- const cropRight = chunkT7AMP24E_js.clampCropValue(element.cropRight);
326
- const cropBottom = chunkT7AMP24E_js.clampCropValue(element.cropBottom);
323
+ const cropLeft = chunkHHQRYCLW_js.clampCropValue(element.cropLeft);
324
+ const cropTop = chunkHHQRYCLW_js.clampCropValue(element.cropTop);
325
+ const cropRight = chunkHHQRYCLW_js.clampCropValue(element.cropRight);
326
+ const cropBottom = chunkHHQRYCLW_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 = chunkT7AMP24E_js.clampCropValue(cropLeft * safeHorizontalScale);
339
- const normalizedRight = chunkT7AMP24E_js.clampCropValue(cropRight * safeHorizontalScale);
340
- const normalizedTop = chunkT7AMP24E_js.clampCropValue(cropTop * safeVerticalScale);
341
- const normalizedBottom = chunkT7AMP24E_js.clampCropValue(cropBottom * safeVerticalScale);
338
+ const normalizedLeft = chunkHHQRYCLW_js.clampCropValue(cropLeft * safeHorizontalScale);
339
+ const normalizedRight = chunkHHQRYCLW_js.clampCropValue(cropRight * safeHorizontalScale);
340
+ const normalizedTop = chunkHHQRYCLW_js.clampCropValue(cropTop * safeVerticalScale);
341
+ const normalizedBottom = chunkHHQRYCLW_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 (!chunkT7AMP24E_js.isImageLikeElement(element)) {
370
+ if (!chunkHHQRYCLW_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 (!chunkT7AMP24E_js.isImageLikeElement(element)) {
380
+ if (!chunkHHQRYCLW_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 (!chunkT7AMP24E_js.isImageLikeElement(element) || !isImageTiled(element)) {
438
+ if (!chunkHHQRYCLW_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 = chunkT7AMP24E_js.parseMediaCommand(command.command);
722
+ const parsed = chunkHHQRYCLW_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 (!chunkT7AMP24E_js.hasTextProperties(element)) {
1174
+ if (!chunkHHQRYCLW_js.hasTextProperties(element)) {
1175
1175
  return { color: fallbackColor };
1176
1176
  }
1177
1177
  const textDecorationTokens = [];
@@ -1185,7 +1185,7 @@ 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 ? chunkT7AMP24E_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunkT7AMP24E_js.normalizeHexColor(element.textStyle?.color, fallbackColor);
1188
+ const resolvedTextColor = element.textStyle?.hyperlink ? chunkHHQRYCLW_js.normalizeHexColor(element.textStyle?.color, HYPERLINK_COLOR) : chunkHHQRYCLW_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;
@@ -1194,15 +1194,15 @@ function getTextStyleForElement(element, fallbackColor) {
1194
1194
  const bodyIndent = hasParagraphIndents ? 0 : element.textStyle?.paragraphIndent || 0;
1195
1195
  const bodyMarginLeft = hasParagraphIndents ? 0 : element.textStyle?.paragraphMarginLeft || 0;
1196
1196
  const bodyMarginRight = hasParagraphIndents ? 0 : element.textStyle?.paragraphMarginRight || 0;
1197
- const writingMode = chunkT7AMP24E_js.toCssWritingMode(element.textStyle?.textDirection);
1198
- const textOrientation = chunkT7AMP24E_js.toCssTextOrientation(element.textStyle?.textDirection);
1199
- const verticalDirection = chunkT7AMP24E_js.toCssVerticalDirection(element.textStyle?.textDirection);
1197
+ const writingMode = chunkHHQRYCLW_js.toCssWritingMode(element.textStyle?.textDirection);
1198
+ const textOrientation = chunkHHQRYCLW_js.toCssTextOrientation(element.textStyle?.textDirection);
1199
+ const verticalDirection = chunkHHQRYCLW_js.toCssVerticalDirection(element.textStyle?.textDirection);
1200
1200
  const resolvedDirection = verticalDirection || (isRtl ? "rtl" : "ltr");
1201
1201
  const resolvedUnicodeBidi = isRtl ? "plaintext" : void 0;
1202
1202
  const hasSegments = (element.textSegments?.length ?? 0) > 0;
1203
1203
  return {
1204
1204
  color: resolvedTextColor,
1205
- backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunkT7AMP24E_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
1205
+ backgroundColor: !hasSegments && element.textStyle?.highlightColor ? chunkHHQRYCLW_js.normalizeHexColor(element.textStyle.highlightColor, void 0) : void 0,
1206
1206
  textAlign: (() => {
1207
1207
  const a = element.textStyle?.align;
1208
1208
  if (a === "justLow" || a === "dist" || a === "thaiDist") {
@@ -1218,7 +1218,7 @@ function getTextStyleForElement(element, fallbackColor) {
1218
1218
  textDecorationLine: textDecorationTokens.length > 0 ? textDecorationTokens.join(" ") : "none",
1219
1219
  textDecorationStyle,
1220
1220
  fontFamily: element.textStyle?.fontFamily || DEFAULT_FONT_FAMILY,
1221
- lineHeight: chunkT7AMP24E_js.resolveLineHeight(element.textStyle, hasItalicRuns),
1221
+ lineHeight: chunkHHQRYCLW_js.resolveLineHeight(element.textStyle, hasItalicRuns),
1222
1222
  paddingTop: bodyTop + (hasItalicRuns ? 1 : 0),
1223
1223
  paddingBottom: bodyBottom + (hasItalicRuns ? 1 : 0),
1224
1224
  paddingLeft: bodyLeft + bodyMarginLeft,
@@ -1231,7 +1231,7 @@ function getTextStyleForElement(element, fallbackColor) {
1231
1231
  // Auto-fit: use OOXML-provided fontScale/lnSpcReduction when available,
1232
1232
  // otherwise fall back to heuristic estimation. The pure font-scale maths
1233
1233
  // now lives in pptx-viewer-shared (computeAutoFitTextStyle).
1234
- ...chunkT7AMP24E_js.computeAutoFitTextStyle({
1234
+ ...chunkHHQRYCLW_js.computeAutoFitTextStyle({
1235
1235
  textStyle: element.textStyle,
1236
1236
  text: element.text ?? "",
1237
1237
  width: element.width,
@@ -1265,13 +1265,13 @@ function computeTabSize(tabStops, defaultTabSize) {
1265
1265
  return avgGap > 0 ? `${Math.round(avgGap)}px` : fromDefault;
1266
1266
  }
1267
1267
  function getTextLayoutStyle(element) {
1268
- if (!chunkT7AMP24E_js.hasTextProperties(element)) {
1268
+ if (!chunkHHQRYCLW_js.hasTextProperties(element)) {
1269
1269
  return {};
1270
1270
  }
1271
1271
  const verticalAlign = element.textStyle?.vAlign || "top";
1272
- const writingMode = chunkT7AMP24E_js.toCssWritingMode(element.textStyle?.textDirection);
1273
- const textOrientation = chunkT7AMP24E_js.toCssTextOrientation(element.textStyle?.textDirection);
1274
- const verticalDirection = chunkT7AMP24E_js.toCssVerticalDirection(element.textStyle?.textDirection);
1272
+ const writingMode = chunkHHQRYCLW_js.toCssWritingMode(element.textStyle?.textDirection);
1273
+ const textOrientation = chunkHHQRYCLW_js.toCssTextOrientation(element.textStyle?.textDirection);
1274
+ const verticalDirection = chunkHHQRYCLW_js.toCssVerticalDirection(element.textStyle?.textDirection);
1275
1275
  const parsedColumnCount = Number(element.textStyle?.columnCount);
1276
1276
  const columnCount = Number.isFinite(parsedColumnCount) ? Math.max(1, Math.min(16, Math.round(parsedColumnCount))) : 1;
1277
1277
  const hasColumns = columnCount > 1;
@@ -1279,7 +1279,7 @@ function getTextLayoutStyle(element) {
1279
1279
  const tabStops = element.textStyle?.tabStops;
1280
1280
  const tabSize = computeTabSize(tabStops, element.textStyle?.defaultTabSize);
1281
1281
  const textWrapNone = element.textStyle?.textWrap === "none";
1282
- const hasParagraphIndents = chunkT7AMP24E_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
1282
+ const hasParagraphIndents = chunkHHQRYCLW_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
1283
1283
  const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
1284
1284
  const paragraphIndent = element.textStyle?.paragraphIndent;
1285
1285
  const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
@@ -1288,7 +1288,7 @@ function getTextLayoutStyle(element) {
1288
1288
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
1289
1289
  const parsedColumnSpacing = Number(element.textStyle?.columnSpacing);
1290
1290
  const columnGap = Number.isFinite(parsedColumnSpacing) && parsedColumnSpacing > 0 ? `${parsedColumnSpacing}px` : "0.75em";
1291
- const kinsokuStyles = chunkT7AMP24E_js.getKinsokuLineBreakStyles(element.textStyle);
1291
+ const kinsokuStyles = chunkHHQRYCLW_js.getKinsokuLineBreakStyles(element.textStyle);
1292
1292
  if (hasColumns) {
1293
1293
  return {
1294
1294
  display: "block",
@@ -1335,10 +1335,10 @@ function getTextLayoutStyle(element) {
1335
1335
 
1336
1336
  // src/viewer/utils/text-effects.tsx
1337
1337
  function buildTextFillCss2(style) {
1338
- return chunkT7AMP24E_js.buildTextFillCss(style);
1338
+ return chunkHHQRYCLW_js.buildTextFillCss(style);
1339
1339
  }
1340
1340
  function buildTextBody3DSceneStyle2(textStyle) {
1341
- return chunkT7AMP24E_js.buildTextBody3DSceneStyle(textStyle);
1341
+ return chunkHHQRYCLW_js.buildTextBody3DSceneStyle(textStyle);
1342
1342
  }
1343
1343
 
1344
1344
  // src/viewer/utils/text-warp-css.tsx
@@ -1523,13 +1523,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1523
1523
  if (!subElementAnimStates || subElementAnimStates.size === 0) {
1524
1524
  return renderedSegments;
1525
1525
  }
1526
- const paraKey = `${elementId}${chunkT7AMP24E_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1526
+ const paraKey = `${elementId}${chunkHHQRYCLW_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1527
1527
  const paraState = subElementAnimStates.get(paraKey);
1528
1528
  if (paraState) {
1529
1529
  const style = buildAnimStyle(paraState);
1530
1530
  return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
1531
1531
  }
1532
- const spec = chunkT7AMP24E_js.buildTextBuildSpec(
1532
+ const spec = chunkHHQRYCLW_js.buildTextBuildSpec(
1533
1533
  elementId,
1534
1534
  paraIndex,
1535
1535
  paraSegments.map((entry) => ({ text: entry.segment.text, style: entry })),
@@ -1547,7 +1547,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1547
1547
  "span",
1548
1548
  {
1549
1549
  "data-anim-id": span.animId,
1550
- style: chunkT7AMP24E_js.textBuildSpanStyle(span),
1550
+ style: chunkHHQRYCLW_js.textBuildSpanStyle(span),
1551
1551
  children: content
1552
1552
  },
1553
1553
  span.animId
@@ -1691,10 +1691,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1691
1691
  if (!needsScriptFonts || !text) {
1692
1692
  return text;
1693
1693
  }
1694
- const runs = chunkT7AMP24E_js.segmentByScript(text);
1694
+ const runs = chunkHHQRYCLW_js.segmentByScript(text);
1695
1695
  if (runs.length <= 1) {
1696
1696
  if (runs.length === 1) {
1697
- const font = chunkT7AMP24E_js.resolveFontForScript(runs[0].script, scriptFonts);
1697
+ const font = chunkHHQRYCLW_js.resolveFontForScript(runs[0].script, scriptFonts);
1698
1698
  if (font && font !== baseFontFamily) {
1699
1699
  return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontFamily: font }, children: text });
1700
1700
  }
@@ -1702,7 +1702,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1702
1702
  return text;
1703
1703
  }
1704
1704
  return runs.map((run, i) => {
1705
- const font = chunkT7AMP24E_js.resolveFontForScript(run.script, scriptFonts);
1705
+ const font = chunkHHQRYCLW_js.resolveFontForScript(run.script, scriptFonts);
1706
1706
  if (!font || font === baseFontFamily) {
1707
1707
  return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
1708
1708
  }
@@ -1774,8 +1774,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
1774
1774
  );
1775
1775
  }
1776
1776
  function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
1777
- const mathml = chunkT7AMP24E_js.convertOmmlToMathMl(equationXml);
1778
- const safeMathml = mathml ? chunkT7AMP24E_js.sanitizeMathMl(mathml) : "";
1777
+ const mathml = chunkHHQRYCLW_js.convertOmmlToMathMl(equationXml);
1778
+ const safeMathml = mathml ? chunkHHQRYCLW_js.sanitizeMathMl(mathml) : "";
1779
1779
  const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
1780
1780
  "span",
1781
1781
  {
@@ -1825,7 +1825,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
1825
1825
  return /* @__PURE__ */ jsxRuntime.jsx("span", { children: equationContent }, `${elementId}-seg-${segmentIndex}`);
1826
1826
  }
1827
1827
  function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize) {
1828
- const picture = chunkT7AMP24E_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
1828
+ const picture = chunkHHQRYCLW_js.resolvePictureBullet(bulletInfo, baseFontSize) ?? {
1829
1829
  sizePx: baseFontSize,
1830
1830
  fallbackMarker: "\u2022",
1831
1831
  accessibleLabel: "Bullet"
@@ -1875,7 +1875,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1875
1875
  );
1876
1876
  }
1877
1877
  const segmentStyle = segment.style || {};
1878
- const textValue = chunkT7AMP24E_js.substituteFieldText(segment.text || "", segment.fieldType, fieldContext);
1878
+ const textValue = chunkHHQRYCLW_js.substituteFieldText(segment.text || "", segment.fieldType, fieldContext);
1879
1879
  const lines = textValue.split("\n");
1880
1880
  const textDecorationTokens = [];
1881
1881
  if (segmentStyle.underline || segmentStyle.hyperlink) {
@@ -1885,8 +1885,8 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1885
1885
  textDecorationTokens.push("line-through");
1886
1886
  }
1887
1887
  const isDoubleStrike = segmentStyle.strikethrough && segmentStyle.strikeType === "dblStrike";
1888
- const resolvedSegmentColor = segmentStyle.hyperlink ? chunkT7AMP24E_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkT7AMP24E_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
1889
- const underlineDecoration = chunkT7AMP24E_js.resolveUnderlineDecorationStyle(
1888
+ const resolvedSegmentColor = segmentStyle.hyperlink ? chunkHHQRYCLW_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, HYPERLINK_COLOR) : chunkHHQRYCLW_js.normalizeHexColor(segmentStyle.color || element.textStyle?.color, fallbackColor);
1889
+ const underlineDecoration = chunkHHQRYCLW_js.resolveUnderlineDecorationStyle(
1890
1890
  Boolean(isDoubleStrike),
1891
1891
  segmentStyle.underlineStyle
1892
1892
  );
@@ -1902,14 +1902,14 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1902
1902
  const baseFontSizePt = baseFontSize * (72 / 96);
1903
1903
  const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
1904
1904
  const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
1905
- const baseFontFamily = rawFontFamily ? chunkT7AMP24E_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
1905
+ const baseFontFamily = rawFontFamily ? chunkHHQRYCLW_js.getSubstituteFontFamily(rawFontFamily) : DEFAULT_FONT_FAMILY;
1906
1906
  const scriptFonts = {
1907
1907
  latin: baseFontFamily,
1908
1908
  eastAsia: segmentStyle.eastAsiaFont || element.textStyle?.eastAsiaFont || baseFontFamily,
1909
1909
  complexScript: segmentStyle.complexScriptFont || element.textStyle?.complexScriptFont || baseFontFamily,
1910
1910
  symbol: segmentStyle.symbolFont || element.textStyle?.symbolFont || baseFontFamily
1911
1911
  };
1912
- const needsScriptFonts = chunkT7AMP24E_js.hasDistinctScriptFonts(scriptFonts);
1912
+ const needsScriptFonts = chunkHHQRYCLW_js.hasDistinctScriptFonts(scriptFonts);
1913
1913
  const spanStyle = {
1914
1914
  color: resolvedSegmentColor,
1915
1915
  fontSize: baseFontSize * baselineFontScale,
@@ -1927,15 +1927,15 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1927
1927
  fontVariantCaps: segmentStyle.textCaps === "small" ? "small-caps" : void 0,
1928
1928
  letterSpacing,
1929
1929
  fontKerning,
1930
- backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkT7AMP24E_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
1930
+ backgroundColor: textFillStyles ? void 0 : segmentStyle.highlightColor ? chunkHHQRYCLW_js.normalizeHexColor(segmentStyle.highlightColor, "transparent") : void 0,
1931
1931
  ...textFillStyles,
1932
- textDecorationColor: segmentStyle.underlineColor ? chunkT7AMP24E_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
1933
- WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkT7AMP24E_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
1932
+ textDecorationColor: segmentStyle.underlineColor ? chunkHHQRYCLW_js.normalizeHexColor(segmentStyle.underlineColor, void 0) : void 0,
1933
+ WebkitTextStroke: segmentStyle.textOutlineWidth && segmentStyle.textOutlineColor ? `${segmentStyle.textOutlineWidth}px ${chunkHHQRYCLW_js.normalizeHexColor(segmentStyle.textOutlineColor, "#000000")}` : segmentStyle.textOutlineWidth ? `${segmentStyle.textOutlineWidth}px currentColor` : void 0,
1934
1934
  paintOrder: segmentStyle.textOutlineWidth ? "stroke fill" : void 0,
1935
- textShadow: chunkT7AMP24E_js.buildTextShadowCss(segmentStyle),
1936
- filter: chunkT7AMP24E_js.buildTextRunFilterChain(segmentStyle),
1937
- opacity: chunkT7AMP24E_js.getTextAlphaOpacity(segmentStyle),
1938
- WebkitBoxReflect: chunkT7AMP24E_js.buildTextReflectionCss(segmentStyle)
1935
+ textShadow: chunkHHQRYCLW_js.buildTextShadowCss(segmentStyle),
1936
+ filter: chunkHHQRYCLW_js.buildTextRunFilterChain(segmentStyle),
1937
+ opacity: chunkHHQRYCLW_js.getTextAlphaOpacity(segmentStyle),
1938
+ WebkitBoxReflect: chunkHHQRYCLW_js.buildTextReflectionCss(segmentStyle)
1939
1939
  };
1940
1940
  const runRtl = segmentStyle.rtl;
1941
1941
  if (runRtl !== void 0 && runRtl !== paragraphRtl) {
@@ -1955,7 +1955,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1955
1955
  spanStyle.fontSize = baseFontSize * (bulletInfo.sizePercent / 100) * baselineFontScale;
1956
1956
  }
1957
1957
  if (bulletInfo.color) {
1958
- spanStyle.color = chunkT7AMP24E_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
1958
+ spanStyle.color = chunkHHQRYCLW_js.normalizeHexColor(bulletInfo.color, resolvedSegmentColor);
1959
1959
  }
1960
1960
  }
1961
1961
  if (bulletInfo?.imageDataUrl || bulletInfo?.imageRelId) {
@@ -1995,7 +1995,7 @@ function renderSingleSegment(element, segment, segmentIndex, fallbackColor, find
1995
1995
  textAlign: segment.rubyAlignment === "l" ? "left" : segment.rubyAlignment === "r" ? "right" : segment.rubyAlignment === "dist" || segment.rubyAlignment === "distCat" || segment.rubyAlignment === "distLetter" ? "justify" : "center"
1996
1996
  };
1997
1997
  if (segment.rubyStyle?.color) {
1998
- rubyStyle.color = chunkT7AMP24E_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
1998
+ rubyStyle.color = chunkHHQRYCLW_js.normalizeHexColor(segment.rubyStyle.color, resolvedSegmentColor);
1999
1999
  }
2000
2000
  innerContent = /* @__PURE__ */ jsxRuntime.jsxs("ruby", { children: [
2001
2001
  baseContent,
@@ -2090,7 +2090,7 @@ function groupSegmentsIntoParagraphs(segments) {
2090
2090
  return paragraphs;
2091
2091
  }
2092
2092
  function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
2093
- if (!chunkT7AMP24E_js.hasTextProperties(element)) {
2093
+ if (!chunkHHQRYCLW_js.hasTextProperties(element)) {
2094
2094
  return emptyFallback || null;
2095
2095
  }
2096
2096
  const effectiveSegments = segmentOverrides ?? element.textSegments;
@@ -2111,10 +2111,10 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2111
2111
  return element.text || emptyFallback || "";
2112
2112
  }
2113
2113
  const paragraphs = groupSegmentsIntoParagraphs(effectiveSegments);
2114
- const paragraphIndents = chunkT7AMP24E_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
2115
- const elementRtl = chunkT7AMP24E_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
2116
- const elementAlign = chunkT7AMP24E_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
2117
- const bodyStyle = chunkT7AMP24E_js.hasTextProperties(element) ? element.textStyle : void 0;
2114
+ const paragraphIndents = chunkHHQRYCLW_js.hasTextProperties(element) ? element.paragraphIndents : void 0;
2115
+ const elementRtl = chunkHHQRYCLW_js.hasTextProperties(element) ? element.textStyle?.rtl : void 0;
2116
+ const elementAlign = chunkHHQRYCLW_js.hasTextProperties(element) ? element.textStyle?.align : void 0;
2117
+ const bodyStyle = chunkHHQRYCLW_js.hasTextProperties(element) ? element.textStyle : void 0;
2118
2118
  const spaceFirstLast = bodyStyle?.spaceFirstLastParagraph !== false;
2119
2119
  return paragraphs.map((paraSegments, paraIndex) => {
2120
2120
  const paraIndent = paragraphIndents?.[paraIndex];
@@ -2129,14 +2129,14 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2129
2129
  return Boolean(segment.text) && segment.text.trim().length > 0;
2130
2130
  });
2131
2131
  const hasBullet = bulletInfo && !bulletInfo.none && hasVisibleTextContent;
2132
- const paraRtl = chunkT7AMP24E_js.resolveParagraphRtl(paraSegments, elementRtl);
2132
+ const paraRtl = chunkHHQRYCLW_js.resolveParagraphRtl(paraSegments, elementRtl);
2133
2133
  const isRtlParagraph = paraRtl === true;
2134
- const paraAlign = chunkT7AMP24E_js.resolveParagraphAlign(paraSegments, elementAlign);
2135
- const cssTextAlign = chunkT7AMP24E_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
2134
+ const paraAlign = chunkHHQRYCLW_js.resolveParagraphAlign(paraSegments, elementAlign);
2135
+ const cssTextAlign = chunkHHQRYCLW_js.resolveCssTextAlign(paraAlign, isRtlParagraph);
2136
2136
  const paraMarginLeft = isRtlParagraph ? void 0 : rawMarginLeft;
2137
2137
  const paraMarginRight = isRtlParagraph ? rawMarginLeft : void 0;
2138
2138
  const paraTextIndent = rawTextIndent;
2139
- const paraKinsokuStyle = chunkT7AMP24E_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
2139
+ const paraKinsokuStyle = chunkHHQRYCLW_js.getKinsokuLineBreakStyles(firstSeg?.segment.style);
2140
2140
  const hasParaKinsoku = Object.keys(paraKinsokuStyle).length > 0;
2141
2141
  const paraProps = effectiveSegments[firstSeg?.globalIndex ?? -1]?.paragraphProperties;
2142
2142
  const spacing = resolveParagraphSpacing({
@@ -2146,7 +2146,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
2146
2146
  isLast: paraIndex === paragraphs.length - 1,
2147
2147
  spaceFirstLast
2148
2148
  });
2149
- const strutFontSize = chunkT7AMP24E_js.resolveParagraphStrutFontSize(
2149
+ const strutFontSize = chunkHHQRYCLW_js.resolveParagraphStrutFontSize(
2150
2150
  paraSegments.map(({ segment }) => segment),
2151
2151
  bodyStyle?.fontSize
2152
2152
  );
@@ -2246,13 +2246,13 @@ function hexToRgbUnit(hex) {
2246
2246
  };
2247
2247
  }
2248
2248
  function getDuotoneColors(element) {
2249
- if (!chunkT7AMP24E_js.isImageLikeElement(element)) {
2249
+ if (!chunkHHQRYCLW_js.isImageLikeElement(element)) {
2250
2250
  return void 0;
2251
2251
  }
2252
2252
  return element.imageEffects?.duotone;
2253
2253
  }
2254
2254
  function buildLineShadowCss(element) {
2255
- if (!chunkT7AMP24E_js.hasShapeProperties(element)) {
2255
+ if (!chunkHHQRYCLW_js.hasShapeProperties(element)) {
2256
2256
  return void 0;
2257
2257
  }
2258
2258
  const ss = element.shapeStyle;
@@ -2263,13 +2263,13 @@ function buildLineShadowCss(element) {
2263
2263
  const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
2264
2264
  const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
2265
2265
  const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
2266
- return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkT7AMP24E_js.colorWithOpacity(
2267
- chunkT7AMP24E_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
2266
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkHHQRYCLW_js.colorWithOpacity(
2267
+ chunkHHQRYCLW_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
2268
2268
  opacity
2269
2269
  )}`;
2270
2270
  }
2271
2271
  function buildLineGlowFilter(element) {
2272
- if (!chunkT7AMP24E_js.hasShapeProperties(element)) {
2272
+ if (!chunkHHQRYCLW_js.hasShapeProperties(element)) {
2273
2273
  return void 0;
2274
2274
  }
2275
2275
  const ss = element.shapeStyle;
@@ -2278,7 +2278,7 @@ function buildLineGlowFilter(element) {
2278
2278
  }
2279
2279
  const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
2280
2280
  const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
2281
- const glowCol = chunkT7AMP24E_js.colorWithOpacity(chunkT7AMP24E_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
2281
+ const glowCol = chunkHHQRYCLW_js.colorWithOpacity(chunkHHQRYCLW_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
2282
2282
  return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
2283
2283
  }
2284
2284
  function mapDagBlendModeToCss(blend) {
@@ -2302,7 +2302,7 @@ function getDagDuotoneFilterId(elementId) {
2302
2302
  return `dag-duotone-${elementId}`;
2303
2303
  }
2304
2304
  function hasDagDuotoneEffect(element) {
2305
- if (!chunkT7AMP24E_js.hasShapeProperties(element)) {
2305
+ if (!chunkHHQRYCLW_js.hasShapeProperties(element)) {
2306
2306
  return false;
2307
2307
  }
2308
2308
  return Boolean(element.shapeStyle?.dagDuotone);
@@ -2365,7 +2365,7 @@ function getRoundRectRadiusPx2(element) {
2365
2365
 
2366
2366
  // src/viewer/utils/shape-visual-3d.ts
2367
2367
  function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
2368
- return chunkT7AMP24E_js.build3DExtrusionData(
2368
+ return chunkHHQRYCLW_js.build3DExtrusionData(
2369
2369
  shape3d,
2370
2370
  scene3d,
2371
2371
  fillColor,
@@ -2374,7 +2374,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
2374
2374
  );
2375
2375
  }
2376
2376
  function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
2377
- chunkT7AMP24E_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
2377
+ chunkHHQRYCLW_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
2378
2378
  }
2379
2379
 
2380
2380
  // src/viewer/utils/vector-subpath-paint.ts
@@ -2383,7 +2383,7 @@ function toHexByte(value) {
2383
2383
  return clamped.toString(16).padStart(2, "0");
2384
2384
  }
2385
2385
  function shiftHex(hex, factor, towardsWhite) {
2386
- const channels = chunkT7AMP24E_js.hexToRgbChannels(hex);
2386
+ const channels = chunkHHQRYCLW_js.hexToRgbChannels(hex);
2387
2387
  if (!channels) {
2388
2388
  return hex;
2389
2389
  }
@@ -2409,13 +2409,13 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
2409
2409
  const fillOff = subpath.fillMode === "none" || !hasFill;
2410
2410
  return {
2411
2411
  d: subpath.d,
2412
- fill: fillOff ? "none" : chunkT7AMP24E_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2412
+ fill: fillOff ? "none" : chunkHHQRYCLW_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2413
2413
  stroked: subpath.stroke !== false
2414
2414
  };
2415
2415
  });
2416
2416
  }
2417
2417
  function getStrokeOnlyPresetPaths(element) {
2418
- if (element.type !== "shape" || !chunkT7AMP24E_js.hasShapeProperties(element)) {
2418
+ if (element.type !== "shape" || !chunkHHQRYCLW_js.hasShapeProperties(element)) {
2419
2419
  return void 0;
2420
2420
  }
2421
2421
  const shapeType = element.shapeType;
@@ -2425,7 +2425,7 @@ function getStrokeOnlyPresetPaths(element) {
2425
2425
  if (element.pathData) {
2426
2426
  return void 0;
2427
2427
  }
2428
- const result = chunkT7AMP24E_js.evaluatePresetShape(
2428
+ const result = chunkHHQRYCLW_js.evaluatePresetShape(
2429
2429
  shapeType,
2430
2430
  Math.max(element.width, 1),
2431
2431
  Math.max(element.height, 1),
@@ -2440,27 +2440,27 @@ function getStrokeOnlyPresetPaths(element) {
2440
2440
 
2441
2441
  // src/viewer/utils/shape-visual-style.ts
2442
2442
  function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2443
- if (!chunkT7AMP24E_js.hasShapeProperties(element)) {
2443
+ if (!chunkHHQRYCLW_js.hasShapeProperties(element)) {
2444
2444
  return {};
2445
2445
  }
2446
2446
  const normalizedShapeType = getShapeType(element.shapeType);
2447
- const clipPath = chunkT7AMP24E_js.getResolvedShapeClipPath(element);
2447
+ const clipPath = chunkHHQRYCLW_js.getResolvedShapeClipPath(element);
2448
2448
  const rendersCustomVectorPath = (element.type === "shape" || element.type === "image" || element.type === "picture") && Boolean(element.pathData) && typeof element.pathWidth === "number" && element.pathWidth > 0 && typeof element.pathHeight === "number" && element.pathHeight > 0;
2449
2449
  const rendersStrokeOnlyPreset = Boolean(getStrokeOnlyPresetPaths(element));
2450
2450
  const fillOpacity = element.shapeStyle?.fillOpacity;
2451
2451
  const strokeOpacity = element.shapeStyle?.strokeOpacity;
2452
- const strokeDash = chunkT7AMP24E_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2453
- const fillGradient = chunkT7AMP24E_js.buildCssGradientFromShapeStyle(element.shapeStyle) || element.shapeStyle?.fillGradient;
2454
- const shadowCss = chunkT7AMP24E_js.buildShadowCssFromShapeStyle(element.shapeStyle);
2455
- const innerShadowCss = chunkT7AMP24E_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
2456
- const resolvedFillColor = chunkT7AMP24E_js.colorWithOpacity(fillColor, fillOpacity);
2457
- const resolvedStrokeColor = chunkT7AMP24E_js.colorWithOpacity(strokeColor, strokeOpacity);
2452
+ const strokeDash = chunkHHQRYCLW_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2453
+ const fillGradient = chunkHHQRYCLW_js.buildCssGradientFromShapeStyle(element.shapeStyle) || element.shapeStyle?.fillGradient;
2454
+ const shadowCss = chunkHHQRYCLW_js.buildShadowCssFromShapeStyle(element.shapeStyle);
2455
+ const innerShadowCss = chunkHHQRYCLW_js.buildInnerShadowCssFromShapeStyle(element.shapeStyle);
2456
+ const resolvedFillColor = chunkHHQRYCLW_js.colorWithOpacity(fillColor, fillOpacity);
2457
+ const resolvedStrokeColor = chunkHHQRYCLW_js.colorWithOpacity(strokeColor, strokeOpacity);
2458
2458
  const ss = element.shapeStyle;
2459
2459
  const hasFillOverlayColor = Boolean(
2460
2460
  ss?.dagFillOverlayColor && ss.dagFillOverlayColor !== "transparent"
2461
2461
  );
2462
2462
  const combinedShadowParts = [];
2463
- const multiLayerShadow = chunkT7AMP24E_js.buildMultiLayerShadowCss(element.shapeStyle);
2463
+ const multiLayerShadow = chunkHHQRYCLW_js.buildMultiLayerShadowCss(element.shapeStyle);
2464
2464
  if (multiLayerShadow) {
2465
2465
  combinedShadowParts.push(multiLayerShadow);
2466
2466
  } else if (shadowCss) {
@@ -2469,7 +2469,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2469
2469
  if (innerShadowCss) {
2470
2470
  combinedShadowParts.push(innerShadowCss);
2471
2471
  }
2472
- const glowBoxShadow = chunkT7AMP24E_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
2472
+ const glowBoxShadow = chunkHHQRYCLW_js.buildGlowBoxShadow(ss?.glowColor, ss?.glowRadius, ss?.glowOpacity);
2473
2473
  if (glowBoxShadow) {
2474
2474
  combinedShadowParts.push(glowBoxShadow);
2475
2475
  }
@@ -2477,7 +2477,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2477
2477
  if (lineShadow) {
2478
2478
  combinedShadowParts.push(lineShadow);
2479
2479
  }
2480
- const compoundLineShadow = chunkT7AMP24E_js.getCompoundLineBoxShadow(
2480
+ const compoundLineShadow = chunkHHQRYCLW_js.getCompoundLineBoxShadow(
2481
2481
  element.shapeStyle?.compoundLine,
2482
2482
  strokeWidth,
2483
2483
  resolvedStrokeColor
@@ -2490,11 +2490,11 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2490
2490
  if (ss?.glowColor && ss.glowColor !== "transparent" && ss.glowRadius) {
2491
2491
  const glowOpacity = typeof ss.glowOpacity === "number" ? ss.glowOpacity : 0.75;
2492
2492
  const glowRad = Math.round(Math.max(0, ss.glowRadius));
2493
- const glowCol = chunkT7AMP24E_js.colorWithOpacity(chunkT7AMP24E_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
2493
+ const glowCol = chunkHHQRYCLW_js.colorWithOpacity(chunkHHQRYCLW_js.normalizeHexColor(ss.glowColor, "#ffff00"), glowOpacity);
2494
2494
  filterParts.push(`drop-shadow(0 0 ${glowRad}px ${glowCol})`);
2495
2495
  }
2496
2496
  if (typeof ss?.softEdgeRadius === "number" && ss.softEdgeRadius > 0) {
2497
- filterParts.push(`url(#${chunkT7AMP24E_js.getSoftEdgeFilterId(element.id)})`);
2497
+ filterParts.push(`url(#${chunkHHQRYCLW_js.getSoftEdgeFilterId(element.id)})`);
2498
2498
  }
2499
2499
  if (typeof ss?.blurRadius === "number" && ss.blurRadius > 0) {
2500
2500
  filterParts.push(`blur(${Math.round(ss.blurRadius)}px)`);
@@ -2503,13 +2503,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2503
2503
  if (lineGlowCss) {
2504
2504
  filterParts.push(lineGlowCss);
2505
2505
  }
2506
- const dagFilter = chunkT7AMP24E_js.getEffectDagFilter(ss, element.id);
2506
+ const dagFilter = chunkHHQRYCLW_js.getEffectDagFilter(ss, element.id);
2507
2507
  if (dagFilter) {
2508
2508
  filterParts.push(dagFilter);
2509
2509
  }
2510
2510
  const lineJoinCss = ss?.lineJoin === "round" ? "round" : ss?.lineJoin === "bevel" ? "bevel" : ss?.lineJoin === "miter" ? "miter" : void 0;
2511
2511
  const miterLimitCss = ss?.lineJoin === "miter" && typeof ss?.miterLimit === "number" ? Math.max(ss.miterLimit / 1e5, 1) : void 0;
2512
- const patternFill = chunkT7AMP24E_js.buildPatternFillCss(element.shapeStyle);
2512
+ const patternFill = chunkHHQRYCLW_js.buildPatternFillCss(element.shapeStyle);
2513
2513
  const imageFillUrl = ss?.fillMode === "image" && ss.fillImageUrl ? ss.fillImageUrl : void 0;
2514
2514
  const imageFillMode = ss?.fillImageMode || "stretch";
2515
2515
  let reflectCss;
@@ -2521,7 +2521,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2521
2521
  const endOpacity = typeof ss.reflectionEndOpacity === "number" ? ss.reflectionEndOpacity : 0;
2522
2522
  const fadeLength = typeof ss.reflectionEndPosition === "number" ? Math.round(ss.reflectionEndPosition * Math.max(element.height, 1)) : 100;
2523
2523
  const blurRadius = typeof ss.reflectionBlurRadius === "number" ? ss.reflectionBlurRadius : 0;
2524
- reflectCss = chunkT7AMP24E_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
2524
+ reflectCss = chunkHHQRYCLW_js.buildReflectionCss(distance, startOpacity, endOpacity, fadeLength, blurRadius);
2525
2525
  }
2526
2526
  }
2527
2527
  const base = {
@@ -2563,9 +2563,9 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2563
2563
  // two adjacent 40px buttons rendered with a 2px gap PowerPoint does not
2564
2564
  // draw. The affordance is an `outline` instead (see `ElementRenderer`),
2565
2565
  // which paints in the same place without taking part in layout.
2566
- borderWidth: strokeWidth > 0 ? chunkT7AMP24E_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
2566
+ borderWidth: strokeWidth > 0 ? chunkHHQRYCLW_js.getCompoundLineBorderWidth(ss?.compoundLine, strokeWidth) : 0,
2567
2567
  borderColor: strokeWidth > 0 ? resolvedStrokeColor : void 0,
2568
- borderStyle: strokeWidth > 0 ? chunkT7AMP24E_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
2568
+ borderStyle: strokeWidth > 0 ? chunkHHQRYCLW_js.getCssBorderDashStyle(strokeDash, ss?.compoundLine) : void 0,
2569
2569
  strokeLinejoin: lineJoinCss,
2570
2570
  strokeMiterlimit: miterLimitCss,
2571
2571
  strokeLinecap: ss?.lineCap === "rnd" ? "round" : ss?.lineCap === "sq" ? "square" : ss?.lineCap === "flat" ? "butt" : void 0
@@ -2621,7 +2621,7 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2621
2621
  borderWidth: 0,
2622
2622
  borderTopWidth: Math.max(strokeWidth, 2),
2623
2623
  borderTopColor: resolvedStrokeColor,
2624
- borderTopStyle: chunkT7AMP24E_js.getCssBorderDashStyle(strokeDash)
2624
+ borderTopStyle: chunkHHQRYCLW_js.getCssBorderDashStyle(strokeDash)
2625
2625
  };
2626
2626
  }
2627
2627
  if (normalizedShapeType === "cylinder") {
@@ -2635,13 +2635,13 @@ function getShapeVisualStyle(element, hasFill, fillColor, strokeWidth, strokeCol
2635
2635
  function getConnectorAdjustment(element, key, fallback) {
2636
2636
  const direct = element.shapeAdjustments?.[key];
2637
2637
  if (typeof direct === "number" && Number.isFinite(direct)) {
2638
- return chunkT7AMP24E_js.clampUnitInterval(direct / 1e5);
2638
+ return chunkHHQRYCLW_js.clampUnitInterval(direct / 1e5);
2639
2639
  }
2640
2640
  const fallbackKey = element.shapeAdjustments?.adj;
2641
2641
  if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
2642
- return chunkT7AMP24E_js.clampUnitInterval(fallbackKey / 1e5);
2642
+ return chunkHHQRYCLW_js.clampUnitInterval(fallbackKey / 1e5);
2643
2643
  }
2644
- return chunkT7AMP24E_js.clampUnitInterval(fallback);
2644
+ return chunkHHQRYCLW_js.clampUnitInterval(fallback);
2645
2645
  }
2646
2646
  function getConnectorPathGeometry(element) {
2647
2647
  const width = Math.max(element.width, 1);
@@ -2778,11 +2778,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
2778
2778
  strokePaint,
2779
2779
  strokeWidth,
2780
2780
  dashArray,
2781
- lineCap: chunkT7AMP24E_js.svgLineCap(shapeStyle?.lineCap),
2781
+ lineCap: chunkHHQRYCLW_js.svgLineCap(shapeStyle?.lineCap),
2782
2782
  lineJoin,
2783
2783
  miterLimit,
2784
- offsets: chunkT7AMP24E_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2785
- widths: chunkT7AMP24E_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2784
+ offsets: chunkHHQRYCLW_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2785
+ widths: chunkHHQRYCLW_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2786
2786
  };
2787
2787
  }
2788
2788
  function strokeStrands(d, keyBase, ctx) {
@@ -2805,7 +2805,7 @@ function strokeStrands(d, keyBase, ctx) {
2805
2805
  }
2806
2806
  function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false) {
2807
2807
  const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
2808
- const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkT7AMP24E_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2808
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkHHQRYCLW_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2809
2809
  const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
2810
2810
  const nodes = [];
2811
2811
  if (subpaths && needsPerSubpath) {
@@ -2836,7 +2836,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2836
2836
  "path",
2837
2837
  {
2838
2838
  d: pathData,
2839
- fill: animatesFill ? "inherit" : chunkT7AMP24E_js.colorWithOpacity(fillColor, fillOpacity),
2839
+ fill: animatesFill ? "inherit" : chunkHHQRYCLW_js.colorWithOpacity(fillColor, fillOpacity),
2840
2840
  stroke: "none",
2841
2841
  vectorEffect: "non-scaling-stroke"
2842
2842
  },
@@ -2878,14 +2878,14 @@ function renderStrokeOnlyPreset(presetPaths, width, height, shapeStyle, strokePa
2878
2878
  );
2879
2879
  }
2880
2880
  function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2881
- if (!chunkT7AMP24E_js.hasShapeProperties(element)) {
2881
+ if (!chunkHHQRYCLW_js.hasShapeProperties(element)) {
2882
2882
  return null;
2883
2883
  }
2884
2884
  const normalizedType = (element.shapeType || "").toLowerCase();
2885
- const fillPaint = animatesFill ? "inherit" : chunkT7AMP24E_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2886
- const strokePaint = animatesStroke ? "inherit" : chunkT7AMP24E_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2887
- const dashType = chunkT7AMP24E_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2888
- const dashArray = chunkT7AMP24E_js.getSvgStrokeDasharray(
2885
+ const fillPaint = animatesFill ? "inherit" : chunkHHQRYCLW_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2886
+ const strokePaint = animatesStroke ? "inherit" : chunkHHQRYCLW_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2887
+ const dashType = chunkHHQRYCLW_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2888
+ const dashArray = chunkHHQRYCLW_js.getSvgStrokeDasharray(
2889
2889
  dashType,
2890
2890
  Math.max(strokeWidth, 1),
2891
2891
  element.shapeStyle?.customDashSegments
@@ -2964,18 +2964,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2964
2964
  Boolean(animatesFill)
2965
2965
  );
2966
2966
  }
2967
- if (chunkT7AMP24E_js.isCalloutShape(normalizedType)) {
2967
+ if (chunkHHQRYCLW_js.isCalloutShape(normalizedType)) {
2968
2968
  const width = Math.max(element.width, 1);
2969
2969
  const height = Math.max(element.height, 1);
2970
- const geometry = chunkT7AMP24E_js.getCalloutLeaderLineGeometry(
2970
+ const geometry = chunkHHQRYCLW_js.getCalloutLeaderLineGeometry(
2971
2971
  normalizedType,
2972
2972
  width,
2973
2973
  height,
2974
2974
  element.shapeAdjustments
2975
2975
  );
2976
2976
  if (geometry && geometry.points.length >= 2) {
2977
- const leaderPath = chunkT7AMP24E_js.buildCalloutLeaderLineSvgPath(geometry);
2978
- const bounds = chunkT7AMP24E_js.getCalloutViewBoxBounds(width, height, geometry);
2977
+ const leaderPath = chunkHHQRYCLW_js.buildCalloutLeaderLineSvgPath(geometry);
2978
+ const bounds = chunkHHQRYCLW_js.getCalloutViewBoxBounds(width, height, geometry);
2979
2979
  const lineStroke = Math.max(strokeWidth, 1);
2980
2980
  const offsetLeft = bounds.minX;
2981
2981
  const offsetTop = bounds.minY;
@@ -3038,10 +3038,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
3038
3038
  const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
3039
3039
  const endArrowL = element.shapeStyle?.connectorEndArrowLength;
3040
3040
  const compoundLine = element.shapeStyle?.compoundLine;
3041
- const connectorLineCap = chunkT7AMP24E_js.svgLineCap(element.shapeStyle?.lineCap);
3041
+ const connectorLineCap = chunkHHQRYCLW_js.svgLineCap(element.shapeStyle?.lineCap);
3042
3042
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
3043
- const offsets = chunkT7AMP24E_js.getCompoundLineOffsets(compoundLine, strokeWidth);
3044
- const widths = chunkT7AMP24E_js.getCompoundLineWidths(compoundLine, strokeWidth);
3043
+ const offsets = chunkHHQRYCLW_js.getCompoundLineOffsets(compoundLine, strokeWidth);
3044
+ const widths = chunkHHQRYCLW_js.getCompoundLineWidths(compoundLine, strokeWidth);
3045
3045
  return /* @__PURE__ */ jsxRuntime.jsxs(
3046
3046
  "svg",
3047
3047
  {
@@ -3120,15 +3120,15 @@ function parseGradientFillCss(gradFill) {
3120
3120
  }
3121
3121
  const parsed = stops.map((gs) => {
3122
3122
  const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
3123
- const color = chunkT7AMP24E_js.parseDrawingColor(gs) ?? "#888888";
3124
- const opacity = chunkT7AMP24E_js.parseDrawingColorOpacity(gs);
3125
- return { pos, color: chunkT7AMP24E_js.colorWithOpacity(color, opacity) };
3123
+ const color = chunkHHQRYCLW_js.parseDrawingColor(gs) ?? "#888888";
3124
+ const opacity = chunkHHQRYCLW_js.parseDrawingColorOpacity(gs);
3125
+ return { pos, color: chunkHHQRYCLW_js.colorWithOpacity(color, opacity) };
3126
3126
  }).sort((a, b) => a.pos - b.pos);
3127
3127
  const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
3128
3128
  const lin = gradFill["a:lin"];
3129
3129
  if (lin) {
3130
3130
  const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
3131
- const angleDeg = Math.round(chunkT7AMP24E_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
3131
+ const angleDeg = Math.round(chunkHHQRYCLW_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
3132
3132
  return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
3133
3133
  }
3134
3134
  const path = gradFill["a:path"];
@@ -3163,8 +3163,8 @@ function parsePatternFillCss(pattFill) {
3163
3163
  if (!pattFill) {
3164
3164
  return void 0;
3165
3165
  }
3166
- const fgColor = chunkT7AMP24E_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
3167
- const bgColor = chunkT7AMP24E_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
3166
+ const fgColor = chunkHHQRYCLW_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
3167
+ const bgColor = chunkHHQRYCLW_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
3168
3168
  const preset = String(pattFill["@_prst"] || "ltDnDiag");
3169
3169
  switch (preset) {
3170
3170
  case "ltHorz":
@@ -3275,11 +3275,11 @@ function parseCellBorders(cellProperties) {
3275
3275
  const prstDash = ln["a:prstDash"];
3276
3276
  const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
3277
3277
  const cssBorderStyle = ooxmlDashToCss(dashVal);
3278
- const color = chunkT7AMP24E_js.parseDrawingColor(ln["a:solidFill"]);
3278
+ const color = chunkHHQRYCLW_js.parseDrawingColor(ln["a:solidFill"]);
3279
3279
  if (color) {
3280
- const opacity = chunkT7AMP24E_js.parseDrawingColorOpacity(ln["a:solidFill"]);
3280
+ const opacity = chunkHHQRYCLW_js.parseDrawingColorOpacity(ln["a:solidFill"]);
3281
3281
  const key = `${edge.prefix}`;
3282
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkT7AMP24E_js.colorWithOpacity(color, opacity)}`;
3282
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkHHQRYCLW_js.colorWithOpacity(color, opacity)}`;
3283
3283
  }
3284
3284
  }
3285
3285
  return borderStyle;
@@ -3292,7 +3292,7 @@ function parseCellTextEffects(runProps) {
3292
3292
  const textShadowParts = [];
3293
3293
  const outerShdw = effectLst["a:outerShdw"];
3294
3294
  if (outerShdw) {
3295
- const shdwColor = chunkT7AMP24E_js.parseDrawingColor(outerShdw);
3295
+ const shdwColor = chunkHHQRYCLW_js.parseDrawingColor(outerShdw);
3296
3296
  if (shdwColor) {
3297
3297
  const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
3298
3298
  const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
@@ -3310,7 +3310,7 @@ function parseCellTextEffects(runProps) {
3310
3310
  }
3311
3311
  const glow = effectLst["a:glow"];
3312
3312
  if (glow) {
3313
- const glowColor = chunkT7AMP24E_js.parseDrawingColor(glow);
3313
+ const glowColor = chunkHHQRYCLW_js.parseDrawingColor(glow);
3314
3314
  if (glowColor) {
3315
3315
  const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
3316
3316
  const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
@@ -3389,10 +3389,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3389
3389
  if (runProps?.["@_u"] !== void 0) {
3390
3390
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
3391
3391
  }
3392
- const runColor = chunkT7AMP24E_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkT7AMP24E_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
3392
+ const runColor = chunkHHQRYCLW_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkHHQRYCLW_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
3393
3393
  if (runColor) {
3394
- const opacity = chunkT7AMP24E_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
3395
- cellStyle.color = chunkT7AMP24E_js.colorWithOpacity(runColor, opacity);
3394
+ const opacity = chunkHHQRYCLW_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
3395
+ cellStyle.color = chunkHHQRYCLW_js.colorWithOpacity(runColor, opacity);
3396
3396
  }
3397
3397
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
3398
3398
  if (fontFamily) {
@@ -3402,15 +3402,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3402
3402
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
3403
3403
  }
3404
3404
  const cellProperties = cellXml["a:tcPr"];
3405
- const cellFill = chunkT7AMP24E_js.parseDrawingColor(
3405
+ const cellFill = chunkHHQRYCLW_js.parseDrawingColor(
3406
3406
  cellProperties?.["a:solidFill"],
3407
3407
  schemeColorOverrides
3408
3408
  );
3409
3409
  if (cellFill) {
3410
- const opacity = chunkT7AMP24E_js.parseDrawingColorOpacity(
3410
+ const opacity = chunkHHQRYCLW_js.parseDrawingColorOpacity(
3411
3411
  cellProperties?.["a:solidFill"]
3412
3412
  );
3413
- cellStyle.backgroundColor = chunkT7AMP24E_js.colorWithOpacity(cellFill, opacity);
3413
+ cellStyle.backgroundColor = chunkHHQRYCLW_js.colorWithOpacity(cellFill, opacity);
3414
3414
  } else {
3415
3415
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
3416
3416
  if (gradCss) {
@@ -3425,16 +3425,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
3425
3425
  const edgeBorders = parseCellBorders(cellProperties);
3426
3426
  Object.assign(cellStyle, edgeBorders);
3427
3427
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
3428
- const borderColor = chunkT7AMP24E_js.parseDrawingColor(
3428
+ const borderColor = chunkHHQRYCLW_js.parseDrawingColor(
3429
3429
  cellProperties?.["a:lnL"]?.["a:solidFill"],
3430
3430
  schemeColorOverrides
3431
- ) || chunkT7AMP24E_js.parseDrawingColor(
3431
+ ) || chunkHHQRYCLW_js.parseDrawingColor(
3432
3432
  cellProperties?.["a:lnR"]?.["a:solidFill"],
3433
3433
  schemeColorOverrides
3434
- ) || chunkT7AMP24E_js.parseDrawingColor(
3434
+ ) || chunkHHQRYCLW_js.parseDrawingColor(
3435
3435
  cellProperties?.["a:lnT"]?.["a:solidFill"],
3436
3436
  schemeColorOverrides
3437
- ) || chunkT7AMP24E_js.parseDrawingColor(
3437
+ ) || chunkHHQRYCLW_js.parseDrawingColor(
3438
3438
  cellProperties?.["a:lnB"]?.["a:solidFill"],
3439
3439
  schemeColorOverrides
3440
3440
  );
@@ -3513,10 +3513,10 @@ function resolveTableStyleFillColor(fill, colorScheme) {
3513
3513
  }
3514
3514
  let color = base;
3515
3515
  if (fill.tint !== void 0 && fill.tint > 0) {
3516
- color = chunkT7AMP24E_js.tintColor2(color, fill.tint / 1e5);
3516
+ color = chunkHHQRYCLW_js.tintColor2(color, fill.tint / 1e5);
3517
3517
  }
3518
3518
  if (fill.shade !== void 0 && fill.shade > 0) {
3519
- color = chunkT7AMP24E_js.shadeColor2(color, 1 - fill.shade / 1e5);
3519
+ color = chunkHHQRYCLW_js.shadeColor2(color, 1 - fill.shade / 1e5);
3520
3520
  }
3521
3521
  return color;
3522
3522
  }
@@ -3541,7 +3541,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
3541
3541
  style.fontFamily = text.fontFace;
3542
3542
  applied = true;
3543
3543
  } else {
3544
- const refFont = chunkT7AMP24E_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
3544
+ const refFont = chunkHHQRYCLW_js.resolveFontRefIdx(text.fontRefIdx, fontScheme);
3545
3545
  if (refFont) {
3546
3546
  style.fontFamily = refFont;
3547
3547
  applied = true;
@@ -3552,10 +3552,10 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
3552
3552
  if (base) {
3553
3553
  let color = base;
3554
3554
  if (text.fontTint !== void 0 && text.fontTint > 0) {
3555
- color = chunkT7AMP24E_js.tintColor2(color, text.fontTint / 1e5);
3555
+ color = chunkHHQRYCLW_js.tintColor2(color, text.fontTint / 1e5);
3556
3556
  }
3557
3557
  if (text.fontShade !== void 0 && text.fontShade > 0) {
3558
- color = chunkT7AMP24E_js.shadeColor2(color, 1 - text.fontShade / 1e5);
3558
+ color = chunkHHQRYCLW_js.shadeColor2(color, 1 - text.fontShade / 1e5);
3559
3559
  }
3560
3560
  style.color = color;
3561
3561
  applied = true;
@@ -3744,7 +3744,7 @@ function parseTableElementData(element, fallbackTextStyle) {
3744
3744
  };
3745
3745
  }
3746
3746
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
3747
- return chunkT7AMP24E_js.getCellDiagonalBorders(style, tableData, pos, {
3747
+ return chunkHHQRYCLW_js.getCellDiagonalBorders(style, tableData, pos, {
3748
3748
  tableStyleMap: styleCtx?.tableStyleMap,
3749
3749
  colorScheme: styleCtx?.theme?.colorScheme,
3750
3750
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3892,9 +3892,9 @@ function cellStyleToCss(style) {
3892
3892
  if (style.gradientFillCss) {
3893
3893
  css.background = style.gradientFillCss;
3894
3894
  } else if (style.fillMode === "pattern" && style.patternFillPreset) {
3895
- const fg = chunkT7AMP24E_js.normalizeHexColor(style.patternFillForeground, "#000000");
3896
- const bg = chunkT7AMP24E_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
3897
- const svgPattern = chunkT7AMP24E_js.getPatternSvg(style.patternFillPreset, fg, bg);
3895
+ const fg = chunkHHQRYCLW_js.normalizeHexColor(style.patternFillForeground, "#000000");
3896
+ const bg = chunkHHQRYCLW_js.normalizeHexColor(style.patternFillBackground, "#ffffff");
3897
+ const svgPattern = chunkHHQRYCLW_js.getPatternSvg(style.patternFillPreset, fg, bg);
3898
3898
  if (svgPattern) {
3899
3899
  const encoded = encodeURIComponent(svgPattern);
3900
3900
  css.backgroundImage = `url("data:image/svg+xml,${encoded}")`;
@@ -3970,7 +3970,7 @@ function cellStyleToCss(style) {
3970
3970
  if (edge.width || edge.color) {
3971
3971
  const w = edge.width ?? 1;
3972
3972
  const c = edge.color ?? style.borderColor ?? "#000000";
3973
- const s = chunkT7AMP24E_js.ooxmlDashToCssBorderStyle(edge.dash);
3973
+ const s = chunkHHQRYCLW_js.ooxmlDashToCssBorderStyle(edge.dash);
3974
3974
  css[edge.prefix] = `${w}px ${s} ${c}`;
3975
3975
  }
3976
3976
  }
@@ -4001,7 +4001,7 @@ function cellStyleToCss(style) {
4001
4001
  css.textShadow = textShadowParts.join(", ");
4002
4002
  }
4003
4003
  if (style.cell3D) {
4004
- Object.assign(css, chunkT7AMP24E_js.cell3DBevelCss(style.cell3D));
4004
+ Object.assign(css, chunkHHQRYCLW_js.cell3DBevelCss(style.cell3D));
4005
4005
  }
4006
4006
  return css;
4007
4007
  }
@@ -4015,7 +4015,7 @@ function TableResizeOverlay({
4015
4015
  const containerRef = React6.useRef(null);
4016
4016
  const [rowBounds, setRowBounds] = React6.useState([]);
4017
4017
  const dragRef = React6.useRef(null);
4018
- const colBoundaries = React6.useMemo(() => chunkT7AMP24E_js.computeColumnBoundaries(columnWidths), [columnWidths]);
4018
+ const colBoundaries = React6.useMemo(() => chunkHHQRYCLW_js.computeColumnBoundaries(columnWidths), [columnWidths]);
4019
4019
  const measureRows = React6.useCallback(() => {
4020
4020
  const container = containerRef.current;
4021
4021
  if (!container) {
@@ -4062,11 +4062,11 @@ function TableResizeOverlay({
4062
4062
  const rect = containerRef.current.getBoundingClientRect();
4063
4063
  if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
4064
4064
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
4065
- onResizeColumns(chunkT7AMP24E_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
4065
+ onResizeColumns(chunkHHQRYCLW_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
4066
4066
  } else if (drag.type === "row" && onResizeRow) {
4067
4067
  const deltaY = e.clientY - drag.startPos;
4068
- const newHeight = chunkT7AMP24E_js.computeResizedRowHeight(
4069
- drag.initialRowHeight ?? chunkT7AMP24E_js.DEFAULT_ROW_HEIGHT,
4068
+ const newHeight = chunkHHQRYCLW_js.computeResizedRowHeight(
4069
+ drag.initialRowHeight ?? chunkHHQRYCLW_js.DEFAULT_ROW_HEIGHT,
4070
4070
  deltaY
4071
4071
  );
4072
4072
  onResizeRow(drag.index, newHeight);
@@ -4104,7 +4104,7 @@ function TableResizeOverlay({
4104
4104
  e.stopPropagation();
4105
4105
  const table = containerRef.current?.querySelector("table");
4106
4106
  const tr = table?.querySelectorAll("tbody > tr")[index];
4107
- const actualHeight = tr?.offsetHeight ?? chunkT7AMP24E_js.DEFAULT_ROW_HEIGHT;
4107
+ const actualHeight = tr?.offsetHeight ?? chunkHHQRYCLW_js.DEFAULT_ROW_HEIGHT;
4108
4108
  document.body.style.cursor = "row-resize";
4109
4109
  document.body.style.userSelect = "none";
4110
4110
  dragRef.current = {
@@ -4152,7 +4152,7 @@ function renderTableFromTableData(element, textStyle, options) {
4152
4152
  }
4153
4153
  const first = selectedCell.selectedCells[0];
4154
4154
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
4155
- return chunkT7AMP24E_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
4155
+ return chunkHHQRYCLW_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
4156
4156
  })();
4157
4157
  return /* @__PURE__ */ jsxRuntime.jsx(
4158
4158
  TableResizeOverlay,
@@ -4185,7 +4185,7 @@ function renderTableFromTableData(element, textStyle, options) {
4185
4185
  return null;
4186
4186
  }
4187
4187
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
4188
- const isInMultiSelection = chunkT7AMP24E_js.isCellInRect(rowIndex, cellIndex, selectionRect);
4188
+ const isInMultiSelection = chunkHHQRYCLW_js.isCellInRect(rowIndex, cellIndex, selectionRect);
4189
4189
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
4190
4190
  const diag = getCellDiagonalBorders2(
4191
4191
  cell.style,
@@ -4215,7 +4215,7 @@ function renderTableFromTableData(element, textStyle, options) {
4215
4215
  }
4216
4216
  event.stopPropagation();
4217
4217
  if (event.shiftKey && selectedCell) {
4218
- const rect = chunkT7AMP24E_js.computeSelectionRect(
4218
+ const rect = chunkHHQRYCLW_js.computeSelectionRect(
4219
4219
  selectedCell.rowIndex,
4220
4220
  selectedCell.columnIndex,
4221
4221
  rowIndex,
@@ -4225,7 +4225,7 @@ function renderTableFromTableData(element, textStyle, options) {
4225
4225
  options?.onSelectCell?.({
4226
4226
  rowIndex: selectedCell.rowIndex,
4227
4227
  columnIndex: selectedCell.columnIndex,
4228
- selectedCells: chunkT7AMP24E_js.rectToCells(rect)
4228
+ selectedCells: chunkHHQRYCLW_js.rectToCells(rect)
4229
4229
  });
4230
4230
  } else {
4231
4231
  options?.onSelectCell?.({
@@ -4302,7 +4302,7 @@ function renderTableElement(element, textStyle, options) {
4302
4302
  }
4303
4303
  const first = selectedCell.selectedCells[0];
4304
4304
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
4305
- return chunkT7AMP24E_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
4305
+ return chunkHHQRYCLW_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
4306
4306
  })();
4307
4307
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
4308
4308
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4379,7 +4379,7 @@ function renderTableElement(element, textStyle, options) {
4379
4379
  "border px-1 py-0.5 align-top",
4380
4380
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
4381
4381
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
4382
- chunkT7AMP24E_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
4382
+ chunkHHQRYCLW_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
4383
4383
  ),
4384
4384
  colSpan,
4385
4385
  rowSpan: rSpan,
@@ -4390,7 +4390,7 @@ function renderTableElement(element, textStyle, options) {
4390
4390
  }
4391
4391
  event.stopPropagation();
4392
4392
  if (event.shiftKey && selectedCell && tableEl.tableData) {
4393
- const rect = chunkT7AMP24E_js.computeSelectionRect(
4393
+ const rect = chunkHHQRYCLW_js.computeSelectionRect(
4394
4394
  selectedCell.rowIndex,
4395
4395
  selectedCell.columnIndex,
4396
4396
  rowIndex,
@@ -4400,7 +4400,7 @@ function renderTableElement(element, textStyle, options) {
4400
4400
  options?.onSelectCell?.({
4401
4401
  rowIndex: selectedCell.rowIndex,
4402
4402
  columnIndex: selectedCell.columnIndex,
4403
- selectedCells: chunkT7AMP24E_js.rectToCells(rect)
4403
+ selectedCells: chunkHHQRYCLW_js.rectToCells(rect)
4404
4404
  });
4405
4405
  } else {
4406
4406
  options?.onSelectCell?.({
@@ -4455,24 +4455,24 @@ function renderTableElement(element, textStyle, options) {
4455
4455
  }
4456
4456
  var LEGEND_ITEM_WIDTH = 80;
4457
4457
  function partAttrs(part) {
4458
- return part ? chunkT7AMP24E_js.chartPartToAttrs(part) : void 0;
4458
+ return part ? chunkHHQRYCLW_js.chartPartToAttrs(part) : void 0;
4459
4459
  }
4460
4460
  function resolveReactPalette(chartData) {
4461
4461
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
4462
4462
  return chartData.colorPalette;
4463
4463
  }
4464
- return [...chunkT7AMP24E_js.getChartStylePalette(chartData.style?.styleId)];
4464
+ return [...chunkHHQRYCLW_js.getChartStylePalette(chartData.style?.styleId)];
4465
4465
  }
4466
4466
  function buildReactChartViewModel(element) {
4467
4467
  if (element.type !== "chart" || !element.chartData) {
4468
- return chunkT7AMP24E_js.buildChartViewModel(element);
4468
+ return chunkHHQRYCLW_js.buildChartViewModel(element);
4469
4469
  }
4470
4470
  const palette = resolveReactPalette(element.chartData);
4471
4471
  const themedElement = {
4472
4472
  ...element,
4473
4473
  chartData: { ...element.chartData, colorPalette: palette }
4474
4474
  };
4475
- return chunkT7AMP24E_js.buildChartViewModel(themedElement);
4475
+ return chunkHHQRYCLW_js.buildChartViewModel(themedElement);
4476
4476
  }
4477
4477
  function renderPrimitive(prim, key) {
4478
4478
  switch (prim.kind) {
@@ -4861,7 +4861,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4861
4861
  const unmatchedRows = [];
4862
4862
  categories.forEach((cat, i) => {
4863
4863
  const value = values[i] ?? 0;
4864
- const code = chunkT7AMP24E_js.resolveRegionCode(cat);
4864
+ const code = chunkHHQRYCLW_js.resolveRegionCode(cat);
4865
4865
  if (code) {
4866
4866
  regionValueMap.set(code, { value, label: cat });
4867
4867
  } else {
@@ -4899,8 +4899,8 @@ function renderMapChart(element, chartData, categoryLabels) {
4899
4899
  let fill = "#e2e8f0";
4900
4900
  let dataLabel = null;
4901
4901
  if (entry) {
4902
- const t = chunkT7AMP24E_js.normalizeValue(entry.value, minVal, maxVal);
4903
- fill = chunkT7AMP24E_js.sequentialColorScale(t);
4902
+ const t = chunkHHQRYCLW_js.normalizeValue(entry.value, minVal, maxVal);
4903
+ fill = chunkHHQRYCLW_js.sequentialColorScale(t);
4904
4904
  dataLabel = /* @__PURE__ */ jsxRuntime.jsx(
4905
4905
  "text",
4906
4906
  {
@@ -4911,7 +4911,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4911
4911
  fontWeight: 600,
4912
4912
  fill: "#1e293b",
4913
4913
  style: { pointerEvents: "none" },
4914
- children: chunkT7AMP24E_js.formatAxisValue(entry.value)
4914
+ children: chunkHHQRYCLW_js.formatAxisValue(entry.value)
4915
4915
  },
4916
4916
  `${element.id}-map-dl-${region.code}`
4917
4917
  );
@@ -4929,7 +4929,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4929
4929
  opacity: 0.9,
4930
4930
  children: /* @__PURE__ */ jsxRuntime.jsxs("title", { children: [
4931
4931
  region.name,
4932
- entry ? `: ${chunkT7AMP24E_js.formatAxisValue(entry.value)}` : ""
4932
+ entry ? `: ${chunkHHQRYCLW_js.formatAxisValue(entry.value)}` : ""
4933
4933
  ] })
4934
4934
  }
4935
4935
  ),
@@ -4967,7 +4967,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4967
4967
  fontSize: 7,
4968
4968
  fill: "#64748b",
4969
4969
  textAnchor: "middle",
4970
- children: chunkT7AMP24E_js.formatAxisValue(minVal)
4970
+ children: chunkHHQRYCLW_js.formatAxisValue(minVal)
4971
4971
  },
4972
4972
  `${element.id}-map-legend-min`
4973
4973
  ),
@@ -4979,7 +4979,7 @@ function renderMapChart(element, chartData, categoryLabels) {
4979
4979
  fontSize: 7,
4980
4980
  fill: "#64748b",
4981
4981
  textAnchor: "middle",
4982
- children: chunkT7AMP24E_js.formatAxisValue(maxVal)
4982
+ children: chunkHHQRYCLW_js.formatAxisValue(maxVal)
4983
4983
  },
4984
4984
  `${element.id}-map-legend-max`
4985
4985
  )
@@ -5045,7 +5045,7 @@ function renderMapChart(element, chartData, categoryLabels) {
5045
5045
  y,
5046
5046
  fontSize,
5047
5047
  fill: "#475569",
5048
- children: chunkT7AMP24E_js.formatAxisValue(row.value)
5048
+ children: chunkHHQRYCLW_js.formatAxisValue(row.value)
5049
5049
  },
5050
5050
  `${element.id}-map-ft-val-${i}`
5051
5051
  )
@@ -5116,7 +5116,7 @@ function renderStackedBarChart(element, _chartData, _categoryLabels) {
5116
5116
 
5117
5117
  // src/viewer/utils/chart-overlay-utils.ts
5118
5118
  function sColor(series, idx) {
5119
- return chunkT7AMP24E_js.seriesColor(series, idx);
5119
+ return chunkHHQRYCLW_js.seriesColor(series, idx);
5120
5120
  }
5121
5121
  function valToY(val, range, topY, bottomY) {
5122
5122
  const usable = bottomY - topY;
@@ -5655,7 +5655,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
5655
5655
  width: 10,
5656
5656
  height: 10,
5657
5657
  rx: 2,
5658
- fill: chunkT7AMP24E_js.seriesColor(s, i, style?.styleId, colorPalette)
5658
+ fill: chunkHHQRYCLW_js.seriesColor(s, i, style?.styleId, colorPalette)
5659
5659
  },
5660
5660
  `${id}-leg-r-${i}`
5661
5661
  )
@@ -5679,7 +5679,7 @@ function renderLegend(id, style, series, layout, colorPalette) {
5679
5679
  width: 10,
5680
5680
  height: 10,
5681
5681
  rx: 2,
5682
- fill: chunkT7AMP24E_js.seriesColor(s, i, style?.styleId, colorPalette)
5682
+ fill: chunkHHQRYCLW_js.seriesColor(s, i, style?.styleId, colorPalette)
5683
5683
  }
5684
5684
  ),
5685
5685
  /* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: cy + 8, fontSize: 9, fill: "#475569", children: s.name || `Series ${i + 1}` })
@@ -5692,9 +5692,9 @@ function renderGridlines(id, style, range, layout) {
5692
5692
  }
5693
5693
  const lines = [];
5694
5694
  if (range.logScale && range.logBase) {
5695
- const ticks = chunkT7AMP24E_js.generateLogTicks(range);
5695
+ const ticks = chunkHHQRYCLW_js.generateLogTicks(range);
5696
5696
  ticks.forEach((tickVal, i) => {
5697
- const y = chunkT7AMP24E_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5697
+ const y = chunkHHQRYCLW_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5698
5698
  lines.push(
5699
5699
  /* @__PURE__ */ jsxRuntime.jsx(
5700
5700
  "line",
@@ -5715,7 +5715,7 @@ function renderGridlines(id, style, range, layout) {
5715
5715
  const steps = 4;
5716
5716
  for (let i = 0; i <= steps; i++) {
5717
5717
  const val = range.min + range.span * i / steps;
5718
- const y = chunkT7AMP24E_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5718
+ const y = chunkHHQRYCLW_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5719
5719
  lines.push(
5720
5720
  /* @__PURE__ */ jsxRuntime.jsx(
5721
5721
  "line",
@@ -5739,9 +5739,9 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5739
5739
  const labels = [];
5740
5740
  const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
5741
5741
  if (range.logScale && range.logBase) {
5742
- const ticks = chunkT7AMP24E_js.generateLogTicks(range);
5742
+ const ticks = chunkHHQRYCLW_js.generateLogTicks(range);
5743
5743
  ticks.forEach((tickVal, i) => {
5744
- const y = chunkT7AMP24E_js.valueToY(tickVal, range, layout.plotTop, layout.plotBottom);
5744
+ const y = chunkHHQRYCLW_js.valueToY(tickVal, 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 ? chunkT7AMP24E_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkT7AMP24E_js.formatAxisValue(tickVal)
5754
+ children: hasDisplayUnits ? chunkHHQRYCLW_js.formatAxisValueWithUnits(tickVal, axisFormatting) : chunkHHQRYCLW_js.formatAxisValue(tickVal)
5755
5755
  },
5756
5756
  `${id}-vaxis-log-${i}`
5757
5757
  )
@@ -5761,7 +5761,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5761
5761
  const steps = 4;
5762
5762
  for (let i = 0; i <= steps; i++) {
5763
5763
  const val = range.min + range.span * i / steps;
5764
- const y = chunkT7AMP24E_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5764
+ const y = chunkHHQRYCLW_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5765
5765
  labels.push(
5766
5766
  /* @__PURE__ */ jsxRuntime.jsx(
5767
5767
  "text",
@@ -5771,7 +5771,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5771
5771
  textAnchor: "end",
5772
5772
  fontSize: 8,
5773
5773
  fill: "#64748b",
5774
- children: hasDisplayUnits ? chunkT7AMP24E_js.formatAxisValueWithUnits(val, axisFormatting) : chunkT7AMP24E_js.formatAxisValue(val)
5774
+ children: hasDisplayUnits ? chunkHHQRYCLW_js.formatAxisValueWithUnits(val, axisFormatting) : chunkHHQRYCLW_js.formatAxisValue(val)
5775
5775
  },
5776
5776
  `${id}-vaxis-${i}`
5777
5777
  )
@@ -5779,7 +5779,7 @@ function renderValueAxis(id, range, layout, axisFormatting) {
5779
5779
  }
5780
5780
  }
5781
5781
  if (hasDisplayUnits) {
5782
- const unitLabel = chunkT7AMP24E_js.getDisplayUnitLabel(
5782
+ const unitLabel = chunkHHQRYCLW_js.getDisplayUnitLabel(
5783
5783
  axisFormatting.displayUnits,
5784
5784
  axisFormatting.displayUnitsLabel
5785
5785
  );
@@ -5854,7 +5854,7 @@ function renderZeroLine(id, range, layout) {
5854
5854
  if (range.min >= 0) {
5855
5855
  return null;
5856
5856
  }
5857
- const y = chunkT7AMP24E_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
5857
+ const y = chunkHHQRYCLW_js.valueToY(0, range, layout.plotTop, layout.plotBottom);
5858
5858
  return /* @__PURE__ */ jsxRuntime.jsx(
5859
5859
  "line",
5860
5860
  {
@@ -5878,7 +5878,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5878
5878
  const hasDisplayUnits = Boolean(axisFormatting?.displayUnits);
5879
5879
  for (let i = 0; i <= steps; i++) {
5880
5880
  const val = range.min + range.span * i / steps;
5881
- const y = chunkT7AMP24E_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5881
+ const y = chunkHHQRYCLW_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5882
5882
  labels.push(
5883
5883
  /* @__PURE__ */ jsxRuntime.jsx(
5884
5884
  "text",
@@ -5890,7 +5890,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5890
5890
  fontFamily,
5891
5891
  fontWeight,
5892
5892
  fill: fontColor,
5893
- children: hasDisplayUnits ? chunkT7AMP24E_js.formatAxisValueWithUnits(val, axisFormatting) : chunkT7AMP24E_js.formatAxisValue(val)
5893
+ children: hasDisplayUnits ? chunkHHQRYCLW_js.formatAxisValueWithUnits(val, axisFormatting) : chunkHHQRYCLW_js.formatAxisValue(val)
5894
5894
  },
5895
5895
  `${id}-sec-vaxis-${i}`
5896
5896
  )
@@ -5914,7 +5914,7 @@ function renderSecondaryValueAxis(id, range, layout, axisFormatting) {
5914
5914
  );
5915
5915
  }
5916
5916
  if (hasDisplayUnits) {
5917
- const unitLabel = chunkT7AMP24E_js.getDisplayUnitLabel(
5917
+ const unitLabel = chunkHHQRYCLW_js.getDisplayUnitLabel(
5918
5918
  axisFormatting.displayUnits,
5919
5919
  axisFormatting.displayUnitsLabel
5920
5920
  );
@@ -5945,7 +5945,7 @@ function renderSecondaryAxisTicks(id, range, layout) {
5945
5945
  const ticks = [];
5946
5946
  for (let i = 0; i <= steps; i++) {
5947
5947
  const val = range.min + range.span * i / steps;
5948
- const y = chunkT7AMP24E_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5948
+ const y = chunkHHQRYCLW_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5949
5949
  ticks.push(
5950
5950
  /* @__PURE__ */ jsxRuntime.jsx(
5951
5951
  "line",
@@ -5972,7 +5972,7 @@ function renderSecondaryGridlines(id, range, layout, axisFormatting) {
5972
5972
  const gridColor = axisFormatting.majorGridlinesSpPr?.strokeColor ?? "#e2e8f0";
5973
5973
  for (let i = 0; i <= steps; i++) {
5974
5974
  const val = range.min + range.span * i / steps;
5975
- const y = chunkT7AMP24E_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5975
+ const y = chunkHHQRYCLW_js.valueToY(val, range, layout.plotTop, layout.plotBottom);
5976
5976
  lines.push(
5977
5977
  /* @__PURE__ */ jsxRuntime.jsx(
5978
5978
  "line",
@@ -6134,7 +6134,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
6134
6134
  width: 8,
6135
6135
  height: 8,
6136
6136
  borderRadius: 2,
6137
- backgroundColor: chunkT7AMP24E_js.seriesColor(
6137
+ backgroundColor: chunkHHQRYCLW_js.seriesColor(
6138
6138
  s,
6139
6139
  si,
6140
6140
  chartData.style?.styleId,
@@ -6173,8 +6173,8 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
6173
6173
  function renderStockChart(element, chartData, categoryLabels) {
6174
6174
  const style = chartData.style;
6175
6175
  const legendPos = style?.legendPosition || "b";
6176
- const range = chunkT7AMP24E_js.computeValueRangeForChart(chartData.series, chartData.axes);
6177
- const layout = chunkT7AMP24E_js.computeLayout(element.width, element.height, style, true, legendPos);
6176
+ const range = chunkHHQRYCLW_js.computeValueRangeForChart(chartData.series, chartData.axes);
6177
+ const layout = chunkHHQRYCLW_js.computeLayout(element.width, element.height, style, true, legendPos);
6178
6178
  const catCount = Math.max(categoryLabels.length, 1);
6179
6179
  const barGroupWidth = layout.plotWidth / catCount;
6180
6180
  const candleWidth = barGroupWidth * 0.5;
@@ -6195,10 +6195,10 @@ function renderStockChart(element, chartData, categoryLabels) {
6195
6195
  const close = closeSeries.values[ci] ?? high;
6196
6196
  const isUp = close >= open;
6197
6197
  const cx = layout.plotLeft + barGroupWidth * ci + barGroupWidth / 2;
6198
- const highY = chunkT7AMP24E_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
6199
- const lowY = chunkT7AMP24E_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
6200
- const openY = chunkT7AMP24E_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
6201
- const closeY = chunkT7AMP24E_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
6198
+ const highY = chunkHHQRYCLW_js.valueToY(high, range, layout.plotTop, layout.plotBottom);
6199
+ const lowY = chunkHHQRYCLW_js.valueToY(low, range, layout.plotTop, layout.plotBottom);
6200
+ const openY = chunkHHQRYCLW_js.valueToY(open, range, layout.plotTop, layout.plotBottom);
6201
+ const closeY = chunkHHQRYCLW_js.valueToY(close, range, layout.plotTop, layout.plotBottom);
6202
6202
  elements.push(
6203
6203
  /* @__PURE__ */ jsxRuntime.jsx(
6204
6204
  "line",
@@ -6241,7 +6241,7 @@ function renderStockChart(element, chartData, categoryLabels) {
6241
6241
  textAnchor: "middle",
6242
6242
  fontSize: 7,
6243
6243
  fill: "#334155",
6244
- children: chunkT7AMP24E_js.formatAxisValue(close)
6244
+ children: chunkHHQRYCLW_js.formatAxisValue(close)
6245
6245
  },
6246
6246
  `${element.id}-stock-dl-${ci}`
6247
6247
  )
@@ -6283,7 +6283,7 @@ function FailedToLoad() {
6283
6283
  var LazySurfaceChart3DScene = React6__default.default.lazy(
6284
6284
  async () => {
6285
6285
  try {
6286
- return await import('./SurfaceChart3DScene-RWMGMREC.js');
6286
+ return await import('./SurfaceChart3DScene-OJR7PBUU.js');
6287
6287
  } catch {
6288
6288
  return { default: FailedToLoad };
6289
6289
  }
@@ -6307,7 +6307,7 @@ var SurfaceChart3DErrorBoundary = class extends React6__default.default.Componen
6307
6307
  function buildSurfaceData(chartData, categoryLabels) {
6308
6308
  const rows = chartData.series.length;
6309
6309
  const cols = Math.max(categoryLabels.length, 1);
6310
- const range = chunkT7AMP24E_js.computeValueRangeForChart(chartData.series, chartData.axes);
6310
+ const range = chunkHHQRYCLW_js.computeValueRangeForChart(chartData.series, chartData.axes);
6311
6311
  const heightMap = new Float32Array(rows * cols);
6312
6312
  const colorMap = new Float32Array(rows * cols * 3);
6313
6313
  for (let r = 0; r < rows; r++) {
@@ -6427,8 +6427,8 @@ function darkenRgb(r, g, b, factor) {
6427
6427
  function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
6428
6428
  const style = chartData.style;
6429
6429
  const legendPos = style?.legendPosition || "b";
6430
- const layout = chunkT7AMP24E_js.computeLayout(element.width, element.height, style, false, legendPos);
6431
- const range = chunkT7AMP24E_js.computeValueRangeForChart(chartData.series, chartData.axes);
6430
+ const layout = chunkHHQRYCLW_js.computeLayout(element.width, element.height, style, false, legendPos);
6431
+ const range = chunkHHQRYCLW_js.computeValueRangeForChart(chartData.series, chartData.axes);
6432
6432
  const catCount = Math.max(categoryLabels.length, 1);
6433
6433
  const seriesCount = chartData.series.length;
6434
6434
  const cols = catCount - 1;
@@ -6518,8 +6518,8 @@ function renderIsometricSurfaceChart(element, chartData, categoryLabels) {
6518
6518
  function renderFlatSurfaceChart(element, chartData, categoryLabels) {
6519
6519
  const style = chartData.style;
6520
6520
  const legendPos = style?.legendPosition || "b";
6521
- const layout = chunkT7AMP24E_js.computeLayout(element.width, element.height, style, true, legendPos);
6522
- const range = chunkT7AMP24E_js.computeValueRangeForChart(chartData.series, chartData.axes);
6521
+ const layout = chunkHHQRYCLW_js.computeLayout(element.width, element.height, style, true, legendPos);
6522
+ const range = chunkHHQRYCLW_js.computeValueRangeForChart(chartData.series, chartData.axes);
6523
6523
  const catCount = Math.max(categoryLabels.length, 1);
6524
6524
  const seriesCount = chartData.series.length;
6525
6525
  const cellW = layout.plotWidth / Math.max(catCount - 1, 1);
@@ -6582,7 +6582,7 @@ function renderSurfaceChart(element, chartData, categoryLabels) {
6582
6582
  function renderTreemapChart(element, chartData, categoryLabels) {
6583
6583
  const style = chartData.style;
6584
6584
  const legendPos = style?.legendPosition || "b";
6585
- const layout = chunkT7AMP24E_js.computeLayout(element.width, element.height, style, false, legendPos);
6585
+ const layout = chunkHHQRYCLW_js.computeLayout(element.width, element.height, style, false, legendPos);
6586
6586
  const allValues = chartData.series.flatMap((s) => s.values);
6587
6587
  const totalAbs = allValues.reduce((sum, v) => sum + Math.abs(v), 0) || 1;
6588
6588
  const rects = [];
@@ -6605,7 +6605,7 @@ function renderTreemapChart(element, chartData, categoryLabels) {
6605
6605
  y: curY,
6606
6606
  width: Math.max(w - 1, 1),
6607
6607
  height: Math.max(h - 1, 1),
6608
- fill: chunkT7AMP24E_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
6608
+ fill: chunkHHQRYCLW_js.paletteColor(item.index, chartData.style?.styleId, chartData.colorPalette),
6609
6609
  rx: 2,
6610
6610
  opacity: 0.85
6611
6611
  },
@@ -6658,8 +6658,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6658
6658
  const style = chartData.style;
6659
6659
  const legendPos = style?.legendPosition || "b";
6660
6660
  const values = chartData.series[0]?.values ?? [];
6661
- const range = chunkT7AMP24E_js.computeValueRangeForChart(chartData.series, chartData.axes);
6662
- const layout = chunkT7AMP24E_js.computeLayout(element.width, element.height, style, true, legendPos);
6661
+ const range = chunkHHQRYCLW_js.computeValueRangeForChart(chartData.series, chartData.axes);
6662
+ const layout = chunkHHQRYCLW_js.computeLayout(element.width, element.height, style, true, legendPos);
6663
6663
  const catCount = Math.max(categoryLabels.length, values.length, 1);
6664
6664
  const barWidth = layout.plotWidth / catCount * 0.6;
6665
6665
  const gap = layout.plotWidth / catCount * 0.2;
@@ -6670,8 +6670,8 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6670
6670
  const isLast = i === values.length - 1;
6671
6671
  const startVal = isLast ? 0 : runningTotal;
6672
6672
  const endVal = isLast ? runningTotal + val : runningTotal + val;
6673
- const barStartY = chunkT7AMP24E_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
6674
- const barEndY = chunkT7AMP24E_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
6673
+ const barStartY = chunkHHQRYCLW_js.valueToY(startVal, range, layout.plotTop, layout.plotBottom);
6674
+ const barEndY = chunkHHQRYCLW_js.valueToY(endVal, range, layout.plotTop, layout.plotBottom);
6675
6675
  const x = layout.plotLeft + layout.plotWidth / catCount * i + gap;
6676
6676
  const y = Math.min(barStartY, barEndY);
6677
6677
  const h = Math.max(Math.abs(barEndY - barStartY), 1);
@@ -6700,7 +6700,7 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6700
6700
  textAnchor: "middle",
6701
6701
  fontSize: 7,
6702
6702
  fill: "#334155",
6703
- children: chunkT7AMP24E_js.formatAxisValue(isLast ? endVal : val)
6703
+ children: chunkHHQRYCLW_js.formatAxisValue(isLast ? endVal : val)
6704
6704
  },
6705
6705
  `${element.id}-wf-dl-${i}`
6706
6706
  )
@@ -6748,18 +6748,18 @@ function renderWaterfallChart(element, chartData, categoryLabels) {
6748
6748
  function renderComboChart(element, chartData, categoryLabels) {
6749
6749
  const style = chartData.style;
6750
6750
  const legendPos = style?.legendPosition || "b";
6751
- const layoutOpts = chunkT7AMP24E_js.computeLayoutOptions(
6751
+ const layoutOpts = chunkHHQRYCLW_js.computeLayoutOptions(
6752
6752
  chartData.axes,
6753
6753
  chartData.dataTable,
6754
6754
  chartData.series.length
6755
6755
  );
6756
- const layout = chunkT7AMP24E_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
6757
- const { primary, secondary } = chunkT7AMP24E_js.splitSeriesByAxis(chartData.series, chartData.axes);
6756
+ const layout = chunkHHQRYCLW_js.computeLayout(element.width, element.height, style, true, legendPos, layoutOpts);
6757
+ const { primary, secondary } = chunkHHQRYCLW_js.splitSeriesByAxis(chartData.series, chartData.axes);
6758
6758
  const primarySeries = primary.length > 0 ? primary.map((e) => e.series) : chartData.series;
6759
6759
  const secondarySeries = secondary.map((e) => e.series);
6760
- const range = chunkT7AMP24E_js.computeValueRangeForChart(primarySeries, chartData.axes);
6761
- const secondaryRange = secondarySeries.length > 0 ? chunkT7AMP24E_js.computeValueRange(secondarySeries) : void 0;
6762
- const secondaryAxisFmt = chunkT7AMP24E_js.getSecondaryValueAxis(chartData.axes);
6760
+ const range = chunkHHQRYCLW_js.computeValueRangeForChart(primarySeries, chartData.axes);
6761
+ const secondaryRange = secondarySeries.length > 0 ? chunkHHQRYCLW_js.computeValueRange(secondarySeries) : void 0;
6762
+ const secondaryAxisFmt = chunkHHQRYCLW_js.getSecondaryValueAxis(chartData.axes);
6763
6763
  const catCount = Math.max(categoryLabels.length, 1);
6764
6764
  const barSeriesCount = 1;
6765
6765
  const barGroupWidth = layout.plotWidth / catCount;
@@ -6775,8 +6775,8 @@ function renderComboChart(element, chartData, categoryLabels) {
6775
6775
  const barRange = isBarSecondary && secondaryRange ? secondaryRange : range;
6776
6776
  barSeries.values.forEach((val, vi) => {
6777
6777
  const x = layout.plotLeft + barGroupWidth * vi + barOffset;
6778
- const zeroY = chunkT7AMP24E_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
6779
- const valY = chunkT7AMP24E_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
6778
+ const zeroY = chunkHHQRYCLW_js.valueToY(0, barRange, layout.plotTop, layout.plotBottom);
6779
+ const valY = chunkHHQRYCLW_js.valueToY(val, barRange, layout.plotTop, layout.plotBottom);
6780
6780
  const y = Math.min(zeroY, valY);
6781
6781
  const h = Math.max(Math.abs(zeroY - valY), 1);
6782
6782
  barElements.push(
@@ -6787,7 +6787,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6787
6787
  y,
6788
6788
  width: barWidth,
6789
6789
  height: h,
6790
- fill: chunkT7AMP24E_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
6790
+ fill: chunkHHQRYCLW_js.seriesColor(barSeries, 0, chartData.style?.styleId, chartData.colorPalette),
6791
6791
  rx: 1
6792
6792
  },
6793
6793
  `${element.id}-combo-bar-${vi}`
@@ -6803,7 +6803,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6803
6803
  textAnchor: "middle",
6804
6804
  fontSize: 7,
6805
6805
  fill: "#334155",
6806
- children: chunkT7AMP24E_js.formatAxisValue(val)
6806
+ children: chunkHHQRYCLW_js.formatAxisValue(val)
6807
6807
  },
6808
6808
  `${element.id}-combo-bar-dl-${vi}`
6809
6809
  )
@@ -6820,10 +6820,10 @@ function renderComboChart(element, chartData, categoryLabels) {
6820
6820
  const activeRange = isSecondary && secondaryRange ? secondaryRange : range;
6821
6821
  const points = series.values.map((val, vi) => {
6822
6822
  const x = layout.plotLeft + barGroupWidth * vi + barGroupWidth / 2;
6823
- const y = chunkT7AMP24E_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
6823
+ const y = chunkHHQRYCLW_js.valueToY(val, activeRange, layout.plotTop, layout.plotBottom);
6824
6824
  return { x, y, val };
6825
6825
  });
6826
- const c = chunkT7AMP24E_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
6826
+ const c = chunkHHQRYCLW_js.seriesColor(series, seriesIdx, chartData.style?.styleId, chartData.colorPalette);
6827
6827
  lineElements.push(
6828
6828
  /* @__PURE__ */ jsxRuntime.jsx(
6829
6829
  "polyline",
@@ -6850,7 +6850,7 @@ function renderComboChart(element, chartData, categoryLabels) {
6850
6850
  textAnchor: "middle",
6851
6851
  fontSize: 7,
6852
6852
  fill: "#334155",
6853
- children: chunkT7AMP24E_js.formatAxisValue(p.val)
6853
+ children: chunkHHQRYCLW_js.formatAxisValue(p.val)
6854
6854
  },
6855
6855
  `${element.id}-combo-line-dl-${si}-${vi}`
6856
6856
  )
@@ -7996,14 +7996,14 @@ function buildNotesPdf(pages) {
7996
7996
  notes: page.notes,
7997
7997
  slideNumber: page.slideNumber
7998
7998
  }));
7999
- const bytes = chunkT7AMP24E_js.buildNotesPdfBytes(images, meta);
7999
+ const bytes = chunkHHQRYCLW_js.buildNotesPdfBytes(images, meta);
8000
8000
  const blob = new Blob([bytes], { type: "application/pdf" });
8001
8001
  return URL.createObjectURL(blob);
8002
8002
  }
8003
8003
 
8004
8004
  // src/viewer/utils/pdf-builder-slides.ts
8005
8005
  function buildPdfFromImageData(images) {
8006
- const bytes = chunkT7AMP24E_js.buildSlidesPdfBytes(images);
8006
+ const bytes = chunkHHQRYCLW_js.buildSlidesPdfBytes(images);
8007
8007
  const blob = new Blob([bytes], { type: "application/pdf" });
8008
8008
  return URL.createObjectURL(blob);
8009
8009
  }
@@ -8012,7 +8012,7 @@ function buildPdfFromImageData(images) {
8012
8012
  var activePreview = null;
8013
8013
  function startPreviewAnimation(elementId, preset, options) {
8014
8014
  stopPreviewAnimation();
8015
- const descriptor = chunkT7AMP24E_js.buildPreviewAnimation(preset, options);
8015
+ const descriptor = chunkHHQRYCLW_js.buildPreviewAnimation(preset, options);
8016
8016
  if (!descriptor) {
8017
8017
  return;
8018
8018
  }