pptx-react-viewer 2.2.1 → 2.3.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 (120) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/{AiChatPanel-O4NYWO3D.js → AiChatPanel-HC3CE3TL.js} +23 -23
  3. package/dist/AiChatPanel-HC3CE3TL.js.br +0 -0
  4. package/dist/AiChatPanel-HC3CE3TL.js.gz +0 -0
  5. package/dist/{AiChatPanel-XRKEPXAM.mjs → AiChatPanel-PXZYHJUB.mjs} +4 -4
  6. package/dist/AiChatPanel-PXZYHJUB.mjs.br +0 -0
  7. package/dist/AiChatPanel-PXZYHJUB.mjs.gz +0 -0
  8. package/dist/{Model3DScene-HYE6HA2C.js → Model3DScene-37QZRHV5.js} +3 -3
  9. package/dist/{Model3DScene-HYE6HA2C.js.br → Model3DScene-37QZRHV5.js.br} +0 -0
  10. package/dist/Model3DScene-37QZRHV5.js.gz +0 -0
  11. package/dist/{Model3DScene-JN5F5C4Z.mjs → Model3DScene-ZG4HTMPX.mjs} +2 -2
  12. package/dist/{Model3DScene-JN5F5C4Z.mjs.br → Model3DScene-ZG4HTMPX.mjs.br} +0 -0
  13. package/dist/Model3DScene-ZG4HTMPX.mjs.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-FDJ6LC4E.js → SurfaceChart3DScene-QIREQ66D.js} +3 -3
  15. package/dist/SurfaceChart3DScene-QIREQ66D.js.br +0 -0
  16. package/dist/SurfaceChart3DScene-QIREQ66D.js.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-V7P3LQVV.mjs → SurfaceChart3DScene-Z7R6DZXN.mjs} +2 -2
  18. package/dist/{SurfaceChart3DScene-V7P3LQVV.mjs.br → SurfaceChart3DScene-Z7R6DZXN.mjs.br} +0 -0
  19. package/dist/SurfaceChart3DScene-Z7R6DZXN.mjs.gz +0 -0
  20. package/dist/{chunk-R2H3FHK6.js → chunk-3TB45PVK.js} +42 -99
  21. package/dist/chunk-3TB45PVK.js.br +0 -0
  22. package/dist/chunk-3TB45PVK.js.gz +0 -0
  23. package/dist/{chunk-6G6S7PEI.mjs → chunk-4AAFZFGH.mjs} +36 -7
  24. package/dist/chunk-4AAFZFGH.mjs.br +0 -0
  25. package/dist/chunk-4AAFZFGH.mjs.gz +0 -0
  26. package/dist/{chunk-XJTWUXXC.js → chunk-EUIFPDXZ.js} +3 -3
  27. package/dist/chunk-EUIFPDXZ.js.br +0 -0
  28. package/dist/chunk-EUIFPDXZ.js.gz +0 -0
  29. package/dist/{chunk-7NSLKNCT.mjs → chunk-I5LEMC5C.mjs} +4 -4
  30. package/dist/chunk-I5LEMC5C.mjs.br +0 -0
  31. package/dist/chunk-I5LEMC5C.mjs.gz +0 -0
  32. package/dist/{chunk-RYHBWTPI.mjs → chunk-J5A22DZ7.mjs} +63 -38
  33. package/dist/chunk-J5A22DZ7.mjs.br +0 -0
  34. package/dist/chunk-J5A22DZ7.mjs.gz +0 -0
  35. package/dist/{chunk-PE2I5L6R.mjs → chunk-JFNMD6TM.mjs} +41 -100
  36. package/dist/chunk-JFNMD6TM.mjs.br +0 -0
  37. package/dist/chunk-JFNMD6TM.mjs.gz +0 -0
  38. package/dist/{chunk-2QHCOESN.js → chunk-KDW3LLG5.js} +77 -47
  39. package/dist/chunk-KDW3LLG5.js.br +0 -0
  40. package/dist/chunk-KDW3LLG5.js.gz +0 -0
  41. package/dist/{chunk-K2AW5UXT.js → chunk-L7JNCVTF.js} +309 -309
  42. package/dist/chunk-L7JNCVTF.js.br +0 -0
  43. package/dist/chunk-L7JNCVTF.js.gz +0 -0
  44. package/dist/{chunk-I2HF7ZPO.mjs → chunk-M5YR3QSB.mjs} +1 -1
  45. package/dist/chunk-M5YR3QSB.mjs.br +0 -0
  46. package/dist/chunk-M5YR3QSB.mjs.gz +0 -0
  47. package/dist/{chunk-2U243ZEP.js → chunk-P7UVBRFO.js} +257 -241
  48. package/dist/chunk-P7UVBRFO.js.br +0 -0
  49. package/dist/chunk-P7UVBRFO.js.gz +0 -0
  50. package/dist/{chunk-O75FHZQJ.mjs → chunk-VOHTAUN4.mjs} +23 -7
  51. package/dist/chunk-VOHTAUN4.mjs.br +0 -0
  52. package/dist/chunk-VOHTAUN4.mjs.gz +0 -0
  53. package/dist/{chunk-QULJW7LU.js → chunk-ZLSVW5GP.js} +898 -873
  54. package/dist/chunk-ZLSVW5GP.js.br +0 -0
  55. package/dist/chunk-ZLSVW5GP.js.gz +0 -0
  56. package/dist/{dist-ZCJLIRYG.js → dist-FTEVZZPM.js} +576 -568
  57. package/dist/dist-FTEVZZPM.js.br +0 -0
  58. package/dist/dist-FTEVZZPM.js.gz +0 -0
  59. package/dist/{dist-VEWYRBTB.mjs → dist-L7GZVBMG.mjs} +1 -1
  60. package/dist/dist-L7GZVBMG.mjs.br +0 -0
  61. package/dist/dist-L7GZVBMG.mjs.gz +0 -0
  62. package/dist/index.d.ts +13 -0
  63. package/dist/index.js +35 -35
  64. package/dist/index.js.br +0 -0
  65. package/dist/index.js.gz +0 -0
  66. package/dist/index.mjs +6 -6
  67. package/dist/index.mjs.br +0 -0
  68. package/dist/index.mjs.gz +0 -0
  69. package/dist/internals.d.ts +13 -0
  70. package/dist/internals.js +79 -79
  71. package/dist/internals.js.br +0 -0
  72. package/dist/internals.js.gz +0 -0
  73. package/dist/internals.mjs +4 -4
  74. package/dist/internals.mjs.br +0 -0
  75. package/dist/internals.mjs.gz +0 -0
  76. package/dist/viewer/index.d.ts +13 -0
  77. package/dist/viewer/index.js +22 -22
  78. package/dist/viewer/index.js.br +0 -0
  79. package/dist/viewer/index.js.gz +0 -0
  80. package/dist/viewer/index.mjs +6 -6
  81. package/dist/viewer/index.mjs.br +0 -0
  82. package/dist/viewer/index.mjs.gz +0 -0
  83. package/package.json +1 -1
  84. package/dist/AiChatPanel-O4NYWO3D.js.br +0 -0
  85. package/dist/AiChatPanel-O4NYWO3D.js.gz +0 -0
  86. package/dist/AiChatPanel-XRKEPXAM.mjs.br +0 -0
  87. package/dist/AiChatPanel-XRKEPXAM.mjs.gz +0 -0
  88. package/dist/Model3DScene-HYE6HA2C.js.gz +0 -0
  89. package/dist/Model3DScene-JN5F5C4Z.mjs.gz +0 -0
  90. package/dist/SurfaceChart3DScene-FDJ6LC4E.js.br +0 -0
  91. package/dist/SurfaceChart3DScene-FDJ6LC4E.js.gz +0 -0
  92. package/dist/SurfaceChart3DScene-V7P3LQVV.mjs.gz +0 -0
  93. package/dist/chunk-2QHCOESN.js.br +0 -0
  94. package/dist/chunk-2QHCOESN.js.gz +0 -0
  95. package/dist/chunk-2U243ZEP.js.br +0 -0
  96. package/dist/chunk-2U243ZEP.js.gz +0 -0
  97. package/dist/chunk-6G6S7PEI.mjs.br +0 -0
  98. package/dist/chunk-6G6S7PEI.mjs.gz +0 -0
  99. package/dist/chunk-7NSLKNCT.mjs.br +0 -0
  100. package/dist/chunk-7NSLKNCT.mjs.gz +0 -0
  101. package/dist/chunk-I2HF7ZPO.mjs.br +0 -0
  102. package/dist/chunk-I2HF7ZPO.mjs.gz +0 -0
  103. package/dist/chunk-K2AW5UXT.js.br +0 -0
  104. package/dist/chunk-K2AW5UXT.js.gz +0 -0
  105. package/dist/chunk-O75FHZQJ.mjs.br +0 -0
  106. package/dist/chunk-O75FHZQJ.mjs.gz +0 -0
  107. package/dist/chunk-PE2I5L6R.mjs.br +0 -0
  108. package/dist/chunk-PE2I5L6R.mjs.gz +0 -0
  109. package/dist/chunk-QULJW7LU.js.br +0 -0
  110. package/dist/chunk-QULJW7LU.js.gz +0 -0
  111. package/dist/chunk-R2H3FHK6.js.br +0 -0
  112. package/dist/chunk-R2H3FHK6.js.gz +0 -0
  113. package/dist/chunk-RYHBWTPI.mjs.br +0 -0
  114. package/dist/chunk-RYHBWTPI.mjs.gz +0 -0
  115. package/dist/chunk-XJTWUXXC.js.br +0 -0
  116. package/dist/chunk-XJTWUXXC.js.gz +0 -0
  117. package/dist/dist-VEWYRBTB.mjs.br +0 -0
  118. package/dist/dist-VEWYRBTB.mjs.gz +0 -0
  119. package/dist/dist-ZCJLIRYG.js.br +0 -0
  120. package/dist/dist-ZCJLIRYG.js.gz +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkR2H3FHK6_js = require('./chunk-R2H3FHK6.js');
