pptx-react-viewer 3.17.1 → 3.18.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 (225) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +33 -31
  3. package/dist/{AiChatPanel-SINEEZBW.mjs → AiChatPanel-DDZC6IRK.mjs} +4 -4
  4. package/dist/AiChatPanel-DDZC6IRK.mjs.br +0 -0
  5. package/dist/AiChatPanel-DDZC6IRK.mjs.gz +0 -0
  6. package/dist/{AiChatPanel-GYH43XWW.js → AiChatPanel-T2QSCUQR.js} +25 -25
  7. package/dist/AiChatPanel-T2QSCUQR.js.br +0 -0
  8. package/dist/AiChatPanel-T2QSCUQR.js.gz +0 -0
  9. package/dist/{Area3DChartScene-D7GSJGPQ.js → Area3DChartScene-WEU2MP3B.js} +2 -2
  10. package/dist/Area3DChartScene-WEU2MP3B.js.br +0 -0
  11. package/dist/Area3DChartScene-WEU2MP3B.js.gz +0 -0
  12. package/dist/{Area3DChartScene-X5SM67PZ.mjs → Area3DChartScene-WTKQDHC7.mjs} +1 -1
  13. package/dist/Area3DChartScene-WTKQDHC7.mjs.br +0 -0
  14. package/dist/Area3DChartScene-WTKQDHC7.mjs.gz +0 -0
  15. package/dist/{Bar3DChartScene-M72WQW5Y.js → Bar3DChartScene-25G6TG53.js} +2 -2
  16. package/dist/Bar3DChartScene-25G6TG53.js.br +0 -0
  17. package/dist/Bar3DChartScene-25G6TG53.js.gz +0 -0
  18. package/dist/{Bar3DChartScene-HWIFFGI3.mjs → Bar3DChartScene-A5ICLHXS.mjs} +1 -1
  19. package/dist/{Bar3DChartScene-HWIFFGI3.mjs.br → Bar3DChartScene-A5ICLHXS.mjs.br} +0 -0
  20. package/dist/Bar3DChartScene-A5ICLHXS.mjs.gz +0 -0
  21. package/dist/{GLTFLoader-374ZNTXW.mjs → GLTFLoader-IWJFC4XI.mjs} +54 -16
  22. package/dist/GLTFLoader-IWJFC4XI.mjs.br +0 -0
  23. package/dist/GLTFLoader-IWJFC4XI.mjs.gz +0 -0
  24. package/dist/{GLTFLoader-Q7BHCGAW.js → GLTFLoader-KY7AYPMX.js} +178 -140
  25. package/dist/GLTFLoader-KY7AYPMX.js.br +0 -0
  26. package/dist/GLTFLoader-KY7AYPMX.js.gz +0 -0
  27. package/dist/{Line3DChartScene-7MPZWVF3.mjs → Line3DChartScene-ARCDLHXQ.mjs} +1 -1
  28. package/dist/Line3DChartScene-ARCDLHXQ.mjs.br +0 -0
  29. package/dist/Line3DChartScene-ARCDLHXQ.mjs.gz +0 -0
  30. package/dist/{Line3DChartScene-YOZEEQZ3.js → Line3DChartScene-WRZ52Z2Z.js} +2 -2
  31. package/dist/Line3DChartScene-WRZ52Z2Z.js.br +0 -0
  32. package/dist/Line3DChartScene-WRZ52Z2Z.js.gz +0 -0
  33. package/dist/{Model3DScene-5IJSNGDZ.js → Model3DScene-JGUG5NPX.js} +2 -2
  34. package/dist/Model3DScene-JGUG5NPX.js.br +0 -0
  35. package/dist/Model3DScene-JGUG5NPX.js.gz +0 -0
  36. package/dist/{Model3DScene-57LVY5QW.mjs → Model3DScene-PBKBL2YU.mjs} +1 -1
  37. package/dist/Model3DScene-PBKBL2YU.mjs.br +0 -0
  38. package/dist/Model3DScene-PBKBL2YU.mjs.gz +0 -0
  39. package/dist/OrbitControls-2XOMWUVE.mjs +3 -0
  40. package/dist/OrbitControls-2XOMWUVE.mjs.br +0 -0
  41. package/dist/OrbitControls-2XOMWUVE.mjs.gz +0 -0
  42. package/dist/OrbitControls-CGYUF3BY.js +12 -0
  43. package/dist/OrbitControls-CGYUF3BY.js.br +0 -0
  44. package/dist/OrbitControls-CGYUF3BY.js.gz +0 -0
  45. package/dist/{PieChart3DScene-UBI6X66Q.js → PieChart3DScene-S25DNSRS.js} +2 -2
  46. package/dist/PieChart3DScene-S25DNSRS.js.br +0 -0
  47. package/dist/PieChart3DScene-S25DNSRS.js.gz +0 -0
  48. package/dist/{PieChart3DScene-WD5B6NP3.mjs → PieChart3DScene-ZNKXS62H.mjs} +1 -1
  49. package/dist/{PieChart3DScene-WD5B6NP3.mjs.br → PieChart3DScene-ZNKXS62H.mjs.br} +0 -0
  50. package/dist/PieChart3DScene-ZNKXS62H.mjs.gz +0 -0
  51. package/dist/{SmartArt3DScene-ODKCGJBO.mjs → SmartArt3DScene-QZGIABOK.mjs} +2 -2
  52. package/dist/SmartArt3DScene-QZGIABOK.mjs.br +0 -0
  53. package/dist/SmartArt3DScene-QZGIABOK.mjs.gz +0 -0
  54. package/dist/{SmartArt3DScene-BK7QN3WT.js → SmartArt3DScene-T236GYUT.js} +33 -33
  55. package/dist/SmartArt3DScene-T236GYUT.js.br +0 -0
  56. package/dist/SmartArt3DScene-T236GYUT.js.gz +0 -0
  57. package/dist/{SurfaceChart3DScene-JZGU6BBD.mjs → SurfaceChart3DScene-EBT7RPCX.mjs} +1 -1
  58. package/dist/SurfaceChart3DScene-EBT7RPCX.mjs.br +0 -0
  59. package/dist/SurfaceChart3DScene-EBT7RPCX.mjs.gz +0 -0
  60. package/dist/{SurfaceChart3DScene-JGNPYQ32.js → SurfaceChart3DScene-LXBC3HMV.js} +2 -2
  61. package/dist/SurfaceChart3DScene-LXBC3HMV.js.br +0 -0
  62. package/dist/SurfaceChart3DScene-LXBC3HMV.js.gz +0 -0
  63. package/dist/{chunk-KVXB22D3.js → chunk-2LTTSFLD.js} +5 -5
  64. package/dist/chunk-2LTTSFLD.js.br +0 -0
  65. package/dist/chunk-2LTTSFLD.js.gz +0 -0
  66. package/dist/{chunk-VYSMTC5C.mjs → chunk-2OCTGK4L.mjs} +6 -110
  67. package/dist/chunk-2OCTGK4L.mjs.br +0 -0
  68. package/dist/chunk-2OCTGK4L.mjs.gz +0 -0
  69. package/dist/{chunk-IXKAIIA2.mjs → chunk-3KKPRPVE.mjs} +114 -126
  70. package/dist/chunk-3KKPRPVE.mjs.br +0 -0
  71. package/dist/chunk-3KKPRPVE.mjs.gz +0 -0
  72. package/dist/{chunk-B4QYQLZU.js → chunk-3N6AC4HA.js} +1122 -693
  73. package/dist/chunk-3N6AC4HA.js.br +0 -0
  74. package/dist/chunk-3N6AC4HA.js.gz +0 -0
  75. package/dist/{chunk-OAKDJYYT.mjs → chunk-5S3A6HL3.mjs} +121 -42
  76. package/dist/chunk-5S3A6HL3.mjs.br +0 -0
  77. package/dist/chunk-5S3A6HL3.mjs.gz +0 -0
  78. package/dist/{chunk-IRG7SIUX.js → chunk-6R2EUDJQ.js} +1399 -1411
  79. package/dist/chunk-6R2EUDJQ.js.br +0 -0
  80. package/dist/chunk-6R2EUDJQ.js.gz +0 -0
  81. package/dist/{chunk-XBMKFZVP.mjs → chunk-7TAWW5QQ.mjs} +1120 -694
  82. package/dist/chunk-7TAWW5QQ.mjs.br +0 -0
  83. package/dist/chunk-7TAWW5QQ.mjs.gz +0 -0
  84. package/dist/{chunk-64FUV37N.js → chunk-BRJN3ZMG.js} +2 -1
  85. package/dist/chunk-BRJN3ZMG.js.br +0 -0
  86. package/dist/{chunk-64FUV37N.js.gz → chunk-BRJN3ZMG.js.gz} +0 -0
  87. package/dist/{chunk-QTGCOL5H.mjs → chunk-GNRVDNCV.mjs} +1707 -435
  88. package/dist/chunk-GNRVDNCV.mjs.br +0 -0
  89. package/dist/chunk-GNRVDNCV.mjs.gz +0 -0
  90. package/dist/{chunk-6C2WYLZY.js → chunk-IXS7DALE.js} +45 -39
  91. package/dist/chunk-IXS7DALE.js.br +0 -0
  92. package/dist/chunk-IXS7DALE.js.gz +0 -0
  93. package/dist/{chunk-7FBKS7OS.js → chunk-LJ46KXUV.js} +179 -283
  94. package/dist/chunk-LJ46KXUV.js.br +0 -0
  95. package/dist/chunk-LJ46KXUV.js.gz +0 -0
  96. package/dist/{chunk-LAU34UMB.mjs → chunk-MQUTXOET.mjs} +2 -1
  97. package/dist/chunk-MQUTXOET.mjs.br +0 -0
  98. package/dist/{chunk-LAU34UMB.mjs.gz → chunk-MQUTXOET.mjs.gz} +0 -0
  99. package/dist/{chunk-3CBDTD46.mjs → chunk-MV2GCDBR.mjs} +8 -2
  100. package/dist/chunk-MV2GCDBR.mjs.br +0 -0
  101. package/dist/chunk-MV2GCDBR.mjs.gz +0 -0
  102. package/dist/{chunk-4SPZ5IZN.js → chunk-V32F4I45.js} +1713 -439
  103. package/dist/chunk-V32F4I45.js.br +0 -0
  104. package/dist/chunk-V32F4I45.js.gz +0 -0
  105. package/dist/{chunk-E55VEC37.js → chunk-WGBXO4LM.js} +576 -497
  106. package/dist/chunk-WGBXO4LM.js.br +0 -0
  107. package/dist/chunk-WGBXO4LM.js.gz +0 -0
  108. package/dist/{chunk-7YJBRPCT.mjs → chunk-WRO37U2O.mjs} +1 -1
  109. package/dist/chunk-WRO37U2O.mjs.br +0 -0
  110. package/dist/chunk-WRO37U2O.mjs.gz +0 -0
  111. package/dist/i18n.js +4 -4
  112. package/dist/i18n.js.br +0 -0
  113. package/dist/i18n.js.gz +0 -0
  114. package/dist/i18n.mjs +1 -1
  115. package/dist/i18n.mjs.br +0 -0
  116. package/dist/i18n.mjs.gz +0 -0
  117. package/dist/index.d.ts +2 -0
  118. package/dist/index.js +47 -47
  119. package/dist/index.js.br +0 -0
  120. package/dist/index.js.gz +0 -0
  121. package/dist/index.mjs +6 -6
  122. package/dist/index.mjs.br +0 -0
  123. package/dist/index.mjs.gz +0 -0
  124. package/dist/internals.d.ts +18 -0
  125. package/dist/internals.d.ts.map +1 -1
  126. package/dist/internals.js +79 -79
  127. package/dist/internals.js.br +0 -0
  128. package/dist/internals.js.gz +0 -0
  129. package/dist/internals.mjs +4 -4
  130. package/dist/internals.mjs.br +0 -0
  131. package/dist/internals.mjs.gz +0 -0
  132. package/dist/pptx-viewer.css +1 -1
  133. package/dist/pptx-viewer.css.br +0 -0
  134. package/dist/pptx-viewer.css.gz +0 -0
  135. package/dist/three.module-LGUV2LI6.mjs +2 -0
  136. package/dist/three.module-LGUV2LI6.mjs.br +0 -0
  137. package/dist/three.module-LGUV2LI6.mjs.gz +0 -0
  138. package/dist/{three.module-GNNNRIMK.js → three.module-YZ4M24WM.js} +454 -442
  139. package/dist/three.module-YZ4M24WM.js.br +0 -0
  140. package/dist/three.module-YZ4M24WM.js.gz +0 -0
  141. package/dist/{useViewerBuildingBlocks-DkUGmlkP.d.ts → useViewerBuildingBlocks-4Tj6P8Fm.d.ts} +3 -1
  142. package/dist/useViewerBuildingBlocks-4Tj6P8Fm.d.ts.map +1 -0
  143. package/dist/viewer/index.js +27 -27
  144. package/dist/viewer/index.js.br +0 -0
  145. package/dist/viewer/index.js.gz +0 -0
  146. package/dist/viewer/index.mjs +6 -6
  147. package/dist/viewer/index.mjs.br +0 -0
  148. package/dist/viewer/index.mjs.gz +0 -0
  149. package/package.json +3 -3
  150. package/dist/AiChatPanel-GYH43XWW.js.br +0 -0
  151. package/dist/AiChatPanel-GYH43XWW.js.gz +0 -0
  152. package/dist/AiChatPanel-SINEEZBW.mjs.br +0 -0
  153. package/dist/AiChatPanel-SINEEZBW.mjs.gz +0 -0
  154. package/dist/Area3DChartScene-D7GSJGPQ.js.br +0 -0
  155. package/dist/Area3DChartScene-D7GSJGPQ.js.gz +0 -0
  156. package/dist/Area3DChartScene-X5SM67PZ.mjs.br +0 -0
  157. package/dist/Area3DChartScene-X5SM67PZ.mjs.gz +0 -0
  158. package/dist/Bar3DChartScene-HWIFFGI3.mjs.gz +0 -0
  159. package/dist/Bar3DChartScene-M72WQW5Y.js.br +0 -0
  160. package/dist/Bar3DChartScene-M72WQW5Y.js.gz +0 -0
  161. package/dist/GLTFLoader-374ZNTXW.mjs.br +0 -0
  162. package/dist/GLTFLoader-374ZNTXW.mjs.gz +0 -0
  163. package/dist/GLTFLoader-Q7BHCGAW.js.br +0 -0
  164. package/dist/GLTFLoader-Q7BHCGAW.js.gz +0 -0
  165. package/dist/Line3DChartScene-7MPZWVF3.mjs.br +0 -0
  166. package/dist/Line3DChartScene-7MPZWVF3.mjs.gz +0 -0
  167. package/dist/Line3DChartScene-YOZEEQZ3.js.br +0 -0
  168. package/dist/Line3DChartScene-YOZEEQZ3.js.gz +0 -0
  169. package/dist/Model3DScene-57LVY5QW.mjs.br +0 -0
  170. package/dist/Model3DScene-57LVY5QW.mjs.gz +0 -0
  171. package/dist/Model3DScene-5IJSNGDZ.js.br +0 -0
  172. package/dist/Model3DScene-5IJSNGDZ.js.gz +0 -0
  173. package/dist/OrbitControls-SMYCPLXO.js +0 -12
  174. package/dist/OrbitControls-SMYCPLXO.js.br +0 -3
  175. package/dist/OrbitControls-SMYCPLXO.js.gz +0 -0
  176. package/dist/OrbitControls-ZTGHPI5G.mjs +0 -3
  177. package/dist/OrbitControls-ZTGHPI5G.mjs.br +0 -0
  178. package/dist/OrbitControls-ZTGHPI5G.mjs.gz +0 -0
  179. package/dist/PieChart3DScene-UBI6X66Q.js.br +0 -0
  180. package/dist/PieChart3DScene-UBI6X66Q.js.gz +0 -0
  181. package/dist/PieChart3DScene-WD5B6NP3.mjs.gz +0 -0
  182. package/dist/SmartArt3DScene-BK7QN3WT.js.br +0 -0
  183. package/dist/SmartArt3DScene-BK7QN3WT.js.gz +0 -0
  184. package/dist/SmartArt3DScene-ODKCGJBO.mjs.br +0 -0
  185. package/dist/SmartArt3DScene-ODKCGJBO.mjs.gz +0 -0
  186. package/dist/SurfaceChart3DScene-JGNPYQ32.js.br +0 -0
  187. package/dist/SurfaceChart3DScene-JGNPYQ32.js.gz +0 -0
  188. package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.br +0 -0
  189. package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.gz +0 -0
  190. package/dist/chunk-3CBDTD46.mjs.br +0 -0
  191. package/dist/chunk-3CBDTD46.mjs.gz +0 -0
  192. package/dist/chunk-4SPZ5IZN.js.br +0 -0
  193. package/dist/chunk-4SPZ5IZN.js.gz +0 -0
  194. package/dist/chunk-64FUV37N.js.br +0 -0
  195. package/dist/chunk-6C2WYLZY.js.br +0 -0
  196. package/dist/chunk-6C2WYLZY.js.gz +0 -0
  197. package/dist/chunk-7FBKS7OS.js.br +0 -0
  198. package/dist/chunk-7FBKS7OS.js.gz +0 -0
  199. package/dist/chunk-7YJBRPCT.mjs.br +0 -0
  200. package/dist/chunk-7YJBRPCT.mjs.gz +0 -0
  201. package/dist/chunk-B4QYQLZU.js.br +0 -0
  202. package/dist/chunk-B4QYQLZU.js.gz +0 -0
  203. package/dist/chunk-E55VEC37.js.br +0 -0
  204. package/dist/chunk-E55VEC37.js.gz +0 -0
  205. package/dist/chunk-IRG7SIUX.js.br +0 -0
  206. package/dist/chunk-IRG7SIUX.js.gz +0 -0
  207. package/dist/chunk-IXKAIIA2.mjs.br +0 -0
  208. package/dist/chunk-IXKAIIA2.mjs.gz +0 -0
  209. package/dist/chunk-KVXB22D3.js.br +0 -0
  210. package/dist/chunk-KVXB22D3.js.gz +0 -0
  211. package/dist/chunk-LAU34UMB.mjs.br +0 -0
  212. package/dist/chunk-OAKDJYYT.mjs.br +0 -0
  213. package/dist/chunk-OAKDJYYT.mjs.gz +0 -0
  214. package/dist/chunk-QTGCOL5H.mjs.br +0 -0
  215. package/dist/chunk-QTGCOL5H.mjs.gz +0 -0
  216. package/dist/chunk-VYSMTC5C.mjs.br +0 -0
  217. package/dist/chunk-VYSMTC5C.mjs.gz +0 -0
  218. package/dist/chunk-XBMKFZVP.mjs.br +0 -0
  219. package/dist/chunk-XBMKFZVP.mjs.gz +0 -0
  220. package/dist/three.module-AC7ESV4W.mjs +0 -2
  221. package/dist/three.module-AC7ESV4W.mjs.br +0 -0
  222. package/dist/three.module-AC7ESV4W.mjs.gz +0 -0
  223. package/dist/three.module-GNNNRIMK.js.br +0 -0
  224. package/dist/three.module-GNNNRIMK.js.gz +0 -0
  225. package/dist/useViewerBuildingBlocks-DkUGmlkP.d.ts.map +0 -1
