pptx-react-viewer 3.19.2 → 3.20.0

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 (186) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/{AiChatPanel-KILEXOPT.js → AiChatPanel-NBKG2CWE.js} +25 -25
  3. package/dist/AiChatPanel-NBKG2CWE.js.br +0 -0
  4. package/dist/AiChatPanel-NBKG2CWE.js.gz +0 -0
  5. package/dist/{AiChatPanel-ZH52BQBE.mjs → AiChatPanel-OXCJVBUS.mjs} +4 -4
  6. package/dist/AiChatPanel-OXCJVBUS.mjs.br +0 -0
  7. package/dist/AiChatPanel-OXCJVBUS.mjs.gz +0 -0
  8. package/dist/{Area3DChartScene-UHN7ZOZT.mjs → Area3DChartScene-5M3LEY6M.mjs} +1 -1
  9. package/dist/Area3DChartScene-5M3LEY6M.mjs.br +0 -0
  10. package/dist/Area3DChartScene-5M3LEY6M.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-HS7EBQLQ.js → Area3DChartScene-7QPDPVR6.js} +2 -2
  12. package/dist/Area3DChartScene-7QPDPVR6.js.br +0 -0
  13. package/dist/Area3DChartScene-7QPDPVR6.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-TFGSYASD.mjs → Bar3DChartScene-NNSTLO4V.mjs} +1 -1
  15. package/dist/Bar3DChartScene-NNSTLO4V.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-NNSTLO4V.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-E57TRVUU.js → Bar3DChartScene-TAMPS6ZS.js} +2 -2
  18. package/dist/Bar3DChartScene-TAMPS6ZS.js.br +0 -0
  19. package/dist/Bar3DChartScene-TAMPS6ZS.js.gz +0 -0
  20. package/dist/{Line3DChartScene-RES5D7W7.mjs → Line3DChartScene-7S2DD45T.mjs} +1 -1
  21. package/dist/Line3DChartScene-7S2DD45T.mjs.br +0 -0
  22. package/dist/Line3DChartScene-7S2DD45T.mjs.gz +0 -0
  23. package/dist/{Line3DChartScene-NM7YYLZD.js → Line3DChartScene-T4SH37NU.js} +2 -2
  24. package/dist/Line3DChartScene-T4SH37NU.js.br +0 -0
  25. package/dist/Line3DChartScene-T4SH37NU.js.gz +0 -0
  26. package/dist/{Model3DScene-6CWFGE7M.mjs → Model3DScene-CXRM7D3J.mjs} +1 -1
  27. package/dist/Model3DScene-CXRM7D3J.mjs.br +0 -0
  28. package/dist/Model3DScene-CXRM7D3J.mjs.gz +0 -0
  29. package/dist/{Model3DScene-SL3QF63O.js → Model3DScene-IDRM7EZD.js} +2 -2
  30. package/dist/Model3DScene-IDRM7EZD.js.br +0 -0
  31. package/dist/Model3DScene-IDRM7EZD.js.gz +0 -0
  32. package/dist/{PieChart3DScene-WIVYOQUQ.js → PieChart3DScene-66Y5UP64.js} +2 -2
  33. package/dist/PieChart3DScene-66Y5UP64.js.br +0 -0
  34. package/dist/PieChart3DScene-66Y5UP64.js.gz +0 -0
  35. package/dist/{PieChart3DScene-QYJUOYMB.mjs → PieChart3DScene-VSCSEY2G.mjs} +1 -1
  36. package/dist/PieChart3DScene-VSCSEY2G.mjs.br +0 -0
  37. package/dist/PieChart3DScene-VSCSEY2G.mjs.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-QCUYYQBZ.js → SurfaceChart3DScene-6J4A6XUH.js} +2 -2
  39. package/dist/SurfaceChart3DScene-6J4A6XUH.js.br +0 -0
  40. package/dist/SurfaceChart3DScene-6J4A6XUH.js.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-Y2LF73QQ.mjs → SurfaceChart3DScene-NSHDK657.mjs} +1 -1
  42. package/dist/SurfaceChart3DScene-NSHDK657.mjs.br +0 -0
  43. package/dist/SurfaceChart3DScene-NSHDK657.mjs.gz +0 -0
  44. package/dist/{chunk-ATKAU2J4.mjs → chunk-2IBDKMY2.mjs} +506 -325
  45. package/dist/chunk-2IBDKMY2.mjs.br +0 -0
  46. package/dist/chunk-2IBDKMY2.mjs.gz +0 -0
  47. package/dist/{chunk-M5BAPEQL.mjs → chunk-5PDGHTRJ.mjs} +9 -9
  48. package/dist/chunk-5PDGHTRJ.mjs.br +0 -0
  49. package/dist/chunk-5PDGHTRJ.mjs.gz +0 -0
  50. package/dist/{chunk-RPPLJQ6R.js → chunk-7SFA4A2E.js} +1515 -1334
  51. package/dist/chunk-7SFA4A2E.js.br +0 -0
  52. package/dist/chunk-7SFA4A2E.js.gz +0 -0
  53. package/dist/{chunk-MQUTXOET.mjs → chunk-AVTH627G.mjs} +11 -0
  54. package/dist/chunk-AVTH627G.mjs.br +0 -0
  55. package/dist/chunk-AVTH627G.mjs.gz +0 -0
  56. package/dist/{chunk-NEMPFYZ5.mjs → chunk-AYH6XSE7.mjs} +1 -1
  57. package/dist/chunk-AYH6XSE7.mjs.br +0 -0
  58. package/dist/chunk-AYH6XSE7.mjs.gz +0 -0
  59. package/dist/{chunk-YH4ODPSH.js → chunk-DW66NEST.js} +182 -182
  60. package/dist/chunk-DW66NEST.js.br +0 -0
  61. package/dist/chunk-DW66NEST.js.gz +0 -0
  62. package/dist/{chunk-7XJ7I6TJ.mjs → chunk-FE4L26FT.mjs} +2 -2
  63. package/dist/chunk-FE4L26FT.mjs.br +0 -0
  64. package/dist/chunk-FE4L26FT.mjs.gz +0 -0
  65. package/dist/{chunk-BRJN3ZMG.js → chunk-I5LPYESF.js} +11 -0
  66. package/dist/chunk-I5LPYESF.js.br +0 -0
  67. package/dist/chunk-I5LPYESF.js.gz +0 -0
  68. package/dist/{chunk-GULL4H2I.mjs → chunk-N4FLKADC.mjs} +476 -168
  69. package/dist/chunk-N4FLKADC.mjs.br +0 -0
  70. package/dist/chunk-N4FLKADC.mjs.gz +0 -0
  71. package/dist/{chunk-ZUIM5737.js → chunk-NGWA6L3N.js} +479 -167
  72. package/dist/chunk-NGWA6L3N.js.br +0 -0
  73. package/dist/chunk-NGWA6L3N.js.gz +0 -0
  74. package/dist/{chunk-2LK3OHAN.js → chunk-W3RBIIZW.js} +796 -796
  75. package/dist/chunk-W3RBIIZW.js.br +0 -0
  76. package/dist/chunk-W3RBIIZW.js.gz +0 -0
  77. package/dist/{chunk-F7VYECOL.js → chunk-WRXXPCZ7.js} +5 -5
  78. package/dist/chunk-WRXXPCZ7.js.br +0 -0
  79. package/dist/chunk-WRXXPCZ7.js.gz +0 -0
  80. package/dist/i18n/de.cjs +11 -0
  81. package/dist/i18n/de.cjs.br +0 -0
  82. package/dist/i18n/de.cjs.gz +0 -0
  83. package/dist/i18n/de.mjs +11 -0
  84. package/dist/i18n/de.mjs.br +0 -0
  85. package/dist/i18n/de.mjs.gz +0 -0
  86. package/dist/i18n/es.cjs +11 -0
  87. package/dist/i18n/es.cjs.br +0 -0
  88. package/dist/i18n/es.cjs.gz +0 -0
  89. package/dist/i18n/es.mjs +11 -0
  90. package/dist/i18n/es.mjs.br +0 -0
  91. package/dist/i18n/es.mjs.gz +0 -0
  92. package/dist/i18n/fr.cjs +11 -0
  93. package/dist/i18n/fr.cjs.br +0 -0
  94. package/dist/i18n/fr.cjs.gz +0 -0
  95. package/dist/i18n/fr.mjs +11 -0
  96. package/dist/i18n/fr.mjs.br +0 -0
  97. package/dist/i18n/fr.mjs.gz +0 -0
  98. package/dist/i18n/zh-CN.cjs +11 -0
  99. package/dist/i18n/zh-CN.cjs.br +0 -0
  100. package/dist/i18n/zh-CN.cjs.gz +0 -0
  101. package/dist/i18n/zh-CN.mjs +11 -0
  102. package/dist/i18n/zh-CN.mjs.br +0 -0
  103. package/dist/i18n/zh-CN.mjs.gz +0 -0
  104. package/dist/i18n.js +4 -4
  105. package/dist/i18n.js.br +0 -0
  106. package/dist/i18n.js.gz +0 -0
  107. package/dist/i18n.mjs +1 -1
  108. package/dist/i18n.mjs.br +0 -0
  109. package/dist/i18n.mjs.gz +0 -0
  110. package/dist/index.d.ts +37 -0
  111. package/dist/index.js +48 -48
  112. package/dist/index.js.br +0 -0
  113. package/dist/index.js.gz +0 -0
  114. package/dist/index.mjs +6 -6
  115. package/dist/index.mjs.br +0 -0
  116. package/dist/index.mjs.gz +0 -0
  117. package/dist/internals.d.ts +37 -0
  118. package/dist/internals.js +105 -105
  119. package/dist/internals.js.br +0 -0
  120. package/dist/internals.js.gz +0 -0
  121. package/dist/internals.mjs +4 -4
  122. package/dist/internals.mjs.br +0 -0
  123. package/dist/internals.mjs.gz +0 -0
  124. package/dist/pptx-viewer.css +1 -1
  125. package/dist/pptx-viewer.css.br +0 -0
  126. package/dist/pptx-viewer.css.gz +0 -0
  127. package/dist/viewer/index.d.ts +37 -0
  128. package/dist/viewer/index.js +27 -27
  129. package/dist/viewer/index.js.br +0 -0
  130. package/dist/viewer/index.js.gz +0 -0
  131. package/dist/viewer/index.mjs +6 -6
  132. package/dist/viewer/index.mjs.br +0 -0
  133. package/dist/viewer/index.mjs.gz +0 -0
  134. package/package.json +1 -1
  135. package/dist/AiChatPanel-KILEXOPT.js.br +0 -0
  136. package/dist/AiChatPanel-KILEXOPT.js.gz +0 -0
  137. package/dist/AiChatPanel-ZH52BQBE.mjs.br +0 -0
  138. package/dist/AiChatPanel-ZH52BQBE.mjs.gz +0 -0
  139. package/dist/Area3DChartScene-HS7EBQLQ.js.br +0 -0
  140. package/dist/Area3DChartScene-HS7EBQLQ.js.gz +0 -0
  141. package/dist/Area3DChartScene-UHN7ZOZT.mjs.br +0 -0
  142. package/dist/Area3DChartScene-UHN7ZOZT.mjs.gz +0 -0
  143. package/dist/Bar3DChartScene-E57TRVUU.js.br +0 -0
  144. package/dist/Bar3DChartScene-E57TRVUU.js.gz +0 -0
  145. package/dist/Bar3DChartScene-TFGSYASD.mjs.br +0 -0
  146. package/dist/Bar3DChartScene-TFGSYASD.mjs.gz +0 -0
  147. package/dist/Line3DChartScene-NM7YYLZD.js.br +0 -0
  148. package/dist/Line3DChartScene-NM7YYLZD.js.gz +0 -0
  149. package/dist/Line3DChartScene-RES5D7W7.mjs.br +0 -0
  150. package/dist/Line3DChartScene-RES5D7W7.mjs.gz +0 -0
  151. package/dist/Model3DScene-6CWFGE7M.mjs.br +0 -0
  152. package/dist/Model3DScene-6CWFGE7M.mjs.gz +0 -0
  153. package/dist/Model3DScene-SL3QF63O.js.br +0 -0
  154. package/dist/Model3DScene-SL3QF63O.js.gz +0 -0
  155. package/dist/PieChart3DScene-QYJUOYMB.mjs.br +0 -0
  156. package/dist/PieChart3DScene-QYJUOYMB.mjs.gz +0 -0
  157. package/dist/PieChart3DScene-WIVYOQUQ.js.br +0 -0
  158. package/dist/PieChart3DScene-WIVYOQUQ.js.gz +0 -0
  159. package/dist/SurfaceChart3DScene-QCUYYQBZ.js.br +0 -0
  160. package/dist/SurfaceChart3DScene-QCUYYQBZ.js.gz +0 -0
  161. package/dist/SurfaceChart3DScene-Y2LF73QQ.mjs.br +0 -0
  162. package/dist/SurfaceChart3DScene-Y2LF73QQ.mjs.gz +0 -0
  163. package/dist/chunk-2LK3OHAN.js.br +0 -0
  164. package/dist/chunk-2LK3OHAN.js.gz +0 -0
  165. package/dist/chunk-7XJ7I6TJ.mjs.br +0 -0
  166. package/dist/chunk-7XJ7I6TJ.mjs.gz +0 -0
  167. package/dist/chunk-ATKAU2J4.mjs.br +0 -0
  168. package/dist/chunk-ATKAU2J4.mjs.gz +0 -0
  169. package/dist/chunk-BRJN3ZMG.js.br +0 -0
  170. package/dist/chunk-BRJN3ZMG.js.gz +0 -0
  171. package/dist/chunk-F7VYECOL.js.br +0 -0
  172. package/dist/chunk-F7VYECOL.js.gz +0 -0
  173. package/dist/chunk-GULL4H2I.mjs.br +0 -0
  174. package/dist/chunk-GULL4H2I.mjs.gz +0 -0
  175. package/dist/chunk-M5BAPEQL.mjs.br +0 -0
  176. package/dist/chunk-M5BAPEQL.mjs.gz +0 -0
  177. package/dist/chunk-MQUTXOET.mjs.br +0 -0
  178. package/dist/chunk-MQUTXOET.mjs.gz +0 -0
  179. package/dist/chunk-NEMPFYZ5.mjs.br +0 -0
  180. package/dist/chunk-NEMPFYZ5.mjs.gz +0 -0
  181. package/dist/chunk-RPPLJQ6R.js.br +0 -0
  182. package/dist/chunk-RPPLJQ6R.js.gz +0 -0
  183. package/dist/chunk-YH4ODPSH.js.br +0 -0
  184. package/dist/chunk-YH4ODPSH.js.gz +0 -0
  185. package/dist/chunk-ZUIM5737.js.br +0 -0
  186. package/dist/chunk-ZUIM5737.js.gz +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkZUIM5737_js = require('./chunk-ZUIM5737.js');