3
+ var chunk3TB45PVK_js = require('./chunk-3TB45PVK.js');
4
4
  var DOMPurify = require('dompurify');
5
5
 
6
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -238,7 +238,7 @@ function resolveThemeCatalogEntry(key, catalog = THEME_CATALOG) {
238
238
  return catalog.find((entry) => entry.key === key)?.theme;
239
239
  }
240
240
  function corePreset(id) {
241
- const preset = chunkR2H3FHK6_js.THEME_PRESETS.find((p) => p.id === id);
241
+ const preset = chunk3TB45PVK_js.THEME_PRESETS.find((p) => p.id === id);
242
242
  if (!preset) {
243
243
  throw new Error(`theme-gallery-presets: core THEME_PRESETS is missing "${id}"`);
244
244
  }
@@ -414,7 +414,7 @@ function buildInitialGuides(presentationGuides, firstSlideGuides) {
414
414
  guides.push({
415
415
  id: g.id,
416
416
  axis: g.orientation === "horz" ? "h" : "v",
417
- position: chunkR2H3FHK6_js.guideEmuToPx(g.positionEmu)
417
+ position: chunk3TB45PVK_js.guideEmuToPx(g.positionEmu)
418
418
  });
419
419
  }
420
420
  }
@@ -423,7 +423,7 @@ function buildInitialGuides(presentationGuides, firstSlideGuides) {
423
423
  guides.push({
424
424
  id: g.id,
425
425
  axis: g.orientation === "horz" ? "h" : "v",
426
- position: chunkR2H3FHK6_js.guideEmuToPx(g.positionEmu)
426
+ position: chunk3TB45PVK_js.guideEmuToPx(g.positionEmu)
427
427
  });
428
428
  }
