pptx-react-viewer 2.11.1 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/{AiChatPanel-RMQIJDUJ.mjs → AiChatPanel-CS4CONUO.mjs} +4 -4
  3. package/dist/AiChatPanel-CS4CONUO.mjs.br +0 -0
  4. package/dist/AiChatPanel-CS4CONUO.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-E6W3EACA.js → AiChatPanel-JIXSOZXN.js} +23 -23
  6. package/dist/AiChatPanel-JIXSOZXN.js.br +0 -0
  7. package/dist/AiChatPanel-JIXSOZXN.js.gz +0 -0
  8. package/dist/{Model3DScene-U4B4NZJT.js → Model3DScene-5KMJ4JL6.js} +2 -2
  9. package/dist/{Model3DScene-U4B4NZJT.js.br → Model3DScene-5KMJ4JL6.js.br} +0 -0
  10. package/dist/Model3DScene-5KMJ4JL6.js.gz +0 -0
  11. package/dist/{Model3DScene-WHSHBMR5.mjs → Model3DScene-RWFPSN6B.mjs} +1 -1
  12. package/dist/Model3DScene-RWFPSN6B.mjs.br +0 -0
  13. package/dist/Model3DScene-RWFPSN6B.mjs.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-77JP5XH5.mjs → SurfaceChart3DScene-2GZQM3LN.mjs} +1 -1
  15. package/dist/{SurfaceChart3DScene-77JP5XH5.mjs.br → SurfaceChart3DScene-2GZQM3LN.mjs.br} +0 -0
  16. package/dist/SurfaceChart3DScene-2GZQM3LN.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-5S43UBRD.js → SurfaceChart3DScene-BIOKIETC.js} +2 -2
  18. package/dist/SurfaceChart3DScene-BIOKIETC.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-BIOKIETC.js.gz +0 -0
  20. package/dist/{chunk-FAP6OPLL.js → chunk-2VUHJNWM.js} +243 -284
  21. package/dist/chunk-2VUHJNWM.js.br +0 -0
  22. package/dist/chunk-2VUHJNWM.js.gz +0 -0
  23. package/dist/{chunk-IOVOQ6ZJ.js → chunk-3GNSGGY2.js} +288 -1
  24. package/dist/chunk-3GNSGGY2.js.br +0 -0
  25. package/dist/chunk-3GNSGGY2.js.gz +0 -0
  26. package/dist/{chunk-NJ4PTG4F.mjs → chunk-AOED5MFM.mjs} +18 -39
  27. package/dist/chunk-AOED5MFM.mjs.br +0 -0
  28. package/dist/chunk-AOED5MFM.mjs.gz +0 -0
  29. package/dist/{chunk-PXYZFWDA.mjs → chunk-BJQSHVYH.mjs} +86 -61
  30. package/dist/chunk-BJQSHVYH.mjs.br +0 -0
  31. package/dist/chunk-BJQSHVYH.mjs.gz +0 -0
  32. package/dist/{chunk-DD54KUDG.mjs → chunk-CEUHGUZ4.mjs} +5 -46
  33. package/dist/chunk-CEUHGUZ4.mjs.br +0 -0
  34. package/dist/chunk-CEUHGUZ4.mjs.gz +0 -0
  35. package/dist/{chunk-RHR7GTDX.mjs → chunk-ECDKYPQ2.mjs} +288 -1
  36. package/dist/chunk-ECDKYPQ2.mjs.br +0 -0
  37. package/dist/chunk-ECDKYPQ2.mjs.gz +0 -0
  38. package/dist/{chunk-HF6L2CTF.mjs → chunk-EJRHYYKE.mjs} +1 -1
  39. package/dist/chunk-EJRHYYKE.mjs.br +0 -0
  40. package/dist/chunk-EJRHYYKE.mjs.gz +0 -0
  41. package/dist/{chunk-KDJBWJJH.js → chunk-PJUQQF3I.js} +328 -52
  42. package/dist/chunk-PJUQQF3I.js.br +0 -0
  43. package/dist/chunk-PJUQQF3I.js.gz +0 -0
  44. package/dist/{chunk-QT6BPOZM.js → chunk-PTGTFXPU.js} +345 -366
  45. package/dist/chunk-PTGTFXPU.js.br +0 -0
  46. package/dist/chunk-PTGTFXPU.js.gz +0 -0
  47. package/dist/{chunk-FV7HEYCX.mjs → chunk-QGHC65C4.mjs} +320 -53
  48. package/dist/chunk-QGHC65C4.mjs.br +0 -0
  49. package/dist/chunk-QGHC65C4.mjs.gz +0 -0
  50. package/dist/{chunk-IXBM3HWH.js → chunk-SP7U34QM.js} +1064 -1039
  51. package/dist/chunk-SP7U34QM.js.br +0 -0
  52. package/dist/chunk-SP7U34QM.js.gz +0 -0
  53. package/dist/{chunk-X3SFCKAF.js → chunk-ZIXSSQAZ.js} +3 -3
  54. package/dist/chunk-ZIXSSQAZ.js.br +0 -0
  55. package/dist/chunk-ZIXSSQAZ.js.gz +0 -0
  56. package/dist/i18n.js +4 -4
  57. package/dist/i18n.js.br +0 -0
  58. package/dist/i18n.js.gz +0 -0
  59. package/dist/i18n.mjs +1 -1
  60. package/dist/i18n.mjs.br +0 -0
  61. package/dist/i18n.mjs.gz +0 -0
  62. package/dist/index.js +36 -36
  63. package/dist/index.js.br +0 -0
  64. package/dist/index.js.gz +0 -0
  65. package/dist/index.mjs +6 -6
  66. package/dist/index.mjs.br +0 -0
  67. package/dist/index.mjs.gz +0 -0
  68. package/dist/internals.js +79 -79
  69. package/dist/internals.js.br +0 -0
  70. package/dist/internals.js.gz +0 -0
  71. package/dist/internals.mjs +4 -4
  72. package/dist/internals.mjs.br +0 -0
  73. package/dist/internals.mjs.gz +0 -0
  74. package/dist/pptx-viewer.css +1 -1
  75. package/dist/pptx-viewer.css.br +0 -0
  76. package/dist/pptx-viewer.css.gz +0 -0
  77. package/dist/viewer/index.js +22 -22
  78. package/dist/viewer/index.js.br +0 -0
  79. package/dist/viewer/index.js.gz +0 -0
  80. package/dist/viewer/index.mjs +6 -6
  81. package/dist/viewer/index.mjs.br +0 -0
  82. package/dist/viewer/index.mjs.gz +0 -0
  83. package/package.json +1 -1
  84. package/dist/AiChatPanel-E6W3EACA.js.br +0 -0
  85. package/dist/AiChatPanel-E6W3EACA.js.gz +0 -0
  86. package/dist/AiChatPanel-RMQIJDUJ.mjs.br +0 -0
  87. package/dist/AiChatPanel-RMQIJDUJ.mjs.gz +0 -0
  88. package/dist/Model3DScene-U4B4NZJT.js.gz +0 -0
  89. package/dist/Model3DScene-WHSHBMR5.mjs.br +0 -0
  90. package/dist/Model3DScene-WHSHBMR5.mjs.gz +0 -0
  91. package/dist/SurfaceChart3DScene-5S43UBRD.js.br +0 -0
  92. package/dist/SurfaceChart3DScene-5S43UBRD.js.gz +0 -0
  93. package/dist/SurfaceChart3DScene-77JP5XH5.mjs.gz +0 -0
  94. package/dist/chunk-DD54KUDG.mjs.br +0 -0
  95. package/dist/chunk-DD54KUDG.mjs.gz +0 -0
  96. package/dist/chunk-FAP6OPLL.js.br +0 -0
  97. package/dist/chunk-FAP6OPLL.js.gz +0 -0
  98. package/dist/chunk-FV7HEYCX.mjs.br +0 -0
  99. package/dist/chunk-FV7HEYCX.mjs.gz +0 -0
  100. package/dist/chunk-HF6L2CTF.mjs.br +0 -0
  101. package/dist/chunk-HF6L2CTF.mjs.gz +0 -0
  102. package/dist/chunk-IOVOQ6ZJ.js.br +0 -0
  103. package/dist/chunk-IOVOQ6ZJ.js.gz +0 -0
  104. package/dist/chunk-IXBM3HWH.js.br +0 -0
  105. package/dist/chunk-IXBM3HWH.js.gz +0 -0
  106. package/dist/chunk-KDJBWJJH.js.br +0 -0
  107. package/dist/chunk-KDJBWJJH.js.gz +0 -0
  108. package/dist/chunk-NJ4PTG4F.mjs.br +0 -0
  109. package/dist/chunk-NJ4PTG4F.mjs.gz +0 -0
  110. package/dist/chunk-PXYZFWDA.mjs.br +0 -0
  111. package/dist/chunk-PXYZFWDA.mjs.gz +0 -0
  112. package/dist/chunk-QT6BPOZM.js.br +0 -0
  113. package/dist/chunk-QT6BPOZM.js.gz +0 -0
  114. package/dist/chunk-RHR7GTDX.mjs.br +0 -0
  115. package/dist/chunk-RHR7GTDX.mjs.gz +0 -0
  116. package/dist/chunk-X3SFCKAF.js.br +0 -0
  117. package/dist/chunk-X3SFCKAF.js.gz +0 -0
