pptx-react-viewer 3.20.0 → 3.21.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 (222) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/{AiChatPanel-NBKG2CWE.js → AiChatPanel-B3QM7MIC.js} +25 -25
  3. package/dist/AiChatPanel-B3QM7MIC.js.br +0 -0
  4. package/dist/AiChatPanel-B3QM7MIC.js.gz +0 -0
  5. package/dist/{AiChatPanel-OXCJVBUS.mjs → AiChatPanel-UD756KAU.mjs} +4 -4
  6. package/dist/AiChatPanel-UD756KAU.mjs.br +0 -0
  7. package/dist/AiChatPanel-UD756KAU.mjs.gz +0 -0
  8. package/dist/{Area3DChartScene-7QPDPVR6.js → Area3DChartScene-435BFPLY.js} +2 -2
  9. package/dist/{Area3DChartScene-7QPDPVR6.js.br → Area3DChartScene-435BFPLY.js.br} +0 -0
  10. package/dist/Area3DChartScene-435BFPLY.js.gz +0 -0
  11. package/dist/{Area3DChartScene-5M3LEY6M.mjs → Area3DChartScene-MQKUWVMS.mjs} +1 -1
  12. package/dist/Area3DChartScene-MQKUWVMS.mjs.br +0 -0
  13. package/dist/Area3DChartScene-MQKUWVMS.mjs.gz +0 -0
  14. package/dist/{Bar3DChartScene-NNSTLO4V.mjs → Bar3DChartScene-D4GMQGPN.mjs} +1 -1
  15. package/dist/Bar3DChartScene-D4GMQGPN.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-D4GMQGPN.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-TAMPS6ZS.js → Bar3DChartScene-KEYLVYJA.js} +2 -2
  18. package/dist/Bar3DChartScene-KEYLVYJA.js.br +0 -0
  19. package/dist/Bar3DChartScene-KEYLVYJA.js.gz +0 -0
  20. package/dist/{Line3DChartScene-7S2DD45T.mjs → Line3DChartScene-B3AWFXE4.mjs} +1 -1
  21. package/dist/Line3DChartScene-B3AWFXE4.mjs.br +0 -0
  22. package/dist/Line3DChartScene-B3AWFXE4.mjs.gz +0 -0
  23. package/dist/{Line3DChartScene-T4SH37NU.js → Line3DChartScene-JYGXLE56.js} +2 -2
  24. package/dist/Line3DChartScene-JYGXLE56.js.br +0 -0
  25. package/dist/Line3DChartScene-JYGXLE56.js.gz +0 -0
  26. package/dist/{Model3DScene-CXRM7D3J.mjs → Model3DScene-4TG4YRVM.mjs} +1 -1
  27. package/dist/Model3DScene-4TG4YRVM.mjs.br +0 -0
  28. package/dist/Model3DScene-4TG4YRVM.mjs.gz +0 -0
  29. package/dist/{Model3DScene-IDRM7EZD.js → Model3DScene-JF5J6N6W.js} +2 -2
  30. package/dist/Model3DScene-JF5J6N6W.js.br +0 -0
  31. package/dist/Model3DScene-JF5J6N6W.js.gz +0 -0
  32. package/dist/{PieChart3DScene-VSCSEY2G.mjs → PieChart3DScene-4BQ6PR7P.mjs} +1 -1
  33. package/dist/PieChart3DScene-4BQ6PR7P.mjs.br +0 -0
  34. package/dist/PieChart3DScene-4BQ6PR7P.mjs.gz +0 -0
  35. package/dist/{PieChart3DScene-66Y5UP64.js → PieChart3DScene-CCQWSH3W.js} +2 -2
  36. package/dist/{PieChart3DScene-66Y5UP64.js.br → PieChart3DScene-CCQWSH3W.js.br} +0 -0
  37. package/dist/PieChart3DScene-CCQWSH3W.js.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-NSHDK657.mjs → SurfaceChart3DScene-FRQC5HBG.mjs} +1 -1
  39. package/dist/SurfaceChart3DScene-FRQC5HBG.mjs.br +0 -0
  40. package/dist/SurfaceChart3DScene-FRQC5HBG.mjs.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-6J4A6XUH.js → SurfaceChart3DScene-UVZPT6OD.js} +2 -2
  42. package/dist/{SurfaceChart3DScene-6J4A6XUH.js.br → SurfaceChart3DScene-UVZPT6OD.js.br} +0 -0
  43. package/dist/SurfaceChart3DScene-UVZPT6OD.js.gz +0 -0
  44. package/dist/{chunk-W3RBIIZW.js → chunk-BFPIMU6Q.js} +1227 -1032
  45. package/dist/chunk-BFPIMU6Q.js.br +0 -0
  46. package/dist/chunk-BFPIMU6Q.js.gz +0 -0
  47. package/dist/{chunk-5PDGHTRJ.mjs → chunk-BXMPXKV5.mjs} +453 -258
  48. package/dist/chunk-BXMPXKV5.mjs.br +0 -0
  49. package/dist/chunk-BXMPXKV5.mjs.gz +0 -0
  50. package/dist/{chunk-2IBDKMY2.mjs → chunk-EJMDD4VV.mjs} +115 -69
  51. package/dist/chunk-EJMDD4VV.mjs.br +0 -0
  52. package/dist/chunk-EJMDD4VV.mjs.gz +0 -0
  53. package/dist/{chunk-WRXXPCZ7.js → chunk-H7QPQ4OR.js} +5 -5
  54. package/dist/chunk-H7QPQ4OR.js.br +0 -0
  55. package/dist/chunk-H7QPQ4OR.js.gz +0 -0
  56. package/dist/{chunk-FE4L26FT.mjs → chunk-HZEOZUUH.mjs} +7 -3
  57. package/dist/chunk-HZEOZUUH.mjs.br +0 -0
  58. package/dist/chunk-HZEOZUUH.mjs.gz +0 -0
  59. package/dist/{chunk-I5LPYESF.js → chunk-M24DEOP6.js} +4 -0
  60. package/dist/chunk-M24DEOP6.js.br +0 -0
  61. package/dist/chunk-M24DEOP6.js.gz +0 -0
  62. package/dist/{chunk-7SFA4A2E.js → chunk-M6QJKPU2.js} +1160 -1114
  63. package/dist/chunk-M6QJKPU2.js.br +0 -0
  64. package/dist/chunk-M6QJKPU2.js.gz +0 -0
  65. package/dist/chunk-MRWGWKA2.mjs +1076 -0
  66. package/dist/chunk-MRWGWKA2.mjs.br +0 -0
  67. package/dist/chunk-MRWGWKA2.mjs.gz +0 -0
  68. package/dist/{chunk-AVTH627G.mjs → chunk-R664EPDC.mjs} +4 -0
  69. package/dist/chunk-R664EPDC.mjs.br +0 -0
  70. package/dist/chunk-R664EPDC.mjs.gz +0 -0
  71. package/dist/{chunk-DW66NEST.js → chunk-SUZIFHXI.js} +187 -183
  72. package/dist/chunk-SUZIFHXI.js.br +0 -0
  73. package/dist/chunk-SUZIFHXI.js.gz +0 -0
  74. package/dist/{chunk-NGWA6L3N.js → chunk-T6V342NP.js} +448 -114
  75. package/dist/chunk-T6V342NP.js.br +0 -0
  76. package/dist/{chunk-NGWA6L3N.js.gz → chunk-T6V342NP.js.gz} +0 -0
  77. package/dist/{chunk-N4FLKADC.mjs → chunk-TMTQJAGK.mjs} +445 -115
  78. package/dist/chunk-TMTQJAGK.mjs.br +0 -0
  79. package/dist/{chunk-N4FLKADC.mjs.gz → chunk-TMTQJAGK.mjs.gz} +0 -0
  80. package/dist/{chunk-AYH6XSE7.mjs → chunk-TOOKJUPG.mjs} +1 -1
  81. package/dist/chunk-TOOKJUPG.mjs.br +0 -0
  82. package/dist/chunk-TOOKJUPG.mjs.gz +0 -0
  83. package/dist/chunk-YQQXFRZT.js +1160 -0
  84. package/dist/chunk-YQQXFRZT.js.br +0 -0
  85. package/dist/chunk-YQQXFRZT.js.gz +0 -0
  86. package/dist/i18n/de.cjs +4 -0
  87. package/dist/i18n/de.cjs.br +0 -0
  88. package/dist/i18n/de.cjs.gz +0 -0
  89. package/dist/i18n/de.mjs +4 -0
  90. package/dist/i18n/de.mjs.br +0 -0
  91. package/dist/i18n/de.mjs.gz +0 -0
  92. package/dist/i18n/es.cjs +4 -0
  93. package/dist/i18n/es.cjs.br +0 -0
  94. package/dist/i18n/es.cjs.gz +0 -0
  95. package/dist/i18n/es.mjs +4 -0
  96. package/dist/i18n/es.mjs.br +0 -0
  97. package/dist/i18n/es.mjs.gz +0 -0
  98. package/dist/i18n/fr.cjs +4 -0
  99. package/dist/i18n/fr.cjs.br +0 -0
  100. package/dist/i18n/fr.cjs.gz +0 -0
  101. package/dist/i18n/fr.mjs +4 -0
  102. package/dist/i18n/fr.mjs.br +0 -0
  103. package/dist/i18n/fr.mjs.gz +0 -0
  104. package/dist/i18n/zh-CN.cjs +4 -0
  105. package/dist/i18n/zh-CN.cjs.br +0 -0
  106. package/dist/i18n/zh-CN.cjs.gz +0 -0
  107. package/dist/i18n/zh-CN.mjs +4 -0
  108. package/dist/i18n/zh-CN.mjs.br +0 -0
  109. package/dist/i18n/zh-CN.mjs.gz +0 -0
  110. package/dist/i18n.js +4 -4
  111. package/dist/i18n.js.br +0 -0
  112. package/dist/i18n.js.gz +0 -0
  113. package/dist/i18n.mjs +1 -1
  114. package/dist/i18n.mjs.br +0 -0
  115. package/dist/i18n.mjs.gz +0 -0
  116. package/dist/index.d.ts +60 -2
  117. package/dist/index.js +48 -48
  118. package/dist/index.js.br +0 -0
  119. package/dist/index.js.gz +0 -0
  120. package/dist/index.mjs +6 -6
  121. package/dist/index.mjs.br +0 -0
  122. package/dist/index.mjs.gz +0 -0
  123. package/dist/internals.d.ts +75 -43
  124. package/dist/internals.js +105 -105
  125. package/dist/internals.js.br +0 -0
  126. package/dist/internals.js.gz +0 -0
  127. package/dist/internals.mjs +4 -4
  128. package/dist/internals.mjs.br +0 -0
  129. package/dist/internals.mjs.gz +0 -0
  130. package/dist/viewer/index.d.ts +70 -6
  131. package/dist/viewer/index.js +27 -27
  132. package/dist/viewer/index.js.br +0 -0
  133. package/dist/viewer/index.js.gz +0 -0
  134. package/dist/viewer/index.mjs +6 -6
  135. package/dist/viewer/index.mjs.br +0 -0
  136. package/dist/viewer/index.mjs.gz +0 -0
  137. package/dist/{y-webrtc-TAJBJIKH.js → y-webrtc-6H3ROPRC.js} +1079 -128
  138. package/dist/y-webrtc-6H3ROPRC.js.br +0 -0
  139. package/dist/y-webrtc-6H3ROPRC.js.gz +0 -0
  140. package/dist/{y-webrtc-7DLWG3LJ.mjs → y-webrtc-XJDH2YTR.mjs} +984 -33
  141. package/dist/y-webrtc-XJDH2YTR.mjs.br +0 -0
  142. package/dist/y-webrtc-XJDH2YTR.mjs.gz +0 -0
  143. package/dist/{y-websocket-YRPS7AFF.js → y-websocket-6ISNPON7.js} +79 -80
  144. package/dist/y-websocket-6ISNPON7.js.br +0 -0
  145. package/dist/y-websocket-6ISNPON7.js.gz +0 -0
  146. package/dist/{y-websocket-HUEA7LH7.mjs → y-websocket-SJ3NCLBZ.mjs} +3 -4
  147. package/dist/y-websocket-SJ3NCLBZ.mjs.br +0 -0
  148. package/dist/y-websocket-SJ3NCLBZ.mjs.gz +0 -0
  149. package/package.json +7 -4
  150. package/dist/AiChatPanel-NBKG2CWE.js.br +0 -0
  151. package/dist/AiChatPanel-NBKG2CWE.js.gz +0 -0
  152. package/dist/AiChatPanel-OXCJVBUS.mjs.br +0 -0
  153. package/dist/AiChatPanel-OXCJVBUS.mjs.gz +0 -0
  154. package/dist/Area3DChartScene-5M3LEY6M.mjs.br +0 -0
  155. package/dist/Area3DChartScene-5M3LEY6M.mjs.gz +0 -0
  156. package/dist/Area3DChartScene-7QPDPVR6.js.gz +0 -0
  157. package/dist/Bar3DChartScene-NNSTLO4V.mjs.br +0 -0
  158. package/dist/Bar3DChartScene-NNSTLO4V.mjs.gz +0 -0
  159. package/dist/Bar3DChartScene-TAMPS6ZS.js.br +0 -0
  160. package/dist/Bar3DChartScene-TAMPS6ZS.js.gz +0 -0
  161. package/dist/Line3DChartScene-7S2DD45T.mjs.br +0 -0
  162. package/dist/Line3DChartScene-7S2DD45T.mjs.gz +0 -0
  163. package/dist/Line3DChartScene-T4SH37NU.js.br +0 -0
  164. package/dist/Line3DChartScene-T4SH37NU.js.gz +0 -0
  165. package/dist/Model3DScene-CXRM7D3J.mjs.br +0 -0
  166. package/dist/Model3DScene-CXRM7D3J.mjs.gz +0 -0
  167. package/dist/Model3DScene-IDRM7EZD.js.br +0 -0
  168. package/dist/Model3DScene-IDRM7EZD.js.gz +0 -0
  169. package/dist/PieChart3DScene-66Y5UP64.js.gz +0 -0
  170. package/dist/PieChart3DScene-VSCSEY2G.mjs.br +0 -0
  171. package/dist/PieChart3DScene-VSCSEY2G.mjs.gz +0 -0
  172. package/dist/SurfaceChart3DScene-6J4A6XUH.js.gz +0 -0
  173. package/dist/SurfaceChart3DScene-NSHDK657.mjs.br +0 -0
  174. package/dist/SurfaceChart3DScene-NSHDK657.mjs.gz +0 -0
  175. package/dist/chunk-2IBDKMY2.mjs.br +0 -0
  176. package/dist/chunk-2IBDKMY2.mjs.gz +0 -0
  177. package/dist/chunk-5PDGHTRJ.mjs.br +0 -0
  178. package/dist/chunk-5PDGHTRJ.mjs.gz +0 -0
  179. package/dist/chunk-7SFA4A2E.js.br +0 -0
  180. package/dist/chunk-7SFA4A2E.js.gz +0 -0
  181. package/dist/chunk-AVTH627G.mjs.br +0 -0
  182. package/dist/chunk-AVTH627G.mjs.gz +0 -0
  183. package/dist/chunk-AYH6XSE7.mjs.br +0 -0
  184. package/dist/chunk-AYH6XSE7.mjs.gz +0 -0
  185. package/dist/chunk-DW66NEST.js.br +0 -0
  186. package/dist/chunk-DW66NEST.js.gz +0 -0
  187. package/dist/chunk-DWIIYEOG.mjs +0 -9596
  188. package/dist/chunk-DWIIYEOG.mjs.br +0 -0
  189. package/dist/chunk-DWIIYEOG.mjs.gz +0 -0
  190. package/dist/chunk-FE4L26FT.mjs.br +0 -0
  191. package/dist/chunk-FE4L26FT.mjs.gz +0 -0
  192. package/dist/chunk-FXGO5KLU.mjs +0 -304
  193. package/dist/chunk-FXGO5KLU.mjs.br +0 -0
  194. package/dist/chunk-FXGO5KLU.mjs.gz +0 -0
  195. package/dist/chunk-I5LPYESF.js.br +0 -0
  196. package/dist/chunk-I5LPYESF.js.gz +0 -0
  197. package/dist/chunk-N4FLKADC.mjs.br +0 -0
  198. package/dist/chunk-NB7M4XBG.js +0 -318
  199. package/dist/chunk-NB7M4XBG.js.br +0 -0
  200. package/dist/chunk-NB7M4XBG.js.gz +0 -0
  201. package/dist/chunk-NGWA6L3N.js.br +0 -0
  202. package/dist/chunk-W3RBIIZW.js.br +0 -0
  203. package/dist/chunk-W3RBIIZW.js.gz +0 -0
  204. package/dist/chunk-WRXXPCZ7.js.br +0 -0
  205. package/dist/chunk-WRXXPCZ7.js.gz +0 -0
  206. package/dist/chunk-ZYQT7I5C.js +0 -9743
  207. package/dist/chunk-ZYQT7I5C.js.br +0 -0
  208. package/dist/chunk-ZYQT7I5C.js.gz +0 -0
  209. package/dist/y-webrtc-7DLWG3LJ.mjs.br +0 -0
  210. package/dist/y-webrtc-7DLWG3LJ.mjs.gz +0 -0
  211. package/dist/y-webrtc-TAJBJIKH.js.br +0 -0
  212. package/dist/y-webrtc-TAJBJIKH.js.gz +0 -0
  213. package/dist/y-websocket-HUEA7LH7.mjs.br +0 -0
  214. package/dist/y-websocket-HUEA7LH7.mjs.gz +0 -0
  215. package/dist/y-websocket-YRPS7AFF.js.br +0 -0
  216. package/dist/y-websocket-YRPS7AFF.js.gz +0 -0
  217. package/dist/yjs-4ED7E5CZ.mjs +0 -2
  218. package/dist/yjs-4ED7E5CZ.mjs.br +0 -0
  219. package/dist/yjs-4ED7E5CZ.mjs.gz +0 -0
  220. package/dist/yjs-OWUA3UHD.js +0 -419
  221. package/dist/yjs-OWUA3UHD.js.br +0 -0
  222. package/dist/yjs-OWUA3UHD.js.gz +0 -0