4
- var chunkBRJN3ZMG_js = require('./chunk-BRJN3ZMG.js');
3
+ var chunkNGWA6L3N_js = require('./chunk-NGWA6L3N.js');
4
+ var chunkI5LPYESF_js = require('./chunk-I5LPYESF.js');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var React7 = require('react');
@@ -15,7 +15,7 @@ var React7__default = /*#__PURE__*/_interopDefault(React7);
15
15
 
16
16
  // src/viewer/utils/animation-effects.ts
17
17
  function getAnimationInitialStyle2(preset, nativeAnimation) {
18
- return chunkZUIM5737_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunkNGWA6L3N_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 chunkZUIM5737_js.cloneHistorySnapshot(snapshot);
26
+ return chunkNGWA6L3N_js.cloneHistorySnapshot(snapshot);
27
27
  }
28
28
 
29
29
  // src/viewer/constants/scalar.ts
@@ -61,7 +61,7 @@ var TOOLBAR_SECTIONS = [
61
61
  { id: "view", labelKey: "pptx.ribbon.tab.view" },
62
62
  { id: "help", labelKey: "pptx.ribbon.tab.help" }
63
63
  ];
64
- var SHORTCUT_REFERENCE_ITEMS = chunkZUIM5737_js.VIEWER_SHORTCUT_REFERENCE;
64
+ var SHORTCUT_REFERENCE_ITEMS = chunkNGWA6L3N_js.VIEWER_SHORTCUT_REFERENCE;
65
65
 
66
66
  // src/viewer/constants/transitions-animations.ts
