@aixa-transformation/pptx-viewer 2.0.30 → 2.0.31

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.
@@ -1,4 +1,4 @@
1
- import { THEME_PRESETS, MIN_ELEMENT_SIZE, guideEmuToPx, hasShapeProperties, THEME_COLOR_SCHEME_KEYS, hasTextProperties, createChartElement, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hslToRgb, PRESET_COLOR_MAP, isImageLikeElement, stripXmlOrderSuffix, orderedXmlKey, createBuiltinVariables, resolveCoordinate, applyDrawingColorTransforms } from './chunk-JJ5MVLCK.mjs';
1
+ import { THEME_PRESETS, MIN_ELEMENT_SIZE, guideEmuToPx, hasShapeProperties, THEME_COLOR_SCHEME_KEYS, hasTextProperties, createChartElement, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hslToRgb, PRESET_COLOR_MAP, isImageLikeElement, stripXmlOrderSuffix, orderedXmlKey, createBuiltinVariables, resolveCoordinate, applyDrawingColorTransforms } from './chunk-3IIMAKXR.mjs';
2
2
  import DOMPurify from 'dompurify';
3
3
 
4
4
  var defaultThemeColors = {
@@ -13290,7 +13290,7 @@ function shadeColor(hex, shadeFactor) {
13290
13290
  function applyTintShade(base, fill) {
13291
13291
  let color = base;
13292
13292
  if (fill.tint !== void 0 && fill.tint > 0) {
13293
- color = tintColor(color, fill.tint / 1e5);
13293
+ color = tintColor(color, 1 - fill.tint / 1e5);
13294
13294
  }
13295
13295
  if (fill.shade !== void 0 && fill.shade > 0) {
13296
13296
  color = shadeColor(color, 1 - fill.shade / 1e5);
@@ -1,6 +1,6 @@
1
- import { SHAPE_PRESET_DEFS, TOOLBAR_TABS, computeValueRangeForChart, getAnimationInitialStyle, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, validateRoomId, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, collectMediaElements, collectImagePaths, buildInitialGuides, saveAutosaveSnapshot, normalizeHexColor, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, computeAutoFitTextStyle, resolveLineHeight, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, colorWithOpacity, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, clampCropValue, 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, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, remapTextToSegments, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, downloadBlob, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, derivePresenceList, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, cloneHistorySnapshot, createPresentationSessionId, resolveTransitionDurationMs, isUrlSafe, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, isTemplateElement, substituteFieldText, resolveUnderlineDecorationStyle, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, apply3dEffects, clampUnitInterval, getRoundRectRadiusPx, computeColumnBoundaries, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getPatternSvg, ooxmlDashToCssBorderStyle, cell3DBevelCss, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, sanitizeDownloadFilename, encodeGif, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, cloneElementForPaste, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, buildPrintHtmlDocument, parseMediaCommand, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, resolveFontRefIdx, tintColor2, shadeColor2, deleteTableColumn, insertTableColumn, deleteTableRow, insertTableRow, splitCell, mergeCells, buildSlidesPdfBytes, buildNotesPdfBytes, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, buildSmartArtPresetData, computeSnapToShape, computeMarqueeHitIds, mergeAdditiveSelection, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, applyResize, snapBoxToGrid, hexToRgbChannels, chartPartToAttrs } from './chunk-YVQPLQ3C.mjs';
1
+ import { SHAPE_PRESET_DEFS, TOOLBAR_TABS, computeValueRangeForChart, getAnimationInitialStyle, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, validateRoomId, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, collectMediaElements, collectImagePaths, buildInitialGuides, saveAutosaveSnapshot, normalizeHexColor, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, computeAutoFitTextStyle, resolveLineHeight, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, colorWithOpacity, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, clampCropValue, 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, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, remapTextToSegments, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, downloadBlob, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, derivePresenceList, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, cloneHistorySnapshot, createPresentationSessionId, resolveTransitionDurationMs, isUrlSafe, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, isTemplateElement, substituteFieldText, resolveUnderlineDecorationStyle, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, apply3dEffects, clampUnitInterval, getRoundRectRadiusPx, computeColumnBoundaries, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getPatternSvg, ooxmlDashToCssBorderStyle, cell3DBevelCss, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, sanitizeDownloadFilename, encodeGif, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, cloneElementForPaste, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, buildPrintHtmlDocument, parseMediaCommand, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, resolveFontRefIdx, tintColor2, shadeColor2, deleteTableColumn, insertTableColumn, deleteTableRow, insertTableRow, splitCell, mergeCells, buildSlidesPdfBytes, buildNotesPdfBytes, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, buildSmartArtPresetData, computeSnapToShape, computeMarqueeHitIds, mergeAdditiveSelection, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, applyResize, snapBoxToGrid, hexToRgbChannels, chartPartToAttrs } from './chunk-6SJP4DDM.mjs';
2
2
  import { translationsEn } from './chunk-2X72MOPZ.mjs';
3
- import { PptxHandler, EncryptedFileError, hasTextProperties, hasShapeProperties, isImageLikeElement, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, guidePxToEmu, mergeShapes, buildThemeColorMap, reResolveSlideColors, getSubstituteFontFamily, evaluatePresetShape, customGeometryPathsToSvgSubpaths, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, SvgExporter, rebuildTableStructureInRawXml, updateCellTextStyleInRawXml, updateCellTextInRawXml, updateMergeAttrsInRawXml, elementActionToPptxAction } from './chunk-JJ5MVLCK.mjs';
3
+ import { PptxHandler, EncryptedFileError, hasTextProperties, hasShapeProperties, isImageLikeElement, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, guidePxToEmu, mergeShapes, buildThemeColorMap, reResolveSlideColors, getSubstituteFontFamily, evaluatePresetShape, customGeometryPathsToSvgSubpaths, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, SvgExporter, rebuildTableStructureInRawXml, updateCellTextStyleInRawXml, updateCellTextInRawXml, updateMergeAttrsInRawXml, elementActionToPptxAction } from './chunk-3IIMAKXR.mjs';
4
4
  import React4, { 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';
@@ -6725,8 +6725,8 @@ function parseParagraphAlignment(value) {
6725
6725
  }
6726
6726
  return "left";
6727
6727
  }
6728
- function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
6729
- const cellStyle = { ...fallbackStyle };
6728
+ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides, includeFallback = true) {
6729
+ const cellStyle = includeFallback ? { ...fallbackStyle } : {};
6730
6730
  const txBody = cellXml["a:txBody"];
6731
6731
  const paragraphs = ensureArrayValue(txBody?.["a:p"]);
6732
6732
  const firstParagraph = paragraphs[0];
@@ -6873,7 +6873,7 @@ function resolveTableStyleFillColor(fill, colorScheme) {
6873
6873
  }
6874
6874
  let color = base;
6875
6875
  if (fill.tint !== void 0 && fill.tint > 0) {
6876
- color = tintColor2(color, fill.tint / 1e5);
6876
+ color = tintColor2(color, 1 - fill.tint / 1e5);
6877
6877
  }
6878
6878
  if (fill.shade !== void 0 && fill.shade > 0) {
6879
6879
  color = shadeColor2(color, 1 - fill.shade / 1e5);
@@ -6912,7 +6912,7 @@ function applyTableStyleText(text, colorScheme, style, fontScheme) {
6912
6912
  if (base) {
6913
6913
  let color = base;
6914
6914
  if (text.fontTint !== void 0 && text.fontTint > 0) {
6915
- color = tintColor2(color, text.fontTint / 1e5);
6915
+ color = tintColor2(color, 1 - text.fontTint / 1e5);
6916
6916
  }
6917
6917
  if (text.fontShade !== void 0 && text.fontShade > 0) {
6918
6918
  color = shadeColor2(color, 1 - text.fontShade / 1e5);
@@ -7716,7 +7716,12 @@ function renderTableElement(element, textStyle, options) {
7716
7716
  parsedTable.columnCount,
7717
7717
  options?.styleCtx
7718
7718
  );
7719
- const xmlCellStyle = extractTableCellStyle(cell, textStyle, schemeOverrides);
7719
+ const xmlCellStyle = extractTableCellStyle(
7720
+ cell,
7721
+ textStyle,
7722
+ schemeOverrides,
7723
+ false
7724
+ );
7720
7725
  const tdCellOverride = tableEl.tableData?.rows[rowIndex]?.cells[cellIndex]?.style;
7721
7726
  const diag = getCellDiagonalBorders2(
7722
7727
  tdCellOverride,
@@ -7730,6 +7735,7 @@ function renderTableElement(element, textStyle, options) {
7730
7735
  options?.styleCtx
7731
7736
  );
7732
7737
  const mergedStyle = {
7738
+ ...textStyle,
7733
7739
  ...bandStyle,
7734
7740
  ...xmlCellStyle,
7735
7741
  ...tdCellOverride ? cellStyleToCss(tdCellOverride) : void 0,
@@ -9646,7 +9652,7 @@ function FailedToLoad() {
9646
9652
  var LazySurfaceChart3DScene = React4.lazy(
9647
9653
  async () => {
9648
9654
  try {
9649
- return await import('./SurfaceChart3DScene-ZZYDRV5N.mjs');
9655
+ return await import('./SurfaceChart3DScene-EQNT7LKA.mjs');
9650
9656
  } catch {
9651
9657
  return { default: FailedToLoad };
9652
9658
  }
@@ -17992,7 +17998,7 @@ function useYjsDocumentSync({
17992
17998
  return;
17993
17999
  }
17994
18000
  try {
17995
- const { PptxHandler: PptxHandler2 } = await import('./dist-RTG3TU65.mjs');
18001
+ const { PptxHandler: PptxHandler2 } = await import('./dist-YFPT5NJI.mjs');
17996
18002
  const handler = new PptxHandler2();
17997
18003
  await handler.load(sourceBytes.buffer);
17998
18004
  const currentSlides = readSlidesFromYDoc(
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkN7OHVHBS_js = require('./chunk-N7OHVHBS.js');
3
+ var chunkYOOFW6LR_js = require('./chunk-YOOFW6LR.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 = chunkN7OHVHBS_js.THEME_PRESETS.find((p) => p.id === id);
241
+ const preset = chunkYOOFW6LR_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: chunkN7OHVHBS_js.guideEmuToPx(g.positionEmu)
417
+ position: chunkYOOFW6LR_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: chunkN7OHVHBS_js.guideEmuToPx(g.positionEmu)
426
+ position: chunkYOOFW6LR_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 chunkN7OHVHBS_js.getShapeClipPath(shapeType);
439
+ return chunkYOOFW6LR_js.getShapeClipPath(shapeType);
440
440
  }
441
441
  if (adjustments && Object.keys(adjustments).length > 0) {
442
- const adjusted = chunkN7OHVHBS_js.getAdjustmentAwareShapeClipPath(shapeType, width, height, adjustments);
442
+ const adjusted = chunkYOOFW6LR_js.getAdjustmentAwareShapeClipPath(shapeType, width, height, adjustments);
443
443
  if (adjusted !== void 0) {
444
444
  return adjusted;
445
445
  }
446
446
  }
447
- const fromPreset = chunkN7OHVHBS_js.getShapeClipPathFromPreset(shapeType, width, height, adjustments);
447
+ const fromPreset = chunkYOOFW6LR_js.getShapeClipPathFromPreset(shapeType, width, height, adjustments);
448
448
  if (fromPreset !== void 0) {
449
449
  return fromPreset;
450
450
  }
451
- const cloud = chunkN7OHVHBS_js.getCloudPathForRendering(shapeType, width, height);
451
+ const cloud = chunkYOOFW6LR_js.getCloudPathForRendering(shapeType, width, height);
452
452
  if (cloud !== void 0) {
453
453
  return cloud;
454
454
  }
455
- return chunkN7OHVHBS_js.getShapeClipPath(shapeType);
455
+ return chunkYOOFW6LR_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) {
@@ -1101,7 +1101,7 @@ var OOXML_PATTERN_PRESETS = [
1101
1101
  "zigZag"
1102
1102
  ];
1103
1103
  function getComputedFillStyle(element, parentGroupFill) {
1104
- if (!chunkN7OHVHBS_js.hasShapeProperties(element)) {
1104
+ if (!chunkYOOFW6LR_js.hasShapeProperties(element)) {
1105
1105
  return void 0;
1106
1106
  }
1107
1107
  const ss = element.shapeStyle;
@@ -1170,7 +1170,7 @@ function getGroupChildParentFill(group) {
1170
1170
  return group.type === "group" ? group.groupFill : void 0;
1171
1171
  }
1172
1172
  function resolveGroupChildFill(child2, parentGroupFill) {
1173
- if (!parentGroupFill || !chunkN7OHVHBS_js.hasShapeProperties(child2) || child2.shapeStyle?.fillMode !== "group") {
1173
+ if (!parentGroupFill || !chunkYOOFW6LR_js.hasShapeProperties(child2) || child2.shapeStyle?.fillMode !== "group") {
1174
1174
  return void 0;
1175
1175
  }
1176
1176
  return getComputedFillStyle(child2, parentGroupFill);
@@ -1373,7 +1373,7 @@ var DEFAULT_SCHEME_COLOR_MAP = {
1373
1373
  phclr: "#4472C4"
1374
1374
  };
1375
1375
  function applyDrawingColorTransforms2(baseColor, colorNode) {
1376
- return chunkN7OHVHBS_js.applyDrawingColorTransforms(baseColor, colorNode);
1376
+ return chunkYOOFW6LR_js.applyDrawingColorTransforms(baseColor, colorNode);
1377
1377
  }
1378
1378
  function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
1379
1379
  if (!colorNode) {
@@ -1425,7 +1425,7 @@ function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
1425
1425
  const h = hueRaw / 6e4;
1426
1426
  const s = clampUnitInterval(satRaw / 1e5);
1427
1427
  const l = clampUnitInterval(lumRaw / 1e5);
1428
- const rgb = chunkN7OHVHBS_js.hslToRgb(h, s, l);
1428
+ const rgb = chunkYOOFW6LR_js.hslToRgb(h, s, l);
1429
1429
  const toHex2 = (value) => Math.min(255, Math.max(0, Math.round(value))).toString(16).padStart(2, "0").toUpperCase();
1430
1430
  const base = `#${toHex2(rgb.r)}${toHex2(rgb.g)}${toHex2(rgb.b)}`;
1431
1431
  return applyDrawingColorTransforms2(base, hslNode);
@@ -1435,7 +1435,7 @@ function parseDrawingColorChoice(colorNode, schemeColorOverrides) {
1435
1435
  const preset = String(
1436
1436
  colorNode["a:prstClr"]?.["@_val"] || ""
1437
1437
  ).toLowerCase();
1438
- const mapped = chunkN7OHVHBS_js.PRESET_COLOR_MAP[preset];
1438
+ const mapped = chunkYOOFW6LR_js.PRESET_COLOR_MAP[preset];
1439
1439
  if (!mapped) {
1440
1440
  return void 0;
1441
1441
  }
@@ -1978,7 +1978,7 @@ function hexToRgbUnit2(hex) {
1978
1978
  };
1979
1979
  }
1980
1980
  function getEffects(element) {
1981
- if (!chunkN7OHVHBS_js.isImageLikeElement(element)) {
1981
+ if (!chunkYOOFW6LR_js.isImageLikeElement(element)) {
1982
1982
  return void 0;
1983
1983
  }
1984
1984
  return element.imageEffects;
@@ -2167,7 +2167,7 @@ function buildDuotoneFilterMarkup(color1, color2) {
2167
2167
  const c2 = hexToRgbUnit2(color2);
2168
2168
  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
2169
  }
2170
- function getDuotoneImageFilter(element, elementId = chunkN7OHVHBS_js.isImageLikeElement(element) ? element.id : "") {
2170
+ function getDuotoneImageFilter(element, elementId = chunkYOOFW6LR_js.isImageLikeElement(element) ? element.id : "") {
2171
2171
  const effects = getEffects(element);
2172
2172
  if (!effects?.duotone) {
2173
2173
  return void 0;
@@ -2269,7 +2269,7 @@ function buildImageAlphaFilterMarkup(effects) {
2269
2269
  }
2270
2270
  return parts.length > 0 ? parts.join("") : void 0;
2271
2271
  }
2272
- function getImageAlphaFilter(element, elementId = chunkN7OHVHBS_js.isImageLikeElement(element) ? element.id : "") {
2272
+ function getImageAlphaFilter(element, elementId = chunkYOOFW6LR_js.isImageLikeElement(element) ? element.id : "") {
2273
2273
  const effects = getEffects(element);
2274
2274
  if (!effects || !hasAdvancedImageAlphaEffects(element)) {
2275
2275
  return void 0;
@@ -2359,7 +2359,7 @@ function buildArtisticFilterMarkup(effectName, radius) {
2359
2359
  return void 0;
2360
2360
  }
2361
2361
  }
2362
- function getArtisticImageFilter(element, elementId = chunkN7OHVHBS_js.isImageLikeElement(element) ? element.id : "") {
2362
+ function getArtisticImageFilter(element, elementId = chunkYOOFW6LR_js.isImageLikeElement(element) ? element.id : "") {
2363
2363
  const effects = getEffects(element);
2364
2364
  if (!effects?.artisticEffect || !needsSvgArtisticFilter(effects.artisticEffect)) {
2365
2365
  return void 0;
@@ -3318,7 +3318,7 @@ function convertChildren(node) {
3318
3318
  if (key.startsWith("@_")) {
3319
3319
  continue;
3320
3320
  }
3321
- const tag = chunkN7OHVHBS_js.stripXmlOrderSuffix(key);
3321
+ const tag = chunkYOOFW6LR_js.stripXmlOrderSuffix(key);
3322
3322
  if (tag === "m:oMathPara") {
3323
3323
  continue;
3324
3324
  }
@@ -3390,7 +3390,7 @@ function findOmathRoots(node) {
3390
3390
  }
3391
3391
  }
3392
3392
  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(chunkN7OHVHBS_js.stripXmlOrderSuffix(key)))) {
3393
+ if (Object.keys(node).some((key) => contentTags.has(chunkYOOFW6LR_js.stripXmlOrderSuffix(key)))) {
3394
3394
  return [node];
3395
3395
  }
3396
3396
  return [];
@@ -3600,7 +3600,7 @@ function mergeSiblings(nodes) {
3600
3600
  }
3601
3601
  const ordered2 = {};
3602
3602
  for (const [position, [key, value]] of entries.entries()) {
3603
- ordered2[(counts.get(key) ?? 0) > 1 ? chunkN7OHVHBS_js.orderedXmlKey(key, position) : key] = value;
3603
+ ordered2[(counts.get(key) ?? 0) > 1 ? chunkYOOFW6LR_js.orderedXmlKey(key, position) : key] = value;
3604
3604
  }
3605
3605
  return ordered2;
3606
3606
  }
@@ -4004,7 +4004,7 @@ function ommlChildrenToLatex(node) {
4004
4004
  if (key.startsWith("@_")) {
4005
4005
  continue;
4006
4006
  }
4007
- const tag = chunkN7OHVHBS_js.stripXmlOrderSuffix(key);
4007
+ const tag = chunkYOOFW6LR_js.stripXmlOrderSuffix(key);
4008
4008
  const items = ensureArr(node[key]);
4009
4009
  for (const item of items) {
4010
4010
  const result = ommlElementToLatex(tag, item);
@@ -12185,7 +12185,7 @@ function buildSegmentCounts(slide, nativeAnims) {
12185
12185
  for (const anim of nativeAnims) {
12186
12186
  if (anim.buildType && anim.buildType !== "allAtOnce" && anim.targetId) {
12187
12187
  const el = slide.elements.find((e) => e.id === anim.targetId);
12188
- if (el && chunkN7OHVHBS_js.hasTextProperties(el) && el.textSegments && el.textSegments.length > 0) {
12188
+ if (el && chunkYOOFW6LR_js.hasTextProperties(el) && el.textSegments && el.textSegments.length > 0) {
12189
12189
  segmentCounts.set(anim.targetId, countTextSegments(el.textSegments));
12190
12190
  }
12191
12191
  }
@@ -13296,7 +13296,7 @@ function shadeColor(hex, shadeFactor) {
13296
13296
  function applyTintShade(base, fill) {
13297
13297
  let color = base;
13298
13298
  if (fill.tint !== void 0 && fill.tint > 0) {
13299
- color = tintColor(color, fill.tint / 1e5);
13299
+ color = tintColor(color, 1 - fill.tint / 1e5);
13300
13300
  }
13301
13301
  if (fill.shade !== void 0 && fill.shade > 0) {
13302
13302
  color = shadeColor(color, 1 - fill.shade / 1e5);
@@ -14403,7 +14403,7 @@ function rotateDelta(dx, dy, rotationDeg) {
14403
14403
  }
14404
14404
  function applyResize(box, handle, dxScreen, dyScreen, zoom, opts = {}) {
14405
14405
  const scale = zoom || 1;
14406
- const minSize = opts.minSize ?? chunkN7OHVHBS_js.MIN_ELEMENT_SIZE;
14406
+ const minSize = opts.minSize ?? chunkYOOFW6LR_js.MIN_ELEMENT_SIZE;
14407
14407
  const rotation = rotationOf(box);
14408
14408
  const local = rotateDelta(dxScreen / scale, dyScreen / scale, rotation);
14409
14409
  const dx = local.x;
@@ -14430,7 +14430,7 @@ function applyResize(box, handle, dxScreen, dyScreen, zoom, opts = {}) {
14430
14430
  }
14431
14431
  return { x: newX, y: newY, width: newW, height: newH, rotation };
14432
14432
  }
14433
- function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkN7OHVHBS_js.MIN_ELEMENT_SIZE) {
14433
+ function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkYOOFW6LR_js.MIN_ELEMENT_SIZE) {
14434
14434
  if (handle === null || gridSpacingPx <= 0) {
14435
14435
  return box;
14436
14436
  }
@@ -14460,7 +14460,7 @@ function snapBoxToGrid(box, handle, gridSpacingPx, minSize = chunkN7OHVHBS_js.MI
14460
14460
  }
14461
14461
  return { x, y, width, height };
14462
14462
  }
14463
- function computeMarqueeHitIds(marquee, elements, minSize = chunkN7OHVHBS_js.MIN_ELEMENT_SIZE) {
14463
+ function computeMarqueeHitIds(marquee, elements, minSize = chunkYOOFW6LR_js.MIN_ELEMENT_SIZE) {
14464
14464
  const minX = Math.min(marquee.startX, marquee.currentX);
14465
14465
  const minY = Math.min(marquee.startY, marquee.currentY);
14466
14466
  const maxX = Math.max(marquee.startX, marquee.currentX);
@@ -16016,7 +16016,7 @@ var THEME_COLOR_LABELS = {
16016
16016
  };
16017
16017
  function buildThemeColorGrid(colorScheme) {
16018
16018
  return THEME_COLOR_TINT_ROWS.map(
16019
- (row) => chunkN7OHVHBS_js.THEME_COLOR_SCHEME_KEYS.map((key) => ({
16019
+ (row) => chunkYOOFW6LR_js.THEME_COLOR_SCHEME_KEYS.map((key) => ({
16020
16020
  hex: row.transform(colorScheme[key]),
16021
16021
  schemeKey: key,
16022
16022
  rowLabel: row.label,
@@ -16352,12 +16352,12 @@ function getShapeConnectionSites(shape) {
16352
16352
  }
16353
16353
  const pathW = geo.pathWidth && geo.pathWidth > 0 ? geo.pathWidth : shape.width;
16354
16354
  const pathH = geo.pathHeight && geo.pathHeight > 0 ? geo.pathHeight : shape.height;
16355
- const vars = chunkN7OHVHBS_js.createBuiltinVariables({ w: pathW, h: pathH });
16355
+ const vars = chunkYOOFW6LR_js.createBuiltinVariables({ w: pathW, h: pathH });
16356
16356
  const scaleX = pathW > 0 ? shape.width / pathW : 1;
16357
16357
  const scaleY = pathH > 0 ? shape.height / pathH : 1;
16358
16358
  return cxn.map((site, index) => ({
16359
- x: chunkN7OHVHBS_js.resolveCoordinate(site.posX, vars) * scaleX,
16360
- y: chunkN7OHVHBS_js.resolveCoordinate(site.posY, vars) * scaleY,
16359
+ x: chunkYOOFW6LR_js.resolveCoordinate(site.posX, vars) * scaleX,
16360
+ y: chunkYOOFW6LR_js.resolveCoordinate(site.posY, vars) * scaleY,
16361
16361
  index
16362
16362
  }));
16363
16363
  }
@@ -16520,7 +16520,7 @@ function svgLineCap(lineCap) {
16520
16520
  }
16521
16521
  function copyFormatFromElement(element) {
16522
16522
  const result = {};
16523
- if (chunkN7OHVHBS_js.hasShapeProperties(element) && element.shapeStyle) {
16523
+ if (chunkYOOFW6LR_js.hasShapeProperties(element) && element.shapeStyle) {
16524
16524
  const s = element.shapeStyle;
16525
16525
  result.shapeStyle = {
16526
16526
  fillColor: s.fillColor,
@@ -16549,7 +16549,7 @@ function copyFormatFromElement(element) {
16549
16549
  softEdgeRadius: s.softEdgeRadius
16550
16550
  };
16551
16551
  }
16552
- if (chunkN7OHVHBS_js.hasTextProperties(element) && element.textStyle) {
16552
+ if (chunkYOOFW6LR_js.hasTextProperties(element) && element.textStyle) {
16553
16553
  const t = element.textStyle;
16554
16554
  result.textStyle = {
16555
16555
  fontFamily: t.fontFamily,
@@ -16580,7 +16580,7 @@ function definedEntries(obj) {
16580
16580
  }
16581
16581
  function applyFormatToElement(element, format) {
16582
16582
  let updated = { ...element };
16583
- if (format.shapeStyle && chunkN7OHVHBS_js.hasShapeProperties(updated)) {
16583
+ if (format.shapeStyle && chunkYOOFW6LR_js.hasShapeProperties(updated)) {
16584
16584
  updated = {
16585
16585
  ...updated,
16586
16586
  shapeStyle: {
@@ -16589,7 +16589,7 @@ function applyFormatToElement(element, format) {
16589
16589
  }
16590
16590
  };
16591
16591
  }
16592
- if (format.textStyle && chunkN7OHVHBS_js.hasTextProperties(updated)) {
16592
+ if (format.textStyle && chunkYOOFW6LR_js.hasTextProperties(updated)) {
16593
16593
  updated = {
16594
16594
  ...updated,
16595
16595
  textStyle: {
@@ -16604,7 +16604,7 @@ function hasCopyableFormat(element) {
16604
16604
  if (!element) {
16605
16605
  return false;
16606
16606
  }
16607
- return chunkN7OHVHBS_js.hasShapeProperties(element) || chunkN7OHVHBS_js.hasTextProperties(element);
16607
+ return chunkYOOFW6LR_js.hasShapeProperties(element) || chunkYOOFW6LR_js.hasTextProperties(element);
16608
16608
  }
16609
16609
  function copySegmentMetadata(from, to) {
16610
16610
  if (from.equationXml !== void 0) {
@@ -16741,7 +16741,7 @@ function getRoundRectRadiusPx(element) {
16741
16741
  return Math.min(Math.max(element.width, 1), Math.max(element.height, 1)) * 0.5 * normalizedAdjustment;
16742
16742
  }
16743
16743
  function getShapeAdjustmentHandleDescriptor(element) {
16744
- if (!chunkN7OHVHBS_js.hasShapeProperties(element)) {
16744
+ if (!chunkYOOFW6LR_js.hasShapeProperties(element)) {
16745
16745
  return null;
16746
16746
  }
16747
16747
  const normalizedShapeType = String(element.shapeType || "").toLowerCase();
@@ -17750,7 +17750,7 @@ function createSyncGate(onOpen, graceMs = INITIAL_SYNC_GRACE_MS) {
17750
17750
  var POSITION_THRESHOLD = 2;
17751
17751
  var SIZE_THRESHOLD = 2;
17752
17752
  function getElementText(element) {
17753
- if (!chunkN7OHVHBS_js.hasTextProperties(element)) {
17753
+ if (!chunkYOOFW6LR_js.hasTextProperties(element)) {
17754
17754
  return "";
17755
17755
  }
17756
17756
  if (element.textSegments && element.textSegments.length > 0) {
@@ -23102,7 +23102,7 @@ function getAriaRole(element) {
23102
23102
  case "model3d":
23103
23103
  return "img";
23104
23104
  case "shape": {
23105
- if (chunkN7OHVHBS_js.hasTextProperties(element) && element.text) {
23105
+ if (chunkYOOFW6LR_js.hasTextProperties(element) && element.text) {
23106
23106
  return "group";
23107
23107
  }
23108
23108
  return "img";
@@ -23115,7 +23115,7 @@ function getAriaLabel(element) {
23115
23115
  if ((element.type === "image" || element.type === "picture") && "altText" in element && typeof element.altText === "string" && element.altText.trim()) {
23116
23116
  return element.altText.trim();
23117
23117
  }
23118
- if (chunkN7OHVHBS_js.hasTextProperties(element) && element.text) {
23118
+ if (chunkYOOFW6LR_js.hasTextProperties(element) && element.text) {
23119
23119
  const text = element.text.trim();
23120
23120
  if (text) {
23121
23121
  return text.length > 120 ? `${text.slice(0, 117)}...` : text;
@@ -23522,7 +23522,7 @@ var DEFAULT_CHART_POSITION = { x: 120, y: 120, width: 480, height: 320 };
23522
23522
  var DEFAULT_CATEGORIES = ["Category 1", "Category 2", "Category 3"];
23523
23523
  var DEFAULT_SERIES_VALUES = [4, 3, 5];
23524
23524
  function createDefaultChartElement(chartType = DEFAULT_INSERT_CHART_TYPE, position) {
23525
- return chunkN7OHVHBS_js.createChartElement(
23525
+ return chunkYOOFW6LR_js.createChartElement(
23526
23526
  chartType,
23527
23527
  {
23528
23528
  categories: [...DEFAULT_CATEGORIES],
@@ -24557,7 +24557,7 @@ function computeVirtualRange(totalItems, itemHeight, scrollTop, viewportHeight,
24557
24557
  };
24558
24558
  }
24559
24559
  function collectFontsFromElement(element, fonts) {
24560
- if (chunkN7OHVHBS_js.hasTextProperties(element)) {
24560
+ if (chunkYOOFW6LR_js.hasTextProperties(element)) {
24561
24561
  if (element.textStyle?.fontFamily) {
24562
24562
  fonts.add(element.textStyle.fontFamily);
24563
24563
  }
@@ -1,7 +1,7 @@
1
- import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useFollowMode, useBroadcastFollower, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, MIN_ELEMENT_SIZE, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_TRANSITION_OPTIONS, SLIDE_NAV_THUMBNAIL_WIDTH, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, contrastingTextColor, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, truncate, gearPath, resolveSmartArtDataPalette, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-TYXOHBKR.mjs';
2
- import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, ACTION_BUTTON_PRESETS, getElementLabel, RULER_THICKNESS, RULER_FONT_SIZE, EQUATION_TEMPLATES, convertLatexToOmml, convertOmmlToMathMl, sanitizeMathMl, DEFAULT_VIEWER_OPTIONS, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, createBackstagePresentation, buildCssGradientFromShapeStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getGroupChildParentFill, revealedSmartArtNodeCount, buildSmartArtA11y, buildSummaryZoomView, getImageColorWashStyle, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, resolveGroupChildFill, shouldUseSvgWarp, buildPreviewElements, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, activateModalFocus, buildCollaborationShareUrl, presentationInkPath, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, SLIDE_VIRTUALIZATION_THRESHOLD, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, TABLE_STYLE_PRESETS, withFrameSlides, withSlidesPerPage, formatCommentTimestamp, DIRECTIONAL_PRESETS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, DUOTONE_PRESETS, ARTISTIC_EFFECTS, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS } from './chunk-YVQPLQ3C.mjs';
1
+ import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useFollowMode, useBroadcastFollower, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, MIN_ELEMENT_SIZE, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_TRANSITION_OPTIONS, SLIDE_NAV_THUMBNAIL_WIDTH, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, contrastingTextColor, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, truncate, gearPath, resolveSmartArtDataPalette, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-FXXVW5YN.mjs';
2
+ import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, ACTION_BUTTON_PRESETS, getElementLabel, RULER_THICKNESS, RULER_FONT_SIZE, EQUATION_TEMPLATES, convertLatexToOmml, convertOmmlToMathMl, sanitizeMathMl, DEFAULT_VIEWER_OPTIONS, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, createBackstagePresentation, buildCssGradientFromShapeStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getGroupChildParentFill, revealedSmartArtNodeCount, buildSmartArtA11y, buildSummaryZoomView, getImageColorWashStyle, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, resolveGroupChildFill, shouldUseSvgWarp, buildPreviewElements, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, activateModalFocus, buildCollaborationShareUrl, presentationInkPath, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, SLIDE_VIRTUALIZATION_THRESHOLD, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, TABLE_STYLE_PRESETS, withFrameSlides, withSlidesPerPage, formatCommentTimestamp, DIRECTIONAL_PRESETS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, DUOTONE_PRESETS, ARTISTIC_EFFECTS, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS } from './chunk-6SJP4DDM.mjs';
3
3
  import { LOCALE_CATALOG, translationsEn } from './chunk-2X72MOPZ.mjs';
4
- import { hasShapeProperties, hasTextProperties, isInkElement, SWITCHABLE_LAYOUT_TYPES, isImageLikeElement, getLinkedTextBoxSegments, getSubstituteFontFamily, themeColorSchemesEqual, setSmartArtNodeStyle, updateSmartArtNodeText, THEME_COLOR_SCHEME_KEYS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, addSmartArtNodeAsChild, removeSmartArtNode, elementActionToPptxAction, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode } from './chunk-JJ5MVLCK.mjs';
4
+ import { hasShapeProperties, hasTextProperties, isInkElement, SWITCHABLE_LAYOUT_TYPES, isImageLikeElement, getLinkedTextBoxSegments, getSubstituteFontFamily, themeColorSchemesEqual, setSmartArtNodeStyle, updateSmartArtNodeText, THEME_COLOR_SCHEME_KEYS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, addSmartArtNodeAsChild, removeSmartArtNode, elementActionToPptxAction, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode } from './chunk-3IIMAKXR.mjs';
5
5
  import React18, { createContext, useMemo, useState, useCallback, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, useDeferredValue } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
  import { useTranslation } from 'react-i18next';
@@ -1335,7 +1335,7 @@ function AccountPage() {
1335
1335
  return void 0;
1336
1336
  });
1337
1337
  };
1338
- const version = "2.0.30" ;
1338
+ const version = "2.0.31" ;
1339
1339
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1340
1340
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1341
1341
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -3853,7 +3853,7 @@ function FailedToLoad() {
3853
3853
  var LazyModel3DScene = React18.lazy(
3854
3854
  async () => {
3855
3855
  try {
3856
- return await import('./Model3DScene-OOLYRN3I.mjs');
3856
+ return await import('./Model3DScene-BLJ7FKLP.mjs');
3857
3857
  } catch {
3858
3858
  return { default: FailedToLoad };
3859
3859
  }
@@ -4425,6 +4425,13 @@ function drawingShapeGradientDef(id, shape) {
4425
4425
  )
4426
4426
  };
4427
4427
  }
4428
+ function drawingLineDashArray(token, strokeWidth) {
4429
+ if (!token || token === "solid") return void 0;
4430
+ if (token === "dash" || token === "sysDash") return `${4 * strokeWidth} ${3 * strokeWidth}`;
4431
+ if (token === "dot" || token === "sysDot") return `${strokeWidth} ${2 * strokeWidth}`;
4432
+ if (token.includes("DashDot")) return `${4 * strokeWidth} ${2 * strokeWidth} ${strokeWidth} ${2 * strokeWidth}`;
4433
+ return `${4 * strokeWidth} ${3 * strokeWidth}`;
4434
+ }
4428
4435
  function upArrowCalloutPoints(x, y, width, height, bannerRatio) {
4429
4436
  const bannerBottom = y + height * bannerRatio;
4430
4437
  const stemLeft = x + width * 0.47;
@@ -4486,6 +4493,7 @@ function DrawingShapeRenderer({
4486
4493
  const relY = shape.y - minY;
4487
4494
  const rx = shape.shapeType === "roundRect" ? Math.min(shape.width, shape.height) * 0.1 : 0;
4488
4495
  const isEllipse = shape.shapeType === "ellipse";
4496
+ const isLine = shape.shapeType === "line";
4489
4497
  const isChevron = shape.shapeType === "chevron" || shape.shapeType === "homePlate";
4490
4498
  const isUpArrowCallout = shape.shapeType === "upArrowCallout";
4491
4499
  const overlappingDetailTop = isUpArrowCallout ? shapes.filter(
@@ -4495,6 +4503,11 @@ function DrawingShapeRenderer({
4495
4503
  const rotation = shape.rotation && !isUpArrowCallout ? `rotate(${shape.rotation} ${relX + shape.width / 2} ${relY + shape.height / 2})` : void 0;
4496
4504
  const strokeCol = shape.strokeColor ?? (sw > 0 ? "rgba(255,255,255,0.3)" : "none");
4497
4505
  const strokeW = shape.strokeWidth ?? sw;
4506
+ const lineColor = strokeCol === "none" ? shape.fillColor ?? colour(i, palette) : strokeCol;
4507
+ const lineWidth = Math.max(strokeW, 0.5);
4508
+ const markerSeed = `${elementId}-${shape.id}-${i}`.replace(/[^a-zA-Z0-9_-]/gu, "_");
4509
+ const startMarkerId = `${markerSeed}-start`;
4510
+ const endMarkerId = `${markerSeed}-end`;
4498
4511
  const underlayFill = shape.fillNone ? shapes.slice(0, i).reverse().find((candidate) => {
4499
4512
  const centerX = shape.x + shape.width / 2;
4500
4513
  const centerY = shape.y + shape.height / 2;
@@ -4507,8 +4520,26 @@ function DrawingShapeRenderer({
4507
4520
  const groupProps = nodeId ? smartArtNodeGroupProps(nodeId, shadow, nodeLabel) : { style: { filter: shadow } };
4508
4521
  return /* @__PURE__ */ jsxs("g", { ...groupProps, children: [
4509
4522
  nodeLabel ? /* @__PURE__ */ jsx("title", { children: nodeLabel }) : null,
4510
- gradient ? /* @__PURE__ */ jsx("defs", { children: gradient.def }) : null,
4511
- shape.fillImageUrl ? /* @__PURE__ */ jsx(
4523
+ gradient || isLine ? /* @__PURE__ */ jsxs("defs", { children: [
4524
+ gradient?.def,
4525
+ isLine ? renderConnectorMarker(startMarkerId, shape.startArrow, lineColor, shape.startArrowWidth, shape.startArrowLength) : null,
4526
+ isLine ? renderConnectorMarker(endMarkerId, shape.endArrow, lineColor, shape.endArrowWidth, shape.endArrowLength) : null
4527
+ ] }) : null,
4528
+ isLine ? /* @__PURE__ */ jsx(
4529
+ "line",
4530
+ {
4531
+ x1: relX,
4532
+ y1: relY,
4533
+ x2: relX + shape.width,
4534
+ y2: relY + shape.height,
4535
+ stroke: lineColor,
4536
+ strokeWidth: lineWidth,
4537
+ strokeDasharray: drawingLineDashArray(shape.strokeDash, lineWidth),
4538
+ markerStart: shape.startArrow && shape.startArrow !== "none" ? `url(#${startMarkerId})` : void 0,
4539
+ markerEnd: shape.endArrow && shape.endArrow !== "none" ? `url(#${endMarkerId})` : void 0,
4540
+ vectorEffect: "non-scaling-stroke"
4541
+ }
4542
+ ) : shape.fillImageUrl ? /* @__PURE__ */ jsx(
4512
4543
  "image",
4513
4544
  {
4514
4545
  x: relX,
@@ -11968,6 +11999,11 @@ function ActiveXControlOverlay({
11968
11999
  );
11969
12000
  }) });
11970
12001
  }
12002
+ function isFullSlideBackgroundPicture(element, canvasSize) {
12003
+ if (element.type !== "picture" && element.type !== "image") return false;
12004
+ const tolerance = Math.max(2, Math.min(canvasSize.width, canvasSize.height) * 5e-3);
12005
+ return Math.abs(element.x ?? 0) <= tolerance && Math.abs(element.y ?? 0) <= tolerance && (element.width ?? 0) >= canvasSize.width - tolerance && (element.height ?? 0) >= canvasSize.height - tolerance;
12006
+ }
11971
12007
  function SlideCanvas({
11972
12008
  activeSlide,
11973
12009
  templateElements,
@@ -12038,6 +12074,7 @@ function SlideCanvas({
12038
12074
  aiActive = false
12039
12075
  }) {
12040
12076
  const isEditableCanvas = (mode === "edit" || mode === "master") && canEdit;
12077
+ const hasEditableForegroundElements = (activeSlide?.elements.length ?? 0) > 1;
12041
12078
  const {
12042
12079
  cbRef,
12043
12080
  stableResizePointerDown,
@@ -12237,7 +12274,7 @@ function SlideCanvas({
12237
12274
  isSelected: selectedElementIdSet.has(element.id),
12238
12275
  isInlineEditing: inlineEditingElementId === element.id,
12239
12276
  inlineEditingText,
12240
- canInteract: isEditableCanvas,
12277
+ canInteract: isEditableCanvas && !(hasEditableForegroundElements && isFullSlideBackgroundPicture(element, canvasSize)),
12241
12278
  spellCheckEnabled,
12242
12279
  mediaDataUrls,
12243
12280
  tableEditorState,