Binary file
Binary file
@@ -1,8 +1,8 @@
1
- import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-AYH6XSE7.mjs';
2
- import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, LoadingState, ViewerOptionsContext, SmartArt3DContext, SurfaceChart3DContext, BarChart3DContext, LineChart3DContext, AreaChart3DContext, PieChart3DContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, SlideBackgroundImageLayer, StaticElementRenderer, safePrompt, scopeLayoutOptionsToActiveSlide, ChartPartSelectionProvider, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, ElementRenderer, SmartArtRenderer, playAnimationSound, ResizeHandles, renderStrokeView, useChartPartSelection, resolveSmartArtDataPalette } from './chunk-5PDGHTRJ.mjs';
3
- import { SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, cn, SLIDE_NAV_THUMBNAIL_WIDTH, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, isConnectorOrLineElement, GRID_SIZE, MIN_ELEMENT_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, DEFAULT_STROKE_COLOR, STROKE_DASH_OPTIONS } from './chunk-FE4L26FT.mjs';
4
- import { SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, buildDeckSaveOptions, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, normalizeHexColor, themeToCssVars, shouldClearAutosaveCacheOnClose, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, getDensePanelTouchTargetPx, shouldStickyActionRow, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent2, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, hasTextProperties, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, ACTION_BUTTON_PRESETS, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, hasShapeProperties, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, getSelectionTextStyleFlags, getInlineEditorSelectionResult, selectedParagraphBulletKind, elementBulletKind, selectionBulletKind, TEXT_DECORATION_FLAGS, nextToggleValue, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, attachEditorImagePaste, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, resolveElementInteractivity, getElementTransformWithoutRotation, getElementTransform, buildChartQuickActionsDescriptor, applyChartElementToggle, CHART_QUICK_ACTION_BUTTON_SIZE, applyChartStylePreset, hideChartSeries, restoreFilteredSeries, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, hasMultipleSelectedTableCells, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, buildFreeformShapeElement, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, isImageLikeElement, mergeSlideTransition, getElementLabel, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, hasTiltData, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setDataLabelsRangeCache, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, canInteractWithElement, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, shouldShowAccessibilitySection, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, EFFECT_SOUND_CATALOGUE, normalizeTableStyleGuid, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, updateMergeAttrsInRawXml, resolveDisplayedChartType, CHART_TYPE_OPTIONS, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, setSmartArtNodeStyle, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, updateSmartArtNodeText, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, rebuildDrawingShapesIfCleared, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-N4FLKADC.mjs';
5
- import { LOCALE_CATALOG, ALIGNMENT_LABEL_KEYS } from './chunk-AVTH627G.mjs';
1
+ import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-TOOKJUPG.mjs';
2
+ import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, LoadingState, ViewerOptionsContext, SmartArt3DContext, SurfaceChart3DContext, BarChart3DContext, LineChart3DContext, AreaChart3DContext, PieChart3DContext, useFollowMode, useBroadcastFollower, SlideBackgroundImageLayer, StaticElementRenderer, safePrompt, scopeLayoutOptionsToActiveSlide, ChartPartSelectionProvider, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useYjsDocumentSync, useCollaborationLivePatch, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, ElementRenderer, SmartArtRenderer, playAnimationSound, ResizeHandles, renderStrokeView, useChartPartSelection, resolveSmartArtDataPalette } from './chunk-BXMPXKV5.mjs';
3
+ import { SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, cn, SLIDE_NAV_THUMBNAIL_WIDTH, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, isConnectorOrLineElement, GRID_SIZE, MIN_ELEMENT_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, DEFAULT_STROKE_COLOR, STROKE_DASH_OPTIONS } from './chunk-HZEOZUUH.mjs';
4
+ import { SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, normalizeHexColor, themeToCssVars, shouldClearAutosaveCacheOnClose, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, getDensePanelTouchTargetPx, shouldStickyActionRow, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, buildDeckSaveOptions, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent2, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, hasTextProperties, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, ACTION_BUTTON_PRESETS, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, hasShapeProperties, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, getSelectionTextStyleFlags, getInlineEditorSelectionResult, selectedParagraphBulletKind, elementBulletKind, selectionBulletKind, TEXT_DECORATION_FLAGS, nextToggleValue, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, attachEditorImagePaste, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, resolveElementInteractivity, getElementTransformWithoutRotation, getElementTransform, buildChartQuickActionsDescriptor, applyChartElementToggle, CHART_QUICK_ACTION_BUTTON_SIZE, applyChartStylePreset, hideChartSeries, restoreFilteredSeries, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, hasMultipleSelectedTableCells, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, buildFreeformShapeElement, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, isImageLikeElement, mergeSlideTransition, getElementLabel, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, hasTiltData, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setDataLabelsRangeCache, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, canInteractWithElement, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, shouldShowAccessibilitySection, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, EFFECT_SOUND_CATALOGUE, normalizeTableStyleGuid, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, updateMergeAttrsInRawXml, resolveDisplayedChartType, CHART_TYPE_OPTIONS, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, setSmartArtNodeStyle, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, updateSmartArtNodeText, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, rebuildDrawingShapesIfCleared, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-TMTQJAGK.mjs';
5
+ import { LOCALE_CATALOG, ALIGNMENT_LABEL_KEYS } from './chunk-R664EPDC.mjs';
6
6
  import React6, { createContext, lazy, forwardRef, useEffect, useState, useCallback, useMemo, useRef, useId, useContext, Fragment as Fragment$1, useDeferredValue, Suspense, useSyncExternalStore, useLayoutEffect } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
@@ -1811,7 +1811,7 @@ function AccountPage() {
1811
1811
  return void 0;
1812
1812
  });
