pptx-react-viewer 1.17.0 → 1.17.1

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 (56) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{chunk-HJQZJ3VE.mjs → chunk-5CD34U2V.mjs} +1 -1
  3. package/dist/chunk-5CD34U2V.mjs.br +0 -0
  4. package/dist/chunk-5CD34U2V.mjs.gz +0 -0
  5. package/dist/{chunk-LLHFNGAF.mjs → chunk-HN7CPQUG.mjs} +1 -1
  6. package/dist/chunk-HN7CPQUG.mjs.br +0 -0
  7. package/dist/chunk-HN7CPQUG.mjs.gz +0 -0
  8. package/dist/{chunk-WGLJ32FW.js → chunk-IZXN663G.js} +1 -1
  9. package/dist/chunk-IZXN663G.js.br +0 -0
  10. package/dist/chunk-IZXN663G.js.gz +0 -0
  11. package/dist/{chunk-LNSHC2Z5.mjs → chunk-PCQH2UBR.mjs} +114 -77
  12. package/dist/chunk-PCQH2UBR.mjs.br +0 -0
  13. package/dist/chunk-PCQH2UBR.mjs.gz +0 -0
  14. package/dist/{chunk-3P6O7ZDM.js → chunk-SXCO5HHN.js} +18 -18
  15. package/dist/chunk-SXCO5HHN.js.br +0 -0
  16. package/dist/chunk-SXCO5HHN.js.gz +0 -0
  17. package/dist/{chunk-XW5OMXW6.js → chunk-WH7YXV3I.js} +569 -532
  18. package/dist/chunk-WH7YXV3I.js.br +0 -0
  19. package/dist/chunk-WH7YXV3I.js.gz +0 -0
  20. package/dist/hooks-unstable.js +71 -71
  21. package/dist/hooks-unstable.js.br +0 -0
  22. package/dist/hooks-unstable.js.gz +0 -0
  23. package/dist/hooks-unstable.mjs +2 -2
  24. package/dist/hooks-unstable.mjs.br +0 -0
  25. package/dist/hooks-unstable.mjs.gz +0 -0
  26. package/dist/i18n.js +3 -3
  27. package/dist/i18n.js.br +1 -1
  28. package/dist/i18n.js.gz +0 -0
  29. package/dist/i18n.mjs +1 -1
  30. package/dist/i18n.mjs.br +0 -0
  31. package/dist/i18n.mjs.gz +0 -0
  32. package/dist/index.js +8 -8
  33. package/dist/index.js.br +0 -0
  34. package/dist/index.js.gz +0 -0
  35. package/dist/index.mjs +3 -3
  36. package/dist/index.mjs.br +0 -0
  37. package/dist/index.mjs.gz +0 -0
  38. package/dist/viewer/index.js +18 -18
  39. package/dist/viewer/index.js.br +0 -0
  40. package/dist/viewer/index.js.gz +0 -0
  41. package/dist/viewer/index.mjs +3 -3
  42. package/dist/viewer/index.mjs.br +0 -0
  43. package/dist/viewer/index.mjs.gz +0 -0
  44. package/package.json +1 -1
  45. package/dist/chunk-3P6O7ZDM.js.br +0 -0
  46. package/dist/chunk-3P6O7ZDM.js.gz +0 -0
  47. package/dist/chunk-HJQZJ3VE.mjs.br +0 -0
  48. package/dist/chunk-HJQZJ3VE.mjs.gz +0 -0
  49. package/dist/chunk-LLHFNGAF.mjs.br +0 -0
  50. package/dist/chunk-LLHFNGAF.mjs.gz +0 -0
  51. package/dist/chunk-LNSHC2Z5.mjs.br +0 -0
  52. package/dist/chunk-LNSHC2Z5.mjs.gz +0 -0
  53. package/dist/chunk-WGLJ32FW.js.br +0 -0
  54. package/dist/chunk-WGLJ32FW.js.gz +0 -0
  55. package/dist/chunk-XW5OMXW6.js.br +0 -0
  56. package/dist/chunk-XW5OMXW6.js.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@ All notable changes to this project are documented here.
4
4
  This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
