pptx-react-viewer 1.22.1 → 1.23.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 (107) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{Model3DScene-NLUSXHD6.mjs → Model3DScene-4XNBDASE.mjs} +2 -2
  3. package/dist/Model3DScene-4XNBDASE.mjs.br +0 -0
  4. package/dist/Model3DScene-4XNBDASE.mjs.gz +0 -0
  5. package/dist/{Model3DScene-3YB3JAJS.js → Model3DScene-AQS7KDM4.js} +3 -3
  6. package/dist/Model3DScene-AQS7KDM4.js.br +0 -0
  7. package/dist/Model3DScene-AQS7KDM4.js.gz +0 -0
  8. package/dist/{PowerPointViewer-WGVR_u4z.d.ts → PowerPointViewer-DFTatVS4.d.ts} +2 -2
  9. package/dist/{PowerPointViewer-WGVR_u4z.d.ts.map → PowerPointViewer-DFTatVS4.d.ts.map} +1 -1
  10. package/dist/{SurfaceChart3DScene-PUQ5DCO5.js → SurfaceChart3DScene-HA2SD6BY.js} +3 -3
  11. package/dist/SurfaceChart3DScene-HA2SD6BY.js.br +0 -0
  12. package/dist/SurfaceChart3DScene-HA2SD6BY.js.gz +0 -0
  13. package/dist/{SurfaceChart3DScene-YBMJQGH3.mjs → SurfaceChart3DScene-K7ZDXDBL.mjs} +2 -2
  14. package/dist/SurfaceChart3DScene-K7ZDXDBL.mjs.br +0 -0
  15. package/dist/SurfaceChart3DScene-K7ZDXDBL.mjs.gz +0 -0
  16. package/dist/{chunk-VSNXVKJI.js → chunk-2DXNTVFV.js} +159 -62
  17. package/dist/chunk-2DXNTVFV.js.br +0 -0
  18. package/dist/chunk-2DXNTVFV.js.gz +0 -0
  19. package/dist/{chunk-B7JRQB5F.mjs → chunk-36NC56XG.mjs} +311 -292
  20. package/dist/chunk-36NC56XG.mjs.br +0 -0
  21. package/dist/chunk-36NC56XG.mjs.gz +0 -0
  22. package/dist/{chunk-3ZGCM6RC.mjs → chunk-AFWMAFWR.mjs} +1076 -289
  23. package/dist/chunk-AFWMAFWR.mjs.br +0 -0
  24. package/dist/chunk-AFWMAFWR.mjs.gz +0 -0
  25. package/dist/{chunk-QVQTDWB7.js → chunk-H5RREYCO.js} +463 -454
  26. package/dist/chunk-H5RREYCO.js.br +0 -0
  27. package/dist/chunk-H5RREYCO.js.gz +0 -0
  28. package/dist/{chunk-5SBQZEKD.mjs → chunk-I42XL2WU.mjs} +130 -34
  29. package/dist/chunk-I42XL2WU.mjs.br +0 -0
  30. package/dist/chunk-I42XL2WU.mjs.gz +0 -0
  31. package/dist/{chunk-DZUI64SO.mjs → chunk-LFEVG3ED.mjs} +13 -4
  32. package/dist/chunk-LFEVG3ED.mjs.br +0 -0
  33. package/dist/chunk-LFEVG3ED.mjs.gz +0 -0
  34. package/dist/{chunk-YPZV4KJT.js → chunk-LS2AIX2H.js} +1087 -1068
  35. package/dist/chunk-LS2AIX2H.js.br +0 -0
  36. package/dist/chunk-LS2AIX2H.js.gz +0 -0
  37. package/dist/{chunk-AD3EAEY6.js → chunk-MS6S6YYR.js} +1076 -289
  38. package/dist/chunk-MS6S6YYR.js.br +0 -0
  39. package/dist/chunk-MS6S6YYR.js.gz +0 -0
  40. package/dist/{dist-3YRZ26TL.mjs → dist-5KQQ6GP2.mjs} +1 -1
  41. package/dist/dist-5KQQ6GP2.mjs.br +0 -0
  42. package/dist/dist-5KQQ6GP2.mjs.gz +0 -0
  43. package/dist/{dist-M2P6HBG4.js → dist-CVSSAFDL.js} +560 -560
  44. package/dist/dist-CVSSAFDL.js.br +0 -0
  45. package/dist/dist-CVSSAFDL.js.gz +0 -0
  46. package/dist/hooks-unstable.d.ts +5107 -5242
  47. package/dist/hooks-unstable.d.ts.map +1 -1
  48. package/dist/hooks-unstable.js +76 -76
  49. package/dist/hooks-unstable.js.br +0 -0
  50. package/dist/hooks-unstable.js.gz +0 -0
  51. package/dist/hooks-unstable.mjs +3 -3
  52. package/dist/hooks-unstable.mjs.br +0 -0
  53. package/dist/hooks-unstable.mjs.gz +0 -0
  54. package/dist/i18n.d.ts +3 -0
  55. package/dist/{index-SUL_8gq8.d.ts → index-CGKutKk1.d.ts} +4 -1
  56. package/dist/index-CGKutKk1.d.ts.map +1 -0
  57. package/dist/{index-ntF3kHHU.d.ts → index-COgh2UTL.d.ts} +2 -2
  58. package/dist/{index-ntF3kHHU.d.ts.map → index-COgh2UTL.d.ts.map} +1 -1
  59. package/dist/index.d.ts +3328 -3386
  60. package/dist/index.js +30 -30
  61. package/dist/index.js.br +0 -0
  62. package/dist/index.js.gz +0 -0
  63. package/dist/index.mjs +4 -4
  64. package/dist/index.mjs.br +0 -0
  65. package/dist/index.mjs.gz +0 -0
  66. package/dist/pptx-viewer.css +1 -1
  67. package/dist/pptx-viewer.css.br +0 -0
  68. package/dist/pptx-viewer.css.gz +0 -0
  69. package/dist/{types-Cdh0XYcS.d.ts → types-Da1M5VBY.d.ts} +2 -2
  70. package/dist/{types-Cdh0XYcS.d.ts.map → types-Da1M5VBY.d.ts.map} +1 -1
  71. package/dist/viewer/index.d.ts +5118 -5224
  72. package/dist/viewer/index.js +20 -20
  73. package/dist/viewer/index.js.br +0 -0
  74. package/dist/viewer/index.js.gz +0 -0
  75. package/dist/viewer/index.mjs +4 -4
  76. package/dist/viewer/index.mjs.br +0 -0
  77. package/dist/viewer/index.mjs.gz +0 -0
  78. package/package.json +1 -1
  79. package/dist/Model3DScene-3YB3JAJS.js.br +0 -0
  80. package/dist/Model3DScene-3YB3JAJS.js.gz +0 -0
  81. package/dist/Model3DScene-NLUSXHD6.mjs.br +0 -0
  82. package/dist/Model3DScene-NLUSXHD6.mjs.gz +0 -0
  83. package/dist/SurfaceChart3DScene-PUQ5DCO5.js.br +0 -0
  84. package/dist/SurfaceChart3DScene-PUQ5DCO5.js.gz +0 -0
  85. package/dist/SurfaceChart3DScene-YBMJQGH3.mjs.br +0 -0
  86. package/dist/SurfaceChart3DScene-YBMJQGH3.mjs.gz +0 -0
  87. package/dist/chunk-3ZGCM6RC.mjs.br +0 -0
  88. package/dist/chunk-3ZGCM6RC.mjs.gz +0 -0
  89. package/dist/chunk-5SBQZEKD.mjs.br +0 -0
  90. package/dist/chunk-5SBQZEKD.mjs.gz +0 -0
  91. package/dist/chunk-AD3EAEY6.js.br +0 -0
  92. package/dist/chunk-AD3EAEY6.js.gz +0 -0
  93. package/dist/chunk-B7JRQB5F.mjs.br +0 -0
  94. package/dist/chunk-B7JRQB5F.mjs.gz +0 -0
  95. package/dist/chunk-DZUI64SO.mjs.br +0 -0
  96. package/dist/chunk-DZUI64SO.mjs.gz +0 -0
  97. package/dist/chunk-QVQTDWB7.js.br +0 -0
  98. package/dist/chunk-QVQTDWB7.js.gz +0 -0
  99. package/dist/chunk-VSNXVKJI.js.br +0 -0
  100. package/dist/chunk-VSNXVKJI.js.gz +0 -0
  101. package/dist/chunk-YPZV4KJT.js.br +0 -0
  102. package/dist/chunk-YPZV4KJT.js.gz +0 -0
  103. package/dist/dist-3YRZ26TL.mjs.br +0 -0
  104. package/dist/dist-3YRZ26TL.mjs.gz +0 -0
  105. package/dist/dist-M2P6HBG4.js.br +0 -0
  106. package/dist/dist-M2P6HBG4.js.gz +0 -0
  107. package/dist/index-SUL_8gq8.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