1813
1813
  };
1814
- const version = "3.19.2" ;
1814
+ const version = "3.20.1" ;
1815
1815
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1816
1816
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1817
1817
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -3444,7 +3444,7 @@ function CustomShowsControls({
3444
3444
  onClick: onCreateCustomShow,
3445
3445
  className: "px-2 py-1 rounded bg-muted hover:bg-accent text-[11px] transition-colors",
3446
3446
  title: t("pptx.customShows.createTooltip"),
3447
- children: "+ Show"
3447
+ children: t("pptx.customShows.addShow")
3448
3448
  }
3449
3449
  ),
3450
3450
  activeCustomShowId && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -3495,7 +3495,7 @@ function CustomShowsControls({
3495
3495
  onClick: onCreateCustomShow,
3496
3496
  className: "px-2 py-1 rounded bg-muted hover:bg-accent text-[11px] transition-colors",
3497
3497
  title: t("pptx.customShows.createTooltip"),
3498
- children: "+ Show"
3498
+ children: t("pptx.customShows.addShow")
3499
3499
  }
3500
3500
  )
3501
3501
  ] });
@@ -4460,7 +4460,7 @@ function TextSection(p) {
4460
4460
  ] }) })
4461
4461
  ] })
4462
4462
  ] }),
4463
- /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: "Font" })
4463
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: t("pptx.ribbon.font") })
4464
4464
  ] }),