@@ -1,8 +1,8 @@
1
- import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-7YJBRPCT.mjs';
2
- import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, safePrompt, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, getGlyphOutline, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, syncSelectionHandleOverlay, playAnimationSound } from './chunk-OAKDJYYT.mjs';
3
- import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, STROKE_DASH_OPTIONS } from './chunk-VYSMTC5C.mjs';
4
- import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, 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, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, getElementTransform, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, 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, elementIdSelector, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, getInlineEditorSelection, findChartPartTarget, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, collectCoherent3DOffNodeIds, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelope, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, 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, centeredSvgTextLines, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, 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, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, 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, computeInlineEditorRect, withChartPointValue, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, selectedParagraphBulletKind, elementBulletKind, 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, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, 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, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, 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, hideChartSeries, restoreFilteredSeries, 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, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, 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, 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, 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-QTGCOL5H.mjs';
5
- import { LOCALE_CATALOG, translationsEn, ALIGNMENT_LABEL_KEYS } from './chunk-LAU34UMB.mjs';
1
+ import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-WRO37U2O.mjs';
2
+ import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, safePrompt, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, getGlyphOutline, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, syncSelectionHandleOverlay, playAnimationSound } from './chunk-5S3A6HL3.mjs';
3
+ import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, STROKE_DASH_OPTIONS } from './chunk-2OCTGK4L.mjs';
4
+ import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, 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, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, getElementTransform, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, 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, elementIdSelector, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, getInlineEditorSelection, findChartPartTarget, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, collectCoherent3DOffNodeIds, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelope, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, 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, centeredSvgTextLines, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, 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, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, 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, computeInlineEditorRect, withChartPointValue, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, getSelectionTextStyleFlags, elementBulletKind, 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, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, 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, mergeSlideTransition, 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, hideChartSeries, restoreFilteredSeries, 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, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, 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, 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, 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-GNRVDNCV.mjs';
5
+ import { LOCALE_CATALOG, translationsEn, ALIGNMENT_LABEL_KEYS } from './chunk-MQUTXOET.mjs';
6
6
  import React20, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, useSyncExternalStore, useId, Fragment as Fragment$1, useDeferredValue } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
