pptx-react-viewer 1.16.2 → 1.17.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 (114) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/{Model3DScene-DI6FSWDL.mjs → Model3DScene-QHDYQXL2.mjs} +2 -2
  3. package/dist/Model3DScene-QHDYQXL2.mjs.br +0 -0
  4. package/dist/Model3DScene-QHDYQXL2.mjs.gz +0 -0
  5. package/dist/{Model3DScene-PE7L24QK.js → Model3DScene-YA4F63DT.js} +3 -3
  6. package/dist/Model3DScene-YA4F63DT.js.br +0 -0
  7. package/dist/Model3DScene-YA4F63DT.js.gz +0 -0
  8. package/dist/PowerPointViewer-C4d7SKZf.d.ts +21 -0
  9. package/dist/PowerPointViewer-C4d7SKZf.d.ts.map +1 -0
  10. package/dist/{SurfaceChart3DScene-NMLG3BQK.mjs → SurfaceChart3DScene-GUAS2NWQ.mjs} +2 -2
  11. package/dist/SurfaceChart3DScene-GUAS2NWQ.mjs.br +0 -0
  12. package/dist/SurfaceChart3DScene-GUAS2NWQ.mjs.gz +0 -0
  13. package/dist/{SurfaceChart3DScene-AJLD3VW6.js → SurfaceChart3DScene-TGNJHTJQ.js} +3 -3
  14. package/dist/SurfaceChart3DScene-TGNJHTJQ.js.br +0 -0
  15. package/dist/SurfaceChart3DScene-TGNJHTJQ.js.gz +0 -0
  16. package/dist/{chunk-MZYQUURK.js → chunk-3P6O7ZDM.js} +420 -420
  17. package/dist/chunk-3P6O7ZDM.js.br +0 -0
  18. package/dist/chunk-3P6O7ZDM.js.gz +0 -0
  19. package/dist/{chunk-46HNHBHF.mjs → chunk-G22EWPLH.mjs} +134 -4
  20. package/dist/chunk-G22EWPLH.mjs.br +0 -0
  21. package/dist/chunk-G22EWPLH.mjs.gz +0 -0
  22. package/dist/{chunk-WMRS37KQ.js → chunk-JWS3RQKN.js} +160 -28
  23. package/dist/chunk-JWS3RQKN.js.br +0 -0
  24. package/dist/chunk-JWS3RQKN.js.gz +0 -0
  25. package/dist/{chunk-JBCVQFWI.mjs → chunk-LLHFNGAF.mjs} +4 -4
  26. package/dist/chunk-LLHFNGAF.mjs.br +0 -0
  27. package/dist/chunk-LLHFNGAF.mjs.gz +0 -0
  28. package/dist/{chunk-DZF4BNRP.mjs → chunk-LNSHC2Z5.mjs} +117 -156
  29. package/dist/chunk-LNSHC2Z5.mjs.br +0 -0
  30. package/dist/chunk-LNSHC2Z5.mjs.gz +0 -0
  31. package/dist/{chunk-YAQOTVZT.js → chunk-MGLRKGCH.js} +146 -66
  32. package/dist/chunk-MGLRKGCH.js.br +0 -0
  33. package/dist/chunk-MGLRKGCH.js.gz +0 -0
  34. package/dist/{chunk-X7ILBQEY.mjs → chunk-XRYREYXC.mjs} +146 -66
  35. package/dist/chunk-XRYREYXC.mjs.br +0 -0
  36. package/dist/chunk-XRYREYXC.mjs.gz +0 -0
  37. package/dist/{chunk-VRASDGWX.js → chunk-XW5OMXW6.js} +915 -954
  38. package/dist/chunk-XW5OMXW6.js.br +0 -0
  39. package/dist/chunk-XW5OMXW6.js.gz +0 -0
  40. package/dist/{dist-VMFNUFUX.js → dist-2ZAH7U6U.js} +507 -507
  41. package/dist/dist-2ZAH7U6U.js.br +0 -0
  42. package/dist/dist-2ZAH7U6U.js.gz +0 -0
  43. package/dist/{dist-JJ2NI2O3.mjs → dist-MXDC6YTS.mjs} +1 -1
  44. package/dist/dist-MXDC6YTS.mjs.br +0 -0
  45. package/dist/dist-MXDC6YTS.mjs.gz +0 -0
  46. package/dist/hooks-unstable.d.ts +9683 -1886
  47. package/dist/hooks-unstable.d.ts.map +1 -0
  48. package/dist/hooks-unstable.js +74 -74
  49. package/dist/hooks-unstable.js.br +0 -0
  50. package/dist/hooks-unstable.js.gz +0 -0
  51. package/dist/hooks-unstable.mjs +3 -3
  52. package/dist/hooks-unstable.mjs.br +0 -0
  53. package/dist/hooks-unstable.mjs.gz +0 -0
  54. package/dist/i18n.d.ts +27 -1
  55. package/dist/i18n.d.ts.map +1 -0
  56. package/dist/index-XGt7MZpa.d.ts +607 -0
  57. package/dist/index-XGt7MZpa.d.ts.map +1 -0
  58. package/dist/index.d.ts +4753 -10
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +18 -18
  61. package/dist/index.js.br +0 -0
  62. package/dist/index.js.gz +0 -0
  63. package/dist/index.mjs +4 -4
  64. package/dist/index.mjs.br +0 -0
  65. package/dist/index.mjs.gz +0 -0
  66. package/dist/types-BK7Nt13M.d.ts +483 -0
  67. package/dist/types-BK7Nt13M.d.ts.map +1 -0
  68. package/dist/viewer/index.d.ts +8008 -88
  69. package/dist/viewer/index.d.ts.map +1 -0
  70. package/dist/viewer/index.js +19 -19
  71. package/dist/viewer/index.js.br +0 -0
  72. package/dist/viewer/index.js.gz +0 -0
  73. package/dist/viewer/index.mjs +4 -4
  74. package/dist/viewer/index.mjs.br +0 -0
  75. package/dist/viewer/index.mjs.gz +0 -0
  76. package/package.json +6 -5
  77. package/dist/Model3DScene-DI6FSWDL.mjs.br +0 -0
  78. package/dist/Model3DScene-DI6FSWDL.mjs.gz +0 -0
  79. package/dist/Model3DScene-PE7L24QK.js.br +0 -0
  80. package/dist/Model3DScene-PE7L24QK.js.gz +0 -0
  81. package/dist/PowerPointViewer-BsaUH3ZT.d.ts +0 -26
  82. package/dist/PowerPointViewer-Nxku67uL.d.mts +0 -26
  83. package/dist/SurfaceChart3DScene-AJLD3VW6.js.br +0 -0
  84. package/dist/SurfaceChart3DScene-AJLD3VW6.js.gz +0 -0
  85. package/dist/SurfaceChart3DScene-NMLG3BQK.mjs.br +0 -0
  86. package/dist/SurfaceChart3DScene-NMLG3BQK.mjs.gz +0 -0
  87. package/dist/chunk-46HNHBHF.mjs.br +0 -0
  88. package/dist/chunk-46HNHBHF.mjs.gz +0 -0
  89. package/dist/chunk-DZF4BNRP.mjs.br +0 -0
  90. package/dist/chunk-DZF4BNRP.mjs.gz +0 -0
  91. package/dist/chunk-JBCVQFWI.mjs.br +0 -0
  92. package/dist/chunk-JBCVQFWI.mjs.gz +0 -0
  93. package/dist/chunk-MZYQUURK.js.br +0 -0
  94. package/dist/chunk-MZYQUURK.js.gz +0 -0
  95. package/dist/chunk-VRASDGWX.js.br +0 -0
  96. package/dist/chunk-VRASDGWX.js.gz +0 -0
  97. package/dist/chunk-WMRS37KQ.js.br +0 -0
  98. package/dist/chunk-WMRS37KQ.js.gz +0 -0
  99. package/dist/chunk-X7ILBQEY.mjs.br +0 -0
  100. package/dist/chunk-X7ILBQEY.mjs.gz +0 -0
  101. package/dist/chunk-YAQOTVZT.js.br +0 -0
  102. package/dist/chunk-YAQOTVZT.js.gz +0 -0
  103. package/dist/dist-JJ2NI2O3.mjs.br +0 -0
  104. package/dist/dist-JJ2NI2O3.mjs.gz +0 -0
  105. package/dist/dist-VMFNUFUX.js.br +0 -0
  106. package/dist/dist-VMFNUFUX.js.gz +0 -0
  107. package/dist/hooks-unstable.d.mts +0 -2300
  108. package/dist/i18n.d.mts +0 -1
  109. package/dist/index.d.mts +0 -46
  110. package/dist/types-ui-NG29h55h.d.mts +0 -712
  111. package/dist/types-ui-NG29h55h.d.ts +0 -712
  112. package/dist/usePresenterWindow-DToCijGy.d.ts +0 -1619
  113. package/dist/usePresenterWindow-DeTm-unp.d.mts +0 -1619
  114. package/dist/viewer/index.d.mts +0 -129
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { MIN_ELEMENT_SIZE, guideEmuToPx, THEME_COLOR_SCHEME_KEYS, hasShapeProperties, hasTextProperties, createChartElement, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hslToRgb, PRESET_COLOR_MAP, isImageLikeElement, applyDrawingColorTransforms } from './chunk-X7ILBQEY.mjs';
1
+ import { MIN_ELEMENT_SIZE, guideEmuToPx, THEME_COLOR_SCHEME_KEYS, hasShapeProperties, hasTextProperties, createChartElement, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hslToRgb, PRESET_COLOR_MAP, isImageLikeElement, applyDrawingColorTransforms } from './chunk-XRYREYXC.mjs';
2
2
  import DOMPurify from 'dompurify';