- import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useFollowMode, useBroadcastFollower, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_TRANSITION_OPTIONS, SLIDE_NAV_THUMBNAIL_WIDTH, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, SHORTCUT_REFERENCE_ITEMS, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-DZUI64SO.mjs';
2
- import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, ACTION_BUTTON_PRESETS, getElementLabel, RULER_THICKNESS, RULER_FONT_SIZE, convertLatexToOmml, convertOmmlToMathMl, sanitizeMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, buildCssGradientFromShapeStyle, buildSmartArtA11y, buildSummaryZoomView, getImageColorWashStyle, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, shouldUseSvgWarp, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, createBackstagePresentation, SETTING_TOGGLES, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, activateModalFocus, buildCollaborationShareUrl, presentationInkPath, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, SLIDE_VIRTUALIZATION_THRESHOLD, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, TABLE_STYLE_PRESETS, formatCommentTimestamp, DIRECTIONAL_PRESETS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, DUOTONE_PRESETS, ARTISTIC_EFFECTS, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS } from './chunk-5SBQZEKD.mjs';
1
+ import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useFollowMode, useBroadcastFollower, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_TRANSITION_OPTIONS, SLIDE_NAV_THUMBNAIL_WIDTH, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, SHORTCUT_REFERENCE_ITEMS, useCollaborativeState, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, HYPERLINK_COLOR, GRID_SIZE, startPreviewAnimation, stopPreviewAnimation } from './chunk-LFEVG3ED.mjs';
2
+ import { normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, getElementTransform, isEditableTextElement, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, ACTION_BUTTON_PRESETS, getElementLabel, RULER_THICKNESS, RULER_FONT_SIZE, EQUATION_TEMPLATES, convertLatexToOmml, convertOmmlToMathMl, sanitizeMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, buildCssGradientFromShapeStyle, buildSmartArtA11y, buildSummaryZoomView, getImageColorWashStyle, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, shouldUseSvgWarp, themeToCssVars, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, createBackstagePresentation, SETTING_TOGGLES, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, safeOpenUrl, isPpactionUrl, parsePpactionUrl, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, clampPercent, HANDOUT_OPTIONS, activateModalFocus, buildCollaborationShareUrl, presentationInkPath, mobileElapsedSince, isFirstSlide, isLastSlide, formatMobileElapsed, mobileSlideCounter, formatElapsed, computeInlineEditorRect, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, groupIntoParagraphs, substituteFieldText, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, SLIDE_VIRTUALIZATION_THRESHOLD, getShapeAdjustmentHandleDescriptor, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, formatSlideCounter, isUrlSafe, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, getConnectionSites, generateTicks, getCommentMarkerPosition, buildThemeColorGrid, THEME_COLOR_LABELS, buildSmartArtPresetData, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, TABLE_STYLE_PRESETS, formatCommentTimestamp, DIRECTIONAL_PRESETS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, DUOTONE_PRESETS, ARTISTIC_EFFECTS, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS } from './chunk-I42XL2WU.mjs';
3
3
  import { LOCALE_CATALOG, translationsEn } from './chunk-E3KJKCSV.mjs';
4
- import { hasShapeProperties, hasTextProperties, isInkElement, SWITCHABLE_LAYOUT_TYPES, isImageLikeElement, getLinkedTextBoxSegments, getSubstituteFontFamily, themeColorSchemesEqual, setSmartArtNodeStyle, updateSmartArtNodeText, THEME_COLOR_SCHEME_KEYS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, addSmartArtNodeAsChild, removeSmartArtNode, elementActionToPptxAction, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode } from './chunk-3ZGCM6RC.mjs';
4
+ import { hasShapeProperties, hasTextProperties, isInkElement, SWITCHABLE_LAYOUT_TYPES, isImageLikeElement, getLinkedTextBoxSegments, getSubstituteFontFamily, themeColorSchemesEqual, setSmartArtNodeStyle, updateSmartArtNodeText, THEME_COLOR_SCHEME_KEYS, chartDataChangeType, chartDataUpdatePoint, chartDataAddCategory, chartDataRemoveCategory, chartDataAddSeries, chartDataRemoveSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, pptxActionToElementAction, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, addSmartArtNodeAsChild, removeSmartArtNode, elementActionToPptxAction, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode } from './chunk-AFWMAFWR.mjs';
5
5
  import React14, { createContext, useMemo, useState, useCallback, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, useDeferredValue } from 'react';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
  import { useTranslation } from 'react-i18next';