67
67
  var ANIMATION_PRESET_OPTIONS = [
@@ -89,7 +89,7 @@ var GLYPH_COMPONENTS = {
89
89
  plus: lu.LuPlus,
90
90
  triangle: lu.LuTriangle
91
91
  };
92
- var SHAPE_PRESETS = chunkZUIM5737_js.SHAPE_PRESET_DEFS.map(
92
+ var SHAPE_PRESETS = chunkNGWA6L3N_js.SHAPE_PRESET_DEFS.map(
93
93
  (def) => ({
94
94
  type: def.type,
95
95
  label: def.label,
@@ -114,7 +114,7 @@ var ARROW_SIZE_OPTIONS = [
114
114
  { value: "med", label: "Medium", i18nKey: "pptx.connectorOptions.sizeMedium" },
115
115
  { value: "lg", label: "Large", i18nKey: "pptx.connectorOptions.sizeLarge" }
116
116
  ];
117
- var STROKE_DASH_OPTIONS2 = chunkZUIM5737_js.STROKE_DASH_OPTIONS;
117
+ var STROKE_DASH_OPTIONS2 = chunkNGWA6L3N_js.STROKE_DASH_OPTIONS;
118
118
 
119
119
  // src/viewer/utils/shape-types.tsx
120
120
  function getShapeType(shapeType) {
@@ -223,7 +223,7 @@ function isConnectorOrLineElement(element) {
223
223
  if (element.type === "connector") {
224
224
  return true;
225
225
  }
226
- if (!chunkZUIM5737_js.hasShapeProperties(element)) {
226
+ if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
227
227
  return false;
228
228
  }
229
229
  const st = getShapeType(element.shapeType);
@@ -232,18 +232,18 @@ function isConnectorOrLineElement(element) {
232
232
 
233
233
  // src/viewer/utils/image-style.ts
234
234
  function getImageMaskStyle(element) {
235
- if (!chunkZUIM5737_js.hasShapeProperties(element)) {
235
+ if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
236
236
  return void 0;
237
237
  }
238
- const geometry = chunkZUIM5737_js.resolveShapeGeometry(element);
238
+ const geometry = chunkNGWA6L3N_js.resolveShapeGeometry(element);
239
239
  if (geometry.kind === "borderRadius") {
240
240
  return { borderRadius: geometry.radius };
241
241
  }
242
242
  return geometry.kind === "clipPath" ? { clipPath: geometry.clipPath } : void 0;
243
243
  }
244
244
  function getImageRenderStyle(element) {
245
- const fit = chunkZUIM5737_js.getImageFitStyle(element);
246
- const counterTransform = chunkZUIM5737_js.getImageFillCounterTransform(element, Boolean(fit.transform));
245
+ const fit = chunkNGWA6L3N_js.getImageFitStyle(element);
246
+ const counterTransform = chunkNGWA6L3N_js.getImageFillCounterTransform(element, Boolean(fit.transform));
247
247
  return {
248
248
  // A translated/scaled crop, or a rotWithShape=false counter-transform,
249
249
  // must be masked by the stationary wrapper, not by the moving/counter-
@@ -262,7 +262,7 @@ function getImageSurfaceMaskStyle(element) {
262
262
  };
263
263
  }
264
264
  function getImageSurfaceStyle(element) {
265
- const fill = chunkZUIM5737_js.hasShapeProperties(element) ? chunkZUIM5737_js.getComputedFillStyle(element) : void 0;
265
+ const fill = chunkNGWA6L3N_js.hasShapeProperties(element) ? chunkNGWA6L3N_js.getComputedFillStyle(element) : void 0;
266
266
  return {
267
267
  position: "absolute",
268
268
  inset: 0,
@@ -275,13 +275,13 @@ function getImageSurfaceStyle(element) {
275
275
  };
276
276
  }
277
277
  function getCropShapeClipPath2(element) {
278
- if (!chunkZUIM5737_js.isImageLikeElement(element)) {
278
+ if (!chunkNGWA6L3N_js.isImageLikeElement(element)) {
279
279
  return void 0;
280
280
  }
281
- return chunkZUIM5737_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
281
+ return chunkNGWA6L3N_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
282
282
  }
283
283
  function getImageTilingStyle2(element) {
284
- return chunkZUIM5737_js.getImageTilingStyle(element);
284
+ return chunkNGWA6L3N_js.getImageTilingStyle(element);
285
285
  }
286
286
 
287
287
  // src/viewer/utils/geometry-image.ts
@@ -413,7 +413,7 @@ function VideoWithMetadata({
413
413
  {
414
414
  ref: mediaRef,
415
415
  className: "w-full h-full pointer-events-auto",
416
- style: isFullScreen ? { objectFit: "cover" } : chunkZUIM5737_js.getImageFitStyle(element),
416
+ style: isFullScreen ? { objectFit: "cover" } : chunkNGWA6L3N_js.getImageFitStyle(element),
417
417
  controls: showTransport,
418
418
  preload: "metadata",
419
419
  playsInline: true,
@@ -470,7 +470,7 @@ function PresentationMediaController({
470
470
  const [isMediaPlaying, setIsMediaPlaying] = React7.useState(false);
471
471
  const trimStartSec = element.trimStartMs !== void 0 ? element.trimStartMs / 1e3 : 0;
472
472
  const hideWhenNotPlaying = isPresentationMode && element.hideWhenNotPlaying === true;
473
- const { volume: playbackVolume, playbackRate } = chunkZUIM5737_js.mediaPlaybackAttributes({
473
+ const { volume: playbackVolume, playbackRate } = chunkNGWA6L3N_js.mediaPlaybackAttributes({
474
474
  loop: element.loop,
475
475
  volume: element.volume,
476
476
  playbackSpeed: element.playbackSpeed
@@ -518,7 +518,7 @@ function PresentationMediaController({
518
518
  if (!el || !isPresentationMode) {
519
519
  return;
520
520
  }
521
- return chunkZUIM5737_js.scheduleMediaTrimAndFade(el, {
521
+ return chunkNGWA6L3N_js.scheduleMediaTrimAndFade(el, {
522
522
  trimStartMs: element.trimStartMs,
523
523
  trimEndMs: element.trimEndMs,
524
524
  fadeInDuration: element.fadeInDuration,
@@ -539,7 +539,7 @@ function PresentationMediaController({
539
539
  }
540
540
  if (element.playAcrossSlides && element.mediaType === "audio") {
541
541
  const dataUrl = element.mediaData ?? resolvedDataUrl;
542
- if (chunkZUIM5737_js.registerCrossSlideAudio(element, dataUrl)) {
542
+ if (chunkNGWA6L3N_js.registerCrossSlideAudio(element, dataUrl)) {
543
543
  return;
544
544
  }
545
545
  }
@@ -584,7 +584,7 @@ function PresentationMediaController({
584
584
  ] });
585
585
  }
586
586
  function label(key) {
587
- return key === void 0 ? void 0 : chunkBRJN3ZMG_js.translationsEn[key];
587
+ return key === void 0 ? void 0 : chunkI5LPYESF_js.translationsEn[key];
588
588
  }
589
589
  function FallbackIcon({
590
590
  paths,
@@ -620,17 +620,17 @@ function Badge({
620
620
  "div",
621
621
  {
622
622
  className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
623
- ...{ [chunkZUIM5737_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
623
+ ...{ [chunkNGWA6L3N_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
624
624
  children: [
625
625
  /* @__PURE__ */ jsxRuntime.jsx(
626
626
  FallbackIcon,
627
627
  {
628
- paths: chunkZUIM5737_js.mediaFallbackIcon(visual, element.mediaType),
628
+ paths: chunkNGWA6L3N_js.mediaFallbackIcon(visual, element.mediaType),
629
629
  size: isMissing ? 32 : 48,
630
630
  className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
631
631
  }
632
632
  ),
633
- isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkZUIM5737_js.mediaFallbackLabelKey(visual, element.mediaType)) })
633
+ isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkNGWA6L3N_js.mediaFallbackLabelKey(visual, element.mediaType)) })
634
634
  ]
635
635
  }
636
636
  );
@@ -647,17 +647,17 @@ function Placeholder({
647
647
  "div",
648
648
  {
649
649
  className: `w-full h-full flex flex-col items-center justify-center gap-1 pointer-events-none rounded ${isMissing ? "bg-black/30 border border-dashed border-white/20" : element.mediaType === "audio" ? "bg-black/10" : "bg-black/20"}`,
650
- ...{ [chunkZUIM5737_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
650
+ ...{ [chunkNGWA6L3N_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
651
651
  children: [
652
652
  /* @__PURE__ */ jsxRuntime.jsx(
653
653
  FallbackIcon,
654
654
  {
655
- paths: chunkZUIM5737_js.mediaFallbackIcon(visual, element.mediaType),
655
+ paths: chunkNGWA6L3N_js.mediaFallbackIcon(visual, element.mediaType),
656
656
  size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
657
657
  className: isMissing ? "text-white/50" : "text-white/70"
658
658
  }
659
659
  ),
660
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkZUIM5737_js.mediaFallbackLabelKey(visual, element.mediaType)) })
660
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkNGWA6L3N_js.mediaFallbackLabelKey(visual, element.mediaType)) })
661
661
  ]
662
662
  }
663
663
  );
@@ -667,7 +667,7 @@ function renderMediaFallback({
667
667
  posterUrl,
668
668
  surface
669
669
  }) {
670
- const visual = chunkZUIM5737_js.mediaFallbackVisual(surface, {
670
+ const visual = chunkNGWA6L3N_js.mediaFallbackVisual(surface, {
671
671
  hasPoster: Boolean(posterUrl),
672
672
  missing: element.mediaMissing === true
673
673
  });
@@ -677,9 +677,9 @@ function renderMediaFallback({
677
677
  "img",
678
678
  {
679
679
  src: posterUrl,
680
- alt: visual.dimPoster ? chunkBRJN3ZMG_js.translationsEn["pptx.media.posterAlt"] : chunkBRJN3ZMG_js.translationsEn["pptx.media.videoPosterAlt"],
680
+ alt: visual.dimPoster ? chunkI5LPYESF_js.translationsEn["pptx.media.posterAlt"] : chunkI5LPYESF_js.translationsEn["pptx.media.videoPosterAlt"],
681
681
  className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
682
- style: chunkZUIM5737_js.getImageFitStyle(element)
682
+ style: chunkNGWA6L3N_js.getImageFitStyle(element)
683
683
  }
684
684
  ),
685
685
  /* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
@@ -689,7 +689,7 @@ function renderMediaFallback({
689
689
  }
690
690
  function renderMediaElement(element, mediaDataUrls, options) {
691
691
  if (element.type !== "media") {
692
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBRJN3ZMG_js.translationsEn["pptx.media.title"] });
692
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.media.title"] });
693
693
  }
694
694
  const mediaType = element.mediaType;
695
695
  const mediaPath = element.mediaPath;
@@ -697,7 +697,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
697
697
  const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
698
698
  const trimFragment = buildTrimFragment(element);
699
699
  const posterUrl = element.posterFrameData ?? void 0;
700
- const shouldLoop = chunkZUIM5737_js.mediaPlaybackAttributes(element).loop;
700
+ const shouldLoop = chunkNGWA6L3N_js.mediaPlaybackAttributes(element).loop;
701
701
  const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
702
702
  const isFullScreen = options?.fullScreen === true;
703
703
  const isPresentationMode = options?.isPresentationMode === true;
@@ -775,25 +775,25 @@ function renderMediaElement(element, mediaDataUrls, options) {
775
775
  if (surface.presenting || surface.preview) {
776
776
  return null;
777
777
  }
778
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBRJN3ZMG_js.translationsEn["pptx.media.title"] });
778
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.media.title"] });
779
779
  }
780
780
 
781
781
  // src/viewer/utils/text-utils.tsx
782
782
  function getTextStyleForElement(element, fallbackColor) {
783
- return chunkZUIM5737_js.buildTextBlockStyle(element, { fallbackColor });
783
+ return chunkNGWA6L3N_js.buildTextBlockStyle(element, { fallbackColor });
784
784
  }
785
785
 
786
786
  // src/viewer/utils/text-layout.tsx
787
787
  function getTextLayoutStyle(element) {
788
- if (!chunkZUIM5737_js.hasTextProperties(element)) {
788
+ if (!chunkNGWA6L3N_js.hasTextProperties(element)) {
789
789
  return {};
790
790
  }
791
- const writingMode = chunkZUIM5737_js.toCssWritingMode(element.textStyle?.textDirection);
792
- const textOrientation = chunkZUIM5737_js.toCssTextOrientation(element.textStyle?.textDirection);
793
- const verticalDirection = chunkZUIM5737_js.toCssVerticalDirection(element.textStyle?.textDirection);
791
+ const writingMode = chunkNGWA6L3N_js.toCssWritingMode(element.textStyle?.textDirection);
792
+ const textOrientation = chunkNGWA6L3N_js.toCssTextOrientation(element.textStyle?.textDirection);
793
+ const verticalDirection = chunkNGWA6L3N_js.toCssVerticalDirection(element.textStyle?.textDirection);
794
794
  const textWrapNone = element.textStyle?.textWrap === "none";
795
795
  const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
796
- const hasParagraphIndents = chunkZUIM5737_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
796
+ const hasParagraphIndents = chunkNGWA6L3N_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
797
797
  const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
798
798
  const paragraphIndent = element.textStyle?.paragraphIndent;
799
799
  const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
@@ -802,7 +802,7 @@ function getTextLayoutStyle(element) {
802
802
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
803
803
  return {
804
804
  // Columns / flex anchoring / anchorCtr / tab-size / kinsoku, from shared.
805
- ...chunkZUIM5737_js.buildTextBodyLayoutStyle(element),
805
+ ...chunkNGWA6L3N_js.buildTextBodyLayoutStyle(element),
806
806
  // Body inset only. Paragraph spacing (spcBef/spcAft) is applied
807
807
  // per-paragraph by the paragraph renderer, not collapsed here.
808
808
  paddingTop: bodyTop,
@@ -830,7 +830,7 @@ function getTextLayoutStyle(element) {
830
830
 
831
831
  // src/viewer/utils/text-effects.tsx
832
832
  function buildTextBody3DSceneStyle2(textStyle, elementSize) {
833
- return chunkZUIM5737_js.buildTextBody3DSceneStyle(textStyle, elementSize);
833
+ return chunkNGWA6L3N_js.buildTextBody3DSceneStyle(textStyle, elementSize);
834
834
  }
835
835
 
836
836
  // src/viewer/utils/text-warp-css.tsx
@@ -1015,13 +1015,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1015
1015
  if (!subElementAnimStates || subElementAnimStates.size === 0) {
1016
1016
  return renderedSegments;
1017
1017
  }
1018
- const paraKey = `${elementId}${chunkZUIM5737_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1018
+ const paraKey = `${elementId}${chunkNGWA6L3N_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1019
1019
  const paraState = subElementAnimStates.get(paraKey);
1020
1020
  if (paraState) {
1021
1021
  const style = buildAnimStyle(paraState);
1022
1022
  return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
1023
1023
  }
1024
- const spec = chunkZUIM5737_js.buildTextBuildSpec(
1024
+ const spec = chunkNGWA6L3N_js.buildTextBuildSpec(
1025
1025
  elementId,
1026
1026
  paraIndex,
1027
1027
  paraRuns.map((run) => ({ text: run.text, style: run })),
@@ -1039,7 +1039,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1039
1039
  "span",
1040
1040
  {
1041
1041
  "data-anim-id": span.animId,
1042
- style: chunkZUIM5737_js.textBuildSpanStyle(span),
1042
+ style: chunkNGWA6L3N_js.textBuildSpanStyle(span),
1043
1043
  children: content
1044
1044
  },
1045
1045
  span.animId
@@ -1050,13 +1050,13 @@ function renderUnderlineWords(text, isUnderlineWords, wordDecoration, metric, ke
1050
1050
  if (!isUnderlineWords || !text) {
1051
1051
  return inner(text, keyPrefix, metric);
1052
1052
  }
1053
- const pieces = chunkZUIM5737_js.splitWordsForUnderline(text);
1053
+ const pieces = chunkNGWA6L3N_js.splitWordsForUnderline(text);
1054
1054
  if (pieces.length === 0) {
1055
1055
  return inner(text, keyPrefix, metric);
1056
1056
  }
1057
1057
  const gapMetric = metric ? {
1058
1058
  ...metric,
1059
- nestedStyle: metric.nestedStyle ? chunkZUIM5737_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
1059
+ nestedStyle: metric.nestedStyle ? chunkNGWA6L3N_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
1060
1060
  } : void 0;
1061
1061
  return pieces.map((piece, i) => {
1062
1062
  const key = `${keyPrefix}-u${i}`;
@@ -1089,7 +1089,7 @@ function makeSegmentPieceRenderer(needsScriptFonts, scriptFonts, baseFontFamily,
1089
1089
  );
1090
1090
  }
1091
1091
  function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle, underlineWords = false) {
1092
- const [lineLayout] = chunkZUIM5737_js.buildRunTabLines(
1092
+ const [lineLayout] = chunkNGWA6L3N_js.buildRunTabLines(
1093
1093
  line,
1094
1094
  ctx,
1095
1095
  nestedStyle,
@@ -1108,7 +1108,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1108
1108
  if (!needsScriptFonts || !text) {
1109
1109
  return text;
1110
1110
  }
1111
- const pieces = chunkZUIM5737_js.splitRunByScriptFont(
1111
+ const pieces = chunkNGWA6L3N_js.splitRunByScriptFont(
1112
1112
  text,
1113
1113
  scriptFonts,
1114
1114
  baseFontFamily,
@@ -1125,7 +1125,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1125
1125
  if (!metric || !text) {
1126
1126
  return inner(text, keyPrefix);
1127
1127
  }
1128
- const pieces = chunkZUIM5737_js.splitRunForMetrics(text, metric.font);
1128
+ const pieces = chunkNGWA6L3N_js.splitRunForMetrics(text, metric.font);
1129
1129
  if (pieces.length <= 1) {
1130
1130
  return inner(text, keyPrefix);
1131
1131
  }
@@ -1134,7 +1134,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1134
1134
  {
1135
1135
  style: {
1136
1136
  ...metric.nestedStyle,
1137
- letterSpacing: chunkZUIM5737_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1137
+ letterSpacing: chunkNGWA6L3N_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1138
1138
  },
1139
1139
  children: inner(piece.text, `${keyPrefix}-w${i}`)
1140
1140
  },
@@ -1210,8 +1210,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
1210
1210
  });
1211
1211
  }
1212
1212
  function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
1213
- const mathml = chunkZUIM5737_js.convertOmmlToMathMl(equationXml);
1214
- const safeMathml = mathml ? chunkZUIM5737_js.sanitizeMathMl(mathml) : "";
1213
+ const mathml = chunkNGWA6L3N_js.convertOmmlToMathMl(equationXml);
1214
+ const safeMathml = mathml ? chunkNGWA6L3N_js.sanitizeMathMl(mathml) : "";
1215
1215
  const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
1216
1216
  "span",
1217
1217
  {
@@ -1221,7 +1221,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
1221
1221
  },
1222
1222
  dangerouslySetInnerHTML: { __html: safeMathml }
1223
1223
  }
1224
- ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkBRJN3ZMG_js.translationsEn["pptx.textSegment.equationFallback"] });
1224
+ ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkI5LPYESF_js.translationsEn["pptx.textSegment.equationFallback"] });
1225
1225
  if (equationNumber) {
1226
1226
  return /* @__PURE__ */ jsxRuntime.jsxs(
1227
1227
  "span",
@@ -1340,7 +1340,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1340
1340
  const segmentStyle = segment?.style ?? {};
1341
1341
  const textValue = run.text;
1342
1342
  const lines = textValue.split("\n");
1343
- const resolvedSegmentColor = chunkZUIM5737_js.normalizeHexColor(
1343
+ const resolvedSegmentColor = chunkNGWA6L3N_js.normalizeHexColor(
1344
1344
  segmentStyle.color || element.textStyle?.color,
1345
1345
  run.hyperlink ? HYPERLINK_COLOR : fallbackColor
1346
1346
  );
@@ -1348,16 +1348,16 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1348
1348
  const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
1349
1349
  const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
1350
1350
  const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
1351
- const baseFontSize = rawFontSize * chunkZUIM5737_js.resolveAutoFitFontScale(element.textStyle);
1351
+ const baseFontSize = rawFontSize * chunkNGWA6L3N_js.resolveAutoFitFontScale(element.textStyle);
1352
1352
  const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
1353
- const fontKerning = chunkZUIM5737_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
1353
+ const fontKerning = chunkNGWA6L3N_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
1354
1354
  const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
1355
- const baseFontFamily = rawFontFamily ? chunkZUIM5737_js.getSubstituteFontFamily(
1355
+ const baseFontFamily = rawFontFamily ? chunkNGWA6L3N_js.getSubstituteFontFamily(
1356
1356
  rawFontFamily,
1357
- chunkZUIM5737_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1357
+ chunkNGWA6L3N_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1358
1358
  ) : DEFAULT_FONT_FAMILY2;
1359
- const scriptFonts = chunkZUIM5737_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
1360
- const needsScriptFonts = chunkZUIM5737_js.hasDistinctScriptFonts(scriptFonts);
1359
+ const scriptFonts = chunkNGWA6L3N_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
1360
+ const needsScriptFonts = chunkNGWA6L3N_js.hasDistinctScriptFonts(scriptFonts);
1361
1361
  const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
1362
1362
  const metricFont = {
1363
1363
  fontFamily: baseFontFamily,
@@ -1365,7 +1365,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1365
1365
  bold: Boolean(segmentStyle.bold),
1366
1366
  italic: Boolean(segmentStyle.italic)
1367
1367
  };
1368
- const nestedStyle = chunkZUIM5737_js.nestedTextDecorationStyle(run.style);
1368
+ const nestedStyle = chunkNGWA6L3N_js.nestedTextDecorationStyle(run.style);
1369
1369
  const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
1370
1370
  const spanStyle = { ...run.style };
1371
1371
  spanStyle.color = resolvedSegmentColor;
@@ -1373,11 +1373,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1373
1373
  spanStyle.fontFamily = baseFontFamily;
1374
1374
  spanStyle.verticalAlign = baselineShift;
1375
1375
  spanStyle.fontKerning = fontKerning;
1376
- spanStyle.letterSpacing = chunkZUIM5737_js.pieceLetterSpacing(
1376
+ spanStyle.letterSpacing = chunkNGWA6L3N_js.pieceLetterSpacing(
1377
1377
  authoredLetterSpacing,
1378
- chunkZUIM5737_js.resolveMetricTrackingPx(textValue, metricFont)
1378
+ chunkNGWA6L3N_js.resolveMetricTrackingPx(textValue, metricFont)
1379
1379
  );
1380
- const hollow = chunkZUIM5737_js.hollowTextFillStyle(segmentStyle, {
1380
+ const hollow = chunkNGWA6L3N_js.hollowTextFillStyle(segmentStyle, {
1381
1381
  color: resolvedSegmentColor,
1382
1382
  textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
1383
1383
  });
@@ -1392,7 +1392,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1392
1392
  const isUnderlineWords = Boolean(segmentStyle.underline) && segmentStyle.underlineStyle === "words";
1393
1393
  const wordDecoration = isUnderlineWords ? nestedStyle ?? run.underlineWordPieces?.find((piece) => piece.style)?.style : void 0;
1394
1394
  if (isUnderlineWords) {
1395
- const stripped = chunkZUIM5737_js.stripUnderlineDecoration(spanStyle);
1395
+ const stripped = chunkNGWA6L3N_js.stripUnderlineDecoration(spanStyle);
1396
1396
  spanStyle.textDecoration = stripped.textDecoration;
1397
1397
  delete spanStyle.textDecorationStyle;
1398
1398
  delete spanStyle.textDecorationThickness;
@@ -1408,7 +1408,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1408
1408
  scriptFonts,
1409
1409
  baseFontFamily,
1410
1410
  findHighlights,
1411
- chunkZUIM5737_js.buildTabContext(
1411
+ chunkNGWA6L3N_js.buildTabContext(
1412
1412
  element.textStyle?.tabStops,
1413
1413
  element.textStyle?.defaultTabSize,
1414
1414
  baseFontSize,
@@ -1440,14 +1440,14 @@ function renderSeededListRun(seed, runs, segments, context) {
1440
1440
  const segment = sourceRun ? segments[seed.segmentIndex] : { text: seed.text, style: seed.style };
1441
1441
  const resolvedSegment = {
1442
1442
  ...segment,
1443
- style: chunkZUIM5737_js.withInlineListDecorationDefaults(segment.style, context.element.textStyle)
1443
+ style: chunkNGWA6L3N_js.withInlineListDecorationDefaults(segment.style, context.element.textStyle)
1444
1444
  };
1445
- const decorationCss = chunkZUIM5737_js.segmentStyleToCss(
1445
+ const decorationCss = chunkNGWA6L3N_js.segmentStyleToCss(
1446
1446
  resolvedSegment,
1447
- chunkZUIM5737_js.resolveAutoFitFontScale(context.element.textStyle)
1447
+ chunkNGWA6L3N_js.resolveAutoFitFontScale(context.element.textStyle)
1448
1448
  );
1449
- chunkZUIM5737_js.applyUnderlineVariant(decorationCss, resolvedSegment);
1450
- const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...chunkZUIM5737_js.nestedTextDecorationStyle(decorationCss) } } : {
1449
+ chunkNGWA6L3N_js.applyUnderlineVariant(decorationCss, resolvedSegment);
1450
+ const run = sourceRun ? { ...sourceRun, style: { ...sourceRun.style, ...chunkNGWA6L3N_js.nestedTextDecorationStyle(decorationCss) } } : {
1451
1451
  text: seed.text,
1452
1452
  style: decorationCss,
1453
1453
  segmentIndex: seed.segmentIndex
@@ -1462,7 +1462,7 @@ function renderSeededListRun(seed, runs, segments, context) {
1462
1462
  });
1463
1463
  }
1464
1464
  function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt, inlineListSeed) {
1465
- if (!chunkZUIM5737_js.hasTextProperties(element)) {
1465
+ if (!chunkNGWA6L3N_js.hasTextProperties(element)) {
1466
1466
  return emptyFallback || null;
1467
1467
  }
1468
1468
  const segments = segmentOverrides ?? element.textSegments;
@@ -1472,7 +1472,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
1472
1472
  }
1473
1473
  return element.text || emptyFallback || "";
1474
1474
  }
1475
- const paragraphs = chunkZUIM5737_js.buildParagraphs(
1475
+ const paragraphs = chunkNGWA6L3N_js.buildParagraphs(
1476
1476
  element,
1477
1477
  fieldContext,
1478
1478
  segmentOverrides,
@@ -1618,13 +1618,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
1618
1618
  );
1619
1619
  }
1620
1620
  function getDuotoneColors(element) {
1621
- if (!chunkZUIM5737_js.isImageLikeElement(element)) {
1621
+ if (!chunkNGWA6L3N_js.isImageLikeElement(element)) {
1622
1622
  return void 0;
1623
1623
  }
1624
1624
  return element.imageEffects?.duotone;
1625
1625
  }
1626
1626
  function buildLineShadowCss(element) {
1627
- if (!chunkZUIM5737_js.hasShapeProperties(element)) {
1627
+ if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
1628
1628
  return void 0;
1629
1629
  }
1630
1630
  const ss = element.shapeStyle;
@@ -1635,13 +1635,13 @@ function buildLineShadowCss(element) {
1635
1635
  const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
1636
1636
  const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
1637
1637
  const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
1638
- return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkZUIM5737_js.colorWithOpacity(
1639
- chunkZUIM5737_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1638
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkNGWA6L3N_js.colorWithOpacity(
1639
+ chunkNGWA6L3N_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1640
1640
  opacity
1641
1641
  )}`;
1642
1642
  }
1643
1643
  function buildLineGlowFilter(element) {
1644
- if (!chunkZUIM5737_js.hasShapeProperties(element)) {
1644
+ if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
1645
1645
  return void 0;
1646
1646
  }
1647
1647
  const ss = element.shapeStyle;
@@ -1650,22 +1650,22 @@ function buildLineGlowFilter(element) {
1650
1650
  }
1651
1651
  const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
1652
1652
  const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
1653
- const glowCol = chunkZUIM5737_js.colorWithOpacity(chunkZUIM5737_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1653
+ const glowCol = chunkNGWA6L3N_js.colorWithOpacity(chunkNGWA6L3N_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1654
1654
  return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
1655
1655
  }
1656
1656
  function getDagDuotoneFilterId(elementId) {
1657
1657
  return `dag-duotone-${elementId}`;
1658
1658
  }
1659
1659
  function hasDagDuotoneEffect(element) {
1660
- if (!chunkZUIM5737_js.hasShapeProperties(element)) {
1660
+ if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
1661
1661
  return false;
1662
1662
  }
1663
1663
  return Boolean(element.shapeStyle?.dagDuotone);
1664
1664
  }
1665
1665
  function renderDagDuotoneSvgFilter(elementId, color1, color2) {
1666
1666
  const filterId = getDagDuotoneFilterId(elementId);
1667
- const c1 = chunkZUIM5737_js.hexToRgbUnit(color1);
1668
- const c2 = chunkZUIM5737_js.hexToRgbUnit(color2);
1667
+ const c1 = chunkNGWA6L3N_js.hexToRgbUnit(color1);
1668
+ const c2 = chunkNGWA6L3N_js.hexToRgbUnit(color2);
1669
1669
  const grayscaleMatrix = [
1670
1670
  0.2126,
1671
1671
  0.7152,
@@ -1709,7 +1709,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
1709
1709
 
1710
1710
  // src/viewer/utils/shape-visual-3d.ts
1711
1711
  function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
1712
- return chunkZUIM5737_js.build3DExtrusionData(
1712
+ return chunkNGWA6L3N_js.build3DExtrusionData(
1713
1713
  shape3d,
1714
1714
  scene3d,
1715
1715
  fillColor,
@@ -1718,7 +1718,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
1718
1718
  );
1719
1719
  }
1720
1720
  function apply3dEffects2(base, scene3d, shape3d, fillColorFallback, elementSize, elementId) {
1721
- chunkZUIM5737_js.apply3dEffects(
1721
+ chunkNGWA6L3N_js.apply3dEffects(
1722
1722
  base,
1723
1723
  scene3d,
1724
1724
  shape3d,
@@ -1733,11 +1733,11 @@ function rendersCustomVectorPath(element) {
1733
1733
  return (element.type === "shape" || element.type === "image" || element.type === "picture") && Boolean(element.pathData) && typeof element.pathWidth === "number" && element.pathWidth > 0 && typeof element.pathHeight === "number" && element.pathHeight > 0;
1734
1734
  }
1735
1735
  function rendersWedgeCalloutVector(element) {
1736
- return element.type === "shape" && chunkZUIM5737_js.isWedgeCalloutPresetShape(element.shapeType);
1736
+ return element.type === "shape" && chunkNGWA6L3N_js.isWedgeCalloutPresetShape(element.shapeType);
1737
1737
  }
1738
1738
  function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
1739
1739
  if (element.type === "group") {
1740
- const fx2 = chunkZUIM5737_js.getComputedEffectStyle(element);
1740
+ const fx2 = chunkNGWA6L3N_js.getComputedEffectStyle(element);
1741
1741
  const groupStyle = {};
1742
1742
  if (fx2.filter) {
1743
1743
  groupStyle.filter = fx2.filter;
@@ -1747,13 +1747,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1747
1747
  }
1748
1748
  return groupStyle;
1749
1749
  }
1750
- if (!chunkZUIM5737_js.hasShapeProperties(element)) {
1750
+ if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
1751
1751
  return {};
1752
1752
  }
1753
1753
  const ss = element.shapeStyle;
1754
- const fill = animatesFill ? void 0 : chunkZUIM5737_js.getComputedFillStyle(element, parentGroupFill);
1755
- const fx = chunkZUIM5737_js.getComputedEffectStyle(element);
1756
- const stroke = chunkZUIM5737_js.getComputedStrokeStyle(element);
1754
+ const fill = animatesFill ? void 0 : chunkNGWA6L3N_js.getComputedFillStyle(element, parentGroupFill);
1755
+ const fx = chunkNGWA6L3N_js.getComputedEffectStyle(element);
1756
+ const stroke = chunkNGWA6L3N_js.getComputedStrokeStyle(element);
1757
1757
  const base = {
1758
1758
  // A gradient fill REPLACES the solid fill, it does not sit on top of it;
1759
1759
  // the whole precedence lives in shared's `getComputedFillStyle`.
@@ -1792,7 +1792,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1792
1792
  };
1793
1793
  Object.assign(
1794
1794
  base,
1795
- chunkZUIM5737_js.getAnimationColorBaseStyle(element, {
1795
+ chunkNGWA6L3N_js.getAnimationColorBaseStyle(element, {
1796
1796
  animatesFill,
1797
1797
  animatesStroke,
1798
1798
  parentGroupFill
@@ -1814,7 +1814,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1814
1814
  },
1815
1815
  element.id
1816
1816
  );
1817
- if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkZUIM5737_js.isStrokeOnlyPresetElement(element)) {
1817
+ if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkNGWA6L3N_js.isStrokeOnlyPresetElement(element)) {
1818
1818
  base.backgroundColor = "transparent";
1819
1819
  base.backgroundImage = void 0;
1820
1820
  base.borderWidth = void 0;
@@ -1828,7 +1828,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1828
1828
  if (rendersWedgeCalloutVector(element)) {
1829
1829
  return base;
1830
1830
  }
1831
- const geometry = chunkZUIM5737_js.resolveShapeGeometry(element);
1831
+ const geometry = chunkNGWA6L3N_js.resolveShapeGeometry(element);
1832
1832
  switch (geometry.kind) {
1833
1833
  case "bare":
1834
1834
  return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
@@ -1852,7 +1852,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1852
1852
  }
1853
1853
  }
1854
1854
  function getConnectorPathGeometry2(element) {
1855
- return chunkZUIM5737_js.getConnectorPathGeometry(element);
1855
+ return chunkNGWA6L3N_js.getConnectorPathGeometry(element);
1856
1856
  }
1857
1857
  var ARROW_SIZE_SCALE = {
1858
1858
  sm: 0.6,
@@ -1921,11 +1921,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
1921
1921
  strokePaint,
1922
1922
  strokeWidth,
1923
1923
  dashArray,
1924
- lineCap: chunkZUIM5737_js.svgLineCap(shapeStyle?.lineCap),
1924
+ lineCap: chunkNGWA6L3N_js.svgLineCap(shapeStyle?.lineCap),
1925
1925
  lineJoin,
1926
1926
  miterLimit,
1927
- offsets: chunkZUIM5737_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
1928
- widths: chunkZUIM5737_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
1927
+ offsets: chunkNGWA6L3N_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
1928
+ widths: chunkNGWA6L3N_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
1929
1929
  };
1930
1930
  }
1931
1931
  function strokeStrands(d, keyBase, ctx) {
@@ -1948,12 +1948,12 @@ function strokeStrands(d, keyBase, ctx) {
1948
1948
  }
1949
1949
  function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
1950
1950
  const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
1951
- const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkZUIM5737_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
1951
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkNGWA6L3N_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
1952
1952
  const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
1953
- const gradientPaint = gradient ? chunkZUIM5737_js.svgGradientFillRef(gradient) : void 0;
1953
+ const gradientPaint = gradient ? chunkNGWA6L3N_js.svgGradientFillRef(gradient) : void 0;
1954
1954
  const nodes = [];
1955
1955
  if (subpaths && needsPerSubpath) {
1956
- const paints = chunkZUIM5737_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
1956
+ const paints = chunkNGWA6L3N_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
1957
1957
  paints.forEach((paint, idx) => {
1958
1958
  if (paint.fill !== "none") {
1959
1959
  const mode = subpaths[idx]?.fillMode;
@@ -1982,7 +1982,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
1982
1982
  "path",
1983
1983
  {
1984
1984
  d: pathData,
1985
- fill: animatesFill ? "inherit" : gradientPaint ?? chunkZUIM5737_js.colorWithOpacity(fillColor, fillOpacity),
1985
+ fill: animatesFill ? "inherit" : gradientPaint ?? chunkNGWA6L3N_js.colorWithOpacity(fillColor, fillOpacity),
1986
1986
  stroke: "none",
1987
1987
  vectorEffect: "non-scaling-stroke"
1988
1988
  },
@@ -2008,14 +2008,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2008
2008
  );
2009
2009
  }
2010
2010
  function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2011
- if (!chunkZUIM5737_js.hasShapeProperties(element)) {
2011
+ if (!chunkNGWA6L3N_js.hasShapeProperties(element)) {
2012
2012
  return null;
2013
2013
  }
2014
2014
  const normalizedType = (element.shapeType || "").toLowerCase();
2015
- const fillPaint = animatesFill ? "inherit" : chunkZUIM5737_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2016
- const strokePaint = animatesStroke ? "inherit" : chunkZUIM5737_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2017
- const dashType = chunkZUIM5737_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2018
- const dashArray = chunkZUIM5737_js.getSvgStrokeDasharray(
2015
+ const fillPaint = animatesFill ? "inherit" : chunkNGWA6L3N_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2016
+ const strokePaint = animatesStroke ? "inherit" : chunkNGWA6L3N_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2017
+ const dashType = chunkNGWA6L3N_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2018
+ const dashArray = chunkNGWA6L3N_js.getSvgStrokeDasharray(
2019
2019
  dashType,
2020
2020
  Math.max(strokeWidth, 1),
2021
2021
  element.shapeStyle?.customDashSegments
@@ -2096,13 +2096,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2096
2096
  // container's `background-image` is suppressed for custom geometry, so
2097
2097
  // without this the shape fell back to the parser's representative solid
2098
2098
  // and lost every fade (issue #132).
2099
- chunkZUIM5737_js.buildSvgGradientDef(element.shapeStyle, element.id)
2099
+ chunkNGWA6L3N_js.buildSvgGradientDef(element.shapeStyle, element.id)
2100
2100
  );
2101
2101
  }
2102
- if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkZUIM5737_js.buildStrokeOutline(element)) {
2102
+ if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkNGWA6L3N_js.buildStrokeOutline(element)) {
2103
2103
  const width = Math.max(element.width, 1);
2104
2104
  const height = Math.max(element.height, 1);
2105
- const geometry = chunkZUIM5737_js.getPresetShapeVectorGeometry(
2105
+ const geometry = chunkNGWA6L3N_js.getPresetShapeVectorGeometry(
2106
2106
  element.shapeType || "rect",
2107
2107
  width,
2108
2108
  height,
@@ -2130,18 +2130,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2130
2130
  );
2131
2131
  }
2132
2132
  }
2133
- if (element.type === "shape" && chunkZUIM5737_js.isWedgeCalloutPresetShape(element.shapeType)) {
2133
+ if (element.type === "shape" && chunkNGWA6L3N_js.isWedgeCalloutPresetShape(element.shapeType)) {
2134
2134
  const width = Math.max(element.width, 1);
2135
2135
  const height = Math.max(element.height, 1);
2136
- const geometry = chunkZUIM5737_js.getPresetShapeVectorGeometry(
2136
+ const geometry = chunkNGWA6L3N_js.getPresetShapeVectorGeometry(
2137
2137
  element.shapeType,
2138
2138
  width,
2139
2139
  height,
2140
2140
  element.shapeAdjustments
2141
2141
  );
2142
2142
  if (geometry) {
2143
- const gradient = chunkZUIM5737_js.buildSvgGradientDef(element.shapeStyle, element.id);
2144
- const gradientPaint = gradient ? chunkZUIM5737_js.svgGradientFillRef(gradient) : void 0;
2143
+ const gradient = chunkNGWA6L3N_js.buildSvgGradientDef(element.shapeStyle, element.id);
2144
+ const gradientPaint = gradient ? chunkNGWA6L3N_js.svgGradientFillRef(gradient) : void 0;
2145
2145
  return /* @__PURE__ */ jsxRuntime.jsxs(
2146
2146
  "svg",
2147
2147
  {
@@ -2174,18 +2174,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2174
2174
  );
2175
2175
  }
2176
2176
  }
2177
- if (chunkZUIM5737_js.isCalloutShape(normalizedType)) {
2177
+ if (chunkNGWA6L3N_js.isCalloutShape(normalizedType)) {
2178
2178
  const width = Math.max(element.width, 1);
2179
2179
  const height = Math.max(element.height, 1);
2180
- const geometry = chunkZUIM5737_js.getCalloutLeaderLineGeometry(
2180
+ const geometry = chunkNGWA6L3N_js.getCalloutLeaderLineGeometry(
2181
2181
  normalizedType,
2182
2182
  width,
2183
2183
  height,
2184
2184
  element.shapeAdjustments
2185
2185
  );
2186
2186
  if (geometry && geometry.points.length >= 2) {
2187
- const leaderPath = chunkZUIM5737_js.buildCalloutLeaderLineSvgPath(geometry);
2188
- const bounds = chunkZUIM5737_js.getCalloutViewBoxBounds(width, height, geometry);
2187
+ const leaderPath = chunkNGWA6L3N_js.buildCalloutLeaderLineSvgPath(geometry);
2188
+ const bounds = chunkNGWA6L3N_js.getCalloutViewBoxBounds(width, height, geometry);
2189
2189
  const lineStroke = Math.max(strokeWidth, 1);
2190
2190
  const offsetLeft = bounds.minX;
2191
2191
  const offsetTop = bounds.minY;
@@ -2248,10 +2248,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2248
2248
  const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
2249
2249
  const endArrowL = element.shapeStyle?.connectorEndArrowLength;
2250
2250
  const compoundLine = element.shapeStyle?.compoundLine;
2251
- const connectorLineCap = chunkZUIM5737_js.svgLineCap(element.shapeStyle?.lineCap);
2251
+ const connectorLineCap = chunkNGWA6L3N_js.svgLineCap(element.shapeStyle?.lineCap);
2252
2252
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
2253
- const offsets = chunkZUIM5737_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2254
- const widths = chunkZUIM5737_js.getCompoundLineWidths(compoundLine, strokeWidth);
2253
+ const offsets = chunkNGWA6L3N_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2254
+ const widths = chunkNGWA6L3N_js.getCompoundLineWidths(compoundLine, strokeWidth);
2255
2255
  return /* @__PURE__ */ jsxRuntime.jsxs(
2256
2256
  "svg",
2257
2257
  {
@@ -2318,15 +2318,15 @@ function parseGradientFillCss(gradFill) {
2318
2318
  }
2319
2319
  const rawStops = stops.map((gs) => {
2320
2320
  const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
2321
- const color = chunkZUIM5737_js.parseDrawingColor(gs) ?? "#888888";
2322
- const opacity = chunkZUIM5737_js.parseDrawingColorOpacity(gs);
2321
+ const color = chunkNGWA6L3N_js.parseDrawingColor(gs) ?? "#888888";
2322
+ const opacity = chunkNGWA6L3N_js.parseDrawingColorOpacity(gs);
2323
2323
  return { position: pos, color, opacity };
2324
2324
  }).sort((a, b) => a.position - b.position);
2325
- const stopStrings = rawStops.map((s) => `${chunkZUIM5737_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
2325
+ const stopStrings = rawStops.map((s) => `${chunkNGWA6L3N_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
2326
2326
  const lin = gradFill["a:lin"];
2327
2327
  if (lin) {
2328
2328
  const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
2329
- const angleDeg = Math.round(chunkZUIM5737_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2329
+ const angleDeg = Math.round(chunkNGWA6L3N_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2330
2330
  return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
2331
2331
  }
2332
2332
  const path = gradFill["a:path"];
@@ -2340,7 +2340,7 @@ function parseGradientFillCss(gradFill) {
2340
2340
  b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
2341
2341
  } : void 0;
2342
2342
  if (pathType === "rect") {
2343
- return chunkZUIM5737_js.buildRectPathGradient(rawStops, void 0, fillToRect);
2343
+ return chunkNGWA6L3N_js.buildRectPathGradient(rawStops, void 0, fillToRect);
2344
2344
  }
2345
2345
  let cx = 50;
2346
2346
  let cy = 50;
@@ -2362,8 +2362,8 @@ function parsePatternFillCss(pattFill) {
2362
2362
  if (!pattFill) {
2363
2363
  return void 0;
2364
2364
  }
2365
- const fgColor = chunkZUIM5737_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2366
- const bgColor = chunkZUIM5737_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2365
+ const fgColor = chunkNGWA6L3N_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2366
+ const bgColor = chunkNGWA6L3N_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2367
2367
  const preset = String(pattFill["@_prst"] || "ltDnDiag");
2368
2368
  switch (preset) {
2369
2369
  case "ltHorz":
@@ -2474,11 +2474,11 @@ function parseCellBorders(cellProperties) {
2474
2474
  const prstDash = ln["a:prstDash"];
2475
2475
  const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
2476
2476
  const cssBorderStyle = ooxmlDashToCss(dashVal);
2477
- const color = chunkZUIM5737_js.parseDrawingColor(ln["a:solidFill"]);
2477
+ const color = chunkNGWA6L3N_js.parseDrawingColor(ln["a:solidFill"]);
2478
2478
  if (color) {
2479
- const opacity = chunkZUIM5737_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2479
+ const opacity = chunkNGWA6L3N_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2480
2480
  const key = `${edge.prefix}`;
2481
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkZUIM5737_js.colorWithOpacity(color, opacity)}`;
2481
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkNGWA6L3N_js.colorWithOpacity(color, opacity)}`;
2482
2482
  }
2483
2483
  }
2484
2484
  return borderStyle;
@@ -2491,7 +2491,7 @@ function parseCellTextEffects(runProps) {
2491
2491
  const textShadowParts = [];
2492
2492
  const outerShdw = effectLst["a:outerShdw"];
2493
2493
  if (outerShdw) {
2494
- const shdwColor = chunkZUIM5737_js.parseDrawingColor(outerShdw);
2494
+ const shdwColor = chunkNGWA6L3N_js.parseDrawingColor(outerShdw);
2495
2495
  if (shdwColor) {
2496
2496
  const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
2497
2497
  const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
@@ -2509,7 +2509,7 @@ function parseCellTextEffects(runProps) {
2509
2509
  }
2510
2510
  const glow = effectLst["a:glow"];
2511
2511
  if (glow) {
2512
- const glowColor = chunkZUIM5737_js.parseDrawingColor(glow);
2512
+ const glowColor = chunkNGWA6L3N_js.parseDrawingColor(glow);
2513
2513
  if (glowColor) {
2514
2514
  const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
2515
2515
  const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
@@ -2531,11 +2531,11 @@ function extractCellText(cellXml) {
2531
2531
  const textParts = [];
2532
2532
  const runs = ensureArrayValue(paragraph["a:r"]);
2533
2533
  runs.forEach((run) => {
2534
- textParts.push(chunkZUIM5737_js.xmlText(run["a:t"]) ?? "");
2534
+ textParts.push(chunkNGWA6L3N_js.xmlText(run["a:t"]) ?? "");
2535
2535
  });
2536
2536
  const fields = ensureArrayValue(paragraph["a:fld"]);
2537
2537
  fields.forEach((field) => {
2538
- textParts.push(chunkZUIM5737_js.xmlText(field["a:t"]) ?? "");
2538
+ textParts.push(chunkNGWA6L3N_js.xmlText(field["a:t"]) ?? "");
2539
2539
  });
2540
2540
  paragraphTexts.push(textParts.join(""));
2541
2541
  });
@@ -2579,10 +2579,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2579
2579
  if (runProps?.["@_u"] !== void 0) {
2580
2580
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
2581
2581
  }
2582
- const runColor = chunkZUIM5737_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkZUIM5737_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2582
+ const runColor = chunkNGWA6L3N_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkNGWA6L3N_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2583
2583
  if (runColor) {
2584
- const opacity = chunkZUIM5737_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2585
- cellStyle.color = chunkZUIM5737_js.colorWithOpacity(runColor, opacity);
2584
+ const opacity = chunkNGWA6L3N_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2585
+ cellStyle.color = chunkNGWA6L3N_js.colorWithOpacity(runColor, opacity);
2586
2586
  }
2587
2587
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
2588
2588
  if (fontFamily) {
@@ -2592,15 +2592,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2592
2592
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
2593
2593
  }
2594
2594
  const cellProperties = cellXml["a:tcPr"];
2595
- const cellFill = chunkZUIM5737_js.parseDrawingColor(
2595
+ const cellFill = chunkNGWA6L3N_js.parseDrawingColor(
2596
2596
  cellProperties?.["a:solidFill"],
2597
2597
  schemeColorOverrides
2598
2598
  );
2599
2599
  if (cellFill) {
2600
- const opacity = chunkZUIM5737_js.parseDrawingColorOpacity(
2600
+ const opacity = chunkNGWA6L3N_js.parseDrawingColorOpacity(
2601
2601
  cellProperties?.["a:solidFill"]
2602
2602
  );
2603
- cellStyle.backgroundColor = chunkZUIM5737_js.colorWithOpacity(cellFill, opacity);
2603
+ cellStyle.backgroundColor = chunkNGWA6L3N_js.colorWithOpacity(cellFill, opacity);
2604
2604
  } else {
2605
2605
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
2606
2606
  if (gradCss) {
@@ -2615,16 +2615,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2615
2615
  const edgeBorders = parseCellBorders(cellProperties);
2616
2616
  Object.assign(cellStyle, edgeBorders);
2617
2617
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
2618
- const borderColor = chunkZUIM5737_js.parseDrawingColor(
2618
+ const borderColor = chunkNGWA6L3N_js.parseDrawingColor(
2619
2619
  cellProperties?.["a:lnL"]?.["a:solidFill"],
2620
2620
  schemeColorOverrides
2621
- ) || chunkZUIM5737_js.parseDrawingColor(
2621
+ ) || chunkNGWA6L3N_js.parseDrawingColor(
2622
2622
  cellProperties?.["a:lnR"]?.["a:solidFill"],
2623
2623
  schemeColorOverrides
2624
- ) || chunkZUIM5737_js.parseDrawingColor(
2624
+ ) || chunkNGWA6L3N_js.parseDrawingColor(
2625
2625
  cellProperties?.["a:lnT"]?.["a:solidFill"],
2626
2626
  schemeColorOverrides
2627
- ) || chunkZUIM5737_js.parseDrawingColor(
2627
+ ) || chunkNGWA6L3N_js.parseDrawingColor(
2628
2628
  cellProperties?.["a:lnB"]?.["a:solidFill"],
2629
2629
  schemeColorOverrides
2630
2630
  );
@@ -2696,7 +2696,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
2696
2696
  if (element.type !== "table") {
2697
2697
  return void 0;
2698
2698
  }
2699
- return chunkZUIM5737_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2699
+ return chunkNGWA6L3N_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2700
2700
  tableStyleMap: styleCtx?.tableStyleMap,
2701
2701
  colorScheme: styleCtx?.theme?.colorScheme,
2702
2702
  fontScheme: styleCtx?.theme?.fontScheme
@@ -2776,7 +2776,7 @@ function renderTableCellContent(cell, fallbackText) {
2776
2776
  return /* @__PURE__ */ jsxRuntime.jsx(
2777
2777
  "span",
2778
2778
  {
2779
- style: { position: "relative", ...chunkZUIM5737_js.cellRunStyle(run) },
2779
+ style: { position: "relative", ...chunkNGWA6L3N_js.cellRunStyle(run) },
2780
2780
  children: run.text
2781
2781
  },
2782
2782
  `r-${index}`
@@ -2784,7 +2784,7 @@ function renderTableCellContent(cell, fallbackText) {
2784
2784
  });
2785
2785
  }
2786
2786
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
2787
- return chunkZUIM5737_js.getCellDiagonalBorders(style, tableData, pos, {
2787
+ return chunkNGWA6L3N_js.getCellDiagonalBorders(style, tableData, pos, {
2788
2788
  tableStyleMap: styleCtx?.tableStyleMap,
2789
2789
  colorScheme: styleCtx?.theme?.colorScheme,
2790
2790
  fontScheme: styleCtx?.theme?.fontScheme
@@ -2917,7 +2917,7 @@ function TableResizeOverlay({
2917
2917
  const containerRef = React7.useRef(null);
2918
2918
  const [rowBounds, setRowBounds] = React7.useState([]);
2919
2919
  const dragRef = React7.useRef(null);
2920
- const colBoundaries = React7.useMemo(() => chunkZUIM5737_js.computeColumnBoundaries(columnWidths), [columnWidths]);
2920
+ const colBoundaries = React7.useMemo(() => chunkNGWA6L3N_js.computeColumnBoundaries(columnWidths), [columnWidths]);
2921
2921
  const measureRows = React7.useCallback(() => {
2922
2922
  const container = containerRef.current;
2923
2923
  if (!container) {
@@ -2964,11 +2964,11 @@ function TableResizeOverlay({
2964
2964
  const rect = containerRef.current.getBoundingClientRect();
2965
2965
  if (e.clientX !== drag.startPos && drag.type === "col" && drag.initialWidths && onResizeColumns) {
2966
2966
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
2967
- onResizeColumns(chunkZUIM5737_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
2967
+ onResizeColumns(chunkNGWA6L3N_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
2968
2968
  } else if (e.clientY !== drag.startPos && drag.type === "row" && onResizeRow) {
2969
2969
  const deltaY = e.clientY - drag.startPos;
2970
- const newHeight = chunkZUIM5737_js.computeResizedRowHeight(
2971
- drag.initialRowHeight ?? chunkZUIM5737_js.DEFAULT_ROW_HEIGHT,
2970
+ const newHeight = chunkNGWA6L3N_js.computeResizedRowHeight(
2971
+ drag.initialRowHeight ?? chunkNGWA6L3N_js.DEFAULT_ROW_HEIGHT,
2972
2972
  deltaY
2973
2973
  );
2974
2974
  onResizeRow(drag.index, newHeight);
@@ -3006,7 +3006,7 @@ function TableResizeOverlay({
3006
3006
  e.stopPropagation();
3007
3007
  const table = containerRef.current?.querySelector("table");
3008
3008
  const tr = table?.querySelectorAll("tbody > tr")[index];
3009
- const actualHeight = tr?.offsetHeight ?? chunkZUIM5737_js.DEFAULT_ROW_HEIGHT;
3009
+ const actualHeight = tr?.offsetHeight ?? chunkNGWA6L3N_js.DEFAULT_ROW_HEIGHT;
3010
3010
  document.body.style.cursor = "row-resize";
3011
3011
  document.body.style.userSelect = "none";
3012
3012
  dragRef.current = {
@@ -3046,14 +3046,14 @@ function renderTableFromTableData(element, textStyle, options) {
3046
3046
  const rowCount = tableData.rows.length;
3047
3047
  const columnCount = tableData.columnWidths.length;
3048
3048
  const selectedCell = options?.selectedCell || null;
3049
- const isEditable = Boolean(options?.editable) && chunkZUIM5737_js.canDrillDown(element);
3049
+ const isEditable = Boolean(options?.editable) && chunkNGWA6L3N_js.canDrillDown(element);
3050
3050
  const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
3051
3051
  const sharedCtx = {
3052
3052
  tableStyleMap: options?.styleCtx?.tableStyleMap,
3053
3053
  colorScheme: options?.styleCtx?.theme?.colorScheme,
3054
3054
  fontScheme: options?.styleCtx?.theme?.fontScheme
3055
3055
  };
3056
- const cellCss = (cell, rowIndex, cellIndex) => chunkZUIM5737_js.tableCellCss(
3056
+ const cellCss = (cell, rowIndex, cellIndex) => chunkNGWA6L3N_js.tableCellCss(
3057
3057
  tableData,
3058
3058
  cell,
3059
3059
  { rowIndex, cellIndex, rowCount, columnCount },
@@ -3066,7 +3066,7 @@ function renderTableFromTableData(element, textStyle, options) {
3066
3066
  }
3067
3067
  const first = selectedCell.selectedCells[0];
3068
3068
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3069
- return chunkZUIM5737_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3069
+ return chunkNGWA6L3N_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3070
3070
  })();
3071
3071
  return /* @__PURE__ */ jsxRuntime.jsx(
3072
3072
  TableResizeOverlay,
@@ -3087,9 +3087,9 @@ function renderTableFromTableData(element, textStyle, options) {
3087
3087
  {
3088
3088
  className: "w-full h-full border-collapse table-fixed",
3089
3089
  style: {
3090
- fontFamily: chunkZUIM5737_js.DEFAULT_FONT_FAMILY,
3090
+ fontFamily: chunkNGWA6L3N_js.DEFAULT_FONT_FAMILY,
3091
3091
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3092
- ...chunkZUIM5737_js.tableContainerCss(tableData)
3092
+ ...chunkNGWA6L3N_js.tableContainerCss(tableData)
3093
3093
  },
3094
3094
  children: [
3095
3095
  tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3108,7 +3108,7 @@ function renderTableFromTableData(element, textStyle, options) {
3108
3108
  return null;
3109
3109
  }
3110
3110
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
3111
- const isInMultiSelection = chunkZUIM5737_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3111
+ const isInMultiSelection = chunkNGWA6L3N_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3112
3112
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
3113
3113
  const diag = getCellDiagonalBorders2(
3114
3114
  cell.style,
@@ -3137,7 +3137,7 @@ function renderTableFromTableData(element, textStyle, options) {
3137
3137
  }
3138
3138
  event.stopPropagation();
3139
3139
  if (event.shiftKey && selectedCell) {
3140
- const rect = chunkZUIM5737_js.computeSelectionRect(
3140
+ const rect = chunkNGWA6L3N_js.computeSelectionRect(
3141
3141
  selectedCell.rowIndex,
3142
3142
  selectedCell.columnIndex,
3143
3143
  rowIndex,
@@ -3147,7 +3147,7 @@ function renderTableFromTableData(element, textStyle, options) {
3147
3147
  options?.onSelectCell?.({
3148
3148
  rowIndex: selectedCell.rowIndex,
3149
3149
  columnIndex: selectedCell.columnIndex,
3150
- selectedCells: chunkZUIM5737_js.rectToCells(rect)
3150
+ selectedCells: chunkNGWA6L3N_js.rectToCells(rect)
3151
3151
  });
3152
3152
  } else {
3153
3153
  options?.onSelectCell?.({
@@ -3208,10 +3208,10 @@ function renderTableElement(element, textStyle, options) {
3208
3208
  if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
3209
3209
  return renderTableFromTableData(tableEl2, textStyle, options);
3210
3210
  }
3211
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBRJN3ZMG_js.translationsEn["pptx.table.title"] });
3211
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.table.title"] });
3212
3212
  }
3213
3213
  const selectedCell = options?.selectedCell || null;
3214
- const isEditable = Boolean(options?.editable) && chunkZUIM5737_js.canDrillDown(element);
3214
+ const isEditable = Boolean(options?.editable) && chunkNGWA6L3N_js.canDrillDown(element);
3215
3215
  const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
3216
3216
  const tableEl = element;
3217
3217
  const xmlSelectionRect = (() => {
@@ -3223,7 +3223,7 @@ function renderTableElement(element, textStyle, options) {
3223
3223
  }
3224
3224
  const first = selectedCell.selectedCells[0];
3225
3225
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3226
- return chunkZUIM5737_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3226
+ return chunkNGWA6L3N_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3227
3227
  })();
3228
3228
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
3229
3229
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3245,9 +3245,9 @@ function renderTableElement(element, textStyle, options) {
3245
3245
  {
3246
3246
  className: "w-full h-full border-collapse table-fixed",
3247
3247
  style: {
3248
- fontFamily: chunkZUIM5737_js.DEFAULT_FONT_FAMILY,
3248
+ fontFamily: chunkNGWA6L3N_js.DEFAULT_FONT_FAMILY,
3249
3249
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3250
- ...chunkZUIM5737_js.tableContainerCss(tableEl.tableData)
3250
+ ...chunkNGWA6L3N_js.tableContainerCss(tableEl.tableData)
3251
3251
  },
3252
3252
  children: [
3253
3253
  parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3304,7 +3304,7 @@ function renderTableElement(element, textStyle, options) {
3304
3304
  color: textStyle.color,
3305
3305
  ...bandStyle,
3306
3306
  ...xmlCellStyle,
3307
- ...tdCellOverride ? chunkZUIM5737_js.cellStyleToCss(tdCellOverride) : void 0,
3307
+ ...tdCellOverride ? chunkNGWA6L3N_js.cellStyleToCss(tdCellOverride) : void 0,
3308
3308
  ...diag ? { position: "relative" } : void 0
3309
3309
  };
3310
3310
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3314,7 +3314,7 @@ function renderTableElement(element, textStyle, options) {
3314
3314
  "border px-1 py-0.5 align-top",
3315
3315
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
3316
3316
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
3317
- chunkZUIM5737_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3317
+ chunkNGWA6L3N_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3318
3318
  ),
3319
3319
  colSpan,
3320
3320
  rowSpan: rSpan,
@@ -3325,7 +3325,7 @@ function renderTableElement(element, textStyle, options) {
3325
3325
  }
3326
3326
  event.stopPropagation();
3327
3327
  if (event.shiftKey && selectedCell && tableEl.tableData) {
3328
- const rect = chunkZUIM5737_js.computeSelectionRect(
3328
+ const rect = chunkNGWA6L3N_js.computeSelectionRect(
3329
3329
  selectedCell.rowIndex,
3330
3330
  selectedCell.columnIndex,
3331
3331
  rowIndex,
@@ -3335,7 +3335,7 @@ function renderTableElement(element, textStyle, options) {
3335
3335
  options?.onSelectCell?.({
3336
3336
  rowIndex: selectedCell.rowIndex,
3337
3337
  columnIndex: selectedCell.columnIndex,
3338
- selectedCells: chunkZUIM5737_js.rectToCells(rect)
3338
+ selectedCells: chunkNGWA6L3N_js.rectToCells(rect)
3339
3339
  });
3340
3340
  } else {
3341
3341
  options?.onSelectCell?.({
@@ -3394,23 +3394,23 @@ function renderTableElement(element, textStyle, options) {
3394
3394
  );
3395
3395
  }
3396
3396
  function partAttrs(part) {
3397
- return part ? chunkZUIM5737_js.chartPartToAttrs(part) : void 0;
3397
+ return part ? chunkNGWA6L3N_js.chartPartToAttrs(part) : void 0;
3398
3398
  }
3399
3399
  function resolveReactPalette(chartData) {
3400
3400
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
3401
3401
  return chartData.colorPalette;
3402
3402
  }
3403
- return [...chunkZUIM5737_js.getChartStylePalette(chartData.style?.styleId)];
3403
+ return [...chunkNGWA6L3N_js.getChartStylePalette(chartData.style?.styleId)];
3404
3404
  }
3405
3405
  function buildReactChartViewModel(element) {
3406
3406
  if (element.type !== "chart" || !element.chartData) {
3407
- return chunkZUIM5737_js.buildChartViewModel(element);
3407
+ return chunkNGWA6L3N_js.buildChartViewModel(element);
3408
3408
  }
3409
3409
  const palette = resolveReactPalette(element.chartData), themedElement = {
3410
3410
  ...element,
3411
3411
  chartData: { ...element.chartData, colorPalette: palette }
3412
3412
  };
3413
- return chunkZUIM5737_js.buildChartViewModel(themedElement);
3413
+ return chunkNGWA6L3N_js.buildChartViewModel(themedElement);
3414
3414
  }
3415
3415
  function renderPrimitive(prim, key) {
3416
3416
  switch (prim.kind) {
@@ -3561,7 +3561,7 @@ function renderText(t, key) {
3561
3561
  );
3562
3562
  }
3563
3563
  function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3564
- const legendItems = chunkZUIM5737_js.computeChartLegendLayout(vm);
3564
+ const legendItems = chunkNGWA6L3N_js.computeChartLegendLayout(vm);
3565
3565
  return /* @__PURE__ */ jsxRuntime.jsxs(
3566
3566
  "svg",
3567
3567
  {
@@ -3701,17 +3701,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3701
3701
  }
3702
3702
  function renderChartElement(element) {
3703
3703
  if (element.type !== "chart") {
3704
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBRJN3ZMG_js.translationsEn["pptx.chart.heading"] });
3704
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.chart.heading"] });
3705
3705
  }
3706
3706
  const chartData = element.chartData;
3707
3707
  if (!chartData || chartData.series.length === 0) {
3708
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkBRJN3ZMG_js.translationsEn["pptx.chart.heading"] });
3708
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkI5LPYESF_js.translationsEn["pptx.chart.heading"] });
3709
3709
  }
3710
- const kind = chunkZUIM5737_js.resolveChartKind(chartData.chartType ?? "bar");
3710
+ const kind = chunkNGWA6L3N_js.resolveChartKind(chartData.chartType ?? "bar");
3711
3711
  return renderChartViewModel(
3712
3712
  element.id,
3713
3713
  buildReactChartViewModel(element),
3714
- chunkZUIM5737_js.chartPreserveAspectRatio(kind)
3714
+ chunkNGWA6L3N_js.chartPreserveAspectRatio(kind)
3715
3715
  );
3716
3716
  }
3717
3717
 
@@ -3731,14 +3731,14 @@ function buildNotesPdf(pages) {
3731
3731
  notes: page.notes,
3732
3732
  slideNumber: page.slideNumber
3733
3733
  }));
3734
- const bytes = chunkZUIM5737_js.buildNotesPdfBytes(images, meta);
3734
+ const bytes = chunkNGWA6L3N_js.buildNotesPdfBytes(images, meta);
3735
3735
  const blob = new Blob([bytes], { type: "application/pdf" });
3736
3736
  return URL.createObjectURL(blob);
3737
3737
  }
3738
3738
 
3739
3739
  // src/viewer/utils/pdf-builder-slides.ts
3740
3740
  function buildPdfFromTiledImageData(pages) {
3741
- const bytes = chunkZUIM5737_js.buildTiledSlidesPdfBytes(pages);
3741
+ const bytes = chunkNGWA6L3N_js.buildTiledSlidesPdfBytes(pages);
3742
3742
  const blob = new Blob([bytes], { type: "application/pdf" });
3743
3743
  return URL.createObjectURL(blob);
3744
3744
  }
@@ -3747,7 +3747,7 @@ function buildPdfFromTiledImageData(pages) {
3747
3747
  var activePreview = null;
3748
3748
  function startPreviewAnimation(elementId, preset, options) {
3749
3749
  stopPreviewAnimation();
3750
- const descriptor = chunkZUIM5737_js.buildPreviewAnimation(preset, options);
3750
+ const descriptor = chunkNGWA6L3N_js.buildPreviewAnimation(preset, options);
3751
3751
  if (!descriptor) {
3752
3752
  return;
3753
3753
  }
@@ -3760,7 +3760,7 @@ function startMotionPathPreview(elementId, path, options) {
3760
3760
  return;
3761
3761
  }
3762
3762
  const stage = domEl.offsetParent;
3763
- const descriptor = chunkZUIM5737_js.buildMotionPathPreview({
3763
+ const descriptor = chunkNGWA6L3N_js.buildMotionPathPreview({
3764
3764
  path,
3765
3765
  slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
3766
3766
  slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,