4465
4465
  sep,
4466
4466
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-0.5", children: [
@@ -4582,7 +4582,7 @@ function TextSection(p) {
4582
4582
  }
4583
4583
  )
4584
4584
  ] }),
4585
- /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: "Paragraph" })
4585
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: t("pptx.ribbon.paragraph") })
4586
4586
  ] })
4587
4587
  ] });
4588
4588
  }
@@ -4682,7 +4682,14 @@ function ViewSection(p) {
4682
4682
  title: t("pptx.ribbon.toggleGuides")
4683
4683
  }
4684
4684
  ),
4685
- /* @__PURE__ */ jsx(RibbonToggle, { label: "Snap to grid", checked: p.snapToGrid, onChange: p.onSetSnapToGrid })
4685
+ /* @__PURE__ */ jsx(
4686
+ RibbonToggle,
4687
+ {
4688
+ label: t("pptx.settings.snapToGrid"),
4689
+ checked: p.snapToGrid,
4690
+ onChange: p.onSetSnapToGrid
4691
+ }
4692
+ )
4686
4693
  ] }),
4687
4694
  /* @__PURE__ */ jsxs(RibbonCommandStack, { children: [
4688
4695
  /* @__PURE__ */ jsx(
@@ -4722,7 +4729,7 @@ function ViewSection(p) {
4722
4729
  RibbonCommand,
4723
4730
  {
4724
4731
  compact: true,
4725
- label: "H Guide",
4732
+ label: t("pptx.view.hGuide"),
4726
4733
  icon: /* @__PURE__ */ jsx(LuRuler, {}),
4727
4734
  onClick: () => p.onAddGuide("h"),
4728
4735
  title: t("pptx.view.addHorizontalGuide")
@@ -4732,7 +4739,7 @@ function ViewSection(p) {
4732
4739
  RibbonCommand,
4733
4740
  {
4734
4741
  compact: true,
4735
- label: "V Guide",
4742
+ label: t("pptx.view.vGuide"),
4736
4743
  icon: /* @__PURE__ */ jsx(LuRuler, {}),
4737
4744
  onClick: () => p.onAddGuide("v"),
4738
4745
  title: t("pptx.view.addVerticalGuide")
@@ -4788,6 +4795,7 @@ function MobileSheet({
4788
4795
  headerRight
4789
4796
  }) {
4790
4797
  const sheetRef = useRef(null);
4798
+ const { t } = useTranslation();
4791
4799
  const { dragY, dragging, handlers } = useSheetDismissDrag(onClose);
4792
4800
  useModalFocus(open, sheetRef, onClose);
4793
4801
  if (!open) {
@@ -4799,7 +4807,7 @@ function MobileSheet({
4799
4807
  "button",
4800
4808
  {
4801
4809
  type: "button",
4802
- "aria-label": "Close",
4810
+ "aria-label": t("pptx.mobileSheet.close"),
4803
4811
  className: "absolute inset-0 bg-black/40 backdrop-blur-[2px] animate-in fade-in duration-150",
4804
4812
  onClick: onClose
4805
4813
  }
@@ -4810,7 +4818,7 @@ function MobileSheet({
4810
4818
  ref: sheetRef,
4811
4819
  role: "dialog",
4812
4820
  "aria-modal": "true",
4813
- "aria-label": typeof title === "string" ? title : "Mobile panel",
4821
+ "aria-label": typeof title === "string" ? title : t("pptx.mobileSheet.ariaLabel"),
4814
4822
  tabIndex: -1,
4815
4823
  className: cn(
4816
4824
  "relative bg-background border-t border-border rounded-t-2xl shadow-2xl flex flex-col overflow-hidden",
@@ -4840,7 +4848,7 @@ function MobileSheet({
4840
4848
  "button",
4841
4849
  {
4842
4850
  type: "button",
4843
- "aria-label": "Close",
4851
+ "aria-label": t("pptx.mobileSheet.close"),
4844
4852
  onPointerDown: (event) => event.stopPropagation(),
4845
4853
  onClick: onClose,
4846
4854
  style: { minWidth: MIN_TOUCH_TARGET_PX, minHeight: MIN_TOUCH_TARGET_PX },
@@ -5636,17 +5644,32 @@ function RecordSection({
5636
5644
  onRecordFromBeginning,
5637
5645
  onRecordFromCurrent
5638
5646
  }) {
5647
+ const { t } = useTranslation();
5639
5648
  return /* @__PURE__ */ jsxs(Fragment, { children: [
5640
- /* @__PURE__ */ jsx(RibbonGroup, { label: "Camera", children: /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuCamera, {}), label: "Cameo", disabled: true }) }),
5641
- /* @__PURE__ */ jsxs(RibbonGroup, { label: "Record", children: [
5642
- /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuVideo, {}), label: "From Beginning", onClick: onRecordFromBeginning }),
5643
- /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuPlay, {}), label: "From Current Slide", onClick: onRecordFromCurrent })
5649
+ /* @__PURE__ */ jsx(RibbonGroup, { label: t("pptx.record.camera"), children: /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuCamera, {}), label: t("pptx.record.cameo"), disabled: true }) }),
5650
+ /* @__PURE__ */ jsxs(RibbonGroup, { label: t("pptx.ribbon.tab.record"), children: [
5651
+ /* @__PURE__ */ jsx(
5652
+ RibbonCommand,
5653
+ {
5654
+ icon: /* @__PURE__ */ jsx(LuVideo, {}),
5655
+ label: t("pptx.slideShow.fromBeginning"),
5656
+ onClick: onRecordFromBeginning
5657
+ }
5658
+ ),
5659
+ /* @__PURE__ */ jsx(
5660
+ RibbonCommand,
5661
+ {
5662
+ icon: /* @__PURE__ */ jsx(LuPlay, {}),
5663
+ label: t("pptx.slideShow.fromCurrent"),
5664
+ onClick: onRecordFromCurrent
5665
+ }
5666
+ )
5644
5667
  ] }),
5645
- /* @__PURE__ */ jsxs(RibbonGroup, { label: "Manage", children: [
5646
- /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuEraser, {}), label: "Clear", disabled: true }),
5647
- /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuRotateCcw, {}), label: "Reset to Cameo", disabled: true })
5668
+ /* @__PURE__ */ jsxs(RibbonGroup, { label: t("pptx.record.manage"), children: [
5669
+ /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuEraser, {}), label: t("pptx.record.clear"), disabled: true }),
5670
+ /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuRotateCcw, {}), label: t("pptx.record.resetToCameo"), disabled: true })
5648
5671
  ] }),
5649
- /* @__PURE__ */ jsx(RibbonGroup, { label: "Help", children: /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuCircleHelp, {}), label: "Learn More", disabled: true }) })
5672
+ /* @__PURE__ */ jsx(RibbonGroup, { label: t("pptx.ribbon.tab.help"), children: /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuCircleHelp, {}), label: t("pptx.record.learnMore"), disabled: true }) })
5650
5673
  ] });