@@ -2834,7 +2834,7 @@ function FailedToLoad() {
2834
2834
  var LazyModel3DScene = React14.lazy(
2835
2835
  async () => {
2836
2836
  try {
2837
- return await import('./Model3DScene-NLUSXHD6.mjs');
2837
+ return await import('./Model3DScene-4XNBDASE.mjs');
2838
2838
  } catch {
2839
2839
  return { default: FailedToLoad };
2840
2840
  }
@@ -12566,7 +12566,7 @@ var _b = "inline-flex items-center justify-center px-2.5 py-1.5 max-md:min-h-[44
12566
12566
  var gB = `${_b} border-r border-border hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed`;
12567
12567
  var gL = `${_b} hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed`;
12568
12568
  var grp = "inline-flex items-center rounded bg-muted text-xs overflow-hidden";
12569
- var pill = "inline-flex items-center gap-1.5 px-2.5 py-1.5 max-md:min-h-[44px] rounded bg-muted hover:bg-accent text-xs transition-colors active:scale-95 active:opacity-80";
12569
+ var pill = "inline-flex items-center gap-1.5 px-2.5 py-1.5 max-md:min-h-[44px] rounded bg-muted hover:bg-accent text-xs transition-colors active:scale-95 active:opacity-80 disabled:opacity-40 disabled:cursor-not-allowed";
12570
12570
  var sep = /* @__PURE__ */ jsx("div", { className: "w-px self-stretch bg-border/40 mx-1 max-md:hidden" });
12571
12571
  var ic2 = "w-4 h-4";
12572
12572
  var ics = "w-3.5 h-3.5";
@@ -12725,156 +12725,168 @@ function ArrangeSection(p) {
12725
12725
  const { t } = useTranslation();
12726
12726
  const hasSel = Boolean(p.selectedElement);
12727
12727
  const canMut = hasSel && p.canEdit;
12728
- return /* @__PURE__ */ jsxs(Fragment, { children: [
12729
- /* @__PURE__ */ jsx("div", { className: grp, children: ALIGN_BTNS.map((a, i, arr) => /* @__PURE__ */ jsx(
12730
- "button",
12731
- {
12732
- type: "button",
12733
- onClick: () => p.onAlignElements(a.k),
12734
- disabled: !canMut,
12735
- className: i < arr.length - 1 ? gB : gL,
12736
- title: t("pptx.arrange.align", { direction: a.k }),
12737
- children: a.el
12738
- },
12739
- a.k
12740
- )) }),
12741
- /* @__PURE__ */ jsx("div", { className: grp, children: DISTRIBUTE_BTNS.map((d, i, arr) => /* @__PURE__ */ jsx(
12742
- "button",
12743
- {
12744
- type: "button",
12745
- onClick: () => p.onDistributeElements(d.k),
12746
- disabled: !p.canEdit || !p.canDistribute,
12747
- className: i < arr.length - 1 ? gB : gL,
12748
- title: t(`pptx.arrange.distribute${d.k.charAt(0).toUpperCase()}${d.k.slice(1)}`),
12749
- children: d.el
12750
- },
12751
- d.k
12752
- )) }),
12753
- /* @__PURE__ */ jsxs("div", { className: grp, children: [
12754
- /* @__PURE__ */ jsx("button", { onClick: p.onCopy, disabled: !hasSel, className: gB, title: t("pptx.arrange.copy"), children: /* @__PURE__ */ jsx(LuCopy, { className: ic2 }) }),
12755
- /* @__PURE__ */ jsx("button", { onClick: p.onCut, disabled: !canMut, className: gB, title: t("pptx.arrange.cut"), children: t("pptx.arrange.cut") }),
12756
- /* @__PURE__ */ jsx(
12757
- "button",
12758
- {
12759
- onClick: p.onPaste,
12760
- disabled: !p.clipboardPayload || !p.canEdit,
12761
- className: gL,
12762
- title: t("pptx.arrange.paste"),
12763
- children: /* @__PURE__ */ jsx(LuClipboardPaste, { className: ic2 })
12764
- }
12765
- )
12766
- ] }),
12767
- p.onToggleFormatPainter && /* @__PURE__ */ jsxs(
12768
- "button",
12769
- {
12770
- type: "button",
12771
- onClick: p.onToggleFormatPainter,
12772
- disabled: !p.canEdit || p.canActivateFormatPainter === false && !p.formatPainterActive,
12773
- "data-testid": "format-painter-toggle",
12774
- "data-active": p.formatPainterActive ? "true" : "false",
12775
- className: cn(
12776
- pill,
12777
- p.formatPainterActive ? "bg-amber-600 hover:bg-amber-500 text-amber-50" : ""
12778
- ),
12779
- title: t("pptx.arrange.formatPainter"),
12780
- children: [
12781
- /* @__PURE__ */ jsx(LuPaintbrush, { className: ic2 }),
12782
- t("pptx.arrange.format")
12783
- ]
12784
- }
12785
- ),
12786
- /* @__PURE__ */ jsxs("div", { className: grp, children: [
12787
- /* @__PURE__ */ jsx(
12728
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-0.5", children: [
12729
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
12730
+ /* @__PURE__ */ jsx("div", { className: grp, children: ALIGN_BTNS.map((a, i, arr) => /* @__PURE__ */ jsx(
12788
12731
  "button",
12789
12732
  {
12790
12733
  type: "button",
12791
- onClick: () => p.onFlip("horizontal"),
12734
+ onClick: () => p.onAlignElements(a.k),
12792
12735
  disabled: !canMut,
12793
- className: gB,
12794
- title: t("pptx.arrange.flipHorizontally"),
12795
- children: t("pptx.arrange.flipH")
12796
- }
12797
- ),
12798
- /* @__PURE__ */ jsx(
12736
+ className: i < arr.length - 1 ? gB : gL,
12737
+ title: t("pptx.arrange.align", { direction: a.k }),
12738
+ children: a.el
12739
+ },
12740
+ a.k
12741
+ )) }),
12742
+ /* @__PURE__ */ jsx("div", { className: grp, children: DISTRIBUTE_BTNS.map((d, i, arr) => /* @__PURE__ */ jsx(
12799
12743
  "button",
12800
12744
  {
12801
12745
  type: "button",
12802
- onClick: () => p.onFlip("vertical"),
12803
- disabled: !canMut,
12804
- className: gL,
12805
- title: t("pptx.arrange.flipVertically"),
12806
- children: t("pptx.arrange.flipV")
12807
- }
12808
- )
12809
- ] }),
12810
- /* @__PURE__ */ jsxs("div", { className: grp, children: [
12811
- /* @__PURE__ */ jsx(
12812
- "button",
12813
- {
12814
- onClick: () => p.onMoveLayer("backward"),
12815
- disabled: !canMut,
12816
- className: gB,
12817
- title: t("pptx.arrange.sendBackward"),
12818
- children: /* @__PURE__ */ jsx(LuChevronDown, { className: ic2 })
12819
- }
12820
- ),
12821
- /* @__PURE__ */ jsx(
12746
+ onClick: () => p.onDistributeElements(d.k),
12747
+ disabled: !p.canEdit || !p.canDistribute,
12748
+ className: i < arr.length - 1 ? gB : gL,
12749
+ title: t(`pptx.arrange.distribute${d.k.charAt(0).toUpperCase()}${d.k.slice(1)}`),
12750
+ children: d.el
12751
+ },
12752
+ d.k
12753
+ )) }),
12754
+ /* @__PURE__ */ jsxs("div", { className: grp, children: [
12755
+ /* @__PURE__ */ jsx(
12756
+ "button",
12757
+ {
12758
+ onClick: p.onCopy,
12759
+ disabled: !hasSel,
12760
+ className: gB,
12761
+ title: t("pptx.arrange.copy"),
12762
+ children: /* @__PURE__ */ jsx(LuCopy, { className: ic2 })
12763
+ }
12764
+ ),
12765
+ /* @__PURE__ */ jsx("button", { onClick: p.onCut, disabled: !canMut, className: gB, title: t("pptx.arrange.cut"), children: t("pptx.arrange.cut") }),
12766
+ /* @__PURE__ */ jsx(
12767
+ "button",
12768
+ {
12769
+ onClick: p.onPaste,
12770
+ disabled: !p.clipboardPayload || !p.canEdit,
12771
+ className: gL,
12772
+ title: t("pptx.arrange.paste"),
12773
+ children: /* @__PURE__ */ jsx(LuClipboardPaste, { className: ic2 })
12774
+ }
12775
+ )
12776
+ ] }),
12777
+ p.onToggleFormatPainter && /* @__PURE__ */ jsxs(
12822
12778
  "button",
12823
12779
  {
12824
- onClick: () => p.onMoveLayer("forward"),
12825
- disabled: !canMut,
12826
- className: gB,
12827
- title: t("pptx.arrange.bringForward"),
12828
- children: /* @__PURE__ */ jsx(LuChevronUp, { className: ic2 })
12780
+ type: "button",
12781
+ onClick: p.onToggleFormatPainter,
12782
+ disabled: !p.canEdit || p.canActivateFormatPainter === false && !p.formatPainterActive,
12783
+ "data-testid": "format-painter-toggle",
12784
+ "data-active": p.formatPainterActive ? "true" : "false",
12785
+ className: cn(
12786
+ pill,
12787
+ p.formatPainterActive ? "bg-amber-600 hover:bg-amber-500 text-amber-50" : ""
12788
+ ),
12789
+ title: t("pptx.arrange.formatPainter"),
12790
+ children: [
12791
+ /* @__PURE__ */ jsx(LuPaintbrush, { className: ic2 }),
12792
+ t("pptx.arrange.format")
12793
+ ]
12829
12794
  }
12830
12795
  ),
12831
- /* @__PURE__ */ jsx(
12796
+ /* @__PURE__ */ jsxs("div", { className: grp, children: [
12797
+ /* @__PURE__ */ jsx(
12798
+ "button",
12799
+ {
12800
+ type: "button",
12801
+ onClick: () => p.onFlip("horizontal"),
12802
+ disabled: !canMut,
12803
+ className: gB,
12804
+ title: t("pptx.arrange.flipHorizontally"),
12805
+ children: t("pptx.arrange.flipH")
12806
+ }
12807
+ ),
12808
+ /* @__PURE__ */ jsx(
12809
+ "button",
12810
+ {
12811
+ type: "button",
12812
+ onClick: () => p.onFlip("vertical"),
12813
+ disabled: !canMut,
12814
+ className: gL,
12815
+ title: t("pptx.arrange.flipVertically"),
12816
+ children: t("pptx.arrange.flipV")
12817
+ }
12818
+ )
12819
+ ] }),
12820
+ /* @__PURE__ */ jsxs("div", { className: grp, children: [
12821
+ /* @__PURE__ */ jsx(
12822
+ "button",
12823
+ {
12824
+ onClick: () => p.onMoveLayer("backward"),
12825
+ disabled: !canMut,
12826
+ className: gB,
12827
+ title: t("pptx.arrange.sendBackward"),
12828
+ children: /* @__PURE__ */ jsx(LuChevronDown, { className: ic2 })
12829
+ }
12830
+ ),
12831
+ /* @__PURE__ */ jsx(
12832
+ "button",
12833
+ {
12834
+ onClick: () => p.onMoveLayer("forward"),
12835
+ disabled: !canMut,
12836
+ className: gB,
12837
+ title: t("pptx.arrange.bringForward"),
12838
+ children: /* @__PURE__ */ jsx(LuChevronUp, { className: ic2 })
12839
+ }
12840
+ ),
12841
+ /* @__PURE__ */ jsx(
12842
+ "button",
12843
+ {
12844
+ onClick: () => p.onMoveLayerToEdge("back"),
12845
+ disabled: !canMut,
12846
+ className: gB,
12847
+ title: t("pptx.arrange.sendToBack"),
12848
+ children: t("pptx.arrange.back")
12849
+ }
12850
+ ),
12851
+ /* @__PURE__ */ jsx(
12852
+ "button",
12853
+ {
12854
+ onClick: () => p.onMoveLayerToEdge("front"),
12855
+ disabled: !canMut,
12856
+ className: gL,
12857
+ title: t("pptx.arrange.bringToFront"),
12858
+ children: t("pptx.arrange.front")
12859
+ }
12860
+ )
12861
+ ] }),
12862
+ /* @__PURE__ */ jsxs(
12832
12863
  "button",
12833
12864
  {
12834
- onClick: () => p.onMoveLayerToEdge("back"),
12865
+ onClick: p.onDuplicate,
12835
12866
  disabled: !canMut,
12836
- className: gB,
12837
- title: t("pptx.arrange.sendToBack"),
12838
- children: t("pptx.arrange.back")
12867
+ className: pill,
12868
+ title: t("pptx.arrange.duplicate"),
12869
+ children: [
12870
+ /* @__PURE__ */ jsx(LuCopy, { className: ic2 }),
12871
+ t("pptx.arrange.duplicate")
12872
+ ]
12839
12873
  }
12840
12874
  ),
12841
- /* @__PURE__ */ jsx(
12875
+ /* @__PURE__ */ jsxs(
12842
12876
  "button",
12843
12877
  {
12844
- onClick: () => p.onMoveLayerToEdge("front"),
12878
+ onClick: p.onDelete,
12845
12879
  disabled: !canMut,
12846
- className: gL,
12847
- title: t("pptx.arrange.bringToFront"),
12848
- children: t("pptx.arrange.front")
12880
+ className: "inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded bg-red-700/80 hover:bg-red-600 disabled:opacity-40 disabled:cursor-not-allowed text-xs transition-colors",
12881
+ title: t("pptx.arrange.delete"),
12882
+ children: [
12883
+ /* @__PURE__ */ jsx(LuTrash2, { className: ic2 }),
12884
+ t("pptx.arrange.delete")
12885
+ ]
12849
12886
  }
12850
12887
  )
12851
12888
  ] }),
12852
- /* @__PURE__ */ jsxs(
12853
- "button",
12854
- {
12855
- onClick: p.onDuplicate,
12856
- disabled: !canMut,
12857
- className: pill,
12858
- title: t("pptx.arrange.duplicate"),
12859
- children: [
12860
- /* @__PURE__ */ jsx(LuCopy, { className: ic2 }),
12861
- t("pptx.arrange.duplicate")
12862
- ]
12863
- }
12864
- ),
12865
- /* @__PURE__ */ jsxs(
12866
- "button",
12867
- {
12868
- onClick: p.onDelete,
12869
- disabled: !canMut,
12870
- className: "inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded bg-red-700/80 hover:bg-red-600 disabled:opacity-40 disabled:cursor-not-allowed text-xs transition-colors",
12871
- title: t("pptx.arrange.delete"),
12872
- children: [
12873
- /* @__PURE__ */ jsx(LuTrash2, { className: ic2 }),
12874
- t("pptx.arrange.delete")
12875
- ]
12876
- }
12877
- )
12889
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: t("pptx.arrange.groupLabel") })
12878
12890
  ] });
12879
12891
  }
12880
12892
  function DesignSection(p) {
@@ -13158,7 +13170,7 @@ function AccountPage() {
13158
13170
  return void 0;
13159
13171
  });
13160
13172
  };
13161
- const version = "1.22.0" ;
13173
+ const version = "1.22.2" ;
13162
13174
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
13163
13175
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
13164
13176
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -13633,6 +13645,42 @@ function FileSection(p) {
13633
13645
  }
13634
13646
  );