429
429
  }
@@ -436,23 +436,23 @@ function getResolvedShapeClipPathFor(shapeType, width, height, adjustments) {
436
436
  return void 0;
437
437
  }
438
438
  if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
439
- return chunkR2H3FHK6_js.getShapeClipPath(shapeType);
439
+ return chunk3TB45PVK_js.getShapeClipPath(shapeType);
440
440
  }
441
441
  if (adjustments && Object.keys(adjustments).length > 0) {
442
- const adjusted = chunkR2H3FHK6_js.getAdjustmentAwareShapeClipPath(shapeType, width, height, adjustments);
442
+ const adjusted = chunk3TB45PVK_js.getAdjustmentAwareShapeClipPath(shapeType, width, height, adjustments);
443
443
  if (adjusted !== void 0) {
444
444
  return adjusted;
445
445
  }
446
446
  }
447
- const fromPreset = chunkR2H3FHK6_js.getShapeClipPathFromPreset(shapeType, width, height, adjustments);
447
+ const fromPreset = chunk3TB45PVK_js.getShapeClipPathFromPreset(shapeType, width, height, adjustments);
448
448
  if (fromPreset !== void 0) {
449
449
  return fromPreset;
450
450
  }
451
- const cloud = chunkR2H3FHK6_js.getCloudPathForRendering(shapeType, width, height);
451
+ const cloud = chunk3TB45PVK_js.getCloudPathForRendering(shapeType, width, height);
452
452
  if (cloud !== void 0) {
453
453
  return cloud;
454
454
  }
455
- return chunkR2H3FHK6_js.getShapeClipPath(shapeType);
455
+ return chunk3TB45PVK_js.getShapeClipPath(shapeType);
456
456
  }
457
457
  function buildCustomGeometryClipPath(pathData, pathWidth, pathHeight, elemWidth, elemHeight) {
458
458
  if (!pathData || !Number.isFinite(pathWidth) || !Number.isFinite(pathHeight) || pathWidth <= 0 || pathHeight <= 0 || !Number.isFinite(elemWidth) || !Number.isFinite(elemHeight) || elemWidth <= 0 || elemHeight <= 0) {
@@ -570,6 +570,10 @@ function sanitizeGradientStops(stops) {
570
570
  opacity: typeof stop.opacity === "number" && Number.isFinite(stop.opacity) ? clampUnitInterval(stop.opacity) : void 0
571
571
  })).sort((left, right) => left.position - right.position);
572
572
  }