5651
5674
  }
5652
5675
  function TabRowActions(p) {
@@ -9950,7 +9973,7 @@ function SlideItemInner({
9950
9973
  {
9951
9974
  type: "button",
9952
9975
  ref: slideRef,
9953
- "aria-label": `Go to slide ${slideIndex + 1}`,
9976
+ "aria-label": t("pptx.slidesPanel.goToSlide", { n: slideIndex + 1 }),
9954
9977
  "aria-current": isActive ? "true" : void 0,
9955
9978
  "aria-describedby": cue.labelId,
9956
9979
  "data-pptx-slide-hidden": cue.marker,
@@ -12983,8 +13006,8 @@ function SlideNotesPanel({
12983
13006
  "aria-expanded": isExpanded,
12984
13007
  "aria-controls": "slide-notes-content",
12985
13008
  children: [
12986
- "Notes",
12987
- !isExpanded && hasNotes && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 text-[10px]", children: "(has notes)" })
13009
+ t("pptx.notes.title"),
13010
+ !isExpanded && hasNotes && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 text-[10px]", children: t("pptx.notes.hasNotes") })
12988
13011
  ]
12989
13012
  }
12990
13013
  ),
@@ -23058,7 +23081,7 @@ function AdvancedTextFormatting({
23058
23081
  label
23059
23082
  ] }, label)) }),