@@ -1,8 +1,8 @@
1
- import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-HF6L2CTF.mjs';
2
- import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-NJ4PTG4F.mjs';
3
- import { SHAPE_PRESETS, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, ANIMATION_PRESET_OPTIONS, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getCropShapeClipPath, SLIDE_NAV_THUMBNAIL_WIDTH, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, TOOLBAR_SECTIONS, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-DD54KUDG.mjs';
4
- import { LOCALE_CATALOG, translationsEn } from './chunk-RHR7GTDX.mjs';
5
- import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, isElementRendered, isElementActionable, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, RULER_THICKNESS, RULER_FONT_SIZE, revealedSmartArtNodeCount, buildSmartArtA11y, buildCssGradientFromShapeStyle, resolveGroupChildFill, getGroupChildParentFill, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, svgGradientFillRef, isInkElement, getElementLabel, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, themeToCssVars, applyMotionPathPreset, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, createBackstagePresentation, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, buildSummaryZoomView, getImageColorWashStyle, isImageLikeElement, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, buildContextMenuEntries, themeColorSchemesEqual, STATUS_BAR_CLASSES, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, activateModalFocus, buildCollaborationShareUrl, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, 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, getSubstituteFontFamily, getWarpPath, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_VIRTUALIZATION_THRESHOLD, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptor, PRESET_THEMES, isUrlSafe, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, groupIntoParagraphs, substituteFieldText, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, getConnectionSites, generateTicks, rulerDragToGuidePosition, getCommentMarkerPosition, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_LABELS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, mergeSlideTransition, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, chartDataChangeType, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, flattenTagCollections, formatCommentTimestamp, clearMotionPath, DIRECTIONAL_PRESETS, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-FV7HEYCX.mjs';
1
+ import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-EJRHYYKE.mjs';
2
+ import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-AOED5MFM.mjs';
3
+ import { SHAPE_PRESETS, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, ANIMATION_PRESET_OPTIONS, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getCropShapeClipPath, SLIDE_NAV_THUMBNAIL_WIDTH, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, TOOLBAR_SECTIONS, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-CEUHGUZ4.mjs';
4
+ import { LOCALE_CATALOG, translationsEn } from './chunk-ECDKYPQ2.mjs';
5
+ import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, isElementRendered, isElementActionable, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, RULER_THICKNESS, RULER_FONT_SIZE, revealedSmartArtNodeCount, buildSmartArtA11y, buildCssGradientFromShapeStyle, resolveGroupChildFill, getGroupChildParentFill, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, svgGradientFillRef, isInkElement, getElementLabel, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, createBackstagePresentation, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, buildSummaryZoomView, getImageColorWashStyle, isImageLikeElement, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, STATUS_BAR_CLASSES, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, activateModalFocus, buildCollaborationShareUrl, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, 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, getSubstituteFontFamily, getWarpPath, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_VIRTUALIZATION_THRESHOLD, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptor, PEN_COLORS, HIGHLIGHTER_COLORS, PRESET_THEMES, isUrlSafe, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, groupIntoParagraphs, substituteFieldText, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, getConnectionSites, generateTicks, rulerDragToGuidePosition, getCommentMarkerPosition, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_LABELS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, mergeSlideTransition, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, chartDataChangeType, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, flattenTagCollections, formatCommentTimestamp, clearMotionPath, DIRECTIONAL_PRESETS, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-QGHC65C4.mjs';
6
6
  import React34, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, useContext, Suspense, useLayoutEffect, Fragment as Fragment$1, useDeferredValue } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
@@ -1452,7 +1452,7 @@ function AccountPage() {
1452
1452
  return void 0;
1453
1453
  });