5
5
  by [git-cliff](https://git-cliff.org); do not edit it by hand.
6
6
 
7
+ ## [1.17.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.17.0) - 2026-07-13
8
+
9
+ ### Bug Fixes
10
+
11
+ - **build:** Restore compatibility after dependency updates (by @ChristopherVR) ([ddbfae6](https://github.com/ChristopherVR/pptx-viewer/commit/ddbfae687669b9e6c64fd3c3b16a592623b79c10))
12
+
13
+ ### Dependencies
14
+
15
+ - **deps:** Update html2canvas-pro to 2.2.3 (by @dependabot[bot]) ([0fe015b](https://github.com/ChristopherVR/pptx-viewer/commit/0fe015b83722534f14864b2054ce6561b09386ca))
16
+ - **deps:** Update fast-xml-parser to 5.10.0 (by @dependabot[bot]) ([6080273](https://github.com/ChristopherVR/pptx-viewer/commit/6080273f6a6f603d10d69a71d54faad1e6d9bf05))
17
+ - **deps:** Update dompurify to 3.4.12 (by @dependabot[bot]) ([00a6ca4](https://github.com/ChristopherVR/pptx-viewer/commit/00a6ca49609d5a0e922a9e20447460b11ec690ba))
18
+ - **deps:** Update minor and patch dependencies (by @dependabot[bot]) ([5cd81fb](https://github.com/ChristopherVR/pptx-viewer/commit/5cd81fb0c8708e53990ac4858660d0b6a4b17a7a))
19
+ - **deps:** Update typescript to 7.0.2 (by @dependabot[bot]) ([0a7c1f1](https://github.com/ChristopherVR/pptx-viewer/commit/0a7c1f1f7f0ccdee9537f1e11177b6a39839d221))
20
+
7
21
  ## [1.16.2](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.16.2) - 2026-07-13
8
22
 
9
23
  ## [1.16.1](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.16.1) - 2026-07-12
@@ -155,7 +155,7 @@ var translationsEn = {
155
155
  "pptx.collaboration.status.connecting": "Connecting...",
156
156
  "pptx.collaboration.status.disconnected": "Disconnected",
157
157
  "pptx.collaboration.status.error": "Connection error",
158
- "pptx.collaboration.statusAriaLabel": "Collaboration: {{status}}. {{count}} user(s) connected.",
158
+ "pptx.collaboration.statusAriaLabel": "Collaboration: {{status}}",
159
159
  "pptx.collaboration.userCount": "{{count}} user(s)",
160
160
  "pptx.collaboration.youLabel": "{{name}} (you)",
161
161
  "pptx.collaboration.usersConnected": "{{count}} user(s) connected",
Binary file
Binary file
@@ -1,5 +1,5 @@
1
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
- import { translationsEn } from './chunk-HJQZJ3VE.mjs';
2
+ import { translationsEn } from './chunk-5CD34U2V.mjs';
3
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';
Binary file
Binary file
@@ -157,7 +157,7 @@ var translationsEn = {
157
157
  "pptx.collaboration.status.connecting": "Connecting...",
158
158
  "pptx.collaboration.status.disconnected": "Disconnected",
159
159
  "pptx.collaboration.status.error": "Connection error",
160
- "pptx.collaboration.statusAriaLabel": "Collaboration: {{status}}. {{count}} user(s) connected.",
160
+ "pptx.collaboration.statusAriaLabel": "Collaboration: {{status}}",
161
161
  "pptx.collaboration.userCount": "{{count}} user(s)",
162
162
  "pptx.collaboration.youLabel": "{{name}} (you)",
163
163
  "pptx.collaboration.usersConnected": "{{count}} user(s) connected",
Binary file
Binary file
@@ -1,6 +1,6 @@
1
- import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useFollowMode, useBroadcastFollower, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, SLIDE_TRANSITION_OPTIONS, DEFAULT_FILL_COLOR, shouldRenderFallbackLabel, isImageTiled, getImageTilingStyle, renderTextSegments, getTextLayoutStyle, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, renderTableElement, renderMediaElement, buildTextBody3DSceneStyle, getTextWarpStyle, getCropShapeClipPath, SLIDE_NAV_THUMBNAIL_WIDTH, useKeyboardInsets, useModalDismissDrag, SHORTCUT_REFERENCE_ITEMS, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, parseTableElementData, ensureArrayValue, getTableCellBandStyle, extractCellText, extractTableCellStyle, cellStyleToCss, renderChartElement, getDuotoneColors, renderDuotoneSvgFilter, renderArtisticEffectSvgFilter, renderImageAlphaSvgFilter, buildReactChartViewModel, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, EMU_PER_PX, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-LLHFNGAF.mjs';
1
+ import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useFollowMode, useBroadcastFollower, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, SLIDE_TRANSITION_OPTIONS, DEFAULT_FILL_COLOR, shouldRenderFallbackLabel, isImageTiled, getImageTilingStyle, renderTextSegments, getTextLayoutStyle, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, renderTableElement, renderMediaElement, buildTextBody3DSceneStyle, getTextWarpStyle, getCropShapeClipPath, SLIDE_NAV_THUMBNAIL_WIDTH, useKeyboardInsets, useModalDismissDrag, SHORTCUT_REFERENCE_ITEMS, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, parseTableElementData, ensureArrayValue, getTableCellBandStyle, extractCellText, extractTableCellStyle, cellStyleToCss, renderChartElement, getDuotoneColors, renderDuotoneSvgFilter, renderArtisticEffectSvgFilter, renderImageAlphaSvgFilter, buildReactChartViewModel, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, EMU_PER_PX, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-HN7CPQUG.mjs';
2
2
  import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, RULER_THICKNESS, RULER_FONT_SIZE, convertLatexToOmml, convertOmmlToMathMl, buildUserFontFaceStyles, openPptxFile, buildSmartArtA11y, buildCssGradientFromShapeStyle, getElementLabel, getTextCompensationTransform, getSlideBackgroundStyle, shouldUseSvgWarp, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, resolveTransportForServerUrl, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveDrawingShapeNodeId, getPendingSelectionRestore, restoreSegmentSelection, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, getWarpPath, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, NOTES_FONT_SIZE_DEFAULT, clampNotesFontSize, NOTES_FONT_SIZE_STEP, formatTime, formatElapsed, NOTES_FONT_SIZE_MIN, NOTES_FONT_SIZE_MAX, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, 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, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, INSERT_CHART_TYPES, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, notesSegmentsToSpans, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, TABLE_STYLE_PRESETS, 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-G22EWPLH.mjs';
3
- import { translationsEn } from './chunk-HJQZJ3VE.mjs';
3
+ import { translationsEn } from './chunk-5CD34U2V.mjs';
4
4
  import { hasShapeProperties, hasTextProperties, SWITCHABLE_LAYOUT_TYPES, isInkElement, getLinkedTextBoxSegments, isImageLikeElement, getSubstituteFontFamily, setSmartArtNodeStyle, updateSmartArtNodeText, THEME_COLOR_SCHEME_KEYS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, hasNonTrivialOverride, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, addSmartArtNodeAsChild, removeSmartArtNode, elementActionToPptxAction, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode } from './chunk-XRYREYXC.mjs';
5
5
  import React5, { createContext, useMemo, useState, useCallback, forwardRef, useEffect, useRef, useContext, Suspense, useLayoutEffect, useDeferredValue } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -243,6 +243,7 @@ function CollaborationStatusIndicator({
243
243
  return /* @__PURE__ */ jsxs(
244
244
  "div",
245
245
  {
246
+ role: "status",
246
247
  "data-testid": "collaboration-status",
247
248
  className: "flex items-center gap-1.5",
248
249
  "aria-label": t("pptx.collaboration.statusAriaLabel", {
@@ -6445,11 +6446,14 @@ function SlideItemInner({
6445
6446
  const scale = SLIDE_NAV_THUMBNAIL_WIDTH / safeCanvasWidth;
6446
6447
  const previewHeight = Math.max(56, Math.round(safeCanvasHeight * scale));
6447
6448
  return /* @__PURE__ */ jsxs(
6448
- "div",
6449
+ "button",
6449
6450
  {
6451
+ type: "button",
6450
6452
  ref: slideRef,
6453
+ "aria-label": `Go to slide ${slideIndex + 1}`,
6454
+ "aria-current": isActive ? "true" : void 0,
6451
6455
  className: cn(
6452
- "group relative flex items-center gap-1 cursor-pointer py-0.5 px-1 transition-all",
6456
+ "group relative flex w-full items-center gap-1 cursor-pointer border-0 bg-transparent py-0.5 px-1 text-left transition-all",
6453
6457
  isActive && "bg-accent/40 before:absolute before:left-0 before:top-1 before:bottom-1 before:w-[3px] before:bg-primary before:rounded-r",
6454
6458
  isHidden && "opacity-50"
6455
6459
  ),
@@ -15874,45 +15878,54 @@ function Toolbar(p) {
15874
15878
  className: "relative z-20 border-b border-border bg-secondary/50 overflow-visible",
15875
15879
  children: [
15876
15880
  /* @__PURE__ */ jsx(ToolbarPrimaryRow, { ...p }),
15877
- showRibbon && /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-border/60 px-1 max-md:overflow-x-auto max-md:scrollbar-none", children: [
15878
- TOOLBAR_SECTIONS.map((s) => /* @__PURE__ */ jsx(
15879
- "button",
15880
- {
15881
- type: "button",
15882
- onClick: () => onSetToolbarSection(s.id),
15883
- className: cn(
15884
- "relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap transition-colors max-md:min-h-[36px] max-md:px-3",
15885
- toolbarSection === s.id ? s.id === "file" ? "text-white bg-primary/80 rounded-sm" : "text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary" : s.id === "file" ? "text-primary hover:bg-primary/15 rounded-sm" : "text-muted-foreground hover:text-foreground hover:bg-accent/30"
15886
- ),
15887
- children: t(s.labelKey)
15888
- },
15889
- s.id
15890
- )),
15891
- /* @__PURE__ */ jsx("div", { className: "flex-1" }),
15892
- /* @__PURE__ */ jsx(
15893
- TabRowActions,
15894
- {
15895
- onEnterRehearsalMode: p.canEdit ? p.onEnterRehearsalMode : void 0,
15896
- onOpenShareDialog: p.onOpenShareDialog,
15897
- onPackageForSharing: p.onPackageForSharing
15898
- }
15899
- ),
15900
- isNarrowViewport && /* @__PURE__ */ jsx(
15901
- "button",
15902
- {
15903
- type: "button",
15904
- onClick: p.onToggleCompactToolbar,
15905
- className: cn(
15906
- "px-2 py-1 rounded text-[11px] transition-colors mr-1",
15907
- isCompactToolbarOpen ? "bg-primary/80 text-white" : "text-muted-foreground hover:text-foreground"
15908
- ),
15909
- title: t(
15910
- isCompactToolbarOpen ? "pptx.ribbon.collapseRibbon" : "pptx.ribbon.expandRibbon"
15881
+ showRibbon && /* @__PURE__ */ jsxs(
15882
+ "div",
15883
+ {
15884
+ role: "tablist",
15885
+ className: "flex items-center border-b border-border/60 px-1 max-md:overflow-x-auto max-md:scrollbar-none",
15886
+ children: [
15887
+ TOOLBAR_SECTIONS.map((s) => /* @__PURE__ */ jsx(
15888
+ "button",
15889
+ {
15890
+ type: "button",
15891
+ role: "tab",
15892
+ "aria-selected": toolbarSection === s.id,
15893
+ onClick: () => onSetToolbarSection(s.id),
15894
+ className: cn(
15895
+ "relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap transition-colors max-md:min-h-[36px] max-md:px-3",
15896
+ toolbarSection === s.id ? s.id === "file" ? "text-white bg-primary/80 rounded-sm" : "text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary" : s.id === "file" ? "text-primary hover:bg-primary/15 rounded-sm" : "text-muted-foreground hover:text-foreground hover:bg-accent/30"
15897
+ ),
15898
+ children: t(s.labelKey)
15899
+ },
15900
+ s.id
15901
+ )),
15902
+ /* @__PURE__ */ jsx("div", { className: "flex-1" }),
15903
+ /* @__PURE__ */ jsx(
15904
+ TabRowActions,
15905
+ {
15906
+ onEnterRehearsalMode: p.canEdit ? p.onEnterRehearsalMode : void 0,
15907
+ onOpenShareDialog: p.onOpenShareDialog,
15908
+ onPackageForSharing: p.onPackageForSharing
15909
+ }
15911
15910
  ),
15912
- children: t(isCompactToolbarOpen ? "pptx.ribbon.collapseRibbon" : "pptx.ribbon.expandRibbon")
15913
- }
15914
- )
15915
- ] }),
15911
+ isNarrowViewport && /* @__PURE__ */ jsx(
15912
+ "button",
15913
+ {
15914
+ type: "button",
15915
+ onClick: p.onToggleCompactToolbar,
15916
+ className: cn(
15917
+ "px-2 py-1 rounded text-[11px] transition-colors mr-1",
15918
+ isCompactToolbarOpen ? "bg-primary/80 text-white" : "text-muted-foreground hover:text-foreground"
15919
+ ),
15920
+ title: t(
15921
+ isCompactToolbarOpen ? "pptx.ribbon.collapseRibbon" : "pptx.ribbon.expandRibbon"
15922
+ ),
15923
+ children: t(isCompactToolbarOpen ? "pptx.ribbon.collapseRibbon" : "pptx.ribbon.expandRibbon")
15924
+ }
15925
+ )
15926
+ ]
15927
+ }
15928
+ ),
15916
15929
  showRibbon && /* @__PURE__ */ jsxs(
15917
15930
  "div",
15918
15931
  {
@@ -20701,6 +20714,7 @@ function SmartArtLayoutSwitcher({
20701
20714
  "button",
20702
20715
  {
20703
20716
  type: "button",
20717
+ "data-testid": `smartart-layout-${type}`,
20704
20718
  disabled: !canEdit,
20705
20719
  className: cn(
20706
20720
  "flex flex-col items-center gap-0.5 rounded border p-1.5 transition-colors",
@@ -20841,6 +20855,7 @@ function SmartArtNodeRow({
20841
20855
  {
20842
20856
  ref: inputRef,
20843
20857
  type: "text",
20858
+ "data-testid": "smartart-node-text",
20844
20859
  disabled: !canEdit,
20845
20860
  "aria-label": label,
20846
20861
  className: cn(INPUT, "flex-1 text-[11px] py-0.5"),
@@ -21057,6 +21072,7 @@ function SmartArtPropertiesPanel({
21057
21072
  "select",
21058
21073
  {
21059
21074
  disabled: !canEdit,
21075
+ "data-testid": "smartart-color-scheme",
21060
21076
  "aria-label": t("pptx.smartart.colorScheme"),
21061
21077
  className: cn(INPUT, "w-full"),
21062
21078
  value: smartArtData.colorScheme ?? "colorful1",
@@ -24402,6 +24418,7 @@ function PresentationTransitionOverlay({
24402
24418
  "div",
24403
24419
  {
24404
24420
  ref: containerRef,
24421
+ "data-pptx-transition-overlay": true,
24405
24422
  className: "pptx-react-transition-overlay absolute inset-0 pointer-events-none overflow-hidden",
24406
24423
  style: { zIndex: outgoingZIndex },
24407
24424
  children: [
@@ -24409,6 +24426,7 @@ function PresentationTransitionOverlay({
24409
24426
  /* @__PURE__ */ jsx(
24410
24427
  "div",
24411
24428
  {
24429
+ "data-pptx-transition-layer": "outgoing",
24412
24430
  className: "pptx-react-transition-layer absolute inset-0 flex items-center justify-center",
24413
24431
  style: {
24414
24432
  animation: animations.outgoing !== "none" ? animations.outgoing : void 0
@@ -28117,6 +28135,7 @@ function ViewerInspector({
28117
28135
  return /* @__PURE__ */ jsx(
28118
28136
  "div",
28119
28137
  {
28138
+ "data-pptx-inspector": true,
28120
28139
  role: "complementary",
28121
28140
  "aria-label": t("pptx.inspector.properties"),
28122
28141
  className: "h-full flex-shrink-0 max-md:absolute max-md:inset-x-0 max-md:bottom-0 max-md:top-auto max-md:z-30",
@@ -29251,43 +29270,60 @@ function InsertSmartArtDialog({
29251
29270
  }
29252
29271
  ),
29253
29272
  /* @__PURE__ */ jsxs("div", { className: "flex flex-1 overflow-hidden", children: [
29254
- /* @__PURE__ */ jsx("div", { className: "w-40 border-r border-border py-2", children: CATEGORIES.map((cat) => /* @__PURE__ */ jsx(
29255
- "button",
29273
+ /* @__PURE__ */ jsx(
29274
+ "nav",
29256
29275
  {
29257
- type: "button",
29258
- onClick: () => {
29259
- setActiveCategory(cat.id);
29260
- setSelectedLayout(null);
29261
- },
29262
- className: cn(
29263
- "w-full text-left px-3 py-1.5 text-xs transition-colors",
29264
- activeCategory === cat.id ? "bg-primary text-white" : "text-foreground hover:bg-muted"
29265
- ),
29266
- children: t(cat.label)
29267
- },
29268
- cat.id
29269
- )) }),
29270
- /* @__PURE__ */ jsx("div", { className: "flex-1 p-3 overflow-y-auto", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-2", children: filteredPresets.map((preset) => /* @__PURE__ */ jsxs(
29271
- "button",
29276
+ className: "w-40 border-r border-border py-2",
29277
+ "aria-label": t("pptx.insertSmartArt.categories"),
29278
+ children: CATEGORIES.map((cat) => /* @__PURE__ */ jsx(
29279
+ "button",
29280
+ {
29281
+ type: "button",
29282
+ onClick: () => {
29283
+ setActiveCategory(cat.id);
29284
+ setSelectedLayout(null);
29285
+ },
29286
+ className: cn(
29287
+ "w-full text-left px-3 py-1.5 text-xs transition-colors",
29288
+ activeCategory === cat.id ? "bg-primary text-white" : "text-foreground hover:bg-muted"
29289
+ ),
29290
+ children: t(cat.label)
29291
+ },
29292
+ cat.id
29293
+ ))
29294
+ }
29295
+ ),
29296
+ /* @__PURE__ */ jsx("div", { className: "flex-1 p-3 overflow-y-auto", children: /* @__PURE__ */ jsx(
29297
+ "div",
29272
29298
  {
29273
- type: "button",
29274
- onClick: () => setSelectedLayout(preset.layout),
29275
- onDoubleClick: () => {
29276
- setSelectedLayout(preset.layout);
29277
- onInsert(preset.layout, preset.defaultItems);
29278
- onClose();
29279
- },
29280
- className: cn(
29281
- "flex flex-col items-center gap-1 p-2 rounded border transition-colors",
29282
- selectedLayout === preset.layout ? "border-primary bg-primary/20" : "border-border hover:border-border hover:bg-muted/50"
29283
- ),
29284
- children: [
29285
- /* @__PURE__ */ jsx("div", { className: "w-16 h-12 flex items-center justify-center bg-muted rounded", children: getPreviewForLayout(preset.layout) }),
29286
- /* @__PURE__ */ jsx("span", { className: "text-[10px] text-foreground text-center leading-tight", children: t(preset.labelKey) })
29287
- ]
29288
- },
29289
- preset.layout
29290
- )) }) })
29299
+ className: "grid grid-cols-3 gap-2",
29300
+ role: "listbox",
29301
+ "aria-label": t("pptx.insertSmartArt.layouts"),
29302
+ children: filteredPresets.map((preset) => /* @__PURE__ */ jsxs(
29303
+ "button",
29304
+ {
29305
+ type: "button",
29306
+ role: "option",
29307
+ "aria-selected": selectedLayout === preset.layout,
29308
+ onClick: () => setSelectedLayout(preset.layout),
29309
+ onDoubleClick: () => {
29310
+ setSelectedLayout(preset.layout);
29311
+ onInsert(preset.layout, preset.defaultItems);
29312
+ onClose();
29313
+ },
29314
+ className: cn(
29315
+ "flex flex-col items-center gap-1 p-2 rounded border transition-colors",
29316
+ selectedLayout === preset.layout ? "border-primary bg-primary/20" : "border-border hover:border-border hover:bg-muted/50"
29317
+ ),
29318
+ children: [
29319
+ /* @__PURE__ */ jsx("div", { className: "w-16 h-12 flex items-center justify-center bg-muted rounded", children: getPreviewForLayout(preset.layout) }),
29320
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] text-foreground text-center leading-tight", children: t(preset.labelKey) })
29321
+ ]
29322
+ },
29323
+ preset.layout
29324
+ ))
29325
+ }
29326
+ ) })
29291
29327
  ] }),
29292
29328
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2 px-4 py-3 border-t border-border", children: [
29293
29329
  /* @__PURE__ */ jsx(
@@ -31225,6 +31261,7 @@ function MobileBottomBar({
31225
31261
  active ? "text-primary" : "text-muted-foreground hover:text-foreground"
31226
31262
  ),
31227
31263
  "aria-pressed": active,
31264
+ "aria-label": key === "notes" ? t("pptx.statusBar.toggleNotes") : void 0,
31228
31265
  children: [
31229
31266
  /* @__PURE__ */ jsx(Icon, { className: "w-5 h-5" }),
31230
31267
  /* @__PURE__ */ jsx("span", { children: t(label) }),
Binary file
Binary file
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkJWS3RQKN_js = require('./chunk-JWS3RQKN.js');
4
- var chunkWGLJ32FW_js = require('./chunk-WGLJ32FW.js');
4
+ var chunkIZXN663G_js = require('./chunk-IZXN663G.js');
5
5
  var chunkMGLRKGCH_js = require('./chunk-MGLRKGCH.js');
6
6
  var React3 = require('react');
7
7
  var lu = require('react-icons/lu');
@@ -3998,7 +3998,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
3998
3998
  },
3999
3999
  dangerouslySetInnerHTML: { __html: safeMathml }
4000
4000
  }
4001
- ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkWGLJ32FW_js.translationsEn["pptx.textSegment.equationFallback"] });
4001
+ ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkIZXN663G_js.translationsEn["pptx.textSegment.equationFallback"] });
4002
4002
  if (equationNumber) {
4003
4003
  return /* @__PURE__ */ jsxRuntime.jsxs(
4004
4004
  "span",
@@ -4051,7 +4051,7 @@ function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize)
4051
4051
  color: bulletInfo.color || void 0,
4052
4052
  fontFamily: bulletInfo.fontFamily || void 0
4053
4053
  },
4054
- "aria-label": chunkWGLJ32FW_js.translationsEn["pptx.textSegment.bulletAria"],
4054
+ "aria-label": chunkIZXN663G_js.translationsEn["pptx.textSegment.bulletAria"],
4055
4055
  children: "\u2022 "
4056
4056
  },
4057
4057
  `${elementId}-seg-${segmentIndex}-bullet-fallback`
@@ -4061,7 +4061,7 @@ function renderPictureBullet(elementId, segmentIndex, bulletInfo, baseFontSize)
4061
4061
  "img",
4062
4062
  {
4063
4063
  src: bulletInfo.imageDataUrl,
4064
- alt: chunkWGLJ32FW_js.translationsEn["pptx.textSegment.bulletAria"],
4064
+ alt: chunkIZXN663G_js.translationsEn["pptx.textSegment.bulletAria"],
4065
4065
  style: {
4066
4066
  width: bulletSize,
4067
4067
  height: bulletSize,
@@ -6559,7 +6559,7 @@ function renderTableElement(element, textStyle, options) {
6559
6559
  if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
6560
6560
  return renderTableFromTableData(tableEl2, textStyle, options);
6561
6561
  }
6562
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkWGLJ32FW_js.translationsEn["pptx.table.title"] });
6562
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkIZXN663G_js.translationsEn["pptx.table.title"] });
6563
6563
  }
6564
6564
  const selectedCell = options?.selectedCell || null;
6565
6565
  const isEditable2 = Boolean(options?.editable);
@@ -7255,7 +7255,7 @@ function renderMapChart(element, chartData, categoryLabels) {
7255
7255
  textAnchor: "middle",
7256
7256
  fontSize: 7,
7257
7257
  fill: "#94a3b8",
7258
- children: chunkWGLJ32FW_js.translationsEn["pptx.chart.additionalRegionsFallback"]
7258
+ children: chunkIZXN663G_js.translationsEn["pptx.chart.additionalRegionsFallback"]
7259
7259
  },
7260
7260
  `${element.id}-map-ft-hdr`
7261
7261
  )
@@ -8302,7 +8302,7 @@ function renderChartDataTable(elementId, chartData, svgWidth) {
8302
8302
  showK && /* @__PURE__ */ jsxRuntime.jsx(
8303
8303
  "th",
8304
8304
  {
8305
- "aria-label": chunkWGLJ32FW_js.translationsEn["pptx.chart.rowLabelsAria"],
8305
+ "aria-label": chunkIZXN663G_js.translationsEn["pptx.chart.rowLabelsAria"],
8306
8306
  style: {
8307
8307
  padding: "1px 4px",
8308
8308
  fontWeight: 400,
@@ -9100,11 +9100,11 @@ function renderComboChart(element, chartData, categoryLabels) {
9100
9100
  }
9101
9101
  function renderChartElement(element) {
9102
9102
  if (element.type !== "chart") {
9103
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkWGLJ32FW_js.translationsEn["pptx.chart.heading"] });
9103
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkIZXN663G_js.translationsEn["pptx.chart.heading"] });
9104
9104
  }
9105
9105
  const chartData = element.chartData;
9106
9106
  if (!chartData || chartData.series.length === 0) {
9107
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkWGLJ32FW_js.translationsEn["pptx.chart.heading"] });
9107
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkIZXN663G_js.translationsEn["pptx.chart.heading"] });
9108
9108
  }
9109
9109
  const longestSeriesLength = chartData.series.reduce(
9110
9110
  (maxLength, series) => Math.max(maxLength, series.values.length),
@@ -10621,7 +10621,7 @@ function PresentationMediaController({
10621
10621
  }
10622
10622
  function renderMediaElement(element, mediaDataUrls, options) {
10623
10623
  if (element.type !== "media") {
10624
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkWGLJ32FW_js.translationsEn["pptx.media.title"] });
10624
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkIZXN663G_js.translationsEn["pptx.media.title"] });
10625
10625
  }
10626
10626
  const mediaType = element.mediaType;
10627
10627
  const mediaPath = element.mediaPath;
@@ -10651,7 +10651,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
10651
10651
  "img",
10652
10652
  {
10653
10653
  src: posterUrl,
10654
- alt: chunkWGLJ32FW_js.translationsEn["pptx.media.posterAlt"],
10654
+ alt: chunkIZXN663G_js.translationsEn["pptx.media.posterAlt"],
10655
10655
  className: "w-full h-full object-contain opacity-50"
10656
10656
  }
10657
10657
  ),
@@ -10672,7 +10672,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
10672
10672
  ]
10673
10673
  }
10674
10674
  ),
10675
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: chunkWGLJ32FW_js.translationsEn["pptx.media.notFound"] })
10675
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: chunkIZXN663G_js.translationsEn["pptx.media.notFound"] })
10676
10676
  ] })
10677
10677
  ] });
10678
10678
  }
@@ -10713,7 +10713,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
10713
10713
  "img",
10714
10714
  {
10715
10715
  src: posterUrl,
10716
- alt: chunkWGLJ32FW_js.translationsEn["pptx.media.videoPosterAlt"],
10716
+ alt: chunkIZXN663G_js.translationsEn["pptx.media.videoPosterAlt"],
10717
10717
  className: "w-full h-full object-contain"
10718
10718
  }
10719
10719
  ),
@@ -13797,7 +13797,7 @@ async function exportAllSlidesAsPdf(slideStageRef, totalSlides, setActiveSlide,
13797
13797
  onProgress?.(totalSlides, totalSlides);
13798
13798
  setActiveSlide(currentSlideIndex);
13799
13799
  if (images.length === 0) {
13800
- throw new Error(chunkWGLJ32FW_js.translationsEn["pptx.export.errorNoSlidesPdf"]);
13800
+ throw new Error(chunkIZXN663G_js.translationsEn["pptx.export.errorNoSlidesPdf"]);
13801
13801
  }
13802
13802
  const pdfBlobUrl = buildPdfFromImageData(images);
13803
13803
  chunkJWS3RQKN_js.downloadDataUrl(pdfBlobUrl, filename);
@@ -13846,7 +13846,7 @@ async function exportAllSlidesAsNotesPdf(slideStageRef, totalSlides, setActiveSl
13846
13846
  onProgress?.(totalSlides, totalSlides);
13847
13847
  setActiveSlide(currentSlideIndex);
13848
13848
  if (pages.length === 0) {
13849
- throw new Error(chunkWGLJ32FW_js.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
13849
+ throw new Error(chunkIZXN663G_js.translationsEn["pptx.export.errorNoSlidesNotesPdf"]);
13850
13850
  }
13851
13851
  const pdfDataUrl = buildNotesPdf(pages);
13852
13852
  chunkJWS3RQKN_js.downloadDataUrl(pdfDataUrl, filename);
@@ -13880,7 +13880,7 @@ async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide
13880
13880
  }
13881
13881
  setActiveSlide(currentSlideIndex);
13882
13882
  if (slideCanvases.length === 0) {
13883
- throw new Error(chunkWGLJ32FW_js.translationsEn["pptx.export.errorNoSlidesVideo"]);
13883
+ throw new Error(chunkIZXN663G_js.translationsEn["pptx.export.errorNoSlidesVideo"]);
13884
13884
  }
13885
13885
  const firstCanvas = slideCanvases[0];
13886
13886
  const recordingCanvas = document.createElement("canvas");
@@ -13888,7 +13888,7 @@ async function exportAllSlidesAsVideo(slideStageRef, totalSlides, setActiveSlide
13888
13888
  recordingCanvas.height = firstCanvas.height;
13889
13889
  const ctx = recordingCanvas.getContext("2d");
13890
13890
  if (!ctx) {
13891
- throw new Error(chunkWGLJ32FW_js.translationsEn["pptx.export.errorNo2dContext"]);
13891
+ throw new Error(chunkIZXN663G_js.translationsEn["pptx.export.errorNo2dContext"]);
13892
13892
  }
13893
13893
  const fps = 30;
13894
13894
  const stream = recordingCanvas.captureStream(fps);
@@ -13964,7 +13964,7 @@ async function exportAllSlidesAsGif(slideStageRef, totalSlides, setActiveSlide,
13964
13964
  }
13965
13965
  setActiveSlide(currentSlideIndex);
13966
13966
  if (frames.length === 0) {
13967
- throw new Error(chunkWGLJ32FW_js.translationsEn["pptx.export.errorNoSlidesGif"]);
13967
+ throw new Error(chunkIZXN663G_js.translationsEn["pptx.export.errorNoSlidesGif"]);
13968
13968
  }
13969
13969
  const gifBytes = chunkJWS3RQKN_js.encodeGif(frames, Math.round(slideDurationMs / 10));
13970
13970
  onProgress?.(totalSlides, totalSlides);
Binary file
Binary file