23060
23083
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23061
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Highlight" }),
23084
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.text.highlightColor") }),
23062
23085
  /* @__PURE__ */ jsx(
23063
23086
  "input",
23064
23087
  {
@@ -23205,7 +23228,7 @@ function AdvancedTextFormatting({
23205
23228
  onChange: (e) => onUpdateTextStyle({ autoFit: e.target.checked })
23206
23229
  }
23207
23230
  ),
23208
- "Auto-fit text to shape"
23231
+ t("pptx.textProperties.autoFitToShape")
23209
23232
  ] })
23210
23233
  ] });
23211
23234
  }
@@ -23248,7 +23271,7 @@ function TextReflectionSection({
23248
23271
  ] }),
23249
23272
  hasReflection && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 pl-4", children: [
23250
23273
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23251
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Blur" }),
23274
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.blur") }),
23252
23275
  /* @__PURE__ */ jsx(
23253
23276
  "input",
23254
23277
  {
@@ -23265,7 +23288,7 @@ function TextReflectionSection({
23265
23288
  )
23266
23289
  ] }),
23267
23290
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23268
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Offset" }),
23291
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.offset") }),
23269
23292
  /* @__PURE__ */ jsx(
23270
23293
  "input",
23271
23294
  {
@@ -23365,7 +23388,7 @@ function TextEffectsPanel({
23365
23388
  ] }),
23366
23389
  hasShadow && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 pl-4", children: [
23367
23390
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23368
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Color" }),
23391
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.color") }),
23369
23392
  /* @__PURE__ */ jsx(
23370
23393
  "input",
23371
23394
  {
@@ -23380,7 +23403,7 @@ function TextEffectsPanel({
23380
23403
  )
23381
23404
  ] }),
23382
23405
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23383
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Opacity" }),
23406
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.opacity") }),
23384
23407
  /* @__PURE__ */ jsx(
23385
23408
  "input",
23386
23409
  {
@@ -23397,7 +23420,7 @@ function TextEffectsPanel({
23397
23420
  )
23398
23421
  ] }),
23399
23422
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23400
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Blur" }),
23423
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.blur") }),
23401
23424
  /* @__PURE__ */ jsx(
23402
23425
  "input",
23403
23426
  {
@@ -23473,7 +23496,7 @@ function TextEffectsPanel({
23473
23496
  ] }),
23474
23497
  hasGlow && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 pl-4", children: [
23475
23498
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23476
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Color" }),
23499
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.color") }),
23477
23500
  /* @__PURE__ */ jsx(
23478
23501
  "input",
23479
23502
  {
@@ -23488,7 +23511,7 @@ function TextEffectsPanel({
23488
23511
  )
23489
23512
  ] }),
23490
23513
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23491
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Opacity" }),
23514
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.opacity") }),
23492
23515
  /* @__PURE__ */ jsx(
23493
23516
  "input",
23494
23517
  {
@@ -23505,7 +23528,7 @@ function TextEffectsPanel({
23505
23528
  )
23506
23529
  ] }),
23507
23530
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23508
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Size" }),
23531
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.size") }),
23509
23532
  /* @__PURE__ */ jsx(
23510
23533
  "input",
23511
23534
  {
@@ -32976,7 +32999,7 @@ function useTableStyleMapHandlers(input) {
32976
32999
  var AiChatPanel = lazy(async () => {
32977
33000
  const [{ useChat }, { default: Panel }] = await Promise.all([
32978
33001
  import('@ai-sdk/react'),
32979
- import('./AiChatPanel-OXCJVBUS.mjs')
33002
+ import('./AiChatPanel-UD756KAU.mjs')
32980
33003
  ]);
32981
33004
  function BoundAiChatPanel(props) {
32982
33005
  return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
@@ -33446,13 +33469,14 @@ function MobileDismissSheet({
33446
33469
  className,
33447
33470
  children
33448
33471
  }) {
33472
+ const { t } = useTranslation();
33449
33473
  const { dragY, handlers } = useSheetDismissDrag(onClose);
33450
33474
  return /* @__PURE__ */ jsxs(Fragment, { children: [
33451
33475
  /* @__PURE__ */ jsx(
33452
33476
  "button",
33453
33477
  {
33454
33478
  type: "button",
33455
- "aria-label": "Close",
33479
+ "aria-label": t("pptx.mobileSheet.close"),
33456
33480
  onClick: onClose,
33457
33481
  className: "md:hidden fixed inset-0 z-20 bg-black/40 backdrop-blur-[2px] animate-in fade-in duration-150"
33458
33482
  }
@@ -36123,6 +36147,44 @@ function useAiPanelController(input) {
36123
36147
  showChangeBatch
36124
36148
  };
36125
36149
  }
36150
+ function useCollaborationDocumentSync(input) {
36151
+ const { collaboration, ...state } = input;
36152
+ const latest = useRef(input);
36153
+ latest.current = input;
36154
+ const getSourceBytes = useCallback(() => {
36155
+ const bytes = latest.current.content;
36156
+ return bytes instanceof Uint8Array ? bytes : bytes ? new Uint8Array(bytes) : null;
36157
+ }, []);
36158
+ const getSaveOptions = useCallback(() => buildDeckSaveOptions(latest.current.deckSaveState), []);
36159
+ const config = collaboration?.config;
36160
+ const doc = collaboration?.doc;
36161
+ const status = collaboration?.status;
36162
+ useEffect(() => {
36163
+ if (!config?.externalSession || !doc) {
36164
+ latest.current.onReadOnlyChange?.(
36165
+ config?.externalSession ? status !== "error" : Boolean(doc) && config?.role === "viewer"
36166
+ );
36167
+ }
36168
+ }, [doc, config?.externalSession, config?.role, status]);
36169
+ const isConnected = config?.externalSession ? Boolean(collaboration?.doc) : collaboration?.status === "connected";
36170
+ useYjsDocumentSync({
36171
+ ...state,
36172
+ doc: collaboration?.doc ?? null,
36173
+ isConnected,
36174
+ isSynced: collaboration?.synced ?? false,
36175
+ config,
36176
+ livePatcher: state.livePatcher,
36177
+ getSourceBytes,
36178
+ getSaveOptions
36179
+ });
36180
+ useCollaborationLivePatch({
36181
+ patcher: state.livePatcher,
36182
+ externalSession: config?.externalSession,
36183
+ doc: collaboration?.doc ?? null,
36184
+ isConnected: isConnected && config?.role !== "viewer",
36185
+ isSynced: collaboration?.synced ?? false
36186
+ });
36187
+ }
36126
36188
  function useMasterViewCrud(input) {
36127
36189
  const {
36128
36190
  handlerRef,
@@ -36388,7 +36450,10 @@ var PowerPointViewer = forwardRef(
36388
36450
  const readOnlyRec = useReadOnlyRecommendationState(content);
36389
36451
  const compatToastsState = useCompatibilityToastsState();
36390
36452
  const runProgramNoticesState = useRunProgramNoticesState();
36391
- const canEdit = hostCanEdit && !isProtectedView && !readOnlyRec.locked;
36453
+ const [collaborationReadOnly, setCollaborationReadOnly] = useState(
36454
+ Boolean(collaboration?.externalSession)
36455
+ );
36456
+ const canEdit = hostCanEdit && !collaborationReadOnly && !isProtectedView && !readOnlyRec.locked;
36392
36457
  const [isSettingsOpen, setIsSettingsOpen] = useState(false);
36393
36458
  const [isHeaderFooterOpen, setIsHeaderFooterOpen] = useState(false);
36394
36459
  const [autosaveEnabled, setAutosaveEnabled] = useState(true);
@@ -37318,11 +37383,11 @@ var PowerPointViewer = forwardRef(
37318
37383
  slides,
37319
37384
  templateElementsBySlideId,
37320
37385
  setSlides: state.setSlides,
37321
- config: collaboration,
37322
37386
  content,
37323
37387
  loadVersion,
37324
37388
  loadOrigin,
37325
37389
  livePatcher: state.livePatcher,
37390
+ onReadOnlyChange: setCollaborationReadOnly,
37326
37391
  deckSaveState: {
37327
37392
  headerFooter: state.headerFooter,
37328
37393
  presentationProperties: state.presentationProperties,
@@ -37381,44 +37446,25 @@ function CollaborationDocumentSync({
37381
37446
  slides,
37382
37447
  templateElementsBySlideId,
37383
37448
  setSlides,
37384
- config,
37385
37449
  content,
37386
37450
  loadVersion,
37387
37451
  loadOrigin,
37388
37452
  livePatcher,
37389
- deckSaveState
37453
+ deckSaveState,
37454
+ onReadOnlyChange
37390
37455
  }) {
37391
37456
  const collab = useCollaboration();
37392
- const contentRef = useRef(content);
37393
- contentRef.current = content;
37394
- const getSourceBytes = useCallback(() => {
37395
- const bytes = contentRef.current;
37396
- if (!bytes) {
37397
- return null;
37398
- }
37399
- return bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
37400
- }, []);
37401
- const deckSaveStateRef = useRef(deckSaveState);
37402
- deckSaveStateRef.current = deckSaveState;
37403
- const getSaveOptions = useCallback(() => buildDeckSaveOptions(deckSaveStateRef.current), []);
37404
- useYjsDocumentSync({
37405
- doc: collab?.doc ?? null,
37457
+ useCollaborationDocumentSync({
37458
+ collaboration: collab,
37406
37459
  slides,
37407
37460
  templateElementsBySlideId,
37408
37461
  setSlides,
37409
- isConnected: collab?.status === "connected",
37410
- isSynced: collab?.synced ?? true,
37411
- config,
37412
- getSourceBytes,
37413
- getSaveOptions,
37462
+ content,
37414
37463
  loadVersion,
37415
- loadOrigin
37416
- });
37417
- useCollaborationLivePatch({
37418
- patcher: livePatcher,
37419
- doc: collab?.doc ?? null,
37420
- isConnected: collab?.status === "connected",
37421
- isSynced: collab?.synced ?? true
37464
+ loadOrigin,
37465
+ livePatcher,
37466
+ deckSaveState,
37467
+ onReadOnlyChange
37422
37468
  });
37423
37469
  return null;
37424
37470
  }
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkNGWA6L3N_js = require('./chunk-NGWA6L3N.js');
3
+ var chunkT6V342NP_js = require('./chunk-T6V342NP.js');
4
4
  var chunk4VNS5WPM_js = require('./chunk-4VNS5WPM.js');
5
5
  var mcp = require('pptx-viewer-mcp');
6
6
  var mcpSchemas = require('pptx-viewer-mcp/schemas');
@@ -19079,7 +19079,7 @@ async function buildSlideMarkdown(slides, slideIndex2, meta3, options = {}) {
19079
19079
  };
19080
19080
  let markdown;
19081
19081
  try {
19082
- const converter = new chunkNGWA6L3N_js.PptxMarkdownConverter(
19082
+ const converter = new chunkT6V342NP_js.PptxMarkdownConverter(
19083
19083
  "",
19084
19084
  {
19085
19085
  sourceName: meta3.title ?? "deck.pptx",
@@ -19671,7 +19671,7 @@ var getTheme = (ctx) => {
19671
19671
  name: theme?.name,
19672
19672
  colorScheme: theme?.colorScheme,
19673
19673
  fontScheme: theme?.fontScheme,
19674
- availablePresets: Object.keys(chunkNGWA6L3N_js.ThemePresets)
19674
+ availablePresets: Object.keys(chunkT6V342NP_js.ThemePresets)
19675
19675
  };
19676
19676
  };
19677
19677
  var readExecutors = {
@@ -20776,7 +20776,7 @@ function applyElementUpdate(el, u) {
20776
20776
  applyShapeStyleUpdate(el, u);
20777
20777
  }
20778
20778
  function applyTextUpdate(el, u) {
20779
- if (!chunkNGWA6L3N_js.hasTextProperties(el)) {
20779
+ if (!chunkT6V342NP_js.hasTextProperties(el)) {
20780
20780
  return;
20781
20781
  }
20782
20782
  const textEl = el;
@@ -20822,7 +20822,7 @@ function applyShapeStyleUpdate(el, u) {
20822
20822
  if (u.fillColor === void 0 && u.strokeColor === void 0 && u.strokeWidth === void 0) {
20823
20823
  return;
20824
20824
  }
20825
- if (!chunkNGWA6L3N_js.hasShapeProperties(el)) {
20825
+ if (!chunkT6V342NP_js.hasShapeProperties(el)) {
20826
20826
  return;
20827
20827
  }
20828
20828
  const holder = el;
Binary file
Binary file
@@ -1,5 +1,5 @@
1
- import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, getImageFillCounterTransform, getComputedFillStyle, isImageLikeElement, getCropShapeClipPath, getImageTilingStyle, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, getConnectorPathGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, canDrillDown, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildTiledSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, mediaFallbackVisual, scheduleMediaTrimAndFade, registerCrossSlideAudio, withInlineListDecorationDefaults, segmentStyleToCss, resolveAutoFitFontScale, applyUnderlineVariant, nestedTextDecorationStyle, resolveFontKerning, getSubstituteFontFamily, parsePanoseString, resolveScriptFontSet, hasDistinctScriptFonts, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, stripUnderlineDecoration, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, customGeometryPathsToSvgSubpaths, buildSubpathPaints, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, xmlText, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, buildRectPathGradient, buildRunTabLines, chartPartToAttrs, splitWordsForUnderline, splitRunForMetrics, splitRunByScriptFont } from './chunk-N4FLKADC.mjs';
2
- import { translationsEn } from './chunk-AVTH627G.mjs';
1
+ import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, getImageFillCounterTransform, getComputedFillStyle, isImageLikeElement, getCropShapeClipPath, getImageTilingStyle, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, getConnectorPathGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, canDrillDown, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildTiledSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, mediaFallbackVisual, scheduleMediaTrimAndFade, registerCrossSlideAudio, withInlineListDecorationDefaults, segmentStyleToCss, resolveAutoFitFontScale, applyUnderlineVariant, nestedTextDecorationStyle, resolveFontKerning, getSubstituteFontFamily, parsePanoseString, resolveScriptFontSet, hasDistinctScriptFonts, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, stripUnderlineDecoration, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, customGeometryPathsToSvgSubpaths, buildSubpathPaints, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, xmlText, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, buildRectPathGradient, buildRunTabLines, chartPartToAttrs, splitWordsForUnderline, splitRunForMetrics, splitRunByScriptFont } from './chunk-TMTQJAGK.mjs';
2
+ import { translationsEn } from './chunk-R664EPDC.mjs';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import React7, { useRef, useState, useEffect, useCallback, useMemo, useLayoutEffect } from 'react';
@@ -1299,13 +1299,17 @@ function renderHyperlink(run, spanNode, key, ctx) {
1299
1299
  spanNode,
1300
1300
  requireCtrlClick && /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-0 top-full z-[9999] mt-1 max-w-64 opacity-0 transition-opacity duration-150 group-hover/link:opacity-100", children: /* @__PURE__ */ jsxs("span", { className: "flex flex-col rounded border border-border bg-popover px-2.5 py-1.5 shadow-lg", children: [
1301
1301
  /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-foreground", children: displayUrl }),
1302
- /* @__PURE__ */ jsx("span", { className: "mt-0.5 text-[10px] text-muted-foreground", children: "Ctrl+Click to follow link" })
1302
+ /* @__PURE__ */ jsx("span", { className: "mt-0.5 text-[10px] text-muted-foreground", children: /* @__PURE__ */ jsx(FollowLinkHint, {}) })
1303
1303
  ] }) })
1304
1304
  ]
1305
1305
  },
1306
1306
  `${key}-link`
1307
1307
  );
1308
1308
  }
1309
+ function FollowLinkHint() {
1310
+ const { t } = useTranslation();
1311
+ return /* @__PURE__ */ jsx(Fragment, { children: t("pptx.linkTooltip.followLink") });
1312
+ }
1309
1313
  function wrapWithTextReflection(run, key, spanNode, spanStyle, baseContent) {
1310
1314
  if (!run.reflection) {
1311
1315
  return spanNode;
Binary file
Binary file
@@ -616,6 +616,7 @@ var translationsEn = {
616
616
  "pptx.sections.addAfter": "Add Section After",
617
617
  // Notes
618
618
  "pptx.notes.title": "Notes",
619
+ "pptx.notes.hasNotes": "(has notes)",
619
620
  "pptx.notes.slideN": "Slide {{n}}",
620
621
  "pptx.notes.noSlide": "No slide selected",
621
622
  "pptx.notes.clickToAddNotes": "Click to add notes",
@@ -971,6 +972,8 @@ var translationsEn = {
971
972
  "pptx.slideShow.subtitles": "Subtitles",
972
973
  // Record tab (camera overlay placeholders)
973
974
  "pptx.record.cameo": "Cameo",
975
+ "pptx.record.manage": "Manage",
976
+ "pptx.record.camera": "Camera",
974
977
  "pptx.record.clear": "Clear",
975
978
  "pptx.record.learnMore": "Learn More",
976
979
  "pptx.record.resetToCameo": "Reset to Cameo",
@@ -3080,6 +3083,7 @@ var translationsEn = {
3080
3083
  "pptx.textFormatting.paragraphBefore": "Paragraph Before",
3081
3084
  "pptx.textFormatting.textFlow": "Text Flow",
3082
3085
  "pptx.textProperties.advancedTextHeading": "Advanced Text",
3086
+ "pptx.textProperties.autoFitToShape": "Auto-fit text to shape",
3083
3087
  "pptx.textProperties.defaultFontOption": "Default ({{font}})",
3084
3088
  "pptx.textProperties.firstIndent": "First Indent",
3085
3089
  "pptx.textProperties.leftMargin": "Left Margin",
Binary file
Binary file