1454
1454
  };
1455
- const version = "2.11.0" ;
1455
+ const version = "2.11.1" ;
1456
1456
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1457
1457
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1458
1458
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -8708,7 +8708,7 @@ function FailedToLoad() {
8708
8708
  var LazyModel3DScene = React34.lazy(
8709
8709
  async () => {
8710
8710
  try {
8711
- return await import('./Model3DScene-WHSHBMR5.mjs');
8711
+ return await import('./Model3DScene-RWFPSN6B.mjs');
8712
8712
  } catch {
8713
8713
  return { default: FailedToLoad };
8714
8714
  }
@@ -11796,6 +11796,7 @@ var ElementRenderer = React34.memo(
11796
11796
  {
11797
11797
  "data-pptx-element": "true",
11798
11798
  "data-element-id": el.id,
11799
+ "data-pptx-action": isActionable ? "click" : void 0,
11799
11800
  role: ariaRole,
11800
11801
  "aria-label": ariaLabel,
11801
11802
  "aria-roledescription": ariaRoleDescription,
@@ -13520,7 +13521,9 @@ function SlideItemInner({
13520
13521
  onDrop,
13521
13522
  slideRef
13522
13523
  }) {
13524
+ const { t } = useTranslation();
13523
13525
  const isHidden = Boolean(slide.hidden);
13526
+ const cue = hiddenSlideCue(slide.hidden, "rail", slideIndex);
13524
13527
  const handleContextMenu = useCallback(
13525
13528
  (e) => {
13526
13529
  if (canEdit && onAddSection) {
@@ -13544,6 +13547,8 @@ function SlideItemInner({
13544
13547
  ref: slideRef,
13545
13548
  "aria-label": `Go to slide ${slideIndex + 1}`,
13546
13549
  "aria-current": isActive ? "true" : void 0,
13550
+ "aria-describedby": cue.labelId,
13551
+ "data-pptx-slide-hidden": cue.marker,
13547
13552
  className: cn(
13548
13553
  "group relative flex w-full items-center gap-1 cursor-pointer border-0 bg-transparent py-0.5 px-1 text-left transition-all",
13549
13554
  isActive && "bg-accent/40 before:absolute before:left-0 before:top-1 before:bottom-1 before:w-[3px] before:bg-primary before:rounded-r",
@@ -13564,6 +13569,7 @@ function SlideItemInner({
13564
13569
  "text-[10px] tabular-nums text-right select-none w-full",
13565
13570
  isActive ? "text-primary font-medium" : "text-muted-foreground"
13566
13571
  ),
13572
+ style: isHidden ? { backgroundImage: HIDDEN_SLIDE_SLASH_GRADIENT } : void 0,
13567
13573
  children: slideIndex + 1
13568
13574
  }
13569
13575
  ),
@@ -13601,7 +13607,10 @@ function SlideItemInner({
13601
13607
  /* @__PURE__ */ jsx(LuMessageSquare, { className: "w-2 h-2" }),
13602
13608
  slide.comments?.length
13603
13609
  ] }),
13604
- isHidden && /* @__PURE__ */ jsx("div", { className: "absolute bottom-0.5 right-0.5 z-10", children: /* @__PURE__ */ jsx(LuEyeOff, { className: "w-3 h-3 text-muted-foreground" }) }),
13610
+ isHidden && /* @__PURE__ */ jsxs("div", { className: "absolute bottom-0.5 right-0.5 z-10", id: cue.labelId, children: [
13611
+ /* @__PURE__ */ jsx(LuEyeOff, { className: "w-3 h-3 text-muted-foreground" }),
13612
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: t(HIDDEN_SLIDE_LABEL_KEY) })
13613
+ ] }),
13605
13614
  rehearsalTimings && typeof rehearsalTimings[slideIndex] === "number" && /* @__PURE__ */ jsx("div", { className: "absolute bottom-0.5 left-0.5 z-10", children: /* @__PURE__ */ jsx("span", { className: "text-[8px] font-mono text-amber-400/80 tabular-nums bg-black/50 px-0.5 rounded", children: formatTimingMs(rehearsalTimings[slideIndex]) }) })
13606
13615
  ]
13607
13616
  }
@@ -14801,6 +14810,8 @@ function SlideCardImpl({
14801
14810
  onDragLeave,
14802
14811
  onDrop
14803
14812
  }) {
14813
+ const { t } = useTranslation();
14814
+ const cue = hiddenSlideCue(slide.hidden, "sorter", index);
14804
14815
  return /* @__PURE__ */ jsxs(
14805
14816
  "div",
14806
14817
  {
@@ -14809,6 +14820,8 @@ function SlideCardImpl({
14809
14820
  isDragTarget ? "border-primary bg-primary/20" : isSelected ? "border-primary bg-primary/10 ring-1 ring-primary/50" : isActive ? "border-primary/50 bg-primary/5" : "border-border bg-background/50 hover:border-border",
14810
14821
  slide.hidden && "opacity-40"
14811
14822
  ),
14823
+ "data-pptx-slide-hidden": cue.marker,
14824
+ "aria-describedby": cue.labelId,
14812
14825
  onClick: (e) => onSlideClick(e, index),
14813
14826
  onDoubleClick: () => onDoubleClick(index),
14814
14827
  onContextMenu: (e) => onContextMenu(e, index),
@@ -14824,13 +14837,17 @@ function SlideCardImpl({
14824
14837
  "span",
14825
14838
  {
14826
14839
  className: cn(
14827
- "text-[11px] font-medium",
14840
+ "text-[11px] font-medium px-0.5",
14828
14841
  isSelected ? "text-primary" : isActive ? "text-primary/70" : "text-muted-foreground"
14829
14842
  ),
14843
+ style: cue.hidden ? { backgroundImage: HIDDEN_SLIDE_SLASH_GRADIENT } : void 0,
14830
14844
  children: index + 1
14831
14845
  }
14832
14846
  ),
14833
- slide.hidden && /* @__PURE__ */ jsx(LuEyeOff, { className: "h-3 w-3 text-muted-foreground" })
14847
+ cue.hidden && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", id: cue.labelId, children: [
14848
+ /* @__PURE__ */ jsx(LuEyeOff, { className: "h-3 w-3 text-muted-foreground" }),
14849
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] uppercase tracking-wide text-muted-foreground", children: t(HIDDEN_SLIDE_LABEL_KEY) })
14850
+ ] })
14834
14851
  ] }),
14835
14852
  isSelected && selectedCount > 1 && /* @__PURE__ */ jsx("div", { className: "absolute top-2 right-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-white text-[10px] font-bold", children: selectionOrder })
14836
14853
  ]
@@ -19825,15 +19842,13 @@ function animationTypeColor(anim) {
19825
19842
  }
19826
19843
  return "bg-muted-foreground/40";
19827
19844
  }
19828
- function animationTypeLabel(anim) {
19829
- return anim.entrance ?? anim.emphasis ?? anim.exit ?? "custom";
19830
- }
19831
19845
  function AnimationTimelineSection({
19832
19846
  selectedElementId,
19833
19847
  canEdit,
19834
19848
  handlers
19835
19849
  }) {
19836
19850
  const { t } = useTranslation();
19851
+ const effectLabel = (anim) => animationEffectLabel(anim, (key) => t(key));
19837
19852
  const {
19838
19853
  sortedAnimations,
19839
19854
  dragIndex,
@@ -19869,7 +19884,7 @@ function AnimationTimelineSection({
19869
19884
  left: `${bar.leftPercent}%`,
19870
19885
  width: `${Math.max(bar.widthPercent, 2)}%`
19871
19886
  },
19872
- title: `${getTimelineLabel(bar.anim)} - ${animationTypeLabel(bar.anim)} (${bar.anim.durationMs ?? 500}ms)`,
19887
+ title: `${getTimelineLabel(bar.anim)} - ${effectLabel(bar.anim)} (${bar.anim.durationMs ?? 500}ms)`,
19873
19888
  onMouseEnter: () => handleAnimationHover(bar.anim),
19874
19889
  onMouseLeave: handleAnimationHoverEnd
19875
19890
  },
@@ -30012,26 +30027,6 @@ function PresentationAnnotationOverlay({
30012
30027
  }
30013
30028
  );
30014
30029
  }
30015
- var PEN_COLORS = [
30016
- "#ff0000",
30017
- "#0000ff",
30018
- "#00aa00",
30019
- "#ff8800",
30020
- "#ffffff",
30021
- "#000000",
30022
- "#ff00ff",
30023
- "#00cccc"
30024
- ];
30025
- var HIGHLIGHTER_COLORS = [
30026
- "#ffff00",
30027
- "#00ff00",
30028
- "#ff69b4",
30029
- "#00bfff",
30030
- "#ff8c00",
30031
- "#adff2f",
30032
- "#ff6347",
30033
- "#87ceeb"
30034
- ];
30035
30030
  function PresentationToolbar({
30036
30031
  presentationTool,
30037
30032
  penColor,
@@ -30090,19 +30085,24 @@ function PresentationToolbar({
30090
30085
  setShowHighlighterColors((prev) => !prev);
30091
30086
  setShowPenColors(false);
30092
30087
  }, []);
30093
- const toolBtnClass = (tool) => `flex items-center justify-center w-9 h-9 rounded-md transition-colors ${presentationTool === tool ? "bg-white/25 text-white" : "text-white/70 hover:text-white hover:bg-white/10"}`;
30094
- const navBtnClass = "flex items-center justify-center w-9 h-9 rounded-md transition-colors text-white/70 hover:text-white hover:bg-white/10 disabled:text-white/20 disabled:cursor-not-allowed";
30088
+ const toolBtnClass = (tool) => presentationTool === tool ? PRESENT_TOOLBAR_CLASSES.toggleActive : PRESENT_TOOLBAR_CLASSES.toggle;
30089
+ const navBtnClass = PRESENT_TOOLBAR_CLASSES.button;
30095
30090
  return /* @__PURE__ */ jsxs(
30096
30091
  "div",
30097
30092
  {
30098
30093
  ref: toolbarRef,
30099
- className: "flex items-center gap-1 px-3 py-2 rounded-xl bg-neutral-900/90 backdrop-blur-md border border-white/15 shadow-2xl",
30094
+ "data-pptx-present-toolbar": true,
30095
+ role: "toolbar",
30096
+ tabIndex: -1,
30097
+ "aria-label": t("pptx.toolbar.presentationToolbarAria"),
30098
+ className: PRESENT_TOOLBAR_CLASSES.container,
30100
30099
  onClick: (e) => e.stopPropagation(),
30101
30100
  children: [
30102
30101
  /* @__PURE__ */ jsx(
30103
30102
  "button",
30104
30103
  {
30105
30104
  type: "button",
30105
+ "data-pptx-present-control": "previous",
30106
30106
  className: navBtnClass,
30107
30107
  onClick: () => onMovePresentationSlide(-1),
30108
30108
  disabled: currentSlideIndex === 0,
@@ -30111,11 +30111,12 @@ function PresentationToolbar({
30111
30111
  children: /* @__PURE__ */ jsx(LuChevronLeft, { size: 18 })
30112
30112
  }
30113
30113
  ),
30114
- /* @__PURE__ */ jsx("span", { className: "text-xs font-mono tabular-nums text-white/80 px-1.5 select-none min-w-[48px] text-center", children: formatSlideCounter(currentSlideIndex, totalSlides) }),
30114
+ /* @__PURE__ */ jsx("span", { "data-pptx-present-control": "counter", className: PRESENT_TOOLBAR_CLASSES.counter, children: formatSlideCounter(currentSlideIndex, totalSlides) }),
30115
30115
  /* @__PURE__ */ jsx(
30116
30116
  "button",
30117
30117
  {
30118
30118
  type: "button",
30119
+ "data-pptx-present-control": "next",
30119
30120
  className: navBtnClass,
30120
30121
  onClick: () => onMovePresentationSlide(1),
30121
30122
  disabled: currentSlideIndex >= totalSlides - 1,
@@ -30124,26 +30125,36 @@ function PresentationToolbar({
30124
30125
  children: /* @__PURE__ */ jsx(LuChevronRight, { size: 18 })
30125
30126
  }
30126
30127
  ),
30127
- /* @__PURE__ */ jsx("div", { className: "w-px h-6 bg-white/20 mx-1" }),
30128
+ /* @__PURE__ */ jsx(
30129
+ "div",
30130
+ {
30131
+ "data-pptx-present-control": "divider-navigation",
30132
+ className: PRESENT_TOOLBAR_CLASSES.divider
30133
+ }
30134
+ ),
30128
30135
  /* @__PURE__ */ jsxs(
30129
30136
  "div",
30130
30137
  {
30131
- className: "flex items-center gap-1.5 text-xs font-mono tabular-nums text-white/60 px-1 select-none",
30138
+ "data-pptx-present-control": "timer",
30139
+ className: PRESENT_TOOLBAR_CLASSES.timer,
30132
30140
  title: t("pptx.presenter.elapsed"),
30141
+ "aria-label": t("pptx.presenter.elapsed"),
30133
30142
  children: [
30134
30143
  /* @__PURE__ */ jsx(LuTimer, { size: 14 }),
30135
30144
  /* @__PURE__ */ jsx("span", { children: formatElapsed(elapsed) })
30136
30145
  ]
30137
30146
  }
30138
30147
  ),
30139
- /* @__PURE__ */ jsx("div", { className: "w-px h-6 bg-white/20 mx-1" }),
30148
+ /* @__PURE__ */ jsx("div", { "data-pptx-present-control": "divider-timer", className: PRESENT_TOOLBAR_CLASSES.divider }),
30140
30149
  /* @__PURE__ */ jsx(
30141
30150
  "button",
30142
30151
  {
30143
30152
  type: "button",
30153
+ "data-pptx-present-control": "laser",
30144
30154
  className: toolBtnClass("laser"),
30145
30155
  onClick: () => handleToolClick("laser"),
30146
30156
  title: t("pptx.presentation.laserPointer"),
30157
+ "aria-label": t("pptx.presentation.laserPointer"),
30147
30158
  children: /* @__PURE__ */ jsx(LuMousePointer2, { size: 18 })
30148
30159
  }
30149
30160
  ),
@@ -30152,16 +30163,18 @@ function PresentationToolbar({
30152
30163
  "button",
30153
30164
  {
30154
30165
  type: "button",
30166
+ "data-pptx-present-control": "pen",
30155
30167
  className: toolBtnClass("pen"),
30156
30168
  onClick: () => handleToolClick("pen"),
30157
30169
  onContextMenu: handlePenRightClick,
30158
30170
  title: t("pptx.presentation.pen"),
30171
+ "aria-label": t("pptx.presentation.pen"),
30159
30172
  children: [
30160
30173
  /* @__PURE__ */ jsx(LuPenTool, { size: 18 }),
30161
30174
  /* @__PURE__ */ jsx(
30162
30175
  "div",
30163
30176
  {
30164
- className: "absolute bottom-0.5 left-1/2 -translate-x-1/2 w-3 h-0.5 rounded-full",
30177
+ className: PRESENT_TOOLBAR_CLASSES.swatchBar,
30165
30178
  style: { backgroundColor: penColor }
30166
30179
  }
30167
30180
  )
@@ -30172,21 +30185,23 @@ function PresentationToolbar({
30172
30185
  "button",
30173
30186
  {
30174
30187
  type: "button",
30175
- className: "flex items-center justify-center w-7 h-9 -ml-1 rounded-r-md transition-colors text-white/50 hover:text-white hover:bg-white/10",
30188
+ "data-pptx-present-control": "pen-color",
30189
+ className: PRESENT_TOOLBAR_CLASSES.caret,
30176
30190
  onClick: () => {
30177
30191
  setShowPenColors((prev) => !prev);
30178
30192
  setShowHighlighterColors(false);
30179
30193
  },
30180
- title: `${t("pptx.presentation.pen")} \u2014 color`,
30194
+ title: t("pptx.presentationToolbar.penColor"),
30195
+ "aria-label": t("pptx.presentationToolbar.penColor"),
30181
30196
  children: /* @__PURE__ */ jsx(LuChevronDown, { size: 12 })
30182
30197
  }
30183
30198
  ),
30184
- showPenColors && /* @__PURE__ */ jsx("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 p-3 bg-neutral-800 rounded-lg border border-white/20 shadow-xl grid grid-cols-4 gap-2", children: PEN_COLORS.map((color) => /* @__PURE__ */ jsx(
30199
+ showPenColors && /* @__PURE__ */ jsx("div", { className: PRESENT_TOOLBAR_CLASSES.palette, children: PEN_COLORS.map((color) => /* @__PURE__ */ jsx(
30185
30200
  "button",
30186
30201
  {
30187
30202
  type: "button",
30188
- "aria-label": `${t("pptx.presentation.pen")} ${color}`,
30189
- className: `w-9 h-9 rounded-full border-2 transition-transform hover:scale-110 ${penColor === color ? "border-white" : "border-white/20"}`,
30203
+ "aria-label": t("pptx.presentationToolbar.penColorValue", { color }),
30204
+ className: `${PRESENT_TOOLBAR_CLASSES.swatch} ${penColor === color ? "border-white" : "border-white/20"}`,
30190
30205
  style: { backgroundColor: color },
30191
30206
  onClick: () => {
30192
30207
  onSetPenColor(color);
@@ -30204,16 +30219,18 @@ function PresentationToolbar({
30204
30219
  "button",
30205
30220
  {
30206
30221
  type: "button",
30222
+ "data-pptx-present-control": "highlighter",
30207
30223
  className: toolBtnClass("highlighter"),
30208
30224
  onClick: () => handleToolClick("highlighter"),
30209
30225
  onContextMenu: handleHighlighterRightClick,
30210
30226
  title: t("pptx.presentation.highlighter"),
30227
+ "aria-label": t("pptx.presentation.highlighter"),
30211
30228
  children: [
30212
30229
  /* @__PURE__ */ jsx(LuHighlighter, { size: 18 }),
30213
30230
  /* @__PURE__ */ jsx(
30214
30231
  "div",
30215
30232
  {
30216
- className: "absolute bottom-0.5 left-1/2 -translate-x-1/2 w-3 h-0.5 rounded-full",
30233
+ className: PRESENT_TOOLBAR_CLASSES.swatchBar,
30217
30234
  style: { backgroundColor: highlighterColor }
30218
30235
  }
30219
30236
  )
@@ -30224,21 +30241,23 @@ function PresentationToolbar({
30224
30241
  "button",
30225
30242
  {
30226
30243
  type: "button",
30227
- className: "flex items-center justify-center w-7 h-9 -ml-1 rounded-r-md transition-colors text-white/50 hover:text-white hover:bg-white/10",
30244
+ "data-pptx-present-control": "highlighter-color",
30245
+ className: PRESENT_TOOLBAR_CLASSES.caret,
30228
30246
  onClick: () => {
30229
30247
  setShowHighlighterColors((prev) => !prev);
30230
30248
  setShowPenColors(false);
30231
30249
  },
30232
- title: `${t("pptx.presentation.highlighter")} \u2014 color`,
30250
+ title: t("pptx.presentationToolbar.highlighterColor"),
30251
+ "aria-label": t("pptx.presentationToolbar.highlighterColor"),
30233
30252
  children: /* @__PURE__ */ jsx(LuChevronDown, { size: 12 })
30234
30253
  }
30235
30254
  ),
30236
- showHighlighterColors && /* @__PURE__ */ jsx("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 p-3 bg-neutral-800 rounded-lg border border-white/20 shadow-xl grid grid-cols-4 gap-2", children: HIGHLIGHTER_COLORS.map((color) => /* @__PURE__ */ jsx(
30255
+ showHighlighterColors && /* @__PURE__ */ jsx("div", { className: PRESENT_TOOLBAR_CLASSES.palette, children: HIGHLIGHTER_COLORS.map((color) => /* @__PURE__ */ jsx(
30237
30256
  "button",
30238
30257
  {
30239
30258
  type: "button",
30240
- "aria-label": `${t("pptx.presentation.highlighter")} ${color}`,
30241
- className: `w-9 h-9 rounded-full border-2 transition-transform hover:scale-110 ${highlighterColor === color ? "border-white" : "border-white/20"}`,
30259
+ "aria-label": t("pptx.presentationToolbar.highlighterColorValue", { color }),
30260
+ className: `${PRESENT_TOOLBAR_CLASSES.swatch} ${highlighterColor === color ? "border-white" : "border-white/20"}`,
30242
30261
  style: { backgroundColor: color },
30243
30262
  onClick: () => {
30244
30263
  onSetHighlighterColor(color);
@@ -30255,9 +30274,11 @@ function PresentationToolbar({
30255
30274
  "button",
30256
30275
  {
30257
30276
  type: "button",
30277
+ "data-pptx-present-control": "eraser",
30258
30278
  className: toolBtnClass("eraser"),
30259
30279
  onClick: () => handleToolClick("eraser"),
30260
30280
  title: t("pptx.presentation.eraser"),
30281
+ "aria-label": t("pptx.presentation.eraser"),
30261
30282
  children: /* @__PURE__ */ jsx(LuEraser, { size: 18 })
30262
30283
  }
30263
30284
  ),
@@ -30265,22 +30286,25 @@ function PresentationToolbar({
30265
30286
  "button",
30266
30287
  {
30267
30288
  type: "button",
30268
- className: `flex items-center justify-center w-9 h-9 rounded-md transition-colors ${hasAnnotations ? "text-white/70 hover:text-red-400 hover:bg-white/10" : "text-white/30 cursor-not-allowed"}`,
30289
+ "data-pptx-present-control": "clear",
30290
+ className: `${PRESENT_TOOLBAR_CLASSES.button} ${hasAnnotations ? "hover:text-red-400" : ""}`,
30269
30291
  onClick: hasAnnotations ? onClearAnnotations : void 0,
30270
30292
  title: t("pptx.presentation.clearAnnotations"),
30293
+ "aria-label": t("pptx.presentation.clearAnnotations"),
30271
30294
  disabled: !hasAnnotations,
30272
30295
  children: /* @__PURE__ */ jsx(LuTrash2, { size: 18 })
30273
30296
  }
30274
30297
  ),
30275
- /* @__PURE__ */ jsx("div", { className: "w-px h-6 bg-white/20 mx-1" }),
30298
+ /* @__PURE__ */ jsx("div", { "data-pptx-present-control": "divider-tools", className: PRESENT_TOOLBAR_CLASSES.divider }),
30276
30299
  onTogglePresenterView && /* @__PURE__ */ jsx(
30277
30300
  "button",
30278
30301
  {
30279
30302
  type: "button",
30280
- className: `flex items-center justify-center w-9 h-9 rounded-md transition-colors ${presenterMode ? "bg-white/25 text-white" : "text-white/70 hover:text-white hover:bg-white/10"}`,
30303
+ "data-pptx-present-control": "presenter-view",
30304
+ className: presenterMode ? PRESENT_TOOLBAR_CLASSES.toggleActive : PRESENT_TOOLBAR_CLASSES.toggle,
30281
30305
  onClick: onTogglePresenterView,
30282
- title: t("pptx.presenter.presenterView", { defaultValue: "Presenter view" }),
30283
- "aria-label": t("pptx.presenter.presenterView", { defaultValue: "Presenter view" }),
30306
+ title: t("pptx.presenter.presenterView"),
30307
+ "aria-label": t("pptx.presenter.presenterView"),
30284
30308
  children: /* @__PURE__ */ jsx(LuPanelRight, { size: 18 })
30285
30309
  }
30286
30310
  ),
@@ -30288,7 +30312,8 @@ function PresentationToolbar({
30288
30312
  "button",
30289
30313
  {
30290
30314
  type: "button",
30291
- className: "flex items-center justify-center w-9 h-9 rounded-md transition-colors text-white/70 hover:text-red-400 hover:bg-white/10",
30315
+ "data-pptx-present-control": "end",
30316
+ className: `${PRESENT_TOOLBAR_CLASSES.button} hover:text-red-400`,
30292
30317
  onClick: onEndPresentation,
30293
30318
  title: t("pptx.presenter.endPresentation"),
30294
30319
  "aria-label": t("pptx.presenter.endPresentation"),
@@ -34935,7 +34960,7 @@ ${url}`)) {
34935
34960
  mode === "present" && /* @__PURE__ */ jsx(
34936
34961
  "div",
34937
34962
  {
34938
- className: "absolute bottom-6 left-1/2 -translate-x-1/2 z-[80] transition-opacity duration-300",
34963
+ className: PRESENT_TOOLBAR_CLASSES.wrapper,
34939
34964
  style: {
34940
34965
  opacity: annotations.toolbarVisible ? 1 : 0,
34941
34966
  pointerEvents: annotations.toolbarVisible ? "auto" : "none"
@@ -34970,7 +34995,7 @@ ${url}`)) {
34970
34995
  )
34971
34996
  );
34972
34997
  }
34973
- var AiChatPanel = lazy(() => import('./AiChatPanel-RMQIJDUJ.mjs'));
34998
+ var AiChatPanel = lazy(() => import('./AiChatPanel-CS4CONUO.mjs'));
34974
34999
  function AiChatPanelLazy(props) {
34975
35000
  return /* @__PURE__ */ jsx(
34976
35001
  Suspense,
Binary file
Binary file
@@ -1,5 +1,5 @@
1
- import { translationsEn } from './chunk-RHR7GTDX.mjs';
2
- import { SHAPE_PRESET_DEFS, computeValueRangeForChart, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, isTemplateElement, isImageLikeElement, clampCropValue, runMediaCommand, findMediaElementByElementId, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, resolveParagraphStrutFontSize, colorWithOpacity, normalizeHexColor, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, suppressesCssBorder, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, buildSvgGradientDef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, getRoundRectRadiusPx, substituteFieldText, resolveUnderlineDecorationStyle, resolveAutoFitFontScale, getSubstituteFontFamily, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, evaluatePresetShape, sanitizeGradientStops, getGradientTileFlipCss, getGradientTileRectCss, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, svgGradientFillRef, computeColumnBoundaries, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getPatternSvg, ooxmlDashToCssBorderStyle, cell3DBevelCss, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, resolveFontRefIdx, tintColor2, shadeColor2, ooxmlGradientAngleToCssDegrees, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, hexToRgbChannels, chartPartToAttrs } from './chunk-FV7HEYCX.mjs';
1
+ import { translationsEn } from './chunk-ECDKYPQ2.mjs';
2
+ import { SHAPE_PRESET_DEFS, computeValueRangeForChart, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, isTemplateElement, getImageFitStyle, isImageLikeElement, runMediaCommand, findMediaElementByElementId, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, resolveParagraphStrutFontSize, colorWithOpacity, normalizeHexColor, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, suppressesCssBorder, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, buildSvgGradientDef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, getRoundRectRadiusPx, substituteFieldText, resolveUnderlineDecorationStyle, resolveAutoFitFontScale, getSubstituteFontFamily, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, evaluatePresetShape, sanitizeGradientStops, getGradientTileFlipCss, getGradientTileRectCss, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, svgGradientFillRef, computeColumnBoundaries, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getPatternSvg, ooxmlDashToCssBorderStyle, cell3DBevelCss, getChartStylePalette, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, resolveFontRefIdx, tintColor2, shadeColor2, ooxmlGradientAngleToCssDegrees, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, hexToRgbChannels, chartPartToAttrs } from './chunk-QGHC65C4.mjs';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import React6, { useState, useEffect, useMemo, Suspense, useRef, useCallback, useLayoutEffect } from 'react';
@@ -320,50 +320,9 @@ function getImageMaskStyle(element) {
320
320
  return { clipPath };
321
321
  }
322
322
  function getImageRenderStyle(element) {
323
- const maskStyle = getImageMaskStyle(element) || {};
324
- if (!isImageLikeElement(element)) {
325
- return {
326
- ...maskStyle,
327
- width: "100%",
328
- height: "100%",
329
- objectFit: "cover"
330
- };
331
- }
332
- const cropLeft = clampCropValue(element.cropLeft);
333
- const cropTop = clampCropValue(element.cropTop);
334
- const cropRight = clampCropValue(element.cropRight);
335
- const cropBottom = clampCropValue(element.cropBottom);
336
- const hasCrop = cropLeft + cropRight > 1e-4 || cropTop + cropBottom > 1e-4;
337
- if (!hasCrop) {
338
- return {
339
- ...maskStyle,
340
- width: "100%",
341
- height: "100%",
342
- objectFit: "cover"
343
- };
344
- }
345
- const safeHorizontalScale = cropLeft + cropRight >= 0.99 ? 0.99 / (cropLeft + cropRight) : 1;
346
- const safeVerticalScale = cropTop + cropBottom >= 0.99 ? 0.99 / (cropTop + cropBottom) : 1;
347
- const normalizedLeft = clampCropValue(cropLeft * safeHorizontalScale);
348
- const normalizedRight = clampCropValue(cropRight * safeHorizontalScale);
349
- const normalizedTop = clampCropValue(cropTop * safeVerticalScale);
350
- const normalizedBottom = clampCropValue(cropBottom * safeVerticalScale);
351
- const remainingWidth = Math.max(0.01, 1 - normalizedLeft - normalizedRight);
352
- const remainingHeight = Math.max(0.01, 1 - normalizedTop - normalizedBottom);
353
- const tx = Math.round(-normalizedLeft / remainingWidth * 1e4) / 100;
354
- const ty = Math.round(-normalizedTop / remainingHeight * 1e4) / 100;
355
- const sx = Math.round(1 / remainingWidth * 1e6) / 1e6;
356
- const sy = Math.round(1 / remainingHeight * 1e6) / 1e6;
357
323
  return {
358
- ...maskStyle,
359
- position: "absolute",
360
- width: "100%",
361
- height: "100%",
362
- maxWidth: "none",
363
- maxHeight: "none",
364
- objectFit: "fill",
365
- transformOrigin: "top left",
366
- transform: `translate(${tx}%, ${ty}%) scale(${sx}, ${sy})`
324
+ ...getImageMaskStyle(element) || {},
325
+ ...getImageFitStyle(element)
367
326
  };
368
327
  }
369
328
  var CROP_SHAPE_CLIP_PATHS = {
@@ -6253,7 +6212,7 @@ function FailedToLoad() {
6253
6212
  var LazySurfaceChart3DScene = React6.lazy(
6254
6213
  async () => {
6255
6214
  try {
6256
- return await import('./SurfaceChart3DScene-77JP5XH5.mjs');
6215
+ return await import('./SurfaceChart3DScene-2GZQM3LN.mjs');
6257
6216
  } catch {
6258
6217
  return { default: FailedToLoad };
6259
6218
  }
Binary file
Binary file