573
+ function convertOoxmlAngleToCss(ooxmlAngle, alreadyDegrees = true) {
574
+ const deg = alreadyDegrees ? ooxmlAngle : ooxmlAngle / 6e4;
575
+ return chunk3TB45PVK_js.ooxmlGradientAngleToCssDegrees(deg);
576
+ }
573
577
  function toCssGradientStop(stop) {
574
578
  const color = typeof stop.opacity === "number" ? colorWithOpacity(stop.color, stop.opacity) : stop.color;
575
579
  const pos = Math.max(0, Math.min(100, stop.position));
@@ -747,7 +751,9 @@ function buildGradientCss(gradient, context) {
747
751
  return buildCirclePathGradient(stops, fp, ftr);
748
752
  }
749
753
  const normalizedAngle = typeof gradient.fillGradientAngle === "number" && Number.isFinite(gradient.fillGradientAngle) ? gradient.fillGradientAngle : 90;
750
- const effectiveAngle = adjustLinearGradientAngle(normalizedAngle, gradient, context);
754
+ const effectiveAngle = convertOoxmlAngleToCss(
755
+ adjustLinearGradientAngle(normalizedAngle, gradient, context)
756
+ );
751
757
  const flip = gradient.fillGradientFlip;
752
758
  const linearStops = flip && flip !== "none" ? buildReflectedGradientStops(stops) : stops;
753
759
  return `linear-gradient(${Math.round(effectiveAngle)}deg, ${linearStops.map(toCssGradientStop).join(", ")})`;
@@ -1101,7 +1107,7 @@ var OOXML_PATTERN_PRESETS = [
1101
1107
  "zigZag"
1102
1108
  ];
1103
1109
  function getComputedFillStyle(element, parentGroupFill) {
1104
- if (!chunkR2H3FHK6_js.hasShapeProperties(element)) {
1110
+ if (!chunk3TB45PVK_js.hasShapeProperties(element)) {
1105
1111
  return void 0;
1106
1112
  }
1107
1113
  const ss = element.shapeStyle;
@@ -1170,7 +1176,7 @@ function getGroupChildParentFill(group) {
1170
1176
  return group.type === "group" ? group.groupFill : void 0;
1171
1177
  }
1172
1178
  function resolveGroupChildFill(child2, parentGroupFill) {
1173
- if (!parentGroupFill || !chunkR2H3FHK6_js.hasShapeProperties(child2) || child2.shapeStyle?.fillMode !== "group") {
1179
+ if (!parentGroupFill || !chunk3TB45PVK_js.hasShapeProperties(child2) || child2.shapeStyle?.fillMode !== "group") {
1174
1180
  return void 0;
1175
1181
  }
1176
1182
  return getComputedFillStyle(child2, parentGroupFill);
@@ -1373,7 +1379,7 @@ var DEFAULT_SCHEME_COLOR_MAP = {
1373
1379
  phclr: "#4472C4"
1374
1380
  };
1375
1381
  function applyDrawingColorTransforms2(baseColor, colorNode) {
1376
- return chunkR2H3FHK6_js.applyDrawingColorTransforms(baseColor, colorNode);
1382
+ return chunk3TB45PVK_js.applyDrawingColorTransforms(baseColor, colorNode);
1377
1383
  }
1378
1384
  function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
1379
1385
  if (!colorNode) {
@@ -1425,7 +1431,7 @@ function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
1425
1431
  const h = hueRaw / 6e4;
1426
1432
  const s = clampUnitInterval(satRaw / 1e5);
1427
1433
  const l = clampUnitInterval(lumRaw / 1e5);
1428
- const rgb = chunkR2H3FHK6_js.hslToRgb(h, s, l);
1434
+ const rgb = chunk3TB45PVK_js.hslToRgb(h, s, l);
1429
1435
  const toHex2 = (value) => Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0").toUpperCase();
1430
1436
  const base = `#${toHex2(rgb.r)}${toHex2(rgb.g)}${toHex2(rgb.b)}`;
1431
1437
  return applyDrawingColorTransforms2(base, hslNode);
@@ -1435,7 +1441,7 @@ function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
1435
1441
  const preset = String(
1436
1442
  colorNode["a:prstClr"]?.["@_val"] || ""
1437
1443
  ).toLowerCase();
1438
- const mapped = chunkR2H3FHK6_js.PRESET_COLOR_MAP[preset];
1444
+ const mapped = chunk3TB45PVK_js.PRESET_COLOR_MAP[preset];
1439
1445
  if (!mapped) {
1440
1446
  return void 0;
1441
1447
  }
@@ -1978,7 +1984,7 @@ function hexToRgbUnit2(hex) {
1978
1984
  };
1979
1985
  }
1980
1986
  function getEffects(element) {
1981
- if (!chunkR2H3FHK6_js.isImageLikeElement(element)) {
1987
+ if (!chunk3TB45PVK_js.isImageLikeElement(element)) {
1982
1988
  return void 0;
1983
1989
  }
1984
1990
  return element.imageEffects;
@@ -2167,7 +2173,7 @@ function buildDuotoneFilterMarkup(color1, color2) {
2167
2173
  const c2 = hexToRgbUnit2(color2);
2168
2174
  return `<feColorMatrix type="matrix" values="${GRAYSCALE_LUMINANCE_MATRIX}"/><feComponentTransfer><feFuncR type="linear" slope="${c2.r - c1.r}" intercept="${c1.r}"/><feFuncG type="linear" slope="${c2.g - c1.g}" intercept="${c1.g}"/><feFuncB type="linear" slope="${c2.b - c1.b}" intercept="${c1.b}"/></feComponentTransfer>`;
2169
2175
  }
2170
- function getDuotoneImageFilter(element, elementId = chunkR2H3FHK6_js.isImageLikeElement(element) ? element.id : "") {
2176
+ function getDuotoneImageFilter(element, elementId = chunk3TB45PVK_js.isImageLikeElement(element) ? element.id : "") {
2171
2177
  const effects = getEffects(element);
2172
2178
  if (!effects?.duotone) {
2173
2179
  return void 0;
@@ -2269,7 +2275,7 @@ function buildImageAlphaFilterMarkup(effects) {
2269
2275
  }
2270
2276
  return parts.length > 0 ? parts.join("") : void 0;
2271
2277
  }
2272
- function getImageAlphaFilter(element, elementId = chunkR2H3FHK6_js.isImageLikeElement(element) ? element.id : "") {
2278
+ function getImageAlphaFilter(element, elementId = chunk3TB45PVK_js.isImageLikeElement(element) ? element.id : "") {
2273
2279
  const effects = getEffects(element);
2274
2280
  if (!effects || !hasAdvancedImageAlphaEffects(element)) {
2275
2281
  return void 0;
@@ -2359,7 +2365,7 @@ function buildArtisticFilterMarkup(effectName, radius) {
2359
2365
  return void 0;
2360
2366
  }
2361
2367
  }
2362
- function getArtisticImageFilter(element, elementId = chunkR2H3FHK6_js.isImageLikeElement(element) ? element.id : "") {
2368
+ function getArtisticImageFilter(element, elementId = chunk3TB45PVK_js.isImageLikeElement(element) ? element.id : "") {
2363
2369
  const effects = getEffects(element);
2364
2370
  if (!effects?.artisticEffect || !needsSvgArtisticFilter(effects.artisticEffect)) {
2365
2371
  return void 0;
@@ -3318,7 +3324,7 @@ function convertChildren(node) {
3318
3324
  if (key.startsWith("@_")) {
3319
3325
  continue;
3320
3326
  }
3321
- const tag = chunkR2H3FHK6_js.stripXmlOrderSuffix(key);
3327
+ const tag = chunk3TB45PVK_js.stripXmlOrderSuffix(key);
3322
3328
  if (tag === "m:oMathPara") {
3323
3329
  continue;
3324
3330
  }
@@ -3390,7 +3396,7 @@ function findOmathRoots(node) {
3390
3396
  }
3391
3397
  }
3392
3398
  const contentTags = /* @__PURE__ */ new Set(["m:r", "m:f", "m:rad", "m:sSup", "m:sSub", "m:box"]);
3393
- if (Object.keys(node).some((key) => contentTags.has(chunkR2H3FHK6_js.stripXmlOrderSuffix(key)))) {
3399
+ if (Object.keys(node).some((key) => contentTags.has(chunk3TB45PVK_js.stripXmlOrderSuffix(key)))) {
3394
3400
  return [node];
3395
3401
  }
3396
3402
  return [];
@@ -3600,7 +3606,7 @@ function mergeSiblings(nodes) {
3600
3606
  }
3601
3607
  const ordered2 = {};
3602
3608
  for (const [position, [key, value]] of entries.entries()) {
3603
- ordered2[(counts.get(key) ?? 0) > 1 ? chunkR2H3FHK6_js.orderedXmlKey(key, position) : key] = value;
3609
+ ordered2[(counts.get(key) ?? 0) > 1 ? chunk3TB45PVK_js.orderedXmlKey(key, position) : key] = value;
3604
3610
  }
3605
3611
  return ordered2;
3606
3612
  }
@@ -4004,7 +4010,7 @@ function ommlChildrenToLatex(node) {
4004
4010
  if (key.startsWith("@_")) {
4005
4011
  continue;
4006
4012
  }
4007
- const tag = chunkR2H3FHK6_js.stripXmlOrderSuffix(key);
4013
+ const tag = chunk3TB45PVK_js.stripXmlOrderSuffix(key);
4008
4014
  const items = ensureArr(node[key]);
4009
4015
  for (const item of items) {
4010
4016
  const result = ommlElementToLatex(tag, item);
@@ -11593,15 +11599,35 @@ function buildStepCommand(anim) {
11593
11599
  targetId: anim.targetId ?? ""
11594
11600
  };
11595
11601
  }
11602
+ var PLAY_FROM_NAME = "playfrom";
11603
+ var DECIMAL_NUMBER = /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u;
11604
+ function parsePlayFrom(raw) {
11605
+ const lower = raw.toLowerCase();
11606
+ if (!lower.startsWith(PLAY_FROM_NAME) || !lower.endsWith(")")) {
11607
+ return void 0;
11608
+ }
11609
+ const afterName = raw.slice(PLAY_FROM_NAME.length).trimStart();
11610
+ if (!afterName.startsWith("(")) {
11611
+ return void 0;
11612
+ }
11613
+ const inner = afterName.slice(1, -1).trim();
11614
+ if (inner.length === 0) {
11615
+ return { verb: "playFrom", seekSeconds: 0 };
11616
+ }
11617
+ if (!DECIMAL_NUMBER.test(inner)) {
11618
+ return void 0;
11619
+ }
11620
+ const seconds = Number.parseFloat(inner);
11621
+ return { verb: "playFrom", seekSeconds: Number.isFinite(seconds) ? Math.max(0, seconds) : 0 };
11622
+ }
11596
11623
  function parseMediaCommand(commandString) {
11597
11624
  const raw = commandString.trim();
11598
11625
  if (!raw) {
11599
11626
  return void 0;
11600
11627
  }
11601
- const playFromMatch = raw.match(/^playfrom\s*\(\s*(-?\d*\.?\d+)?\s*\)$/i);
11602
- if (playFromMatch) {
11603
- const seconds = playFromMatch[1] !== void 0 ? Number.parseFloat(playFromMatch[1]) : 0;
11604
- return { verb: "playFrom", seekSeconds: Number.isFinite(seconds) ? Math.max(0, seconds) : 0 };
11628
+ const playFrom = parsePlayFrom(raw);
11629
+ if (playFrom) {
11630
+ return playFrom;
11605
11631
  }
11606
11632
  const lower = raw.toLowerCase();
11607
11633
  if (lower === "play" || lower === "resume") {
@@ -12185,7 +12211,7 @@ function buildSegmentCounts(slide, nativeAnims) {
12185
12211
  for (const anim of nativeAnims) {
12186
12212
  if (anim.buildType && anim.buildType !== "allAtOnce" && anim.targetId) {
12187
12213
  const el = slide.elements.find((e) => e.id === anim.targetId);
12188
- if (el && chunkR2H3FHK6_js.hasTextProperties(el) && el.textSegments && el.textSegments.length > 0) {
12214
+ if (el && chunk3TB45PVK_js.hasTextProperties(el) && el.textSegments && el.textSegments.length > 0) {
12189
12215
  segmentCounts.set(anim.targetId, countTextSegments(el.textSegments));
12190
12216
  }
12191
12217
  }
@@ -14403,7 +14429,7 @@ function rotateDelta(dx, dy, rotationDeg) {
14403
14429
  }
14404
14430
  function applyResize(box, handle, dxScreen, dyScreen, zoom, opts = {}) {
14405
14431
  const scale = zoom || 1;
14406
- const minSize = opts.minSize ?? chunkR2H3FHK6_js.MIN_ELEMENT_SIZE;
14432
+ const minSize = opts.minSize ?? chunk3TB45PVK_js.MIN_ELEMENT_SIZE;
14407
14433
  const rotation = rotationOf(box);
14408
14434
  const local = rotateDelta(dxScreen / scale, dyScreen / scale, rotation);
14409
14435
  const dx = local.x;
@@ -14430,7 +14456,7 @@ function applyResize(box, handle, dxScreen, dyScreen, zoom, opts = {}) {
14430
14456
  }
14431
14457
  return { x: newX, y: newY, width: newW, height: newH, rotation };
14432
14458
  }
14433
- function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkR2H3FHK6_js.MIN_ELEMENT_SIZE) {
14459
+ function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunk3TB45PVK_js.MIN_ELEMENT_SIZE) {
14434
14460
  if (handle === null || gridSpacingPx <= 0) {
14435
14461
  return box;
14436
14462
  }
@@ -14460,7 +14486,7 @@ function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkR2H3FHK6_js.MI
14460
14486
  }
14461
14487
  return { x, y, width, height };
14462
14488
  }
14463
- function computeMarqueeHitIds(marquee, elements, minSize = chunkR2H3FHK6_js.MIN_ELEMENT_SIZE) {
14489
+ function computeMarqueeHitIds(marquee, elements, minSize = chunk3TB45PVK_js.MIN_ELEMENT_SIZE) {
14464
14490
  const minX = Math.min(marquee.startX, marquee.currentX);
14465
14491
  const minY = Math.min(marquee.startY, marquee.currentY);
14466
14492
  const maxX = Math.max(marquee.startX, marquee.currentX);
@@ -16016,7 +16042,7 @@ var THEME_COLOR_LABELS = {
16016
16042
  };
16017
16043
  function buildThemeColorGrid(colorScheme) {
16018
16044
  return THEME_COLOR_TINT_ROWS.map(
16019
- (row) => chunkR2H3FHK6_js.THEME_COLOR_SCHEME_KEYS.map((key) => ({
16045
+ (row) => chunk3TB45PVK_js.THEME_COLOR_SCHEME_KEYS.map((key) => ({
16020
16046
  hex: row.transform(colorScheme[key]),
16021
16047
  schemeKey: key,
16022
16048
  rowLabel: row.label,
@@ -16352,12 +16378,12 @@ function getShapeConnectionSites(shape) {
16352
16378
  }
16353
16379
  const pathW = geo.pathWidth && geo.pathWidth > 0 ? geo.pathWidth : shape.width;
16354
16380
  const pathH = geo.pathHeight && geo.pathHeight > 0 ? geo.pathHeight : shape.height;
16355
- const vars = chunkR2H3FHK6_js.createBuiltinVariables({ w: pathW, h: pathH });
16381
+ const vars = chunk3TB45PVK_js.createBuiltinVariables({ w: pathW, h: pathH });
16356
16382
  const scaleX = pathW > 0 ? shape.width / pathW : 1;
16357
16383
  const scaleY = pathH > 0 ? shape.height / pathH : 1;
16358
16384
  return cxn.map((site, index) => ({
16359
- x: chunkR2H3FHK6_js.resolveCoordinate(site.posX, vars) * scaleX,
16360
- y: chunkR2H3FHK6_js.resolveCoordinate(site.posY, vars) * scaleY,
16385
+ x: chunk3TB45PVK_js.resolveCoordinate(site.posX, vars) * scaleX,
16386
+ y: chunk3TB45PVK_js.resolveCoordinate(site.posY, vars) * scaleY,
16361
16387
  index
16362
16388
  }));
16363
16389
  }
@@ -16520,7 +16546,7 @@ function svgLineCap(lineCap) {
16520
16546
  }
16521
16547
  function copyFormatFromElement(element) {
16522
16548
  const result = {};
16523
- if (chunkR2H3FHK6_js.hasShapeProperties(element) && element.shapeStyle) {
16549
+ if (chunk3TB45PVK_js.hasShapeProperties(element) && element.shapeStyle) {
16524
16550
  const s = element.shapeStyle;
16525
16551
  result.shapeStyle = {
16526
16552
  fillColor: s.fillColor,
@@ -16549,7 +16575,7 @@ function copyFormatFromElement(element) {
16549
16575
  softEdgeRadius: s.softEdgeRadius
16550
16576
  };
16551
16577
  }
16552
- if (chunkR2H3FHK6_js.hasTextProperties(element) && element.textStyle) {
16578
+ if (chunk3TB45PVK_js.hasTextProperties(element) && element.textStyle) {
16553
16579
  const t = element.textStyle;
16554
16580
  result.textStyle = {
16555
16581
  fontFamily: t.fontFamily,
@@ -16580,7 +16606,7 @@ function definedEntries(obj) {
16580
16606
  }
16581
16607
  function applyFormatToElement(element, format) {
16582
16608
  let updated = { ...element };
16583
- if (format.shapeStyle && chunkR2H3FHK6_js.hasShapeProperties(updated)) {
16609
+ if (format.shapeStyle && chunk3TB45PVK_js.hasShapeProperties(updated)) {
16584
16610
  updated = {
16585
16611
  ...updated,
16586
16612
  shapeStyle: {
@@ -16589,7 +16615,7 @@ function applyFormatToElement(element, format) {
16589
16615
  }
16590
16616
  };
16591
16617
  }
16592
- if (format.textStyle && chunkR2H3FHK6_js.hasTextProperties(updated)) {
16618
+ if (format.textStyle && chunk3TB45PVK_js.hasTextProperties(updated)) {
16593
16619
  updated = {
16594
16620
  ...updated,
16595
16621
  textStyle: {
@@ -16604,7 +16630,7 @@ function hasCopyableFormat(element) {
16604
16630
  if (!element) {
16605
16631
  return false;
16606
16632
  }
16607
- return chunkR2H3FHK6_js.hasShapeProperties(element) || chunkR2H3FHK6_js.hasTextProperties(element);
16633
+ return chunk3TB45PVK_js.hasShapeProperties(element) || chunk3TB45PVK_js.hasTextProperties(element);
16608
16634
  }
16609
16635
  function copySegmentMetadata(from, to) {
16610
16636
  if (from.equationXml !== void 0) {
@@ -16741,7 +16767,7 @@ function getRoundRectRadiusPx(element) {
16741
16767
  return Math.min(Math.max(element.width, 1), Math.max(element.height, 1)) * 0.5 * normalizedAdjustment;
16742
16768
  }
16743
16769
  function getShapeAdjustmentHandleDescriptor(element) {
16744
- if (!chunkR2H3FHK6_js.hasShapeProperties(element)) {
16770
+ if (!chunk3TB45PVK_js.hasShapeProperties(element)) {
16745
16771
  return null;
16746
16772
  }
16747
16773
  const normalizedShapeType = String(element.shapeType || "").toLowerCase();
@@ -17870,7 +17896,7 @@ function publishLiveInlineText(patcher, slide, elementId, text) {
17870
17896
  return;
17871
17897
  }
17872
17898
  const element = slide.elements.find((el) => el.id === elementId);
17873
- if (!element || !chunkR2H3FHK6_js.hasTextProperties(element)) {
17899
+ if (!element || !chunk3TB45PVK_js.hasTextProperties(element)) {
17874
17900
  return;
17875
17901
  }
17876
17902
  patcher.patchText(slide.id, elementId, text, {
@@ -18057,7 +18083,7 @@ function createDepartureChannel(roomId, awareness, factory) {
18057
18083
  var POSITION_THRESHOLD = 2;
18058
18084
  var SIZE_THRESHOLD = 2;
18059
18085
  function getElementText(element) {
18060
- if (!chunkR2H3FHK6_js.hasTextProperties(element)) {
18086
+ if (!chunk3TB45PVK_js.hasTextProperties(element)) {
18061
18087
  return "";
18062
18088
  }
18063
18089
  if (element.textSegments && element.textSegments.length > 0) {
@@ -22361,6 +22387,9 @@ function buildCollaborationShareUrl(config, location) {
22361
22387
  }
22362
22388
  return url.toString();
22363
22389
  }
22390
+ function presenterPaneAdvancesOnClick(tool) {
22391
+ return tool === void 0 || tool === "none" || tool === "laser";
22392
+ }
22364
22393
  var NOTES_FONT_SIZE_MIN = 10;
22365
22394
  var NOTES_FONT_SIZE_MAX = 32;
22366
22395
  var NOTES_FONT_SIZE_STEP = 2;
@@ -23502,7 +23531,7 @@ function getAriaRole(element) {
23502
23531
  case "model3d":
23503
23532
  return "img";
23504
23533
  case "shape": {
23505
- if (chunkR2H3FHK6_js.hasTextProperties(element) && element.text) {
23534
+ if (chunk3TB45PVK_js.hasTextProperties(element) && element.text) {
23506
23535
  return "group";
23507
23536
  }
23508
23537
  return "img";
@@ -23515,7 +23544,7 @@ function getAriaLabel(element) {
23515
23544
  if ((element.type === "image" || element.type === "picture") && "altText" in element && typeof element.altText === "string" && element.altText.trim()) {
23516
23545
  return element.altText.trim();
23517
23546
  }
23518
- if (chunkR2H3FHK6_js.hasTextProperties(element) && element.text) {
23547
+ if (chunk3TB45PVK_js.hasTextProperties(element) && element.text) {
23519
23548
  const text = element.text.trim();
23520
23549
  if (text) {
23521
23550
  return text.length > 120 ? `${text.slice(0, 117)}...` : text;
@@ -23922,7 +23951,7 @@ var DEFAULT_CHART_POSITION = { x: 120, y: 120, width: 480, height: 320 };
23922
23951
  var DEFAULT_CATEGORIES = ["Category 1", "Category 2", "Category 3"];
23923
23952
  var DEFAULT_SERIES_VALUES = [4, 3, 5];
23924
23953
  function createDefaultChartElement(chartType = DEFAULT_INSERT_CHART_TYPE, position) {
23925
- return chunkR2H3FHK6_js.createChartElement(
23954
+ return chunk3TB45PVK_js.createChartElement(
23926
23955
  chartType,
23927
23956
  {
23928
23957
  categories: [...DEFAULT_CATEGORIES],
@@ -24951,7 +24980,7 @@ function computeVirtualRange(totalItems, itemHeight, scrollTop, viewportHeight,
24951
24980
  };
24952
24981
  }
24953
24982
  function collectFontsFromElement(element, fonts) {
24954
- if (chunkR2H3FHK6_js.hasTextProperties(element)) {
24983
+ if (chunk3TB45PVK_js.hasTextProperties(element)) {
24955
24984
  if (element.textStyle?.fontFamily) {
24956
24985
  fonts.add(element.textStyle.fontFamily);
24957
24986
  }
@@ -27940,6 +27969,7 @@ exports.placeAudienceWindow = placeAudienceWindow;
27940
27969
  exports.preprocessCssForCapture = preprocessCssForCapture;
27941
27970
  exports.presentationInkPath = presentationInkPath;
27942
27971
  exports.presenterElapsed = presenterElapsed;
27972
+ exports.presenterPaneAdvancesOnClick = presenterPaneAdvancesOnClick;
27943
27973
  exports.pressuresToWidths = pressuresToWidths;
27944
27974
  exports.printPropertiesFrameSlides = printPropertiesFrameSlides;
27945
27975
  exports.printPropertiesSlidesPerPage = printPropertiesSlidesPerPage;
Binary file
Binary file