13635
13647
  }
13648
+ function RibbonMenu({
13649
+ anchorRef,
13650
+ className,
13651
+ children
13652
+ }) {
13653
+ const [pos, setPos] = useState(null);
13654
+ useEffect(() => {
13655
+ const anchor = anchorRef.current;
13656
+ if (!anchor) {
13657
+ return;
13658
+ }
13659
+ const update = () => {
13660
+ const rect = anchor.getBoundingClientRect();
13661
+ setPos(
13662
+ (prev) => prev && prev.left === rect.left && prev.top === rect.bottom ? prev : { left: rect.left, top: rect.bottom }
13663
+ );
13664
+ };
13665
+ update();
13666
+ anchor.addEventListener("mouseenter", update);
13667
+ window.addEventListener("resize", update);
13668
+ document.addEventListener("scroll", update, true);
13669
+ return () => {
13670
+ anchor.removeEventListener("mouseenter", update);
13671
+ window.removeEventListener("resize", update);
13672
+ document.removeEventListener("scroll", update, true);
13673
+ };
13674
+ }, [anchorRef]);
13675
+ return /* @__PURE__ */ jsx(
13676
+ "div",
13677
+ {
13678
+ className: cn("fixed z-50", className),
13679
+ style: pos ? { left: pos.left, top: pos.top } : { visibility: "hidden" },
13680
+ children
13681
+ }
13682
+ );
13683
+ }
13636
13684
  function SlidesGroup(p) {
13637
13685
  const { t } = useTranslation();
13638
13686
  const [newSlideMenuOpen, setNewSlideMenuOpen] = useState(false);
@@ -13702,7 +13750,7 @@ function SlidesGroup(p) {
13702
13750
  children: /* @__PURE__ */ jsx(LuChevronDown, { className: "w-3 h-3" })
13703
13751
  }
13704
13752
  ),