@@ -514,7 +514,7 @@ function FailedToLoad() {
514
514
  var LazyArea3DChartScene = React20.lazy(
515
515
  async () => {
516
516
  try {
517
- return await import('./Area3DChartScene-X5SM67PZ.mjs');
517
+ return await import('./Area3DChartScene-WTKQDHC7.mjs');
518
518
  } catch {
519
519
  return { default: FailedToLoad };
520
520
  }
@@ -541,7 +541,7 @@ function Area3DChartRenderer({
541
541
  const [threeAvailable, setThreeAvailable] = useState(null);
542
542
  useEffect(() => {
543
543
  let cancelled = false;
544
- import('./three.module-AC7ESV4W.mjs').then(() => {
544
+ import('./three.module-LGUV2LI6.mjs').then(() => {
545
545
  if (!cancelled) {
546
546
  setThreeAvailable(true);
547
547
  }
@@ -583,7 +583,7 @@ function FailedToLoad2() {
583
583
  var LazyBar3DChartScene = React20.lazy(
584
584
  async () => {
585
585
  try {
586
- return await import('./Bar3DChartScene-HWIFFGI3.mjs');
586
+ return await import('./Bar3DChartScene-A5ICLHXS.mjs');
587
587
  } catch {
588
588
  return { default: FailedToLoad2 };
589
589
  }
@@ -610,7 +610,7 @@ function Bar3DChartRenderer({
610
610
  const [threeAvailable, setThreeAvailable] = useState(null);
611
611
  useEffect(() => {
612
612
  let cancelled = false;
613
- import('./three.module-AC7ESV4W.mjs').then(() => {
613
+ import('./three.module-LGUV2LI6.mjs').then(() => {
614
614
  if (!cancelled) {
615
615
  setThreeAvailable(true);
616
616
  }
@@ -686,7 +686,7 @@ function FailedToLoad3() {
686
686
  var LazyLine3DChartScene = React20.lazy(
687
687
  async () => {
688
688
  try {
689
- return await import('./Line3DChartScene-7MPZWVF3.mjs');
689
+ return await import('./Line3DChartScene-ARCDLHXQ.mjs');
690
690
  } catch {
691
691
  return { default: FailedToLoad3 };
692
692
  }
@@ -713,7 +713,7 @@ function Line3DChartRenderer({
713
713
  const [threeAvailable, setThreeAvailable] = useState(null);
714
714
  useEffect(() => {
715
715
  let cancelled = false;
716
- import('./three.module-AC7ESV4W.mjs').then(() => {
716
+ import('./three.module-LGUV2LI6.mjs').then(() => {
717
717
  if (!cancelled) {
718
718
  setThreeAvailable(true);
719
719
  }
@@ -755,7 +755,7 @@ function FailedToLoad4() {
755
755
  var LazyPieChart3DScene = React20.lazy(
756
756
  async () => {
757
757
  try {
758
- return await import('./PieChart3DScene-WD5B6NP3.mjs');
758
+ return await import('./PieChart3DScene-ZNKXS62H.mjs');
759
759
  } catch {
760
760
  return { default: FailedToLoad4 };
761
761
  }
@@ -781,7 +781,7 @@ function PieChart3DRenderer({
781
781
  const [threeAvailable, setThreeAvailable] = useState(null);
782
782
  useEffect(() => {
783
783
  let cancelled = false;
784
- import('./three.module-AC7ESV4W.mjs').then(() => {
784
+ import('./three.module-LGUV2LI6.mjs').then(() => {
785
785
  if (!cancelled) {
786
786
  setThreeAvailable(true);
787
787
  }
@@ -822,7 +822,7 @@ function FailedToLoad5() {
822
822
  var LazySurfaceChart3DScene = React20.lazy(
823
823
  async () => {
824
824
  try {
825
- return await import('./SurfaceChart3DScene-JZGU6BBD.mjs');
825
+ return await import('./SurfaceChart3DScene-EBT7RPCX.mjs');
826
826
  } catch {
827
827
  return { default: FailedToLoad5 };
828
828
  }
@@ -849,7 +849,7 @@ function SurfaceChart3DRenderer({
849
849
  const [threeAvailable, setThreeAvailable] = useState(null);
850
850
  useEffect(() => {
851
851
  let cancelled = false;
852
- import('./three.module-AC7ESV4W.mjs').then(() => {
852
+ import('./three.module-LGUV2LI6.mjs').then(() => {
853
853
  if (!cancelled) {
854
854
  setThreeAvailable(true);
855
855
  }
@@ -3181,7 +3181,7 @@ function FailedToLoad6() {
3181
3181
  var LazyModel3DScene = React20.lazy(
3182
3182
  async () => {
3183
3183
  try {
3184
- return await import('./Model3DScene-57LVY5QW.mjs');
3184
+ return await import('./Model3DScene-PBKBL2YU.mjs');
3185
3185
  } catch {
3186
3186
  return { default: FailedToLoad6 };
3187
3187
  }
@@ -3262,7 +3262,7 @@ function Model3DRenderer({ element, width, height, interactive }) {
3262
3262
  const [threeAvailable, setThreeAvailable] = useState(null);
3263
3263
  useEffect(() => {
3264
3264
  let cancelled = false;
3265
- import('./three.module-AC7ESV4W.mjs').then(() => {
3265
+ import('./three.module-LGUV2LI6.mjs').then(() => {
3266
3266
  if (!cancelled) {
3267
3267
  setThreeAvailable(true);
3268
3268
  }
@@ -4230,7 +4230,7 @@ function FailedToLoad7() {
4230
4230
  var LazySmartArt3DScene = React20.lazy(
4231
4231
  async () => {
4232
4232
  try {
4233
- return await import('./SmartArt3DScene-ODKCGJBO.mjs');
4233
+ return await import('./SmartArt3DScene-QZGIABOK.mjs');
4234
4234
  } catch {
4235
4235
  return { default: FailedToLoad7 };
4236
4236
  }
@@ -4259,7 +4259,7 @@ function SmartArt3DRenderer({
4259
4259
  const [threeAvailable, setThreeAvailable] = useState(null);
4260
4260
  useEffect(() => {
4261
4261
  let cancelled = false;
4262
- import('./three.module-AC7ESV4W.mjs').then(() => {
4262
+ import('./three.module-LGUV2LI6.mjs').then(() => {
4263
4263
  if (!cancelled) {
4264
4264
  setThreeAvailable(true);
4265
4265
  }
@@ -5681,7 +5681,7 @@ function RibbonGroup({
5681
5681
  "section",
5682
5682
  {
5683
5683
  className: cn(
5684
- "relative flex min-h-[78px] shrink-0 items-start gap-1 border-r border-border/60 px-2 pb-4 pt-1 last:border-r-0",
5684
+ "relative flex min-h-[78px] self-stretch shrink-0 items-start gap-1 border-r border-border/60 px-2 pb-4 pt-1 last:border-r-0",
5685
5685
  className
5686
5686
  ),
5687
5687
  "aria-label": label,
@@ -6713,7 +6713,7 @@ function AccountPage() {
6713
6713
  return void 0;
6714
6714
  });
6715
6715
  };
6716
- const version = "3.17.0" ;
6716
+ const version = "3.17.1" ;
6717
6717
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
6718
6718
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
6719
6719
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -8801,20 +8801,8 @@ function ColumnsDropdown(p) {
8801
8801
  )) }) })
8802
8802
  ] });
8803
8803
  }
8804
- function subscribe(onChange) {
8805
- document.addEventListener("selectionchange", onChange);
8806
- return () => document.removeEventListener("selectionchange", onChange);
8807
- }
8808
- function useParagraphListKind(element) {
8809
- const read = useCallback(() => {
8810
- if (!element || !hasTextProperties(element)) {
8811
- return "none";
8812
- }
8813
- return selectedParagraphBulletKind(element, getInlineEditorSelection(element.textSegments));
8814
- }, [element]);
8815
- const readServer = useCallback(() => element ? elementBulletKind(element) : "none", [element]);
8816
- return useSyncExternalStore(subscribe, read, readServer);
8817
- }
8804
+
8805
+ // src/viewer/components/toolbar/text-section-state.ts
8818
8806
  function getEffectiveTextStyle(element, tableEditorState) {
8819
8807
  if (!element) {
8820
8808
  return void 0;
@@ -8828,6 +8816,27 @@ function getEffectiveTextStyle(element, tableEditorState) {
8828
8816
  }
8829
8817
  return void 0;
8830
8818
  }
8819
+ function isTextDecorationFlag(id) {
8820
+ return TEXT_DECORATION_FLAGS.includes(id);
8821
+ }
8822
+ function textSectionFlags(element, tableEditorState, readSelection) {
8823
+ if (element && hasTextProperties(element)) {
8824
+ const selection = readSelection ? getInlineEditorSelection(element.textSegments) : null;
8825
+ return getSelectionTextStyleFlags(element.textSegments, selection, element.textStyle);
8826
+ }
8827
+ return getSelectionTextStyleFlags(
8828
+ void 0,
8829
+ null,
8830
+ getEffectiveTextStyle(element, tableEditorState)
8831
+ );
8832
+ }
8833
+ function textSectionBulletKind(element, tableEditorState) {
8834
+ if (element && hasTextProperties(element)) {
8835
+ return elementBulletKind(element);
8836
+ }
8837
+ return getEffectiveTextStyle(element, tableEditorState)?.listType ?? "none";
8838
+ }
8839
+ var ON = "bg-primary/20 ring-1 ring-primary";
8831
8840
  var HIGHLIGHT_COLOR_PRESETS = [
8832
8841
  "#ffff00",
8833
8842
  "#00ff00",
@@ -8848,14 +8857,17 @@ function TextSection(p) {
8848
8857
  const isTable = hasSel && p.selectedElement?.type === "table";
8849
8858
  const canFormat = isTextEl || isTable;
8850
8859
  const effectiveTs = getEffectiveTextStyle(p.selectedElement, p.tableEditorState);
8851
- const listKind = useParagraphListKind(p.selectedElement);
8852
- const toggleList = (kind) => {
8853
- if (!p.canEdit || !p.selectedElement || !hasTextProperties(p.selectedElement)) {
8860
+ const pressedFlags = textSectionFlags(p.selectedElement, p.tableEditorState, false);
8861
+ const bulletKind = textSectionBulletKind(p.selectedElement, p.tableEditorState);
8862
+ const toggleBullets = (kind) => {
8863
+ if (!canFormat || !p.selectedElement) {
8864
+ return;
8865
+ }
8866
+ if (hasTextProperties(p.selectedElement)) {
8867
+ p.onToggleBullets(kind);
8854
8868
  return;
8855
8869
  }
8856
- const selection = getInlineEditorSelection(p.selectedElement.textSegments);
8857
- const current = selectedParagraphBulletKind(p.selectedElement, selection);
8858
- p.onUpdateTextStyle({ listType: current === kind ? "none" : kind });
8870
+ p.onUpdateTextStyle({ listType: effectiveTs?.listType === kind ? "none" : kind });
8859
8871
  };
8860
8872
  const currentColor = isTextEl && p.selectedElement && hasTextProperties(p.selectedElement) ? p.selectedElement.textSegments?.[0]?.style?.color ?? p.selectedElement.textStyle?.color ?? "#000000" : effectiveTs?.color ?? "#000000";
8861
8873
  const currentColorThemeRef = isTextEl && p.selectedElement && hasTextProperties(p.selectedElement) ? p.selectedElement.textSegments?.[0]?.style?.colorRef ?? p.selectedElement.textStyle?.colorRef : void 0;
@@ -8891,38 +8903,24 @@ function TextSection(p) {
8891
8903
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-0.5", children: [
8892
8904
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
8893
8905
  /* @__PURE__ */ jsx("div", { className: grp, children: FMT.map((b, i, a) => {
8906
+ const flag = isTextDecorationFlag(b.id) ? b.id : void 0;
8894
8907
  const handleClick = () => {
8895
- if (!canFormat || !p.selectedElement) {
8908
+ if (!canFormat || !p.selectedElement || !flag) {
8896
8909
  return;
8897
8910
  }
8898
- const ts = effectiveTs;
8899
- switch (b.id) {
8900
- case "bold":
8901
- p.onUpdateTextStyle({ bold: !ts?.bold });
8902
- break;
8903
- case "italic":
8904
- p.onUpdateTextStyle({ italic: !ts?.italic });
8905
- break;
8906
- case "underline":
8907
- p.onUpdateTextStyle({
8908
- underline: !ts?.underline
8909
- });
8910
- break;
8911
- case "strikethrough":
8912
- p.onUpdateTextStyle({
8913
- strikethrough: !ts?.strikethrough
8914
- });
8915
- break;
8916
- }
8911
+ const flags = textSectionFlags(p.selectedElement, p.tableEditorState, true);
8912
+ p.onUpdateTextStyle({ [flag]: nextToggleValue(flags[flag]) });
8917
8913
  };
8914
+ const pressed = flag !== void 0 && pressedFlags[flag] === "on";
8918
8915
  return /* @__PURE__ */ jsx(
8919
8916
  "button",
8920
8917
  {
8921
8918
  type: "button",
8922
8919
  disabled: !canMut,
8920
+ "aria-pressed": pressed,
8923
8921
  onMouseDown: (e) => e.preventDefault(),
8924
8922
  onClick: handleClick,
8925
- className: i < a.length - 1 ? gB : gL,
8923
+ className: `${i < a.length - 1 ? gB : gL}${pressed ? ` ${ON}` : ""}`,
8926
8924
  title: t(b.labelKey),
8927
8925
  children: b.i
8928
8926
  },
@@ -9318,7 +9316,7 @@ function TextSection(p) {
9318
9316
  ] }) })
9319
9317
  ] })
9320
9318
  ] }),
9321
- /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: t("pptx.ribbon.font") })
9319
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: "Font" })
9322
9320
  ] }),
9323
9321
  sep,
9324
9322
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-0.5", children: [
@@ -9328,12 +9326,12 @@ function TextSection(p) {
9328
9326
  "button",
9329
9327
  {
9330
9328
  type: "button",
9331
- disabled: !canMut || !isTextEl,
9329
+ disabled: !canMut,
9330
+ "aria-pressed": bulletKind === "bullet",
9332
9331
  onMouseDown: (e) => e.preventDefault(),
9333
- onClick: () => toggleList("bullet"),
9334
- className: gB,
9332
+ onClick: () => toggleBullets("bullet"),
9333
+ className: `${gB}${bulletKind === "bullet" ? ` ${ON}` : ""}`,
9335
9334
  title: t("pptx.text.bulletList"),
9336
- "aria-pressed": listKind === "bullet",
9337
9335
  children: /* @__PURE__ */ jsx(LuList, { className: ic })
9338
9336
  }
9339
9337
  ),
@@ -9341,12 +9339,12 @@ function TextSection(p) {
9341
9339
  "button",
9342
9340
  {
9343
9341
  type: "button",
9344
- disabled: !canMut || !isTextEl,
9342
+ disabled: !canMut,
9343
+ "aria-pressed": bulletKind === "numbered",
9345
9344
  onMouseDown: (e) => e.preventDefault(),
9346
- onClick: () => toggleList("numbered"),
9347
- className: gL,
9345
+ onClick: () => toggleBullets("numbered"),
9346
+ className: `${gL}${bulletKind === "numbered" ? ` ${ON}` : ""}`,
9348
9347
  title: t("pptx.text.numberedList"),
9349
- "aria-pressed": listKind === "numbered",
9350
9348
  children: /* @__PURE__ */ jsx(LuListOrdered, { className: ic })
9351
9349
  }
9352
9350
  )
@@ -9440,7 +9438,7 @@ function TextSection(p) {
9440
9438
  }
9441
9439
  )
9442
9440
  ] }),
9443
- /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: t("pptx.ribbon.paragraph") })
9441
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: "Paragraph" })
9444
9442
  ] })
9445
9443
  ] });
9446
9444
  }
@@ -9810,6 +9808,7 @@ function MobileSectionBody({
9810
9808
  selectedElement: p.selectedElement,
9811
9809
  tableEditorState: p.tableEditorState,
9812
9810
  onUpdateTextStyle: p.onUpdateTextStyle,
9811
+ onToggleBullets: p.onToggleBullets,
9813
9812
  onTransformTextCase: p.onTransformTextCase
9814
9813
  }
9815
9814
  ) });
@@ -11068,19 +11067,8 @@ function Toolbar(p) {
11068
11067
  "div",
11069
11068
  {
11070
11069
  className: cn(
11071
- /*
11072
- * `items-stretch` (not `items-center`): `RibbonGroup` pins its
11073
- * caption to `bottom-0.5` of ITS OWN box (`position: relative`), so
11074
- * a group left at its un-stretched intrinsic height sits centered in
11075
- * the row with its caption floating well above the row's true bottom
11076
- * edge whenever a taller sibling sets the row's height (e.g. View's
11077
- * five-row "Show" group next to its two-row "Zoom" group). Stretching
11078
- * every direct child to the row's full height lines up every group's
11079
- * caption and right-hand divider at the same baseline. File's
11080
- * backstage is unaffected: it renders `position: fixed`, outside this
11081
- * row's flex layout entirely.
11082
- */
11083
- "flex min-h-[82px] items-stretch gap-0 overflow-x-auto px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap [&>*]:shrink-0",
11070
+ // Plain controls stay compact; labelled RibbonGroups opt into stretching.
11071
+ "flex min-h-[82px] items-center gap-0 overflow-x-auto px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap [&>*]:shrink-0",
11084
11072
  isNarrowViewport && !isCompactToolbarOpen && "hidden"
11085
11073
  ),
11086
11074
  children: [
@@ -11170,6 +11158,7 @@ function Toolbar(p) {
11170
11158
  selectedElement: p.selectedElement,
11171
11159
  tableEditorState: p.tableEditorState,
11172
11160
  onUpdateTextStyle: p.onUpdateTextStyle,
11161
+ onToggleBullets: p.onToggleBullets,
11173
11162
  onTransformTextCase: p.onTransformTextCase
11174
11163
  }
11175
11164
  ),
@@ -12505,6 +12494,10 @@ function finishDrawStroke(input) {
12505
12494
  if (points.length < 2) {
12506
12495
  return null;
12507
12496
  }
12497
+ if (tool === "freeform") {
12498
+ const element = buildFreeformShapeElement(points, { color, width });
12499
+ return element ? { kind: "freeform", element } : null;
12500
+ }
12508
12501
  let minX = Infinity;
12509
12502
  let minY = Infinity;
12510
12503
  let maxX = -Infinity;
@@ -12531,12 +12524,6 @@ function finishDrawStroke(input) {
12531
12524
  const w = Math.max(maxX - minX, 1);
12532
12525
  const h = Math.max(maxY - minY, 1);
12533
12526
  const relPoints = points.map((pt) => ({ x: pt.x - minX, y: pt.y - minY }));
12534
- if (tool === "freeform") {
12535
- return {
12536
- kind: "freeform",
12537
- element: buildFreeformShape(relPoints, { x: minX, y: minY, w, h }, color, width)
12538
- };
12539
- }
12540
12527
  return {
12541
12528
  kind: "ink",
12542
12529
  element: buildInkElement(
@@ -12549,33 +12536,6 @@ function finishDrawStroke(input) {
12549
12536
  )
12550
12537
  };
12551
12538
  }
12552
- function buildFreeformShape(relPoints, box, color, width) {
12553
- const COORD_SCALE = 100;
12554
- const segments = [];
12555
- for (let i = 0; i < relPoints.length; i++) {
12556
- const scaledPt = {
12557
- x: Math.round(relPoints[i].x * COORD_SCALE),
12558
- y: Math.round(relPoints[i].y * COORD_SCALE)
12559
- };
12560
- segments.push(i === 0 ? { type: "moveTo", pt: scaledPt } : { type: "lineTo", pt: scaledPt });
12561
- }
12562
- if (segments.length > 2) {
12563
- segments.push({ type: "close" });
12564
- }
12565
- return {
12566
- id: `shape-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
12567
- type: "shape",
12568
- x: box.x,
12569
- y: box.y,
12570
- width: box.w,
12571
- height: box.h,
12572
- shapeType: "custom",
12573
- shapeStyle: { fillColor: "transparent", strokeColor: color, strokeWidth: width },
12574
- customGeometryPaths: [
12575
- { width: Math.round(box.w * COORD_SCALE), height: Math.round(box.h * COORD_SCALE), segments }
12576
- ]
12577
- };
12578
- }
12579
12539
  function buildInkElement(relPoints, box, tool, channels, color, width) {
12580
12540
  const pathD = buildCanvasPathD(relPoints);
12581
12541
  const isHighlighter = tool === "highlighter";
@@ -13839,7 +13799,7 @@ function SlideThumbnailImpl({
13839
13799
  }
13840
13800
  );
13841
13801
  }
13842
- function arePropsEqual2(prev, next) {
13802
+ function slideThumbnailPropsEqual(prev, next) {
13843
13803
  if (prev.slide.id !== next.slide.id) {
13844
13804
  return false;
13845
13805
  }
@@ -13852,6 +13812,9 @@ function arePropsEqual2(prev, next) {
13852
13812
  if (prev.slide.elements !== next.slide.elements) {
13853
13813
  return false;
13854
13814
  }
13815
+ if (prev.slide.showMasterShapes !== next.slide.showMasterShapes) {
13816
+ return false;
13817
+ }
13855
13818
  if (prev.slide.backgroundColor !== next.slide.backgroundColor) {
13856
13819
  return false;
13857
13820
  }
@@ -13878,7 +13841,7 @@ function arePropsEqual2(prev, next) {
13878
13841
  }
13879
13842
  return true;
13880
13843
  }
13881
- var SlideThumbnail = React20.memo(SlideThumbnailImpl, arePropsEqual2);
13844
+ var SlideThumbnail = React20.memo(SlideThumbnailImpl, slideThumbnailPropsEqual);
13882
13845
 
13883
13846
  // src/viewer/components/context-menu-dispatch.ts
13884
13847
  function tableCell(props) {
@@ -13965,7 +13928,21 @@ function ContextMenuSeparator() {
13965
13928
  function ContextMenu(props) {
13966
13929
  const { contextMenuState, mode, onClose } = props;
13967
13930
  const { t } = useTranslation();
13968
- if (!contextMenuState || mode !== "edit") {
13931
+ const open = Boolean(contextMenuState) && mode === "edit";
13932
+ useEffect(() => {
13933
+ if (!open) {
13934
+ return;
13935
+ }
13936
+ const onKeyDown = (event) => {
13937
+ if (event.key === "Escape") {
13938
+ event.preventDefault();
13939
+ onClose();
13940
+ }
13941
+ };
13942
+ document.addEventListener("keydown", onKeyDown);
13943
+ return () => document.removeEventListener("keydown", onKeyDown);
13944
+ }, [open, onClose]);
13945
+ if (!open) {
13969
13946
  return null;
13970
13947
  }
13971
13948
  const handlers = contextMenuHandlers(props);
@@ -15861,7 +15838,7 @@ function SlideCardImpl({
15861
15838
  }
15862
15839
  );
15863
15840
  }
15864
- function arePropsEqual3(prev, next) {
15841
+ function arePropsEqual2(prev, next) {
15865
15842
  if (prev.slide.id !== next.slide.id) {
15866
15843
  return false;
15867
15844
  }
@@ -15903,7 +15880,7 @@ function arePropsEqual3(prev, next) {
15903
15880
  }
15904
15881
  return true;
15905
15882
  }
15906
- var SlideCard = React20.memo(SlideCardImpl, arePropsEqual3);
15883
+ var SlideCard = React20.memo(SlideCardImpl, arePropsEqual2);
15907
15884
  function SorterContextMenu({
15908
15885
  x,
15909
15886
  y,
@@ -19545,7 +19522,7 @@ function ScaledSlidePreviewImpl({
19545
19522
  }
19546
19523
  );
19547
19524
  }
19548
- function arePropsEqual4(prev, next) {
19525
+ function scaledSlidePreviewPropsEqual(prev, next) {
19549
19526
  if (prev.slide.id !== next.slide.id) {
19550
19527
  return false;
19551
19528
  }
@@ -19558,6 +19535,9 @@ function arePropsEqual4(prev, next) {
19558
19535
  if (prev.slide.elements !== next.slide.elements) {
19559
19536
  return false;
19560
19537
  }
19538
+ if (prev.slide.showMasterShapes !== next.slide.showMasterShapes) {
19539
+ return false;
19540
+ }
19561
19541
  if (prev.slide.backgroundColor !== next.slide.backgroundColor) {
19562
19542
  return false;
19563
19543
  }
@@ -19578,7 +19558,7 @@ function arePropsEqual4(prev, next) {
19578
19558
  }
19579
19559
  return true;
19580
19560
  }
19581
- var ScaledSlidePreview = React20.memo(ScaledSlidePreviewImpl, arePropsEqual4);
19561
+ var ScaledSlidePreview = React20.memo(ScaledSlidePreviewImpl, scaledSlidePreviewPropsEqual);
19582
19562
  function PresenterNotesRail({
19583
19563
  slides,
19584
19564
  current,
@@ -36545,6 +36525,7 @@ function ViewerToolbarSection(props) {
36545
36525
  onOpenReadingView: () => s.setShowReadingView(true),
36546
36526
  onOpenOutlineView: () => s.setShowOutlineView(true),
36547
36527
  onUpdateTextStyle: ops.updateSelectedTextStyle,
36528
+ onToggleBullets: ops.toggleSelectedBullets,
36548
36529
  onTransformTextCase: ops.updateSelectedTextCase,
36549
36530
  isOverflowMenuOpen: s.isOverflowMenuOpen,
36550
36531
  onSetOverflowMenuOpen: s.setIsOverflowMenuOpen,
@@ -38059,7 +38040,7 @@ function useTableStyleMapHandlers(input) {
38059
38040
  var AiChatPanel = lazy(async () => {
38060
38041
  const [{ useChat }, { default: Panel }] = await Promise.all([
38061
38042
  import('@ai-sdk/react'),
38062
- import('./AiChatPanel-SINEEZBW.mjs')
38043
+ import('./AiChatPanel-DDZC6IRK.mjs')
38063
38044
  ]);
38064
38045
  function BoundAiChatPanel(props) {
38065
38046
  return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
@@ -41780,10 +41761,17 @@ var PowerPointViewer = forwardRef(
41780
41761
  state.setSelectedElementIds([]);
41781
41762
  state.setInlineEditingElementId(null);
41782
41763
  }, [activeSlideIndex]);
41764
+ const zoomBeforePresentRef = useRef(null);
41783
41765
  useEffect(() => {
41784
41766
  if (mode !== "present") {
41767
+ const remembered = zoomBeforePresentRef.current;
41768
+ if (remembered !== null) {
41769
+ zoomBeforePresentRef.current = null;
41770
+ zoom.setScale(remembered);
41771
+ }
41785
41772
  return;
41786
41773
  }
41774
+ zoomBeforePresentRef.current = zoom.scale;
41787
41775
  state.setSelectedElementId(null);
41788
41776
  state.setSelectedElementIds([]);
41789
41777
  state.setInlineEditingElementId(null);
Binary file
Binary file