3
3
 
4
4
  var defaultThemeColors = {
@@ -2018,6 +2018,68 @@ function buildWarpPath(preset, width, height, lineIndex, lineCount, adj, adj2) {
2018
2018
  return `M 0,${y} L ${width},${y}`;
2019
2019
  }
2020
2020
  var getWarpPath = buildWarpPath;
2021
+ function getOmmlMathColor(node) {
2022
+ if (!node || typeof node !== "object") {
2023
+ return void 0;
2024
+ }
2025
+ const drawingRunProperties = node["a:rPr"];
2026
+ if (drawingRunProperties && typeof drawingRunProperties === "object") {
2027
+ const solidFill = drawingRunProperties["a:solidFill"];
2028
+ const srgbColor = solidFill && typeof solidFill === "object" ? solidFill["a:srgbClr"] : void 0;
2029
+ const value = srgbColor?.["@_val"];
2030
+ if (typeof value === "string" && /^[0-9a-f]{6}$/iu.test(value)) {
2031
+ return `#${value.toUpperCase()}`;
2032
+ }
2033
+ }
2034
+ for (const value of Object.values(node)) {
2035
+ if (Array.isArray(value)) {
2036
+ for (const child2 of value) {
2037
+ if (child2 && typeof child2 === "object") {
2038
+ const color = getOmmlMathColor(child2);
2039
+ if (color) {
2040
+ return color;
2041
+ }
2042
+ }
2043
+ }
2044
+ } else if (value && typeof value === "object") {
2045
+ const color = getOmmlMathColor(value);
2046
+ if (color) {
2047
+ return color;
2048
+ }
2049
+ }
2050
+ }
2051
+ return void 0;
2052
+ }
2053
+ function getOmmlMathFontSize(node) {
2054
+ if (!node || typeof node !== "object") {
2055
+ return void 0;
2056
+ }
2057
+ const drawingRunProperties = node["a:rPr"];
2058
+ if (drawingRunProperties && typeof drawingRunProperties === "object") {
2059
+ const size = Number(drawingRunProperties["@_sz"]);
2060
+ if (Number.isFinite(size) && size > 0) {
2061
+ return size / 100;
2062
+ }
2063
+ }
2064
+ for (const value of Object.values(node)) {
2065
+ if (Array.isArray(value)) {
2066
+ for (const child2 of value) {
2067
+ if (child2 && typeof child2 === "object") {
2068
+ const size = getOmmlMathFontSize(child2);
2069
+ if (size) {
2070
+ return size;
2071
+ }
2072
+ }
2073
+ }
2074
+ } else if (value && typeof value === "object") {
2075
+ const size = getOmmlMathFontSize(value);
2076
+ if (size) {
2077
+ return size;
2078
+ }
2079
+ }
2080
+ }
2081
+ return void 0;
2082
+ }
2021
2083
  function child(node, key) {
2022
2084
  if (!node) {
2023
2085
  return {};
@@ -2487,7 +2549,11 @@ function convertOmmlToMathMl(ommlNode) {
2487
2549
  if (inner.length === 0) {
2488
2550
  return "";
2489
2551
  }
2490
- return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline">${inner}</math>`;
2552
+ const color = getOmmlMathColor(ommlNode);
2553
+ const colorAttribute = color ? ` mathcolor="${color}"` : "";
2554
+ const fontSize = getOmmlMathFontSize(ommlNode);
2555
+ const sizeAttribute = fontSize ? ` mathsize="${fontSize}pt"` : "";
2556
+ return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"${colorAttribute}${sizeAttribute}>${inner}</math>`;
2491
2557
  }
2492
2558
  var GREEK_MAP = {
2493
2559
  "\\alpha": "\u03B1",
@@ -10267,6 +10333,21 @@ function groupElements(elements, ids, groupId) {
10267
10333
  ];
10268
10334
  return { elements: result, groupId };
10269
10335
  }
10336
+ var DEFAULT_SLIDE_BACKGROUND = "#ffffff";
10337
+ function getSlideBackgroundStyle(slide) {
10338
+ const style = {};
10339
+ const pattern = slide?.backgroundPattern;
10340
+ const solid = slide?.backgroundColor && slide.backgroundColor !== "transparent" ? slide.backgroundColor : void 0;
10341
+ style["background-color"] = pattern?.bgColor ?? solid ?? DEFAULT_SLIDE_BACKGROUND;
10342
+ if (slide?.backgroundImage) {
10343
+ style["background-image"] = `url(${slide.backgroundImage})`;
10344
+ style["background-size"] = "100% 100%";
10345
+ style["background-repeat"] = "no-repeat";
10346
+ } else if (slide?.backgroundGradient) {
10347
+ style["background-image"] = slide.backgroundGradient;
10348
+ }
10349
+ return style;
10350
+ }
10270
10351
  var DEFAULT_X = 100;
10271
10352
  var TABLE_WIDTH = 600;
10272
10353
  var TABLE_HEIGHT = 250;
@@ -11612,7 +11693,11 @@ function sanitizeMarkupOrEmpty(markup, config) {
11612
11693
  return sanitize ? sanitize(markup, config) : "";
11613
11694
  }
11614
11695
  function sanitizeMathMl(markup) {
11615
- return sanitizeMarkupOrRaw(markup, { USE_PROFILES: { mathMl: true, svg: true } });
11696
+ const sanitized = sanitizeMarkupOrRaw(markup, { USE_PROFILES: { mathMl: true, svg: true } });
11697
+ if (/<math(?:\s|>)/iu.test(markup) && !/<math(?:\s|>)/iu.test(sanitized) && sanitized) {
11698
+ return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline">${sanitized}</math>`;
11699
+ }
11700
+ return sanitized;
11616
11701
  }
11617
11702
  function hexToRgb6(hex) {
11618
11703
  const clean = hex.replace(/^#/u, "");
@@ -15636,6 +15721,51 @@ async function mountSurfaceChart3D(container, options) {
15636
15721
  }
15637
15722
  };
15638
15723
  }
15724
+ var FONT_NAME_UNSAFE_CHARS = /["\\\n\r;}<>]/u;
15725
+ var FONT_FORMAT_ALLOWED = /* @__PURE__ */ new Set(["truetype", "opentype", "woff", "woff2"]);
15726
+ var FONT_DATA_URL_PATTERN = /^data:font\/[a-z0-9+.-]+(?:;charset=[a-z0-9-]+)?;base64,[a-z0-9+/=]+$/iu;
15727
+ var DEFAULT_FONT_FORMAT = "truetype";
15728
+ function isInjectableUrl(url) {
15729
+ if (typeof url !== "string" || url.length === 0) {
15730
+ return false;
15731
+ }
15732
+ if (url.startsWith("blob:")) {
15733
+ return true;
15734
+ }
15735
+ return FONT_DATA_URL_PATTERN.test(url);
15736
+ }
15737
+ function normalizeFontFormat(format) {
15738
+ return typeof format === "string" && FONT_FORMAT_ALLOWED.has(format) ? format : DEFAULT_FONT_FORMAT;
15739
+ }
15740
+ function buildFontFaceRule(variant) {
15741
+ return [
15742
+ "@font-face {",
15743
+ ` font-family: "${variant.name}";`,
15744
+ ` src: url("${variant.url}") format("${variant.format}");`,
15745
+ ` font-weight: ${variant.weight};`,
15746
+ ` font-style: ${variant.style};`,
15747
+ " font-display: swap;",
15748
+ "}"
15749
+ ].join("\n");
15750
+ }
15751
+ function buildUserFontFaceStyles(fonts) {
15752
+ const rules = [];
15753
+ for (const font of fonts ?? []) {
15754
+ const family = typeof font.family === "string" ? font.family.trim() : "";
15755
+ const src = typeof font.src === "string" ? font.src.trim() : "";
15756
+ const isRemoteUrl = /^https?:\/\/[^"\\\n\r{};]+$/iu.test(src);
15757
+ if (!family || FONT_NAME_UNSAFE_CHARS.test(family) || !(isInjectableUrl(src) || isRemoteUrl)) {
15758
+ continue;
15759
+ }
15760
+ const format = normalizeFontFormat(font.format);
15761
+ const weight = typeof font.weight === "number" || typeof font.weight === "string" ? font.weight : "400";
15762
+ const style = font.style === "italic" ? "italic" : "normal";
15763
+ rules.push(
15764
+ buildFontFaceRule({ name: family, url: src, format, weight: String(weight), style })
15765
+ );
15766
+ }
15767
+ return rules.join("\n\n");
15768
+ }
15639
15769
  var EXPORT_ASSEMBLING_PERCENT = 95;
15640
15770
  var EXPORT_DONE_PERCENT = 100;
15641
15771
  function clampPercent(value) {
@@ -19198,4 +19328,4 @@ function segmentFrameCount(durationMs, fps) {
19198
19328
  return Math.max(1, Math.ceil(durationMs / (1e3 / fps)));
19199
19329
  }
19200
19330
 
19201
- export { ACTION_BUTTON_PRESETS, ARTISTIC_EFFECTS, BROADCAST_THROTTLE_MS, CATEGORIES, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_INSERT_CHART_TYPE, DEFAULT_ROW_HEIGHT, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, FILL_MODE_OPTIONS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LOCAL_SYNC_ORIGIN, MOBILE_BREAKPOINT, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, PATTERN_OPTIONS, PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SLIDE_TRANSITION_KEYFRAMES, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, THEME_COLOR_LABELS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TimelineEngine, WEBM_MIME_CANDIDATES, addSection, alignElements, apply3dEffects, applyCaseTransformToSegments, applyColorChange, applyDuotone, applyFormatToElement, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildChartViewModel, buildCssGradientFromShapeStyle, buildDuotoneCacheKey, buildElementClipboardPayload, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutlineHtml, buildPatternFillCss, buildPreviewAnimation, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildTextBody3DSceneStyle, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, canvasToJpegData, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampUnitInterval, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, colorWithOpacity, comparePresentation, computeAllNotesPages, computeAutoFitTextStyle, computeColumnBoundaries, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, countTextSegments, createBlankSlide, createDefaultChartElement, createSyncGate, createTouchGestureRecognizer, defaultCssVars, defaultRadius, defaultThemeColors, deleteSection, deleteTableColumn, deleteTableRow, derivePresenceList, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, encodeGif, expandTextBuildAnimations, extractPathPoints, filterCommands, findChartPartTarget, findSmartArtNodeText, formatAxisValue, formatAxisValueWithUnits, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getImageEffectsFilter, getImageEffectsOpacity, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getNotesPrintableArea, getOleBadgeLabel, getOleTypeColor, getOleTypeLabel, getPatternSvg, getPendingSelectionRestore, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, insertTableColumn, insertTableRow, isBrowserOpenableMime, isCellInRect, isEditableTextElement, isExportAbortError, isFirstSlide, isKeyboardOpen, isLastSlide, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isTemplateElement, isTemplateElementId, isUrlSafe, makeCloneId, makeSlideId, mergeAdditiveSelection, mergeCells, mobileElapsedSince, mobileSlideCounter, mountModel3D, mountSurfaceChart3D, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, openPptxFile, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parsePpactionUrl, pickSupportedMimeType, preprocessCssForCapture, pressuresToWidths, readSlidesFromYDoc, readViewportMetrics, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, remapTextToSegments, renameSection, rerouteConnectorsForMovedElements, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveFontForScript, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveLineHeight, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolveRegionCode, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, restoreSegmentSelection, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeMathMl, saveAutosaveSnapshot, secureRandomUuid, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor, setCachedResult, setDuotoneCachedResult, setPendingSelectionRestore, shadeColor2, shouldCommitSmartArtNodeText, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, substituteFieldText, svgLineCap, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, transformTextCase, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, withChartPointValue, withChartTitle };
19331
+ export { ACTION_BUTTON_PRESETS, ARTISTIC_EFFECTS, BROADCAST_THROTTLE_MS, CATEGORIES, CONNECTION_TIMEOUT_MS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_COLOR_CHANGE_TOLERANCE, DEFAULT_INSERT_CHART_TYPE, DEFAULT_ROW_HEIGHT, DIRECTIONAL_PRESETS, DUOTONE_PRESETS, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, FILL_MODE_OPTIONS, GRADIENT_TYPE_OPTIONS, HANDOUT_OPTIONS, INK_REPLAY_KEYFRAMES, INSERT_CHART_TYPES, LBL, LOCAL_SYNC_ORIGIN, MOBILE_BREAKPOINT, NOTES_FONT_SIZE_DEFAULT, NOTES_FONT_SIZE_MAX, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_STEP, NUM, PATTERN_OPTIONS, PRESETS, RULER_FONT_SIZE, RULER_THICKNESS, SECTION_HEADING, SEL, SHAPE_PRESET_DEFS, SLIDE_TRANSITION_KEYFRAMES, TABLET_BREAKPOINT, TABLE_STYLE_PRESETS, TAB_ROW_ACTION_CLASSES, TEXT_BUILD_ID_SEP, THEME_COLOR_LABELS, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, TimelineEngine, WEBM_MIME_CANDIDATES, addSection, alignElements, apply3dEffects, applyCaseTransformToSegments, applyColorChange, applyDuotone, applyFormatToElement, applyReroutedConnectors, applyResize, applyStyleToSelectedSegments, bringForward, bringToFront, build3DExtrusionData, buildBroadcastViewerUrl, buildCacheKey, buildChartViewModel, buildCssGradientFromShapeStyle, buildDuotoneCacheKey, buildElementClipboardPayload, buildGlowBoxShadow, buildHandoutsHtml, buildInitialGuides, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildNotesHtml, buildNotesPdfBytes, buildOutlineHtml, buildPatternFillCss, buildPreviewAnimation, buildPrintDocument, buildPrintHtmlDocument, buildReflectionCss, buildShadowCssFromShapeStyle, buildSlidesHtml, buildSlidesPdfBytes, buildSmartArt3DModel, buildSmartArtA11y, buildSmartArtPresetData, buildTextBody3DSceneStyle, buildTextFillCss, buildTextReflectionCss, buildTextRunFilterChain, buildTextShadowCss, buildThemeColorGrid, buildUserFontFaceStyles, canvasToJpegData, chartPartToAttrs, clampCropValue, clampNotesFontSize, clampPercent, clampUnitInterval, cloneElementForPaste, cloneHistorySnapshot, cloneSlide, cloneTemplateElementsBySlideId, collectImagePaths, collectMediaElements, colorWithOpacity, comparePresentation, computeAllNotesPages, computeAutoFitTextStyle, computeColumnBoundaries, computeHandoutLayout, computeInlineEditorRect, computeKeyboardInset, computeLayout, computeLayoutOptions, computeMarqueeHitIds, computeMergeCellDown, computeMergeCellRight, computeResizedColumnWidths, computeResizedRowHeight, computeScrollDelta, computeSelectionRect, computeSmartArtLayout, computeSnapToShape, computeSplitCell, computeValueRange, computeValueRangeForChart, convertLatexToOmml, convertOmmlToLatex, convertOmmlToMathMl, copyFormatFromElement, countTextSegments, createBlankSlide, createDefaultChartElement, createSyncGate, createTouchGestureRecognizer, defaultCssVars, defaultRadius, defaultThemeColors, deleteSection, deleteTableColumn, deleteTableRow, derivePresenceList, detectOrientation, detectTouchDevice, distributeElements, downloadBlob, downloadDataUrl, dragAnchorViewY, dragValueForPart, encodeGif, expandTextBuildAnimations, extractPathPoints, filterCommands, findChartPartTarget, findSmartArtNodeText, formatAxisValue, formatAxisValueWithUnits, formatBytes, formatCommentTimestamp, formatElapsed, formatMobileElapsed, formatRelativeTime, formatSlideCounter, formatTime, formatVersionTimestamp, fpsToFrameIntervalMs, generateBroadcastRoomId, generateElementId, generateLogTicks, generateNoteLineCount, generatePressureCircles, generateTicks, getAnimationInitialStyle, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getChartStylePalette, getCommentMarkerPosition, getCompoundLineBorderWidth, getCompoundLineBoxShadow, getCompoundLineOffsets, getCompoundLineWidths, getConnectionSites, getContentPartReplayStyles, getCssBorderDashStyle, getDisplayUnitLabel, getDuotoneCachedResult, getEffectDagFilter, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getImageEffectsFilter, getImageEffectsOpacity, getInkReplayStyles, getInlineEditorSelection, getKinsokuLineBreakStyles, getNotesPrintableArea, getOleBadgeLabel, getOleTypeColor, getOleTypeLabel, getPatternSvg, getPendingSelectionRestore, getPrintableArea, getResolvedShapeClipPath, getRoundRectRadiusPx, getSecondaryValueAxis, getShapeAdjustmentHandleDescriptor, getSlideBackgroundStyle, getSlideTransitionAnimations, getSvgStrokeDasharray, getTextAlphaOpacity, getTextCompensationTransform, getWarpPath, groupElements, groupIntoParagraphs, hasCopyableFormat, hasDistinctScriptFonts, hasPressureVariation, insertTableColumn, insertTableRow, isBrowserOpenableMime, isCellInRect, isEditableTextElement, isExportAbortError, isFirstSlide, isKeyboardOpen, isLastSlide, isMixedContentBlocked, isMobileViewport, isPpactionUrl, isTemplateElement, isTemplateElementId, isUrlSafe, makeCloneId, makeSlideId, mergeAdditiveSelection, mergeCells, mobileElapsedSince, mobileSlideCounter, mountModel3D, mountSurfaceChart3D, moveSectionDown, moveSectionUp, moveSlidesToSection, newTableElement, normalizeColorsForCapture, normalizeHexColor, normalizeStrokeDashType, normalizeValue, notesSegmentsToSpans, observeYDocSlides, ooxmlDashToCssBorderStyle, openPptxFile, openUrlInNewTab, paletteColor, parseDrawingColor, parseDrawingColorOpacity, parsePpactionUrl, pickSupportedMimeType, preprocessCssForCapture, pressuresToWidths, readSlidesFromYDoc, readViewportMetrics, rebuildDrawingShapesIfCleared, reconcileSlidesInYDoc, recordProgressPercent, rectToCells, remapTextToSegments, renameSection, rerouteConnectorsForMovedElements, resolveCssTextAlign, resolveDrawingShapeNodeId, resolveFontForScript, resolveInkColor, resolveInkOpacity, resolveInkWidth, resolveLineHeight, resolveOleType, resolveParagraphAlign, resolveParagraphRtl, resolveRegionCode, resolveTitleBarStatusKey, resolveTransitionDurationMs, resolveTransportForServerUrl, resolveUnderlineDecorationStyle, restoreSegmentSelection, safeOpenUrl, sanitizeColor, sanitizeDownloadFilename, sanitizeMathMl, saveAutosaveSnapshot, secureRandomUuid, segmentByScript, segmentFrameCount, sendBackward, sendToBack, sequentialColorScale, seriesColor, setCachedResult, setDuotoneCachedResult, setPendingSelectionRestore, shadeColor2, shouldCommitSmartArtNodeText, shouldUseSvgWarp, slideProgressPercent, slideStatusLabel, snapBoxToGrid, splitCell, splitSeriesByAxis, substituteFieldText, svgLineCap, themeToCssVars, tintColor2, toCssTextOrientation, toCssVerticalDirection, toCssWritingMode, transformTextCase, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, withChartPointValue, withChartTitle };
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkYAQOTVZT_js = require('./chunk-YAQOTVZT.js');
3
+ var chunkMGLRKGCH_js = require('./chunk-MGLRKGCH.js');
4
4
  var DOMPurify = require('dompurify');
5
5
 
6
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -222,7 +222,7 @@ function buildInitialGuides(presentationGuides, firstSlideGuides) {
222
222
  guides.push({
223
223
  id: g.id,
224
224
  axis: g.orientation === "horz" ? "h" : "v",
225
- position: chunkYAQOTVZT_js.guideEmuToPx(g.positionEmu)
225
+ position: chunkMGLRKGCH_js.guideEmuToPx(g.positionEmu)
226
226
  });
227
227
  }
228
228
  }
@@ -231,7 +231,7 @@ function buildInitialGuides(presentationGuides, firstSlideGuides) {
231
231
  guides.push({
232
232
  id: g.id,
233
233
  axis: g.orientation === "horz" ? "h" : "v",
234
- position: chunkYAQOTVZT_js.guideEmuToPx(g.positionEmu)
234
+ position: chunkMGLRKGCH_js.guideEmuToPx(g.positionEmu)
235
235
  });
236
236
  }
237
237
  }
@@ -244,23 +244,23 @@ function getResolvedShapeClipPathFor(shapeType, width, height, adjustments) {
244
244
  return void 0;
245
245
  }
246
246
  if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
247
- return chunkYAQOTVZT_js.getShapeClipPath(shapeType);
247
+ return chunkMGLRKGCH_js.getShapeClipPath(shapeType);
248
248
  }
249
249
  if (adjustments && Object.keys(adjustments).length > 0) {
250
- const adjusted = chunkYAQOTVZT_js.getAdjustmentAwareShapeClipPath(shapeType, width, height, adjustments);
250
+ const adjusted = chunkMGLRKGCH_js.getAdjustmentAwareShapeClipPath(shapeType, width, height, adjustments);
251
251
  if (adjusted !== void 0) {
252
252
  return adjusted;
253
253
  }
254
254
  }
255
- const fromPreset = chunkYAQOTVZT_js.getShapeClipPathFromPreset(shapeType, width, height, adjustments);
255
+ const fromPreset = chunkMGLRKGCH_js.getShapeClipPathFromPreset(shapeType, width, height, adjustments);
256
256
  if (fromPreset !== void 0) {
257
257
  return fromPreset;
258
258
  }
259
- const cloud = chunkYAQOTVZT_js.getCloudPathForRendering(shapeType, width, height);
259
+ const cloud = chunkMGLRKGCH_js.getCloudPathForRendering(shapeType, width, height);
260
260
  if (cloud !== void 0) {
261
261
  return cloud;
262
262
  }
263
- return chunkYAQOTVZT_js.getShapeClipPath(shapeType);
263
+ return chunkMGLRKGCH_js.getShapeClipPath(shapeType);
264
264
  }
265
265
  function getResolvedShapeClipPath(element, width, height) {
266
266
  const shapeType = element.shapeType;
@@ -975,7 +975,7 @@ var DEFAULT_SCHEME_COLOR_MAP = {
975
975
  phclr: "#4472C4"
976
976
  };
977
977
  function applyDrawingColorTransforms2(baseColor, colorNode) {
978
- return chunkYAQOTVZT_js.applyDrawingColorTransforms(baseColor, colorNode);
978
+ return chunkMGLRKGCH_js.applyDrawingColorTransforms(baseColor, colorNode);
979
979
  }
980
980
  function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
981
981
  if (!colorNode) {
@@ -1027,7 +1027,7 @@ function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
1027
1027
  const h = hueRaw / 6e4;
1028
1028
  const s = clampUnitInterval(satRaw / 1e5);
1029
1029
  const l = clampUnitInterval(lumRaw / 1e5);
1030
- const rgb = chunkYAQOTVZT_js.hslToRgb(h, s, l);
1030
+ const rgb = chunkMGLRKGCH_js.hslToRgb(h, s, l);
1031
1031
  const toHex = (value) => Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0").toUpperCase();
1032
1032
  const base = `#${toHex(rgb.r)}${toHex(rgb.g)}${toHex(rgb.b)}`;
1033
1033
  return applyDrawingColorTransforms2(base, hslNode);
@@ -1037,7 +1037,7 @@ function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
1037
1037
  const preset = String(
1038
1038
  colorNode["a:prstClr"]?.["@_val"] || ""
1039
1039
  ).toLowerCase();
1040
- const mapped = chunkYAQOTVZT_js.PRESET_COLOR_MAP[preset];
1040
+ const mapped = chunkMGLRKGCH_js.PRESET_COLOR_MAP[preset];
1041
1041
  if (!mapped) {
1042
1042
  return void 0;
1043
1043
  }
@@ -1370,7 +1370,7 @@ function normalizeRadius01(radius) {
1370
1370
  return clamp(radius / 100, 0, 1);
1371
1371
  }
1372
1372
  function getEffects(element) {
1373
- if (!chunkYAQOTVZT_js.isImageLikeElement(element)) {
1373
+ if (!chunkMGLRKGCH_js.isImageLikeElement(element)) {
1374
1374
  return void 0;
1375
1375
  }
1376
1376
  return element.imageEffects;
@@ -2024,6 +2024,68 @@ function buildWarpPath(preset, width, height, lineIndex, lineCount, adj, adj2) {
2024
2024
  return `M 0,${y} L ${width},${y}`;
2025
2025
  }
2026
2026
  var getWarpPath = buildWarpPath;
2027
+ function getOmmlMathColor(node) {
2028
+ if (!node || typeof node !== "object") {
2029
+ return void 0;
2030
+ }
2031
+ const drawingRunProperties = node["a:rPr"];
2032
+ if (drawingRunProperties && typeof drawingRunProperties === "object") {
2033
+ const solidFill = drawingRunProperties["a:solidFill"];
2034
+ const srgbColor = solidFill && typeof solidFill === "object" ? solidFill["a:srgbClr"] : void 0;
2035
+ const value = srgbColor?.["@_val"];
2036
+ if (typeof value === "string" && /^[0-9a-f]{6}$/iu.test(value)) {
2037
+ return `#${value.toUpperCase()}`;
2038
+ }
2039
+ }
2040
+ for (const value of Object.values(node)) {
2041
+ if (Array.isArray(value)) {
2042
+ for (const child2 of value) {
2043
+ if (child2 && typeof child2 === "object") {
2044
+ const color = getOmmlMathColor(child2);
2045
+ if (color) {
2046
+ return color;
2047
+ }
2048
+ }
2049
+ }
2050
+ } else if (value && typeof value === "object") {
2051
+ const color = getOmmlMathColor(value);
2052
+ if (color) {
2053
+ return color;
2054
+ }
2055
+ }
2056
+ }
2057
+ return void 0;
2058
+ }
2059
+ function getOmmlMathFontSize(node) {
2060
+ if (!node || typeof node !== "object") {
2061
+ return void 0;
2062
+ }
2063
+ const drawingRunProperties = node["a:rPr"];
2064
+ if (drawingRunProperties && typeof drawingRunProperties === "object") {
2065
+ const size = Number(drawingRunProperties["@_sz"]);
2066
+ if (Number.isFinite(size) && size > 0) {
2067
+ return size / 100;
2068
+ }
2069
+ }
2070
+ for (const value of Object.values(node)) {
2071
+ if (Array.isArray(value)) {
2072
+ for (const child2 of value) {
2073
+ if (child2 && typeof child2 === "object") {
2074
+ const size = getOmmlMathFontSize(child2);
2075
+ if (size) {
2076
+ return size;
2077
+ }
2078
+ }
2079
+ }
2080
+ } else if (value && typeof value === "object") {
2081
+ const size = getOmmlMathFontSize(value);
2082
+ if (size) {
2083
+ return size;
2084
+ }
2085
+ }
2086
+ }
2087
+ return void 0;
2088
+ }
2027
2089
  function child(node, key) {
2028
2090
  if (!node) {
2029
2091
  return {};
@@ -2493,7 +2555,11 @@ function convertOmmlToMathMl(ommlNode) {
2493
2555
  if (inner.length === 0) {
2494
2556
  return "";
2495
2557
  }
2496
- return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline">${inner}</math>`;
2558
+ const color = getOmmlMathColor(ommlNode);
2559
+ const colorAttribute = color ? ` mathcolor="${color}"` : "";
2560
+ const fontSize = getOmmlMathFontSize(ommlNode);
2561
+ const sizeAttribute = fontSize ? ` mathsize="${fontSize}pt"` : "";
2562
+ return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"${colorAttribute}${sizeAttribute}>${inner}</math>`;
2497
2563
  }
2498
2564
  var GREEK_MAP = {
2499
2565
  "\\alpha": "\u03B1",
@@ -10125,7 +10191,7 @@ function rotateDelta(dx, dy, rotationDeg) {
10125
10191
  }
10126
10192
  function applyResize(box, handle, dxScreen, dyScreen, zoom, opts = {}) {
10127
10193
  const scale = zoom || 1;
10128
- const minSize = opts.minSize ?? chunkYAQOTVZT_js.MIN_ELEMENT_SIZE;
10194
+ const minSize = opts.minSize ?? chunkMGLRKGCH_js.MIN_ELEMENT_SIZE;
10129
10195
  const rotation = rotationOf(box);
10130
10196
  const local = rotateDelta(dxScreen / scale, dyScreen / scale, rotation);
10131
10197
  const dx = local.x;
@@ -10152,7 +10218,7 @@ function applyResize(box, handle, dxScreen, dyScreen, zoom, opts = {}) {
10152
10218
  }
10153
10219
  return { x: newX, y: newY, width: newW, height: newH, rotation };
10154
10220
  }
10155
- function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkYAQOTVZT_js.MIN_ELEMENT_SIZE) {
10221
+ function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkMGLRKGCH_js.MIN_ELEMENT_SIZE) {
10156
10222
  if (handle === null || gridSpacingPx <= 0) {
10157
10223
  return box;
10158
10224
  }
@@ -10182,7 +10248,7 @@ function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkYAQOTVZT_js.MI
10182
10248
  }
10183
10249
  return { x, y, width, height };
10184
10250
  }
10185
- function computeMarqueeHitIds(marquee, elements, minSize = chunkYAQOTVZT_js.MIN_ELEMENT_SIZE) {
10251
+ function computeMarqueeHitIds(marquee, elements, minSize = chunkMGLRKGCH_js.MIN_ELEMENT_SIZE) {
10186
10252
  const minX = Math.min(marquee.startX, marquee.currentX);
10187
10253
  const minY = Math.min(marquee.startY, marquee.currentY);
10188
10254
  const maxX = Math.max(marquee.startX, marquee.currentX);
@@ -10273,6 +10339,21 @@ function groupElements(elements, ids, groupId) {
10273
10339
  ];
10274
10340
  return { elements: result, groupId };
10275
10341
  }
10342
+ var DEFAULT_SLIDE_BACKGROUND = "#ffffff";
10343
+ function getSlideBackgroundStyle(slide) {
10344
+ const style = {};
10345
+ const pattern = slide?.backgroundPattern;
10346
+ const solid = slide?.backgroundColor && slide.backgroundColor !== "transparent" ? slide.backgroundColor : void 0;
10347
+ style["background-color"] = pattern?.bgColor ?? solid ?? DEFAULT_SLIDE_BACKGROUND;
10348
+ if (slide?.backgroundImage) {
10349
+ style["background-image"] = `url(${slide.backgroundImage})`;
10350
+ style["background-size"] = "100% 100%";
10351
+ style["background-repeat"] = "no-repeat";
10352
+ } else if (slide?.backgroundGradient) {
10353
+ style["background-image"] = slide.backgroundGradient;
10354
+ }
10355
+ return style;
10356
+ }
10276
10357
  var DEFAULT_X = 100;
10277
10358
  var TABLE_WIDTH = 600;
10278
10359
  var TABLE_HEIGHT = 250;
@@ -11618,7 +11699,11 @@ function sanitizeMarkupOrEmpty(markup, config) {
11618
11699
  return sanitize ? sanitize(markup, config) : "";
11619
11700
  }
11620
11701
  function sanitizeMathMl(markup) {
11621
- return sanitizeMarkupOrRaw(markup, { USE_PROFILES: { mathMl: true, svg: true } });
11702
+ const sanitized = sanitizeMarkupOrRaw(markup, { USE_PROFILES: { mathMl: true, svg: true } });
11703
+ if (/<math(?:\s|>)/iu.test(markup) && !/<math(?:\s|>)/iu.test(sanitized) && sanitized) {
11704
+ return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline">${sanitized}</math>`;
11705
+ }
11706
+ return sanitized;
11622
11707
  }
11623
11708
  function hexToRgb6(hex) {
11624
11709
  const clean = hex.replace(/^#/u, "");
@@ -11668,7 +11753,7 @@ var THEME_COLOR_LABELS = {
11668
11753
  };
11669
11754
  function buildThemeColorGrid(colorScheme) {
11670
11755
  return THEME_COLOR_TINT_ROWS.map(
11671
- (row) => chunkYAQOTVZT_js.THEME_COLOR_SCHEME_KEYS.map((key) => ({
11756
+ (row) => chunkMGLRKGCH_js.THEME_COLOR_SCHEME_KEYS.map((key) => ({
11672
11757
  hex: row.transform(colorScheme[key]),
11673
11758
  schemeKey: key,
11674
11759
  rowLabel: row.label,
@@ -12144,7 +12229,7 @@ function svgLineCap(lineCap) {
12144
12229
  }
12145
12230
  function copyFormatFromElement(element) {
12146
12231
  const result = {};
12147
- if (chunkYAQOTVZT_js.hasShapeProperties(element) && element.shapeStyle) {
12232
+ if (chunkMGLRKGCH_js.hasShapeProperties(element) && element.shapeStyle) {
12148
12233
  const s = element.shapeStyle;
12149
12234
  result.shapeStyle = {
12150
12235
  fillColor: s.fillColor,
@@ -12173,7 +12258,7 @@ function copyFormatFromElement(element) {
12173
12258
  softEdgeRadius: s.softEdgeRadius
12174
12259
  };
12175
12260
  }
12176
- if (chunkYAQOTVZT_js.hasTextProperties(element) && element.textStyle) {
12261
+ if (chunkMGLRKGCH_js.hasTextProperties(element) && element.textStyle) {
12177
12262
  const t = element.textStyle;
12178
12263
  result.textStyle = {
12179
12264
  fontFamily: t.fontFamily,
@@ -12204,7 +12289,7 @@ function definedEntries(obj) {
12204
12289
  }
12205
12290
  function applyFormatToElement(element, format) {
12206
12291
  let updated = { ...element };
12207
- if (format.shapeStyle && chunkYAQOTVZT_js.hasShapeProperties(updated)) {
12292
+ if (format.shapeStyle && chunkMGLRKGCH_js.hasShapeProperties(updated)) {
12208
12293
  updated = {
12209
12294
  ...updated,
12210
12295
  shapeStyle: {
@@ -12213,7 +12298,7 @@ function applyFormatToElement(element, format) {
12213
12298
  }
12214
12299
  };
12215
12300
  }
12216
- if (format.textStyle && chunkYAQOTVZT_js.hasTextProperties(updated)) {
12301
+ if (format.textStyle && chunkMGLRKGCH_js.hasTextProperties(updated)) {
12217
12302
  updated = {
12218
12303
  ...updated,
12219
12304
  textStyle: {
@@ -12228,7 +12313,7 @@ function hasCopyableFormat(element) {
12228
12313
  if (!element) {
12229
12314
  return false;
12230
12315
  }
12231
- return chunkYAQOTVZT_js.hasShapeProperties(element) || chunkYAQOTVZT_js.hasTextProperties(element);
12316
+ return chunkMGLRKGCH_js.hasShapeProperties(element) || chunkMGLRKGCH_js.hasTextProperties(element);
12232
12317
  }
12233
12318
  function copySegmentMetadata(from, to) {
12234
12319
  if (from.equationXml !== void 0) {
@@ -12365,7 +12450,7 @@ function getRoundRectRadiusPx(element) {
12365
12450
  return Math.min(Math.max(element.width, 1), Math.max(element.height, 1)) * 0.5 * normalizedAdjustment;
12366
12451
  }
12367
12452
  function getShapeAdjustmentHandleDescriptor(element) {
12368
- if (!chunkYAQOTVZT_js.hasShapeProperties(element)) {
12453
+ if (!chunkMGLRKGCH_js.hasShapeProperties(element)) {
12369
12454
  return null;
12370
12455
  }
12371
12456
  const normalizedShapeType = String(element.shapeType || "").toLowerCase();
@@ -13344,7 +13429,7 @@ function createSyncGate(onOpen, graceMs = INITIAL_SYNC_GRACE_MS) {
13344
13429
  var POSITION_THRESHOLD = 2;
13345
13430
  var SIZE_THRESHOLD = 2;
13346
13431
  function getElementText(element) {
13347
- if (!chunkYAQOTVZT_js.hasTextProperties(element)) {
13432
+ if (!chunkMGLRKGCH_js.hasTextProperties(element)) {
13348
13433
  return "";
13349
13434
  }
13350
13435
  if (element.textSegments && element.textSegments.length > 0) {
@@ -15642,6 +15727,51 @@ async function mountSurfaceChart3D(container, options) {
15642
15727
  }
15643
15728
  };
15644
15729
  }
15730
+ var FONT_NAME_UNSAFE_CHARS = /["\\\n\r;}<>]/u;
15731
+ var FONT_FORMAT_ALLOWED = /* @__PURE__ */ new Set(["truetype", "opentype", "woff", "woff2"]);
15732
+ var FONT_DATA_URL_PATTERN = /^data:font\/[a-z0-9+.-]+(?:;charset=[a-z0-9-]+)?;base64,[a-z0-9+/=]+$/iu;
15733
+ var DEFAULT_FONT_FORMAT = "truetype";
15734
+ function isInjectableUrl(url) {
15735
+ if (typeof url !== "string" || url.length === 0) {
15736
+ return false;
15737
+ }
15738
+ if (url.startsWith("blob:")) {
15739
+ return true;
15740
+ }
15741
+ return FONT_DATA_URL_PATTERN.test(url);
15742
+ }
15743
+ function normalizeFontFormat(format) {
15744
+ return typeof format === "string" && FONT_FORMAT_ALLOWED.has(format) ? format : DEFAULT_FONT_FORMAT;
15745
+ }
15746
+ function buildFontFaceRule(variant) {
15747
+ return [
15748
+ "@font-face {",
15749
+ ` font-family: "${variant.name}";`,
15750
+ ` src: url("${variant.url}") format("${variant.format}");`,
15751
+ ` font-weight: ${variant.weight};`,
15752
+ ` font-style: ${variant.style};`,
15753
+ " font-display: swap;",
15754
+ "}"
15755
+ ].join("\n");
15756
+ }
15757
+ function buildUserFontFaceStyles(fonts) {
15758
+ const rules = [];
15759
+ for (const font of fonts ?? []) {
15760
+ const family = typeof font.family === "string" ? font.family.trim() : "";
15761
+ const src = typeof font.src === "string" ? font.src.trim() : "";
15762
+ const isRemoteUrl = /^https?:\/\/[^"\\\n\r{};]+$/iu.test(src);
15763
+ if (!family || FONT_NAME_UNSAFE_CHARS.test(family) || !(isInjectableUrl(src) || isRemoteUrl)) {
15764
+ continue;
15765
+ }
15766
+ const format = normalizeFontFormat(font.format);
15767
+ const weight = typeof font.weight === "number" || typeof font.weight === "string" ? font.weight : "400";
15768
+ const style = font.style === "italic" ? "italic" : "normal";
15769
+ rules.push(
15770
+ buildFontFaceRule({ name: family, url: src, format, weight: String(weight), style })
15771
+ );
15772
+ }
15773
+ return rules.join("\n\n");
15774
+ }
15645
15775
  var EXPORT_ASSEMBLING_PERCENT = 95;
15646
15776
  var EXPORT_DONE_PERCENT = 100;
15647
15777
  function clampPercent(value) {
@@ -16510,7 +16640,7 @@ function getAriaRole(element) {
16510
16640
  case "text":
16511
16641
  return void 0;
16512
16642
  case "shape": {
16513
- if (chunkYAQOTVZT_js.hasTextProperties(element) && element.text) {
16643
+ if (chunkMGLRKGCH_js.hasTextProperties(element) && element.text) {
16514
16644
  return void 0;
16515
16645
  }
16516
16646
  return "img";
@@ -16523,7 +16653,7 @@ function getAriaLabel(element) {
16523
16653
  if ((element.type === "image" || element.type === "picture") && "altText" in element && typeof element.altText === "string" && element.altText.trim()) {
16524
16654
  return element.altText.trim();
16525
16655
  }
16526
- if (chunkYAQOTVZT_js.hasTextProperties(element) && element.text) {
16656
+ if (chunkMGLRKGCH_js.hasTextProperties(element) && element.text) {
16527
16657
  const text = element.text.trim();
16528
16658
  if (text) {
16529
16659
  return text.length > 120 ? `${text.slice(0, 117)}...` : text;
@@ -16861,7 +16991,7 @@ var DEFAULT_CHART_POSITION = { x: 120, y: 120, width: 480, height: 320 };
16861
16991
  var DEFAULT_CATEGORIES = ["Category 1", "Category 2", "Category 3"];
16862
16992
  var DEFAULT_SERIES_VALUES = [4, 3, 5];
16863
16993
  function createDefaultChartElement(chartType = DEFAULT_INSERT_CHART_TYPE, position) {
16864
- return chunkYAQOTVZT_js.createChartElement(
16994
+ return chunkMGLRKGCH_js.createChartElement(
16865
16995
  chartType,
16866
16996
  {
16867
16997
  categories: [...DEFAULT_CATEGORIES],
@@ -19291,6 +19421,7 @@ exports.buildTextReflectionCss = buildTextReflectionCss;
19291
19421
  exports.buildTextRunFilterChain = buildTextRunFilterChain;
19292
19422
  exports.buildTextShadowCss = buildTextShadowCss;
19293
19423
  exports.buildThemeColorGrid = buildThemeColorGrid;
19424
+ exports.buildUserFontFaceStyles = buildUserFontFaceStyles;
19294
19425
  exports.canvasToJpegData = canvasToJpegData;
19295
19426
  exports.chartPartToAttrs = chartPartToAttrs;
19296
19427
  exports.clampCropValue = clampCropValue;
@@ -19407,6 +19538,7 @@ exports.getResolvedShapeClipPath = getResolvedShapeClipPath;
19407
19538
  exports.getRoundRectRadiusPx = getRoundRectRadiusPx;
19408
19539
  exports.getSecondaryValueAxis = getSecondaryValueAxis;
19409
19540
  exports.getShapeAdjustmentHandleDescriptor = getShapeAdjustmentHandleDescriptor;
19541
+ exports.getSlideBackgroundStyle = getSlideBackgroundStyle;
19410
19542
  exports.getSlideTransitionAnimations = getSlideTransitionAnimations;
19411
19543
  exports.getSvgStrokeDasharray = getSvgStrokeDasharray;
19412
19544
  exports.getTextAlphaOpacity = getTextAlphaOpacity;
Binary file
Binary file
@@ -1,6 +1,6 @@
1
- import { SHAPE_PRESET_DEFS, computeValueRangeForChart, cloneTemplateElementsBySlideId, cloneSlide, countTextSegments, expandTextBuildAnimations, TimelineEngine, TEXT_BUILD_ID_SEP, collectMediaElements, collectImagePaths, buildInitialGuides, saveAutosaveSnapshot, getAnimationInitialStyle, normalizeHexColor, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, computeAutoFitTextStyle, resolveLineHeight, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, colorWithOpacity, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, clampCropValue, parseDrawingColor, parseDrawingColorOpacity, getPatternSvg, ooxmlDashToCssBorderStyle, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildPreviewAnimation, isTemplateElementId, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, comparePresentation, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, remapTextToSegments, copyFormatFromElement, applyFormatToElement, createSyncGate, validateRoomId, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, BROADCAST_THROTTLE_MS, sanitizeColor, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, createTouchGestureRecognizer, isKeyboardOpen, buildElementClipboardPayload, downloadBlob, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, derivePresenceList, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, cloneHistorySnapshot, secureRandomUuid, resolveTransitionDurationMs, isUrlSafe, isTemplateElement, substituteFieldText, resolveUnderlineDecorationStyle, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, apply3dEffects, clampUnitInterval, getRoundRectRadiusPx, tintColor2, shadeColor2, computeColumnBoundaries, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, sanitizeDownloadFilename, encodeGif, cloneElementForPaste, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, buildPrintHtmlDocument, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, deleteTableColumn, insertTableColumn, deleteTableRow, insertTableRow, splitCell, mergeCells, buildSlidesPdfBytes, buildNotesPdfBytes, ACTION_BUTTON_PRESETS, buildSmartArtPresetData, computeSnapToShape, computeMarqueeHitIds, mergeAdditiveSelection, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, applyResize, snapBoxToGrid, chartPartToAttrs } from './chunk-46HNHBHF.mjs';
1
+ import { SHAPE_PRESET_DEFS, computeValueRangeForChart, cloneTemplateElementsBySlideId, cloneSlide, countTextSegments, expandTextBuildAnimations, TimelineEngine, TEXT_BUILD_ID_SEP, collectMediaElements, collectImagePaths, buildInitialGuides, saveAutosaveSnapshot, getAnimationInitialStyle, normalizeHexColor, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, computeAutoFitTextStyle, resolveLineHeight, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, colorWithOpacity, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, clampCropValue, parseDrawingColor, parseDrawingColorOpacity, getPatternSvg, ooxmlDashToCssBorderStyle, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildPreviewAnimation, isTemplateElementId, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, comparePresentation, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, remapTextToSegments, copyFormatFromElement, applyFormatToElement, createSyncGate, validateRoomId, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, BROADCAST_THROTTLE_MS, sanitizeColor, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, createTouchGestureRecognizer, isKeyboardOpen, buildElementClipboardPayload, downloadBlob, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, derivePresenceList, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, cloneHistorySnapshot, secureRandomUuid, resolveTransitionDurationMs, isUrlSafe, isTemplateElement, substituteFieldText, resolveUnderlineDecorationStyle, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, apply3dEffects, clampUnitInterval, getRoundRectRadiusPx, tintColor2, shadeColor2, computeColumnBoundaries, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, sanitizeDownloadFilename, encodeGif, cloneElementForPaste, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, buildPrintHtmlDocument, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, deleteTableColumn, insertTableColumn, deleteTableRow, insertTableRow, splitCell, mergeCells, buildSlidesPdfBytes, buildNotesPdfBytes, ACTION_BUTTON_PRESETS, buildSmartArtPresetData, computeSnapToShape, computeMarqueeHitIds, mergeAdditiveSelection, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, applyResize, snapBoxToGrid, chartPartToAttrs } from './chunk-G22EWPLH.mjs';
2
2
  import { translationsEn } from './chunk-HJQZJ3VE.mjs';
3
- import { hasTextProperties, PptxHandler, EncryptedFileError, hasShapeProperties, isImageLikeElement, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, applyThemeToData, THEME_PRESETS, guidePxToEmu, mergeShapes, getSubstituteFontFamily, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, SvgExporter, rebuildTableStructureInRawXml, updateCellTextStyleInRawXml, updateCellTextInRawXml, updateMergeAttrsInRawXml, elementActionToPptxAction } from './chunk-X7ILBQEY.mjs';
3
+ import { hasTextProperties, PptxHandler, EncryptedFileError, hasShapeProperties, isImageLikeElement, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, applyThemeToData, THEME_PRESETS, guidePxToEmu, mergeShapes, getSubstituteFontFamily, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, SvgExporter, rebuildTableStructureInRawXml, updateCellTextStyleInRawXml, updateCellTextInRawXml, updateMergeAttrsInRawXml, elementActionToPptxAction } from './chunk-XRYREYXC.mjs';
4
4
  import React3, { useState, useEffect, useMemo, Suspense, useRef, useCallback, useSyncExternalStore, useImperativeHandle, useLayoutEffect } from 'react';
5
5
  import { LuTriangle, LuPlus, LuMoveRight, LuMinus, LuDiamond, LuDatabase, LuCircle, LuSquare } from 'react-icons/lu';
6
6
  import { clsx } from 'clsx';
@@ -8487,7 +8487,7 @@ function FailedToLoad() {
8487
8487
  var LazySurfaceChart3DScene = React3.lazy(
8488
8488
  async () => {
8489
8489
  try {
8490
- return await import('./SurfaceChart3DScene-NMLG3BQK.mjs');
8490
+ return await import('./SurfaceChart3DScene-GUAS2NWQ.mjs');
8491
8491
  } catch {
8492
8492
  return { default: FailedToLoad };
8493
8493
  }
@@ -17513,7 +17513,7 @@ function useYjsDocumentSync({
17513
17513
  return;
17514
17514
  }
17515
17515
  try {
17516
- const { PptxHandler: PptxHandler2 } = await import('./dist-JJ2NI2O3.mjs');
17516
+ const { PptxHandler: PptxHandler2 } = await import('./dist-MXDC6YTS.mjs');
17517
17517
  const handler = new PptxHandler2();
17518
17518
  await handler.load(sourceBytes.buffer);
17519
17519
  const currentSlides = readSlidesFromYDoc(
Binary file
Binary file