13705
- newSlideMenuOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: p.layoutOptions.map((lo) => /* @__PURE__ */ jsx(
13753
+ newSlideMenuOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: newSlideMenuRef, className: "flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: p.layoutOptions.map((lo) => /* @__PURE__ */ jsx(
13706
13754
  "button",
13707
13755
  {
13708
13756
  type: "button",
@@ -13731,7 +13779,7 @@ function SlidesGroup(p) {
13731
13779
  ]
13732
13780
  }
13733
13781
  ),
13734
- layoutMenuOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: p.layoutOptions.map((lo) => /* @__PURE__ */ jsx(
13782
+ layoutMenuOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: layoutMenuRef, className: "flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: p.layoutOptions.map((lo) => /* @__PURE__ */ jsx(
13735
13783
  "button",
13736
13784
  {
13737
13785
  type: "button",
@@ -13934,7 +13982,7 @@ function HomeSection(p) {
13934
13982
  ]
13935
13983
  }
13936
13984
  ),
13937
- fontMenuOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: COMMON_FONTS.map((f) => /* @__PURE__ */ jsx(
13985
+ fontMenuOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: fontMenuRef, className: "flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: COMMON_FONTS.map((f) => /* @__PURE__ */ jsx(
13938
13986
  "button",
13939
13987
  {
13940
13988
  type: "button",
@@ -13962,7 +14010,7 @@ function HomeSection(p) {
13962
14010
  ]
13963
14011
  }
13964
14012
  ),
13965
- sizeMenuOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: COMMON_SIZES.map((s) => /* @__PURE__ */ jsx(
14013
+ sizeMenuOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: sizeMenuRef, className: "flex flex-col w-48 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: COMMON_SIZES.map((s) => /* @__PURE__ */ jsx(
13966
14014
  "button",
13967
14015
  {
13968
14016
  type: "button",
@@ -13990,6 +14038,8 @@ function InsertSection(p) {
13990
14038
  const [dateFormat, setDateFormat] = useState("locale");
13991
14039
  const [newChartType, setNewChartType] = useState(DEFAULT_INSERT_CHART_TYPE);
13992
14040
  const datePickerRef = useRef(null);
14041
+ const actionMenuRef = useRef(null);
14042
+ const fieldMenuRef = useRef(null);
13993
14043
  const openDatePicker = useCallback(() => {
13994
14044
  const now = /* @__PURE__ */ new Date();
13995
14045
  const pad = (n) => String(n).padStart(2, "0");
@@ -14207,7 +14257,7 @@ function InsertSection(p) {
14207
14257
  ]
14208
14258
  }
14209
14259
  ),
14210
- /* @__PURE__ */ jsxs("div", { className: "relative group", children: [
14260
+ /* @__PURE__ */ jsxs("div", { className: "relative group inline-flex items-center", ref: actionMenuRef, children: [
14211
14261
  /* @__PURE__ */ jsxs(
14212
14262
  "button",
14213
14263
  {
@@ -14237,34 +14287,41 @@ function InsertSection(p) {
14237
14287
  ]
14238
14288
  }
14239
14289
  ),
14240
- /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 hidden group-hover:flex flex-col w-40 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1", children: ACTION_BUTTON_PRESETS.map((preset) => /* @__PURE__ */ jsxs(
14241
- "button",
14290
+ /* @__PURE__ */ jsx(
14291
+ RibbonMenu,
14242
14292
  {
14243
- type: "button",
14244
- disabled: !canEdit,
14245
- className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14246
- onClick: () => p.onAddActionButton(preset.shapeType),
14247
- children: [
14248
- /* @__PURE__ */ jsx(
14249
- "svg",
14250
- {
14251
- className: "w-4 h-4 flex-shrink-0",
14252
- viewBox: "0 0 24 24",
14253
- fill: "none",
14254
- stroke: "currentColor",
14255
- strokeWidth: "2",
14256
- strokeLinecap: "round",
14257
- strokeLinejoin: "round",
14258
- children: /* @__PURE__ */ jsx("path", { d: preset.iconPath })
14259
- }
14260
- ),
14261
- preset.label
14262
- ]
14263
- },
14264
- preset.shapeType
14265
- )) }) })
14293
+ anchorRef: actionMenuRef,
14294
+ className: "hidden group-hover:flex flex-col w-40 pt-1",
14295
+ children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1", children: ACTION_BUTTON_PRESETS.map((preset) => /* @__PURE__ */ jsxs(
14296
+ "button",
14297
+ {
14298
+ type: "button",
14299
+ disabled: !canEdit,
14300
+ className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14301
+ onClick: () => p.onAddActionButton(preset.shapeType),
14302
+ children: [
14303
+ /* @__PURE__ */ jsx(
14304
+ "svg",
14305
+ {
14306
+ className: "w-4 h-4 flex-shrink-0",
14307
+ viewBox: "0 0 24 24",
14308
+ fill: "none",
14309
+ stroke: "currentColor",
14310
+ strokeWidth: "2",
14311
+ strokeLinecap: "round",
14312
+ strokeLinejoin: "round",
14313
+ children: /* @__PURE__ */ jsx("path", { d: preset.iconPath })
14314
+ }
14315
+ ),
14316
+ preset.label
14317
+ ]
14318
+ },
14319
+ preset.shapeType
14320
+ )) })
14321
+ }
14322
+ )
14266
14323
  ] }),
14267
- p.onInsertField && /* @__PURE__ */ jsxs("div", { className: "relative group", children: [
14324
+ p.onInsertField && /* @__PURE__ */ jsxs("div", { className: "relative group inline-flex items-center", ref: fieldMenuRef, children: [
14268
14325
  /* @__PURE__ */ jsxs(
14269
14326
  "button",
14270
14327
  {
@@ -14294,50 +14351,66 @@ function InsertSection(p) {
14294
14351
  ]
14295
14352
  }
14296
14353
  ),
14297
- /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 hidden group-hover:flex flex-col w-44 pt-1", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1", children: [
14298
- /* @__PURE__ */ jsx(
14299
- "button",
14300
- {
14301
- type: "button",
14302
- disabled: !canEdit,
14303
- className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14304
- onClick: () => p.onInsertField("slidenum"),
14305
- children: t("pptx.field.slideNumber")
14306
- }
14307
- ),
14308
- /* @__PURE__ */ jsx(
14309
- "button",
14310
- {
14311
- type: "button",
14312
- disabled: !canEdit,
14313
- className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14314
- onClick: openDatePicker,
14315
- children: t("pptx.field.dateTime")
14316
- }
14317
- ),
14318
- /* @__PURE__ */ jsx(
14319
- "button",
14320
- {
14321
- type: "button",
14322
- disabled: !canEdit,
14323
- className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14324
- onClick: () => p.onInsertField("header"),
14325
- children: t("pptx.field.header")
14326
- }
14327
- ),
14328
- /* @__PURE__ */ jsx(
14329
- "button",
14330
- {
14331
- type: "button",
14332
- disabled: !canEdit,
14333
- className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14334
- onClick: () => p.onInsertField("footer"),
14335
- children: t("pptx.field.footer")
14336
- }
14337
- )
14338
- ] }) })
14354
+ /* @__PURE__ */ jsx(
14355
+ RibbonMenu,
14356
+ {
14357
+ anchorRef: fieldMenuRef,
14358
+ className: "hidden group-hover:flex flex-col w-44 pt-1",
14359
+ children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1", children: [
14360
+ /* @__PURE__ */ jsx(
14361
+ "button",
14362
+ {
14363
+ type: "button",
14364
+ disabled: !canEdit,
14365
+ className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14366
+ onClick: () => p.onInsertField("slidenum"),
14367
+ children: t("pptx.field.slideNumber")
14368
+ }
14369
+ ),
14370
+ /* @__PURE__ */ jsx(
14371
+ "button",
14372
+ {
14373
+ type: "button",
14374
+ disabled: !canEdit,
14375
+ className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14376
+ onClick: openDatePicker,
14377
+ children: t("pptx.field.dateTime")
14378
+ }
14379
+ ),
14380
+ /* @__PURE__ */ jsx(
14381
+ "button",
14382
+ {
14383
+ type: "button",
14384
+ disabled: !canEdit,
14385
+ className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14386
+ onClick: () => p.onInsertField("header"),
14387
+ children: t("pptx.field.header")
14388
+ }
14389
+ ),
14390
+ /* @__PURE__ */ jsx(
14391
+ "button",
14392
+ {
14393
+ type: "button",
14394
+ disabled: !canEdit,
14395
+ className: "flex items-center gap-2 w-full px-3 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",
14396
+ onClick: () => p.onInsertField("footer"),
14397
+ children: t("pptx.field.footer")
14398
+ }
14399
+ )
14400
+ ] })
14401
+ }
14402
+ )
14339
14403
  ] }),
14340
- p.onOpenHeaderFooter && /* @__PURE__ */ jsx("button", { type: "button", disabled: !canEdit, className: pill, onClick: p.onOpenHeaderFooter, children: t("pptx.headerFooter.title") }),
14404
+ p.onOpenHeaderFooter && /* @__PURE__ */ jsx(
14405
+ "button",
14406
+ {
14407
+ type: "button",
14408
+ disabled: !canEdit,
14409
+ className: cn(pill, "whitespace-nowrap"),
14410
+ onClick: p.onOpenHeaderFooter,
14411
+ children: t("pptx.headerFooter.title")
14412
+ }
14413
+ ),
14341
14414
  datePickerOpen && /* @__PURE__ */ jsx(
14342
14415
  "div",
14343
14416
  {
@@ -14772,7 +14845,7 @@ function LineSpacingDropdown(p) {
14772
14845
  ] })
14773
14846
  }
14774
14847
  ),
14775
- open && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-28", children: LINE_SPACING_OPTIONS.map((opt) => /* @__PURE__ */ jsxs(
14848
+ open && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: ref, className: "pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-28", children: LINE_SPACING_OPTIONS.map((opt) => /* @__PURE__ */ jsxs(
14776
14849
  "button",
14777
14850
  {
14778
14851
  type: "button",
@@ -14817,7 +14890,7 @@ function TextDirectionDropdown(p) {
14817
14890
  ] })
14818
14891
  }
14819
14892
  ),
14820
- open && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-36", children: TEXT_DIRECTION_OPTIONS.map((opt) => /* @__PURE__ */ jsx(
14893
+ open && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: ref, className: "pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-36", children: TEXT_DIRECTION_OPTIONS.map((opt) => /* @__PURE__ */ jsx(
14821
14894
  "button",
14822
14895
  {
14823
14896
  type: "button",
@@ -14854,7 +14927,7 @@ function ColumnsDropdown(p) {
14854
14927
  children: /* @__PURE__ */ jsx(LuColumns3, { className: ic2 })
14855
14928
  }
14856
14929
  ),
14857
- open && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-28", children: COLUMN_OPTIONS.map((opt) => /* @__PURE__ */ jsx(
14930
+ open && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: ref, className: "pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-28", children: COLUMN_OPTIONS.map((opt) => /* @__PURE__ */ jsx(
14858
14931
  "button",
14859
14932
  {
14860
14933
  type: "button",
@@ -14922,6 +14995,10 @@ function TextSection(p) {
14922
14995
  const currentHighlight = isTextEl && p.selectedElement && hasTextProperties(p.selectedElement) ? p.selectedElement.textSegments?.[0]?.style?.highlightColor ?? p.selectedElement.textStyle?.highlightColor ?? "#ffff00" : "#ffff00";
14923
14996
  const colorInputRef = useRef(null);
14924
14997
  const highlightInputRef = useRef(null);
14998
+ const charSpacingRef = useRef(null);
14999
+ const changeCaseRef = useRef(null);
15000
+ const fontColorRef = useRef(null);
15001
+ const highlightMenuRef = useRef(null);
14925
15002
  const handleColorChange = useCallback(
14926
15003
  (color) => {
14927
15004
  if (!canFormat) {
@@ -15101,7 +15178,7 @@ function TextSection(p) {
15101
15178
  }
15102
15179
  )
15103
15180
  ] }),
15104
- /* @__PURE__ */ jsxs("div", { className: "relative group", children: [
15181
+ /* @__PURE__ */ jsxs("div", { className: "relative group", ref: charSpacingRef, children: [
15105
15182
  /* @__PURE__ */ jsx(
15106
15183
  "button",
15107
15184
  {
@@ -15139,7 +15216,7 @@ function TextSection(p) {
15139
15216
  )
15140
15217
  }
15141
15218
  ),
15142
- /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 hidden group-hover:block pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-32", children: [
15219
+ /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: charSpacingRef, className: "hidden group-hover:block pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-32", children: [
15143
15220
  { label: "Very Tight", value: -150 },
15144
15221
  { label: "Tight", value: -75 },
15145
15222
  { label: "Normal", value: 0 },
@@ -15162,7 +15239,7 @@ function TextSection(p) {
15162
15239
  opt.label
15163
15240
  )) }) })
15164
15241
  ] }),
15165
- /* @__PURE__ */ jsxs("div", { className: "relative group", children: [
15242
+ /* @__PURE__ */ jsxs("div", { className: "relative group", ref: changeCaseRef, children: [
15166
15243
  /* @__PURE__ */ jsx(
15167
15244
  "button",
15168
15245
  {
@@ -15196,7 +15273,7 @@ function TextSection(p) {
15196
15273
  )
15197
15274
  }
15198
15275
  ),
15199
- /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 hidden group-hover:block pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-44", children: [
15276
+ /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: changeCaseRef, className: "hidden group-hover:block pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-44", children: [
15200
15277
  { label: t("pptx.text.changeCaseSentence"), value: "sentence" },
15201
15278
  { label: t("pptx.text.changeCaseLower"), value: "lower" },
15202
15279
  { label: t("pptx.text.changeCaseUpper"), value: "upper" },
@@ -15225,7 +15302,7 @@ function TextSection(p) {
15225
15302
  opt.value
15226
15303
  )) }) })
15227
15304
  ] }),
15228
- /* @__PURE__ */ jsxs("div", { className: "relative group", children: [
15305
+ /* @__PURE__ */ jsxs("div", { className: "relative group", ref: fontColorRef, children: [
15229
15306
  /* @__PURE__ */ jsxs(
15230
15307
  "button",
15231
15308
  {
@@ -15259,7 +15336,7 @@ function TextSection(p) {
15259
15336
  ]
15260
15337
  }
15261
15338
  ),
15262
- /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 hidden group-hover:block pt-1", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl p-2 w-36", children: [
15339
+ /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: fontColorRef, className: "hidden group-hover:block pt-1", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl p-2 w-36", children: [
15263
15340
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-5 gap-1.5 mb-2", children: FONT_COLOR_PRESETS.map((c) => /* @__PURE__ */ jsx(
15264
15341
  "button",
15265
15342
  {
@@ -15295,7 +15372,7 @@ function TextSection(p) {
15295
15372
  )
15296
15373
  ] }) })
15297
15374
  ] }),
15298
- /* @__PURE__ */ jsxs("div", { className: "relative group", children: [
15375
+ /* @__PURE__ */ jsxs("div", { className: "relative group", ref: highlightMenuRef, children: [
15299
15376
  /* @__PURE__ */ jsxs(
15300
15377
  "button",
15301
15378
  {
@@ -15317,7 +15394,7 @@ function TextSection(p) {
15317
15394
  ]
15318
15395
  }
15319
15396
  ),
15320
- /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 hidden group-hover:block pt-1", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl p-2 w-36", children: [
15397
+ /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: highlightMenuRef, className: "hidden group-hover:block pt-1", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl p-2 w-36", children: [
15321
15398
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-5 gap-1.5 mb-2", children: HIGHLIGHT_COLOR_PRESETS.map((c) => /* @__PURE__ */ jsx(
15322
15399
  "button",
15323
15400
  {
@@ -15634,11 +15711,14 @@ function ViewSection(p) {
15634
15711
  /* @__PURE__ */ jsx(
15635
15712
  RibbonCommand,
15636
15713
  {
15637
- label: t("pptx.view.templateEditing", { defaultValue: "Template Editing" }),
15714
+ label: t(p.editTemplateMode ? "pptx.ribbon.templatesOn" : "pptx.ribbon.templatesOff"),
15638
15715
  icon: /* @__PURE__ */ jsx(LuRuler, {}),
15639
15716
  onClick: () => p.onSetEditTemplateMode(!p.editTemplateMode),
15640
15717
  active: p.editTemplateMode,
15641
- disabled: !p.canEdit
15718
+ disabled: !p.canEdit,
15719
+ title: t("pptx.view.templateEditingTooltip", {
15720
+ defaultValue: "Toggle template/master element editing"
15721
+ })
15642
15722
  }
15643
15723
  ),
15644
15724
  /* @__PURE__ */ jsx(
@@ -16169,7 +16249,7 @@ function DrawingGroup(p) {
16169
16249
  ]
16170
16250
  }
16171
16251
  ),
16172
- shapesOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 flex flex-col w-52 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: TOP_SHAPES.map((s) => /* @__PURE__ */ jsxs(
16252
+ shapesOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: shapesRef, className: "flex flex-col w-52 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 max-h-60 overflow-y-auto", children: TOP_SHAPES.map((s) => /* @__PURE__ */ jsxs(
16173
16253
  "button",
16174
16254
  {
16175
16255
  type: "button",
@@ -16205,7 +16285,7 @@ function DrawingGroup(p) {
16205
16285
  ]
16206
16286
  }
16207
16287
  ),
16208
- arrangeOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 flex flex-col w-44 pt-1", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1", children: [
16288
+ arrangeOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: arrangeRef, className: "flex flex-col w-44 pt-1", children: /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1", children: [
16209
16289
  /* @__PURE__ */ jsx(
16210
16290
  "button",
16211
16291
  {
@@ -16268,7 +16348,7 @@ function DrawingGroup(p) {
16268
16348
  children: /* @__PURE__ */ jsx(LuPaintBucket, { className: ic2 })
16269
16349
  }
16270
16350
  ),
16271
- fillOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl p-2 grid grid-cols-6 gap-1", children: FILL_COLORS.map((c) => /* @__PURE__ */ jsx(
16351
+ fillOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: fillRef, className: "pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl p-2 grid grid-cols-6 gap-1", children: FILL_COLORS.map((c) => /* @__PURE__ */ jsx(
16272
16352
  "button",
16273
16353
  {
16274
16354
  type: "button",
@@ -16297,7 +16377,7 @@ function DrawingGroup(p) {
16297
16377
  children: /* @__PURE__ */ jsx(LuPenLine, { className: ic2 })
16298
16378
  }
16299
16379
  ),
16300
- outlineOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl p-2 grid grid-cols-6 gap-1", children: FILL_COLORS.map((c) => /* @__PURE__ */ jsx(
16380
+ outlineOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: outlineRef, className: "pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl p-2 grid grid-cols-6 gap-1", children: FILL_COLORS.map((c) => /* @__PURE__ */ jsx(
16301
16381
  "button",
16302
16382
  {
16303
16383
  type: "button",
@@ -16319,7 +16399,7 @@ function DrawingGroup(p) {
16319
16399
  {
16320
16400
  type: "button",
16321
16401
  disabled: true,
16322
- className: cn(pill, "opacity-50 cursor-not-allowed"),
16402
+ className: pill,
16323
16403
  title: t("pptx.drawing.shapeEffectsUnavailable"),
16324
16404
  children: /* @__PURE__ */ jsx(LuSparkles, { className: ic2 })
16325
16405
  }
@@ -16386,7 +16466,7 @@ function EditingSection(p) {
16386
16466
  children: /* @__PURE__ */ jsx(LuMousePointer2, { className: ic2 })
16387
16467
  }
16388
16468
  ),
16389
- selectMenuOpen && /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full z-50 pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-32", children: /* @__PURE__ */ jsx(
16469
+ selectMenuOpen && /* @__PURE__ */ jsx(RibbonMenu, { anchorRef: menuRef, className: "pt-1", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-border bg-popover backdrop-blur-lg shadow-2xl py-1 w-32", children: /* @__PURE__ */ jsx(
16390
16470
  "button",
16391
16471
  {
16392
16472
  type: "button",
@@ -16569,7 +16649,7 @@ function PresentDropdown({
16569
16649
  const { t } = useTranslation();
16570
16650
  const [open, setOpen] = useState(false);
16571
16651
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
16572
- /* @__PURE__ */ jsxs("div", { className: "inline-flex border-l border-border", children: [
16652
+ /* @__PURE__ */ jsxs("div", { className: "inline-flex items-stretch rounded border border-border bg-muted text-xs overflow-hidden", children: [
16573
16653
  /* @__PURE__ */ jsx(
16574
16654
  "button",
16575
16655
  {
@@ -16589,7 +16669,7 @@ function PresentDropdown({
16589
16669
  type: "button",
16590
16670
  onClick: () => setOpen((prev) => !prev),
16591
16671
  className: cn(
16592
- "px-1 py-1 transition-colors border-l border-border",
16672
+ "inline-flex items-center px-1 transition-colors border-l border-border",
16593
16673
  open ? "bg-primary text-white" : "hover:bg-accent text-foreground"
16594
16674
  ),
16595
16675
  title: t("pptx.present.optionsTooltip"),
@@ -17014,7 +17094,7 @@ function Toolbar(p) {
17014
17094
  "div",
17015
17095
  {
17016
17096
  className: cn(
17017
- "flex min-h-[82px] items-stretch gap-0 overflow-visible px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap",
17097
+ "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",
17018
17098
  isNarrowViewport && !isCompactToolbarOpen && "hidden"
17019
17099
  ),
17020
17100
  children: [
@@ -29705,68 +29785,7 @@ function ViewerToolbarSection(props) {
29705
29785
  )
29706
29786
  ] });
29707
29787
  }
29708
- var TEMPLATES = [
29709
- {
29710
- label: "Fraction",
29711
- latex: "\\frac{a}{b}",
29712
- i18nKey: "pptx.equation.template.fraction"
29713
- },
29714
- {
29715
- label: "Quadratic",
29716
- latex: "x=\\frac{-b\\pm\\sqrt{b^{2}-4ac}}{2a}",
29717
- i18nKey: "pptx.equation.template.quadratic"
29718
- },
29719
- {
29720
- label: "Pythagorean",
29721
- latex: "a^{2}+b^{2}=c^{2}",
29722
- i18nKey: "pptx.equation.template.pythagorean"
29723
- },
29724
- {
29725
- label: "Sum",
29726
- latex: "\\sum_{i=1}^{n}{a_{i}}",
29727
- i18nKey: "pptx.equation.template.sum"
29728
- },
29729
- {
29730
- label: "Integral",
29731
- latex: "\\int_{a}^{b}{f(x)}dx",
29732
- i18nKey: "pptx.equation.template.integral"
29733
- },
29734
- {
29735
- label: "Square Root",
29736
- latex: "\\sqrt{x^{2}+y^{2}}",
29737
- i18nKey: "pptx.equation.template.squareRoot"
29738
- },
29739
- {
29740
- label: "Limit",
29741
- latex: "\\lim_{x\\to\\infty}{f(x)}",
29742
- i18nKey: "pptx.equation.template.limit"
29743
- },
29744
- {
29745
- label: "Euler's",
29746
- latex: "e^{i\\pi}+1=0",
29747
- i18nKey: "pptx.equation.template.euler"
29748
- },
29749
- {
29750
- label: "Matrix 2x2",
29751
- latex: "\\left[a,b;c,d\\right]",
29752
- i18nKey: "pptx.equation.template.matrix"
29753
- },
29754
- {
29755
- label: "Binomial",
29756
- latex: "\\left(a+b\\right)^{n}",
29757
- i18nKey: "pptx.equation.template.binomial"
29758
- },
29759
- {
29760
- label: "Derivative",
29761
- latex: "\\frac{dy}{dx}",
29762
- i18nKey: "pptx.equation.template.derivative"
29763
- },
29764
- {
29765
- label: "Trig Identity",
29766
- latex: "\\sin^{2}\\theta+\\cos^{2}\\theta=1",
29767
- i18nKey: "pptx.equation.template.trigIdentity"
29768
- }
29769
- ];
29788
+ var TEMPLATES = EQUATION_TEMPLATES;
29770
29789
  var TEMPLATE_MATHML = TEMPLATES.map((tmpl) => {
29771
29790
  try {
29772
29791
  const tmplOmml = convertLatexToOmml(tmpl.latex);