pptx-react-viewer 3.19.2 → 3.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/{AiChatPanel-ZH52BQBE.mjs → AiChatPanel-7AU4A3A7.mjs} +4 -4
  3. package/dist/AiChatPanel-7AU4A3A7.mjs.br +0 -0
  4. package/dist/AiChatPanel-7AU4A3A7.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-KILEXOPT.js → AiChatPanel-FIUTFT55.js} +25 -25
  6. package/dist/AiChatPanel-FIUTFT55.js.br +0 -0
  7. package/dist/AiChatPanel-FIUTFT55.js.gz +0 -0
  8. package/dist/{Area3DChartScene-UHN7ZOZT.mjs → Area3DChartScene-SPRHDMNQ.mjs} +1 -1
  9. package/dist/{Area3DChartScene-UHN7ZOZT.mjs.br → Area3DChartScene-SPRHDMNQ.mjs.br} +0 -0
  10. package/dist/Area3DChartScene-SPRHDMNQ.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-HS7EBQLQ.js → Area3DChartScene-ZGVLTYDW.js} +2 -2
  12. package/dist/Area3DChartScene-ZGVLTYDW.js.br +0 -0
  13. package/dist/Area3DChartScene-ZGVLTYDW.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-TFGSYASD.mjs → Bar3DChartScene-FJCRJCZV.mjs} +1 -1
  15. package/dist/{Bar3DChartScene-TFGSYASD.mjs.br → Bar3DChartScene-FJCRJCZV.mjs.br} +0 -0
  16. package/dist/Bar3DChartScene-FJCRJCZV.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-E57TRVUU.js → Bar3DChartScene-GVIX7ENI.js} +2 -2
  18. package/dist/Bar3DChartScene-GVIX7ENI.js.br +0 -0
  19. package/dist/Bar3DChartScene-GVIX7ENI.js.gz +0 -0
  20. package/dist/{Line3DChartScene-NM7YYLZD.js → Line3DChartScene-6C3WDA42.js} +2 -2
  21. package/dist/Line3DChartScene-6C3WDA42.js.br +0 -0
  22. package/dist/Line3DChartScene-6C3WDA42.js.gz +0 -0
  23. package/dist/{Line3DChartScene-RES5D7W7.mjs → Line3DChartScene-KP4RMVAQ.mjs} +1 -1
  24. package/dist/{Line3DChartScene-RES5D7W7.mjs.br → Line3DChartScene-KP4RMVAQ.mjs.br} +0 -0
  25. package/dist/Line3DChartScene-KP4RMVAQ.mjs.gz +0 -0
  26. package/dist/{Model3DScene-6CWFGE7M.mjs → Model3DScene-SH6ZLOXE.mjs} +1 -1
  27. package/dist/Model3DScene-SH6ZLOXE.mjs.br +0 -0
  28. package/dist/Model3DScene-SH6ZLOXE.mjs.gz +0 -0
  29. package/dist/{Model3DScene-SL3QF63O.js → Model3DScene-SXZYGMN6.js} +2 -2
  30. package/dist/Model3DScene-SXZYGMN6.js.br +0 -0
  31. package/dist/Model3DScene-SXZYGMN6.js.gz +0 -0
  32. package/dist/{PieChart3DScene-QYJUOYMB.mjs → PieChart3DScene-F4IE7565.mjs} +1 -1
  33. package/dist/{PieChart3DScene-QYJUOYMB.mjs.br → PieChart3DScene-F4IE7565.mjs.br} +0 -0
  34. package/dist/PieChart3DScene-F4IE7565.mjs.gz +0 -0
  35. package/dist/{PieChart3DScene-WIVYOQUQ.js → PieChart3DScene-V2Q73UEQ.js} +2 -2
  36. package/dist/PieChart3DScene-V2Q73UEQ.js.br +0 -0
  37. package/dist/PieChart3DScene-V2Q73UEQ.js.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-Y2LF73QQ.mjs → SurfaceChart3DScene-AXLDY5BB.mjs} +1 -1
  39. package/dist/{SurfaceChart3DScene-Y2LF73QQ.mjs.br → SurfaceChart3DScene-AXLDY5BB.mjs.br} +0 -0
  40. package/dist/SurfaceChart3DScene-AXLDY5BB.mjs.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-QCUYYQBZ.js → SurfaceChart3DScene-XUGVYHD2.js} +2 -2
  42. package/dist/SurfaceChart3DScene-XUGVYHD2.js.br +0 -0
  43. package/dist/SurfaceChart3DScene-XUGVYHD2.js.gz +0 -0
  44. package/dist/{chunk-RPPLJQ6R.js → chunk-2BQKGTIF.js} +1571 -1366
  45. package/dist/chunk-2BQKGTIF.js.br +0 -0
  46. package/dist/chunk-2BQKGTIF.js.gz +0 -0
  47. package/dist/{chunk-7XJ7I6TJ.mjs → chunk-F65J67TW.mjs} +7 -3
  48. package/dist/chunk-F65J67TW.mjs.br +0 -0
  49. package/dist/chunk-F65J67TW.mjs.gz +0 -0
  50. package/dist/{chunk-ATKAU2J4.mjs → chunk-GV6LVDBE.mjs} +562 -357
  51. package/dist/chunk-GV6LVDBE.mjs.br +0 -0
  52. package/dist/chunk-GV6LVDBE.mjs.gz +0 -0
  53. package/dist/{chunk-ZUIM5737.js → chunk-HN5QJSVB.js} +514 -172
  54. package/dist/chunk-HN5QJSVB.js.br +0 -0
  55. package/dist/chunk-HN5QJSVB.js.gz +0 -0
  56. package/dist/{chunk-M5BAPEQL.mjs → chunk-JIP6BCRV.mjs} +9 -9
  57. package/dist/chunk-JIP6BCRV.mjs.br +0 -0
  58. package/dist/chunk-JIP6BCRV.mjs.gz +0 -0
  59. package/dist/{chunk-F7VYECOL.js → chunk-K7TAGREH.js} +5 -5
  60. package/dist/chunk-K7TAGREH.js.br +0 -0
  61. package/dist/chunk-K7TAGREH.js.gz +0 -0
  62. package/dist/{chunk-BRJN3ZMG.js → chunk-M24DEOP6.js} +15 -0
  63. package/dist/chunk-M24DEOP6.js.br +0 -0
  64. package/dist/chunk-M24DEOP6.js.gz +0 -0
  65. package/dist/{chunk-2LK3OHAN.js → chunk-ML4MTTPV.js} +796 -796
  66. package/dist/chunk-ML4MTTPV.js.br +0 -0
  67. package/dist/chunk-ML4MTTPV.js.gz +0 -0
  68. package/dist/{chunk-GULL4H2I.mjs → chunk-MWNB4BX5.mjs} +511 -173
  69. package/dist/chunk-MWNB4BX5.mjs.br +0 -0
  70. package/dist/chunk-MWNB4BX5.mjs.gz +0 -0
  71. package/dist/{chunk-NEMPFYZ5.mjs → chunk-OKIHMWGI.mjs} +1 -1
  72. package/dist/chunk-OKIHMWGI.mjs.br +0 -0
  73. package/dist/chunk-OKIHMWGI.mjs.gz +0 -0
  74. package/dist/{chunk-MQUTXOET.mjs → chunk-R664EPDC.mjs} +15 -0
  75. package/dist/chunk-R664EPDC.mjs.br +0 -0
  76. package/dist/chunk-R664EPDC.mjs.gz +0 -0
  77. package/dist/{chunk-YH4ODPSH.js → chunk-U46O2NL5.js} +187 -183
  78. package/dist/chunk-U46O2NL5.js.br +0 -0
  79. package/dist/chunk-U46O2NL5.js.gz +0 -0
  80. package/dist/i18n/de.cjs +15 -0
  81. package/dist/i18n/de.cjs.br +0 -0
  82. package/dist/i18n/de.cjs.gz +0 -0
  83. package/dist/i18n/de.mjs +15 -0
  84. package/dist/i18n/de.mjs.br +0 -0
  85. package/dist/i18n/de.mjs.gz +0 -0
  86. package/dist/i18n/es.cjs +15 -0
  87. package/dist/i18n/es.cjs.br +0 -0
  88. package/dist/i18n/es.cjs.gz +0 -0
  89. package/dist/i18n/es.mjs +15 -0
  90. package/dist/i18n/es.mjs.br +0 -0
  91. package/dist/i18n/es.mjs.gz +0 -0
  92. package/dist/i18n/fr.cjs +15 -0
  93. package/dist/i18n/fr.cjs.br +0 -0
  94. package/dist/i18n/fr.cjs.gz +0 -0
  95. package/dist/i18n/fr.mjs +15 -0
  96. package/dist/i18n/fr.mjs.br +0 -0
  97. package/dist/i18n/fr.mjs.gz +0 -0
  98. package/dist/i18n/zh-CN.cjs +15 -0
  99. package/dist/i18n/zh-CN.cjs.br +0 -0
  100. package/dist/i18n/zh-CN.cjs.gz +0 -0
  101. package/dist/i18n/zh-CN.mjs +15 -0
  102. package/dist/i18n/zh-CN.mjs.br +0 -0
  103. package/dist/i18n/zh-CN.mjs.gz +0 -0
  104. package/dist/i18n.js +4 -4
  105. package/dist/i18n.js.br +0 -0
  106. package/dist/i18n.js.gz +0 -0
  107. package/dist/i18n.mjs +1 -1
  108. package/dist/i18n.mjs.br +0 -0
  109. package/dist/i18n.mjs.gz +0 -0
  110. package/dist/index.d.ts +37 -0
  111. package/dist/index.js +48 -48
  112. package/dist/index.js.br +0 -0
  113. package/dist/index.js.gz +0 -0
  114. package/dist/index.mjs +6 -6
  115. package/dist/index.mjs.br +4 -4
  116. package/dist/index.mjs.gz +0 -0
  117. package/dist/internals.d.ts +37 -0
  118. package/dist/internals.js +105 -105
  119. package/dist/internals.js.br +0 -0
  120. package/dist/internals.js.gz +0 -0
  121. package/dist/internals.mjs +4 -4
  122. package/dist/internals.mjs.br +0 -0
  123. package/dist/internals.mjs.gz +0 -0
  124. package/dist/pptx-viewer.css +1 -1
  125. package/dist/pptx-viewer.css.br +0 -0
  126. package/dist/pptx-viewer.css.gz +0 -0
  127. package/dist/viewer/index.d.ts +37 -0
  128. package/dist/viewer/index.js +27 -27
  129. package/dist/viewer/index.js.br +0 -0
  130. package/dist/viewer/index.js.gz +0 -0
  131. package/dist/viewer/index.mjs +6 -6
  132. package/dist/viewer/index.mjs.br +0 -0
  133. package/dist/viewer/index.mjs.gz +0 -0
  134. package/package.json +1 -1
  135. package/dist/AiChatPanel-KILEXOPT.js.br +0 -0
  136. package/dist/AiChatPanel-KILEXOPT.js.gz +0 -0
  137. package/dist/AiChatPanel-ZH52BQBE.mjs.br +0 -0
  138. package/dist/AiChatPanel-ZH52BQBE.mjs.gz +0 -0
  139. package/dist/Area3DChartScene-HS7EBQLQ.js.br +0 -0
  140. package/dist/Area3DChartScene-HS7EBQLQ.js.gz +0 -0
  141. package/dist/Area3DChartScene-UHN7ZOZT.mjs.gz +0 -0
  142. package/dist/Bar3DChartScene-E57TRVUU.js.br +0 -0
  143. package/dist/Bar3DChartScene-E57TRVUU.js.gz +0 -0
  144. package/dist/Bar3DChartScene-TFGSYASD.mjs.gz +0 -0
  145. package/dist/Line3DChartScene-NM7YYLZD.js.br +0 -0
  146. package/dist/Line3DChartScene-NM7YYLZD.js.gz +0 -0
  147. package/dist/Line3DChartScene-RES5D7W7.mjs.gz +0 -0
  148. package/dist/Model3DScene-6CWFGE7M.mjs.br +0 -0
  149. package/dist/Model3DScene-6CWFGE7M.mjs.gz +0 -0
  150. package/dist/Model3DScene-SL3QF63O.js.br +0 -0
  151. package/dist/Model3DScene-SL3QF63O.js.gz +0 -0
  152. package/dist/PieChart3DScene-QYJUOYMB.mjs.gz +0 -0
  153. package/dist/PieChart3DScene-WIVYOQUQ.js.br +0 -0
  154. package/dist/PieChart3DScene-WIVYOQUQ.js.gz +0 -0
  155. package/dist/SurfaceChart3DScene-QCUYYQBZ.js.br +0 -0
  156. package/dist/SurfaceChart3DScene-QCUYYQBZ.js.gz +0 -0
  157. package/dist/SurfaceChart3DScene-Y2LF73QQ.mjs.gz +0 -0
  158. package/dist/chunk-2LK3OHAN.js.br +0 -0
  159. package/dist/chunk-2LK3OHAN.js.gz +0 -0
  160. package/dist/chunk-7XJ7I6TJ.mjs.br +0 -0
  161. package/dist/chunk-7XJ7I6TJ.mjs.gz +0 -0
  162. package/dist/chunk-ATKAU2J4.mjs.br +0 -0
  163. package/dist/chunk-ATKAU2J4.mjs.gz +0 -0
  164. package/dist/chunk-BRJN3ZMG.js.br +0 -0
  165. package/dist/chunk-BRJN3ZMG.js.gz +0 -0
  166. package/dist/chunk-F7VYECOL.js.br +0 -0
  167. package/dist/chunk-F7VYECOL.js.gz +0 -0
  168. package/dist/chunk-GULL4H2I.mjs.br +0 -0
  169. package/dist/chunk-GULL4H2I.mjs.gz +0 -0
  170. package/dist/chunk-M5BAPEQL.mjs.br +0 -0
  171. package/dist/chunk-M5BAPEQL.mjs.gz +0 -0
  172. package/dist/chunk-MQUTXOET.mjs.br +0 -0
  173. package/dist/chunk-MQUTXOET.mjs.gz +0 -0
  174. package/dist/chunk-NEMPFYZ5.mjs.br +0 -0
  175. package/dist/chunk-NEMPFYZ5.mjs.gz +0 -0
  176. package/dist/chunk-RPPLJQ6R.js.br +0 -0
  177. package/dist/chunk-RPPLJQ6R.js.gz +0 -0
  178. package/dist/chunk-YH4ODPSH.js.br +0 -0
  179. package/dist/chunk-YH4ODPSH.js.gz +0 -0
  180. package/dist/chunk-ZUIM5737.js.br +0 -0
  181. package/dist/chunk-ZUIM5737.js.gz +0 -0
@@ -1,12 +1,12 @@
1
- import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-NEMPFYZ5.mjs';
2
- import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, LoadingState, ViewerOptionsContext, SmartArt3DContext, SurfaceChart3DContext, BarChart3DContext, LineChart3DContext, AreaChart3DContext, PieChart3DContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, SlideBackgroundImageLayer, StaticElementRenderer, safePrompt, scopeLayoutOptionsToActiveSlide, ChartPartSelectionProvider, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, ElementRenderer, SmartArtRenderer, playAnimationSound, ResizeHandles, renderStrokeView, useChartPartSelection, resolveSmartArtDataPalette } from './chunk-M5BAPEQL.mjs';
3
- import { SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, cn, SLIDE_NAV_THUMBNAIL_WIDTH, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, isConnectorOrLineElement, GRID_SIZE, MIN_ELEMENT_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, DEFAULT_STROKE_COLOR, STROKE_DASH_OPTIONS } from './chunk-7XJ7I6TJ.mjs';
4
- import { SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, buildDeckSaveOptions, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, normalizeHexColor, themeToCssVars, shouldClearAutosaveCacheOnClose, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, getDensePanelTouchTargetPx, shouldStickyActionRow, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent2, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, hasTextProperties, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, ACTION_BUTTON_PRESETS, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, hasShapeProperties, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, getSelectionTextStyleFlags, getInlineEditorSelectionResult, selectedParagraphBulletKind, elementBulletKind, selectionBulletKind, TEXT_DECORATION_FLAGS, nextToggleValue, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, attachEditorImagePaste, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, resolveElementInteractivity, getElementTransformWithoutRotation, getElementTransform, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, hasMultipleSelectedTableCells, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, buildFreeformShapeElement, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, isImageLikeElement, mergeSlideTransition, getElementLabel, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, hasTiltData, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, 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, setSmartArtNodeStyle, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, updateSmartArtNodeText, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, rebuildDrawingShapesIfCleared, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-GULL4H2I.mjs';
5
- import { LOCALE_CATALOG, ALIGNMENT_LABEL_KEYS } from './chunk-MQUTXOET.mjs';
1
+ import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-OKIHMWGI.mjs';
2
+ import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, LoadingState, ViewerOptionsContext, SmartArt3DContext, SurfaceChart3DContext, BarChart3DContext, LineChart3DContext, AreaChart3DContext, PieChart3DContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, SlideBackgroundImageLayer, StaticElementRenderer, safePrompt, scopeLayoutOptionsToActiveSlide, ChartPartSelectionProvider, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, PresentationTransitionOverlay, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, ElementRenderer, SmartArtRenderer, playAnimationSound, ResizeHandles, renderStrokeView, useChartPartSelection, resolveSmartArtDataPalette } from './chunk-JIP6BCRV.mjs';
3
+ import { SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, cn, SLIDE_NAV_THUMBNAIL_WIDTH, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, isConnectorOrLineElement, GRID_SIZE, MIN_ELEMENT_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, DEFAULT_FILL_COLOR, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, DEFAULT_STROKE_COLOR, STROKE_DASH_OPTIONS } from './chunk-F65J67TW.mjs';
4
+ import { SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, buildDeckSaveOptions, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, normalizeHexColor, themeToCssVars, shouldClearAutosaveCacheOnClose, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, getDensePanelTouchTargetPx, shouldStickyActionRow, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent2, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, hasTextProperties, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, ACTION_BUTTON_PRESETS, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, hasShapeProperties, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, getSelectionTextStyleFlags, getInlineEditorSelectionResult, selectedParagraphBulletKind, elementBulletKind, selectionBulletKind, TEXT_DECORATION_FLAGS, nextToggleValue, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, attachEditorImagePaste, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, resolveElementInteractivity, getElementTransformWithoutRotation, getElementTransform, buildChartQuickActionsDescriptor, applyChartElementToggle, CHART_QUICK_ACTION_BUTTON_SIZE, applyChartStylePreset, hideChartSeries, restoreFilteredSeries, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, hasMultipleSelectedTableCells, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, buildFreeformShapeElement, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, isImageLikeElement, mergeSlideTransition, getElementLabel, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, hasTiltData, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setDataLabelsRangeCache, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, canInteractWithElement, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, shouldShowAccessibilitySection, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, EFFECT_SOUND_CATALOGUE, normalizeTableStyleGuid, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, updateMergeAttrsInRawXml, resolveDisplayedChartType, CHART_TYPE_OPTIONS, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, setSmartArtNodeStyle, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, updateSmartArtNodeText, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, rebuildDrawingShapesIfCleared, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-MWNB4BX5.mjs';
5
+ import { LOCALE_CATALOG, ALIGNMENT_LABEL_KEYS } from './chunk-R664EPDC.mjs';
6
6
  import React6, { createContext, lazy, forwardRef, useEffect, useState, useCallback, useMemo, useRef, useId, useContext, Fragment as Fragment$1, useDeferredValue, Suspense, useSyncExternalStore, useLayoutEffect } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
9
- import { LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuClock, LuHash, LuFileText, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus, LuSettings2, LuLayers, LuDownload, LuCheck, LuLock, LuEye, LuType, LuLoader, LuShieldAlert, LuSignature, LuInfo, LuTriangleAlert, LuPrinter, LuPenTool, LuBug, LuChevronUp, LuChevronDown, LuUpload, LuWifi, LuWifiOff, LuUsers, LuCopy, LuChevronLeft, LuChevronRight, LuPlay, LuPause, LuZoomOut, LuZoomIn, LuSpellCheck, LuFileDown, LuMenu, LuSparkles, LuShare2, LuPanelLeft, LuPanelRight, LuArrowLeft, LuFolderOpen, LuClipboardPaste, LuScissors, LuPaintbrush, LuSquare, LuImage, LuVideo, LuDatabase, LuAArrowUp, LuAArrowDown, LuRemoveFormatting, LuHighlighter, LuList, LuListOrdered, LuIndentDecrease, LuIndentIncrease, LuReplace, LuMousePointer2, LuShapes, LuPaintBucket, LuPenLine, LuPalette, LuPencil, LuStar, LuMoveRight, LuMousePointerClick, LuClock3, LuMonitorPlay, LuListVideo, LuCaptions, LuCamera, LuEraser, LuRotateCcw, LuCircleHelp, LuBookOpen, LuLanguages, LuGlobe, LuGitCompare, LuMessageSquarePlus, LuLockKeyhole, LuPanelTop, LuLayoutGrid, LuGrid3X3, LuPipette, LuRuler, LuMaximize2, LuCode, LuCaseSensitive, LuTimer, LuGripVertical, LuLoaderCircle, LuBold, LuItalic, LuUnderline, LuStrikethrough, LuLink, LuGrid2X2, LuCopyPlus, LuScan, LuMonitorOff, LuCirclePlay, LuCirclePause, LuArrowLeftRight, LuClipboardCopy, LuWand, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuFilePlus2, LuHouse, LuFileJson, LuBox, LuFileImage, LuUser, LuHardDrive, LuLogIn, LuLayoutTemplate, LuFolderPlus, LuAlignLeft, LuAlignCenter, LuAlignRight, LuAlignJustify, LuColumns3, LuSpline, LuAlignHorizontalSpaceAround, LuAlignVerticalSpaceAround, LuGroup, LuUngroup, LuMove, LuRadio, LuLockOpen, LuArrowDown, LuArrowUp, LuArrowRight, LuReply, LuRotateCw, LuBookmark } from 'react-icons/lu';
9
+ import { LuMessageSquare, LuEyeOff, LuHistory, LuTrash2, LuSettings, LuX, LuCalendarDays, LuClock, LuHash, LuFileText, LuText, LuCast, LuSave, LuUndo, LuRedo, LuSearch, LuShieldCheck, LuPlus, LuPanelLeftClose, LuStickyNote, LuMonitor, LuColumns2, LuPresentation, LuMinus, LuSettings2, LuLayers, LuDownload, LuCheck, LuLock, LuEye, LuType, LuLoader, LuShieldAlert, LuSignature, LuInfo, LuTriangleAlert, LuPrinter, LuPenTool, LuBug, LuChevronUp, LuChevronDown, LuUpload, LuWifi, LuWifiOff, LuUsers, LuCopy, LuChevronLeft, LuChevronRight, LuPlay, LuPause, LuZoomOut, LuZoomIn, LuSpellCheck, LuFileDown, LuMenu, LuSparkles, LuShare2, LuPanelLeft, LuPanelRight, LuArrowLeft, LuFolderOpen, LuClipboardPaste, LuScissors, LuPaintbrush, LuSquare, LuImage, LuVideo, LuDatabase, LuAArrowUp, LuAArrowDown, LuRemoveFormatting, LuHighlighter, LuList, LuListOrdered, LuIndentDecrease, LuIndentIncrease, LuReplace, LuMousePointer2, LuShapes, LuPaintBucket, LuPenLine, LuPalette, LuPencil, LuStar, LuMoveRight, LuMousePointerClick, LuClock3, LuMonitorPlay, LuListVideo, LuCaptions, LuCamera, LuEraser, LuRotateCcw, LuCircleHelp, LuBookOpen, LuLanguages, LuGlobe, LuGitCompare, LuMessageSquarePlus, LuLockKeyhole, LuPanelTop, LuLayoutGrid, LuGrid3X3, LuPipette, LuRuler, LuMaximize2, LuCode, LuCaseSensitive, LuTimer, LuGripVertical, LuLoaderCircle, LuBold, LuItalic, LuUnderline, LuStrikethrough, LuLink, LuGrid2X2, LuCopyPlus, LuScan, LuMonitorOff, LuCirclePlay, LuCirclePause, LuArrowLeftRight, LuClipboardCopy, LuWand, LuTextCursorInput, LuFile, LuEllipsis, LuUserRound, LuFilePlus2, LuHouse, LuFileJson, LuBox, LuFileImage, LuUser, LuHardDrive, LuLogIn, LuLayoutTemplate, LuFolderPlus, LuAlignLeft, LuAlignCenter, LuAlignRight, LuAlignJustify, LuColumns3, LuSpline, LuAlignHorizontalSpaceAround, LuAlignVerticalSpaceAround, LuGroup, LuUngroup, LuFilter, LuMove, LuRadio, LuLockOpen, LuArrowDown, LuArrowUp, LuArrowRight, LuReply, LuRotateCw, LuBookmark } from 'react-icons/lu';
10
10
 
11
11
  var ViewerThemeContext = createContext(void 0);
12
12
  function ViewerThemeProvider({ theme, children }) {
@@ -1811,7 +1811,7 @@ function AccountPage() {
1811
1811
  return void 0;
1812
1812
  });
1813
1813
  };
1814
- const version = "3.19.1" ;
1814
+ const version = "3.20.0" ;
1815
1815
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1816
1816
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1817
1817
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -3444,7 +3444,7 @@ function CustomShowsControls({
3444
3444
  onClick: onCreateCustomShow,
3445
3445
  className: "px-2 py-1 rounded bg-muted hover:bg-accent text-[11px] transition-colors",
3446
3446
  title: t("pptx.customShows.createTooltip"),
3447
- children: "+ Show"
3447
+ children: t("pptx.customShows.addShow")
3448
3448
  }
3449
3449
  ),
3450
3450
  activeCustomShowId && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -3495,7 +3495,7 @@ function CustomShowsControls({
3495
3495
  onClick: onCreateCustomShow,
3496
3496
  className: "px-2 py-1 rounded bg-muted hover:bg-accent text-[11px] transition-colors",
3497
3497
  title: t("pptx.customShows.createTooltip"),
3498
- children: "+ Show"
3498
+ children: t("pptx.customShows.addShow")
3499
3499
  }
3500
3500
  )
3501
3501
  ] });
@@ -4460,7 +4460,7 @@ function TextSection(p) {
4460
4460
  ] }) })
4461
4461
  ] })
4462
4462
  ] }),
4463
- /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: "Font" })
4463
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: t("pptx.ribbon.font") })
4464
4464
  ] }),
4465
4465
  sep,
4466
4466
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-0.5", children: [
@@ -4582,7 +4582,7 @@ function TextSection(p) {
4582
4582
  }
4583
4583
  )
4584
4584
  ] }),
4585
- /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: "Paragraph" })
4585
+ /* @__PURE__ */ jsx("span", { className: "text-[9px] text-muted-foreground leading-none", children: t("pptx.ribbon.paragraph") })
4586
4586
  ] })
4587
4587
  ] });
4588
4588
  }
@@ -4682,7 +4682,14 @@ function ViewSection(p) {
4682
4682
  title: t("pptx.ribbon.toggleGuides")
4683
4683
  }
4684
4684
  ),
4685
- /* @__PURE__ */ jsx(RibbonToggle, { label: "Snap to grid", checked: p.snapToGrid, onChange: p.onSetSnapToGrid })
4685
+ /* @__PURE__ */ jsx(
4686
+ RibbonToggle,
4687
+ {
4688
+ label: t("pptx.settings.snapToGrid"),
4689
+ checked: p.snapToGrid,
4690
+ onChange: p.onSetSnapToGrid
4691
+ }
4692
+ )
4686
4693
  ] }),
4687
4694
  /* @__PURE__ */ jsxs(RibbonCommandStack, { children: [
4688
4695
  /* @__PURE__ */ jsx(
@@ -4722,7 +4729,7 @@ function ViewSection(p) {
4722
4729
  RibbonCommand,
4723
4730
  {
4724
4731
  compact: true,
4725
- label: "H Guide",
4732
+ label: t("pptx.view.hGuide"),
4726
4733
  icon: /* @__PURE__ */ jsx(LuRuler, {}),
4727
4734
  onClick: () => p.onAddGuide("h"),
4728
4735
  title: t("pptx.view.addHorizontalGuide")
@@ -4732,7 +4739,7 @@ function ViewSection(p) {
4732
4739
  RibbonCommand,
4733
4740
  {
4734
4741
  compact: true,
4735
- label: "V Guide",
4742
+ label: t("pptx.view.vGuide"),
4736
4743
  icon: /* @__PURE__ */ jsx(LuRuler, {}),
4737
4744
  onClick: () => p.onAddGuide("v"),
4738
4745
  title: t("pptx.view.addVerticalGuide")
@@ -4788,6 +4795,7 @@ function MobileSheet({
4788
4795
  headerRight
4789
4796
  }) {
4790
4797
  const sheetRef = useRef(null);
4798
+ const { t } = useTranslation();
4791
4799
  const { dragY, dragging, handlers } = useSheetDismissDrag(onClose);
4792
4800
  useModalFocus(open, sheetRef, onClose);
4793
4801
  if (!open) {
@@ -4799,7 +4807,7 @@ function MobileSheet({
4799
4807
  "button",
4800
4808
  {
4801
4809
  type: "button",
4802
- "aria-label": "Close",
4810
+ "aria-label": t("pptx.mobileSheet.close"),
4803
4811
  className: "absolute inset-0 bg-black/40 backdrop-blur-[2px] animate-in fade-in duration-150",
4804
4812
  onClick: onClose
4805
4813
  }
@@ -4810,7 +4818,7 @@ function MobileSheet({
4810
4818
  ref: sheetRef,
4811
4819
  role: "dialog",
4812
4820
  "aria-modal": "true",
4813
- "aria-label": typeof title === "string" ? title : "Mobile panel",
4821
+ "aria-label": typeof title === "string" ? title : t("pptx.mobileSheet.ariaLabel"),
4814
4822
  tabIndex: -1,
4815
4823
  className: cn(
4816
4824
  "relative bg-background border-t border-border rounded-t-2xl shadow-2xl flex flex-col overflow-hidden",
@@ -4840,7 +4848,7 @@ function MobileSheet({
4840
4848
  "button",
4841
4849
  {
4842
4850
  type: "button",
4843
- "aria-label": "Close",
4851
+ "aria-label": t("pptx.mobileSheet.close"),
4844
4852
  onPointerDown: (event) => event.stopPropagation(),
4845
4853
  onClick: onClose,
4846
4854
  style: { minWidth: MIN_TOUCH_TARGET_PX, minHeight: MIN_TOUCH_TARGET_PX },
@@ -5636,17 +5644,32 @@ function RecordSection({
5636
5644
  onRecordFromBeginning,
5637
5645
  onRecordFromCurrent
5638
5646
  }) {
5647
+ const { t } = useTranslation();
5639
5648
  return /* @__PURE__ */ jsxs(Fragment, { children: [
5640
- /* @__PURE__ */ jsx(RibbonGroup, { label: "Camera", children: /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuCamera, {}), label: "Cameo", disabled: true }) }),
5641
- /* @__PURE__ */ jsxs(RibbonGroup, { label: "Record", children: [
5642
- /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuVideo, {}), label: "From Beginning", onClick: onRecordFromBeginning }),
5643
- /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuPlay, {}), label: "From Current Slide", onClick: onRecordFromCurrent })
5649
+ /* @__PURE__ */ jsx(RibbonGroup, { label: t("pptx.record.camera"), children: /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuCamera, {}), label: t("pptx.record.cameo"), disabled: true }) }),
5650
+ /* @__PURE__ */ jsxs(RibbonGroup, { label: t("pptx.ribbon.tab.record"), children: [
5651
+ /* @__PURE__ */ jsx(
5652
+ RibbonCommand,
5653
+ {
5654
+ icon: /* @__PURE__ */ jsx(LuVideo, {}),
5655
+ label: t("pptx.slideShow.fromBeginning"),
5656
+ onClick: onRecordFromBeginning
5657
+ }
5658
+ ),
5659
+ /* @__PURE__ */ jsx(
5660
+ RibbonCommand,
5661
+ {
5662
+ icon: /* @__PURE__ */ jsx(LuPlay, {}),
5663
+ label: t("pptx.slideShow.fromCurrent"),
5664
+ onClick: onRecordFromCurrent
5665
+ }
5666
+ )
5644
5667
  ] }),
5645
- /* @__PURE__ */ jsxs(RibbonGroup, { label: "Manage", children: [
5646
- /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuEraser, {}), label: "Clear", disabled: true }),
5647
- /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuRotateCcw, {}), label: "Reset to Cameo", disabled: true })
5668
+ /* @__PURE__ */ jsxs(RibbonGroup, { label: t("pptx.record.manage"), children: [
5669
+ /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuEraser, {}), label: t("pptx.record.clear"), disabled: true }),
5670
+ /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuRotateCcw, {}), label: t("pptx.record.resetToCameo"), disabled: true })
5648
5671
  ] }),
5649
- /* @__PURE__ */ jsx(RibbonGroup, { label: "Help", children: /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuCircleHelp, {}), label: "Learn More", disabled: true }) })
5672
+ /* @__PURE__ */ jsx(RibbonGroup, { label: t("pptx.ribbon.tab.help"), children: /* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuCircleHelp, {}), label: t("pptx.record.learnMore"), disabled: true }) })
5650
5673
  ] });
5651
5674
  }
5652
5675
  function TabRowActions(p) {
@@ -6580,6 +6603,308 @@ function SnapLinesOverlay({ snapLines }) {
6580
6603
  i
6581
6604
  )) });
6582
6605
  }
6606
+
6607
+ // src/viewer/components/inspector/chart-panel-constants.ts
6608
+ var HEADING = "text-[11px] uppercase tracking-wide text-muted-foreground";
6609
+ var CARD = "rounded border border-border bg-card p-2 space-y-2";
6610
+ var INPUT = "flex-1 bg-muted border border-border rounded px-1.5 py-0.5 w-full max-md:min-h-[44px]!";
6611
+ var BTN = "rounded bg-muted hover:bg-accent px-2 py-1 text-[11px] transition-colors max-md:min-h-[44px]!";
6612
+ var CELL_INPUT = "bg-muted border border-border rounded px-1 py-0.5 text-[11px] w-full text-center";
6613
+ var GROUPING_OPTIONS = [
6614
+ { value: "clustered", labelKey: "pptx.chart.groupingClustered" },
6615
+ { value: "stacked", labelKey: "pptx.chart.groupingStacked" },
6616
+ { value: "percentStacked", labelKey: "pptx.chart.groupingPercentStacked" }
6617
+ ];
6618
+ var LEGEND_POSITION_OPTIONS = [
6619
+ { value: "t", labelKey: "pptx.chart.legendTop" },
6620
+ { value: "b", labelKey: "pptx.chart.legendBottom" },
6621
+ { value: "l", labelKey: "pptx.chart.legendLeft" },
6622
+ { value: "r", labelKey: "pptx.chart.legendRight" }
6623
+ ];
6624
+ var TICK_LABEL_POSITION_OPTIONS = [
6625
+ { value: "nextTo", labelKey: "pptx.chart.tickNextTo" },
6626
+ { value: "high", labelKey: "pptx.chart.tickHigh" },
6627
+ { value: "low", labelKey: "pptx.chart.tickLow" },
6628
+ { value: "none", labelKey: "pptx.chart.tickNone" }
6629
+ ];
6630
+ var DISPLAY_UNITS_OPTIONS = [
6631
+ { value: "", labelKey: "pptx.chart.unitsNone" },
6632
+ { value: "hundreds", labelKey: "pptx.chart.unitsHundreds" },
6633
+ { value: "thousands", labelKey: "pptx.chart.unitsThousands" },
6634
+ { value: "tenThousands", labelKey: "pptx.chart.unitsTenThousands" },
6635
+ { value: "hundredThousands", labelKey: "pptx.chart.unitsHundredThousands" },
6636
+ { value: "millions", labelKey: "pptx.chart.unitsMillions" },
6637
+ { value: "tenMillions", labelKey: "pptx.chart.unitsTenMillions" },
6638
+ { value: "hundredMillions", labelKey: "pptx.chart.unitsHundredMillions" },
6639
+ { value: "billions", labelKey: "pptx.chart.unitsBillions" },
6640
+ { value: "trillions", labelKey: "pptx.chart.unitsTrillions" }
6641
+ ];
6642
+ var DATA_LABEL_CONTENT_OPTIONS = [
6643
+ { key: "showValue", labelKey: "pptx.chart.labelValue" },
6644
+ { key: "showCategory", labelKey: "pptx.chart.labelCategory" },
6645
+ { key: "showSeriesName", labelKey: "pptx.chart.labelSeriesName" },
6646
+ { key: "showPercent", labelKey: "pptx.chart.labelPercent" },
6647
+ { key: "showLegendKey", labelKey: "pptx.chart.labelLegendKey" }
6648
+ ];
6649
+ var DATA_LABEL_POSITION_OPTIONS = [
6650
+ { value: "", labelKey: "pptx.chart.labelPosDefault" },
6651
+ { value: "ctr", labelKey: "pptx.chart.labelPosCenter" },
6652
+ { value: "inEnd", labelKey: "pptx.chart.labelPosInsideEnd" },
6653
+ { value: "inBase", labelKey: "pptx.chart.labelPosInsideBase" },
6654
+ { value: "outEnd", labelKey: "pptx.chart.labelPosOutsideEnd" },
6655
+ { value: "bestFit", labelKey: "pptx.chart.labelPosBestFit" }
6656
+ ];
6657
+ var TRENDLINE_TYPE_OPTIONS = [
6658
+ { value: "", labelKey: "pptx.chart.trendlineNone" },
6659
+ { value: "linear", labelKey: "pptx.chart.trendlineLinear" },
6660
+ { value: "exponential", labelKey: "pptx.chart.trendlineExponential" },
6661
+ { value: "logarithmic", labelKey: "pptx.chart.trendlineLogarithmic" },
6662
+ { value: "polynomial", labelKey: "pptx.chart.trendlinePolynomial" },
6663
+ { value: "power", labelKey: "pptx.chart.trendlinePower" },
6664
+ { value: "movingAvg", labelKey: "pptx.chart.trendlineMovingAvg" }
6665
+ ];
6666
+ var TRENDLINE_SUPPORTED_TYPES = /* @__PURE__ */ new Set([
6667
+ "bar",
6668
+ "line",
6669
+ "area",
6670
+ "scatter",
6671
+ "bubble"
6672
+ ]);
6673
+ var ERROR_BAR_VALTYPE_OPTIONS = [
6674
+ { value: "", labelKey: "pptx.chart.errorBarNone" },
6675
+ { value: "fixedVal", labelKey: "pptx.chart.errorBarFixed" },
6676
+ { value: "percentage", labelKey: "pptx.chart.errorBarPercentage" },
6677
+ { value: "stdDev", labelKey: "pptx.chart.errorBarStdDev" },
6678
+ { value: "stdErr", labelKey: "pptx.chart.errorBarStdErr" }
6679
+ ];
6680
+ var ERROR_BAR_TYPE_OPTIONS = [
6681
+ { value: "both", labelKey: "pptx.chart.errorBarBoth" },
6682
+ { value: "plus", labelKey: "pptx.chart.errorBarPlus" },
6683
+ { value: "minus", labelKey: "pptx.chart.errorBarMinus" }
6684
+ ];
6685
+ var ERROR_BAR_VALUE_TYPES = /* @__PURE__ */ new Set(["fixedVal", "percentage", "stdDev"]);
6686
+ var ERROR_BAR_SUPPORTED_TYPES = /* @__PURE__ */ new Set([
6687
+ "bar",
6688
+ "line",
6689
+ "area",
6690
+ "scatter",
6691
+ "bubble"
6692
+ ]);
6693
+ var GROUPING_SUPPORTED_TYPES = /* @__PURE__ */ new Set(["bar", "line", "area"]);
6694
+ var MARKER_SYMBOL_OPTIONS = [
6695
+ { value: "", labelKey: "pptx.chart.markerAuto" },
6696
+ { value: "none", labelKey: "pptx.chart.markerNone" },
6697
+ { value: "circle", labelKey: "pptx.chart.markerCircle" },
6698
+ { value: "square", labelKey: "pptx.chart.markerSquare" },
6699
+ { value: "diamond", labelKey: "pptx.chart.markerDiamond" },
6700
+ { value: "triangle", labelKey: "pptx.chart.markerTriangle" },
6701
+ { value: "x", labelKey: "pptx.chart.markerX" },
6702
+ { value: "star", labelKey: "pptx.chart.markerStar" },
6703
+ { value: "plus", labelKey: "pptx.chart.markerPlus" },
6704
+ { value: "dot", labelKey: "pptx.chart.markerDot" },
6705
+ { value: "dash", labelKey: "pptx.chart.markerDash" }
6706
+ ];
6707
+ var MARKER_SUPPORTED_TYPES = /* @__PURE__ */ new Set([
6708
+ "line",
6709
+ "scatter",
6710
+ "bubble",
6711
+ "radar"
6712
+ ]);
6713
+ var GRIDLINE_DASH_OPTIONS = [
6714
+ { value: "", labelKey: "pptx.chart.dashDefault" },
6715
+ { value: "solid", labelKey: "pptx.chart.dashSolid" },
6716
+ { value: "dash", labelKey: "pptx.chart.dashDash" },
6717
+ { value: "dot", labelKey: "pptx.chart.dashDot" },
6718
+ { value: "dashDot", labelKey: "pptx.chart.dashDashDot" },
6719
+ { value: "lgDash", labelKey: "pptx.chart.dashLong" }
6720
+ ];
6721
+ var COMBO_SERIES_TYPE_OPTIONS = [
6722
+ { value: "", labelKey: "pptx.chart.comboDefault" },
6723
+ { value: "bar", labelKey: "pptx.chart.typeBar" },
6724
+ { value: "line", labelKey: "pptx.chart.typeLine" },
6725
+ { value: "area", labelKey: "pptx.chart.typeArea" },
6726
+ { value: "scatter", labelKey: "pptx.chart.typeScatter" }
6727
+ ];
6728
+ var COMBO_SUPPORTED_TYPES = /* @__PURE__ */ new Set(["bar", "line", "area", "combo"]);
6729
+ var EXPLOSION_SUPPORTED_TYPES = /* @__PURE__ */ new Set([
6730
+ "pie",
6731
+ "pie3D",
6732
+ "doughnut",
6733
+ "ofPie"
6734
+ ]);
6735
+ var ICONS3 = {
6736
+ elements: LuPlus,
6737
+ styles: LuPaintbrush,
6738
+ filters: LuFilter
6739
+ };
6740
+ function ChartQuickActionsOverlay({
6741
+ element,
6742
+ canEdit,
6743
+ onUpdateElement
6744
+ }) {
6745
+ const { t } = useTranslation();
6746
+ const [open, setOpen] = useState(null);
6747
+ const hostRef = useRef(null);
6748
+ useEffect(() => {
6749
+ if (!open) {
6750
+ return;
6751
+ }
6752
+ const handler = (e) => {
6753
+ if (hostRef.current && !hostRef.current.contains(e.target)) {
6754
+ setOpen(null);
6755
+ }
6756
+ };
6757
+ document.addEventListener("mousedown", handler);
6758
+ return () => document.removeEventListener("mousedown", handler);
6759
+ }, [open]);
6760
+ const descriptor = buildChartQuickActionsDescriptor({
6761
+ isChartSelected: true,
6762
+ chartData: element.chartData,
6763
+ selectionBox: { x: element.x, y: element.y, width: element.width, height: element.height }
6764
+ });
6765
+ if (!descriptor || !element.chartData) {
6766
+ return null;
6767
+ }
6768
+ const chartData = element.chartData;
6769
+ const commit = (updates) => onUpdateElement(element.id, updates);
6770
+ return /* @__PURE__ */ jsx(
6771
+ "div",
6772
+ {
6773
+ ref: hostRef,
6774
+ "data-pptx-chart-quick-actions": "true",
6775
+ "data-export-ignore": "true",
6776
+ style: { position: "absolute", left: 0, top: 0, zIndex: 59 },
6777
+ onMouseDown: (e) => e.stopPropagation(),
6778
+ children: descriptor.buttons.map((button) => /* @__PURE__ */ jsxs(React6.Fragment, { children: [
6779
+ /* @__PURE__ */ jsx(
6780
+ "button",
6781
+ {
6782
+ type: "button",
6783
+ disabled: !canEdit,
6784
+ "data-testid": `chart-quick-action-${button.id}`,
6785
+ "aria-label": t(button.labelKey),
6786
+ title: t(button.labelKey),
6787
+ onClick: () => setOpen((prev) => prev === button.id ? null : button.id),
6788
+ style: {
6789
+ position: "absolute",
6790
+ left: button.x,
6791
+ top: button.y,
6792
+ width: button.size,
6793
+ height: button.size,
6794
+ scale: "var(--pptx-handle-inverse-scale, 1)",
6795
+ transformOrigin: "top left"
6796
+ },
6797
+ className: "flex items-center justify-center rounded bg-white border border-gray-300 shadow-sm hover:bg-gray-100 text-gray-700",
6798
+ children: React6.createElement(ICONS3[button.id], { className: "size-3.5" })
6799
+ }
6800
+ ),
6801
+ open === button.id && button.id === "elements" && /* @__PURE__ */ jsxs(
6802
+ "div",
6803
+ {
6804
+ "data-testid": "chart-quick-elements-popover",
6805
+ style: {
6806
+ position: "absolute",
6807
+ left: button.x + CHART_QUICK_ACTION_BUTTON_SIZE + 4,
6808
+ top: button.y,
6809
+ scale: "var(--pptx-handle-inverse-scale, 1)",
6810
+ transformOrigin: "top left"
6811
+ },
6812
+ className: `${CARD} w-44 z-10 shadow-lg`,
6813
+ children: [
6814
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.quickElements") }),
6815
+ descriptor.elements.map((item) => /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
6816
+ /* @__PURE__ */ jsx(
6817
+ "input",
6818
+ {
6819
+ type: "checkbox",
6820
+ disabled: !canEdit,
6821
+ checked: item.checked,
6822
+ "data-testid": `chart-quick-element-${item.key}`,
6823
+ onChange: (e) => commit({
6824
+ chartData: applyChartElementToggle(chartData, item.key, e.target.checked)
6825
+ }),
6826
+ className: "accent-primary"
6827
+ }
6828
+ ),
6829
+ /* @__PURE__ */ jsx("span", { className: "text-[11px]", children: t(item.labelKey) })
6830
+ ] }, item.key))
6831
+ ]
6832
+ }
6833
+ ),
6834
+ open === button.id && button.id === "styles" && /* @__PURE__ */ jsx(
6835
+ "div",
6836
+ {
6837
+ "data-testid": "chart-quick-styles-popover",
6838
+ style: {
6839
+ position: "absolute",
6840
+ left: button.x + CHART_QUICK_ACTION_BUTTON_SIZE + 4,
6841
+ top: button.y,
6842
+ scale: "var(--pptx-handle-inverse-scale, 1)",
6843
+ transformOrigin: "top left"
6844
+ },
6845
+ className: `${CARD} w-48 z-10 shadow-lg grid grid-cols-3 gap-1.5`,
6846
+ children: descriptor.styles.presets.map((preset) => /* @__PURE__ */ jsx(
6847
+ "button",
6848
+ {
6849
+ type: "button",
6850
+ disabled: !canEdit,
6851
+ "data-testid": `chart-quick-style-${preset.id}`,
6852
+ "aria-label": t(preset.labelKey),
6853
+ "aria-pressed": preset.applied,
6854
+ title: t(preset.labelKey),
6855
+ onClick: () => {
6856
+ const next = applyChartStylePreset(chartData, preset.id);
6857
+ if (next) {
6858
+ commit({ chartData: next });
6859
+ }
6860
+ },
6861
+ className: `flex flex-col rounded overflow-hidden border ${preset.applied ? "border-primary ring-1 ring-primary" : "border-border"}`,
6862
+ children: /* @__PURE__ */ jsx("span", { className: "flex h-5 w-full", children: preset.colors.slice(0, 5).map((c, i) => /* @__PURE__ */ jsx("span", { style: { backgroundColor: c }, className: "flex-1" }, i)) })
6863
+ },
6864
+ preset.id
6865
+ ))
6866
+ }
6867
+ ),
6868
+ open === button.id && button.id === "filters" && /* @__PURE__ */ jsxs(
6869
+ "div",
6870
+ {
6871
+ "data-testid": "chart-quick-filters-popover",
6872
+ style: {
6873
+ position: "absolute",
6874
+ left: button.x + CHART_QUICK_ACTION_BUTTON_SIZE + 4,
6875
+ top: button.y,
6876
+ scale: "var(--pptx-handle-inverse-scale, 1)",
6877
+ transformOrigin: "top left"
6878
+ },
6879
+ className: `${CARD} w-48 z-10 shadow-lg`,
6880
+ children: [
6881
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.quickFilters") }),
6882
+ descriptor.filters.series.map((row) => /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
6883
+ /* @__PURE__ */ jsx(
6884
+ "input",
6885
+ {
6886
+ type: "checkbox",
6887
+ disabled: !canEdit,
6888
+ checked: row.visible,
6889
+ "data-testid": `chart-quick-filter-${row.key}`,
6890
+ onChange: () => {
6891
+ const next = row.seriesIndex !== void 0 ? hideChartSeries(chartData, row.seriesIndex) : restoreFilteredSeries(chartData, row.filteredIndex);
6892
+ if (next) {
6893
+ commit({ chartData: next });
6894
+ }
6895
+ },
6896
+ className: "accent-primary"
6897
+ }
6898
+ ),
6899
+ /* @__PURE__ */ jsx("span", { className: "text-[11px] truncate", children: row.name })
6900
+ ] }, row.key))
6901
+ ]
6902
+ }
6903
+ )
6904
+ ] }, button.id))
6905
+ }
6906
+ );
6907
+ }
6583
6908
  function CommentMarkersOverlay({
6584
6909
  comments,
6585
6910
  canvasSize,
@@ -8393,6 +8718,14 @@ function SlideCanvas({
8393
8718
  onContextMenu
8394
8719
  }
8395
8720
  ),
8721
+ selectedElement && selectedElement.type === "chart" && shouldShowElementHandles(isEditableCanvas, true, selectedElementIdSet.size) && onUpdateSmartArtElement && /* @__PURE__ */ jsx(
8722
+ ChartQuickActionsOverlay,
8723
+ {
8724
+ element: selectedElement,
8725
+ canEdit,
8726
+ onUpdateElement: stableUpdateSmartArtElement
8727
+ }
8728
+ ),
8396
8729
  /* @__PURE__ */ jsx(MarqueeOverlay, { marqueeSelectionState }),
8397
8730
  activeSlide?.activeXControls && activeSlide.activeXControls.length > 0 && /* @__PURE__ */ jsx(ActiveXControlOverlay, { controls: activeSlide.activeXControls, canvasSize }),
8398
8731
  showCommentMarkers && comments && comments.length > 0 && /* @__PURE__ */ jsx(
@@ -9640,7 +9973,7 @@ function SlideItemInner({
9640
9973
  {
9641
9974
  type: "button",
9642
9975
  ref: slideRef,
9643
- "aria-label": `Go to slide ${slideIndex + 1}`,
9976
+ "aria-label": t("pptx.slidesPanel.goToSlide", { n: slideIndex + 1 }),
9644
9977
  "aria-current": isActive ? "true" : void 0,
9645
9978
  "aria-describedby": cue.labelId,
9646
9979
  "data-pptx-slide-hidden": cue.marker,
@@ -12673,8 +13006,8 @@ function SlideNotesPanel({
12673
13006
  "aria-expanded": isExpanded,
12674
13007
  "aria-controls": "slide-notes-content",
12675
13008
  children: [
12676
- "Notes",
12677
- !isExpanded && hasNotes && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 text-[10px]", children: "(has notes)" })
13009
+ t("pptx.notes.title"),
13010
+ !isExpanded && hasNotes && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 text-[10px]", children: t("pptx.notes.hasNotes") })
12678
13011
  ]
12679
13012
  }
12680
13013
  ),
@@ -16755,10 +17088,10 @@ var INSPECTOR_TABS = [
16755
17088
  { key: "properties", labelKey: "pptx.inspector.properties", icon: LuSettings2 },
16756
17089
  { key: "comments", labelKey: "pptx.toolbar.comments", icon: LuMessageSquare }
16757
17090
  ];
16758
- var HEADING = "text-[11px] uppercase tracking-wide text-muted-foreground";
16759
- var CARD = "rounded border border-border bg-card p-2 space-y-2";
16760
- var INPUT = "flex-1 bg-muted border border-border rounded px-1.5 py-0.5 w-full max-md:min-h-[44px]!";
16761
- var BTN = "rounded bg-muted hover:bg-accent px-2 py-1 text-[11px] transition-colors max-md:min-h-[44px]! max-md:min-w-[44px]!";
17091
+ var HEADING2 = "text-[11px] uppercase tracking-wide text-muted-foreground";
17092
+ var CARD2 = "rounded border border-border bg-card p-2 space-y-2";
17093
+ var INPUT2 = "flex-1 bg-muted border border-border rounded px-1.5 py-0.5 w-full max-md:min-h-[44px]!";
17094
+ var BTN2 = "rounded bg-muted hover:bg-accent px-2 py-1 text-[11px] transition-colors max-md:min-h-[44px]! max-md:min-w-[44px]!";
16762
17095
  var POS_FIELDS = [
16763
17096
  ["X", "x"],
16764
17097
  ["Y", "y"],
@@ -16791,7 +17124,7 @@ function ActionTargetFields({
16791
17124
  type: "text",
16792
17125
  disabled: !canEdit,
16793
17126
  "aria-label": t(urlLabelKey),
16794
- className: cn(INPUT, "w-full"),
17127
+ className: cn(INPUT2, "w-full"),
16795
17128
  placeholder: "https://...",
16796
17129
  value: url ?? "",
16797
17130
  onChange: (e) => onChange({ url: e.target.value })
@@ -16805,7 +17138,7 @@ function ActionTargetFields({
16805
17138
  type: "number",
16806
17139
  disabled: !canEdit,
16807
17140
  "aria-label": t("pptx.action.gotoSlide"),
16808
- className: cn(INPUT, "w-full"),
17141
+ className: cn(INPUT2, "w-full"),
16809
17142
  placeholder: t("pptx.action.slideNumberPlaceholder"),
16810
17143
  min: 1,
16811
17144
  max: slideCount,
@@ -16827,7 +17160,7 @@ function ActionTargetFields({
16827
17160
  "data-testid": "pptx-action-custom-show",
16828
17161
  disabled: !canEdit,
16829
17162
  "aria-label": t("pptx.hyperlink.customShowLabel"),
16830
- className: cn(INPUT, "w-full"),
17163
+ className: cn(INPUT2, "w-full"),
16831
17164
  value: customShowId ?? "",
16832
17165
  onChange: (e) => onChange({ customShowId: e.target.value, returnAfter }),
16833
17166
  children: [
@@ -16883,8 +17216,8 @@ function ActionSettingsPanel({
16883
17216
  updateAction(trigger, type, target);
16884
17217
  }
16885
17218
  };
16886
- return /* @__PURE__ */ jsxs("div", { className: CARD, "data-pptx-action-settings": true, children: [
16887
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.action.title", "Action") }),
17219
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, "data-pptx-action-settings": true, children: [
17220
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.action.title", "Action") }),
16888
17221
  /* @__PURE__ */ jsxs("div", { className: "space-y-2 text-[11px]", children: [
16889
17222
  /* @__PURE__ */ jsx(
16890
17223
  ActionTriggerSection,
@@ -16950,7 +17283,7 @@ function ActionTriggerSection({
16950
17283
  {
16951
17284
  disabled: !canEdit,
16952
17285
  "aria-label": label,
16953
- className: cn(INPUT, "w-full"),
17286
+ className: cn(INPUT2, "w-full"),
16954
17287
  value: effectiveType,
16955
17288
  onChange: (e) => changeType(e.target.value),
16956
17289
  children: ELEMENT_ACTION_TYPE_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(o.labelKey) }, o.value))
@@ -16972,135 +17305,6 @@ function ActionTriggerSection({
16972
17305
  )
16973
17306
  ] });
16974
17307
  }
16975
-
16976
- // src/viewer/components/inspector/chart-panel-constants.ts
16977
- var HEADING2 = "text-[11px] uppercase tracking-wide text-muted-foreground";
16978
- var CARD2 = "rounded border border-border bg-card p-2 space-y-2";
16979
- var INPUT2 = "flex-1 bg-muted border border-border rounded px-1.5 py-0.5 w-full max-md:min-h-[44px]!";
16980
- var BTN2 = "rounded bg-muted hover:bg-accent px-2 py-1 text-[11px] transition-colors max-md:min-h-[44px]!";
16981
- var CELL_INPUT = "bg-muted border border-border rounded px-1 py-0.5 text-[11px] w-full text-center";
16982
- var GROUPING_OPTIONS = [
16983
- { value: "clustered", labelKey: "pptx.chart.groupingClustered" },
16984
- { value: "stacked", labelKey: "pptx.chart.groupingStacked" },
16985
- { value: "percentStacked", labelKey: "pptx.chart.groupingPercentStacked" }
16986
- ];
16987
- var LEGEND_POSITION_OPTIONS = [
16988
- { value: "t", labelKey: "pptx.chart.legendTop" },
16989
- { value: "b", labelKey: "pptx.chart.legendBottom" },
16990
- { value: "l", labelKey: "pptx.chart.legendLeft" },
16991
- { value: "r", labelKey: "pptx.chart.legendRight" }
16992
- ];
16993
- var TICK_LABEL_POSITION_OPTIONS = [
16994
- { value: "nextTo", labelKey: "pptx.chart.tickNextTo" },
16995
- { value: "high", labelKey: "pptx.chart.tickHigh" },
16996
- { value: "low", labelKey: "pptx.chart.tickLow" },
16997
- { value: "none", labelKey: "pptx.chart.tickNone" }
16998
- ];
16999
- var DISPLAY_UNITS_OPTIONS = [
17000
- { value: "", labelKey: "pptx.chart.unitsNone" },
17001
- { value: "hundreds", labelKey: "pptx.chart.unitsHundreds" },
17002
- { value: "thousands", labelKey: "pptx.chart.unitsThousands" },
17003
- { value: "tenThousands", labelKey: "pptx.chart.unitsTenThousands" },
17004
- { value: "hundredThousands", labelKey: "pptx.chart.unitsHundredThousands" },
17005
- { value: "millions", labelKey: "pptx.chart.unitsMillions" },
17006
- { value: "tenMillions", labelKey: "pptx.chart.unitsTenMillions" },
17007
- { value: "hundredMillions", labelKey: "pptx.chart.unitsHundredMillions" },
17008
- { value: "billions", labelKey: "pptx.chart.unitsBillions" },
17009
- { value: "trillions", labelKey: "pptx.chart.unitsTrillions" }
17010
- ];
17011
- var DATA_LABEL_CONTENT_OPTIONS = [
17012
- { key: "showValue", labelKey: "pptx.chart.labelValue" },
17013
- { key: "showCategory", labelKey: "pptx.chart.labelCategory" },
17014
- { key: "showSeriesName", labelKey: "pptx.chart.labelSeriesName" },
17015
- { key: "showPercent", labelKey: "pptx.chart.labelPercent" },
17016
- { key: "showLegendKey", labelKey: "pptx.chart.labelLegendKey" }
17017
- ];
17018
- var DATA_LABEL_POSITION_OPTIONS = [
17019
- { value: "", labelKey: "pptx.chart.labelPosDefault" },
17020
- { value: "ctr", labelKey: "pptx.chart.labelPosCenter" },
17021
- { value: "inEnd", labelKey: "pptx.chart.labelPosInsideEnd" },
17022
- { value: "inBase", labelKey: "pptx.chart.labelPosInsideBase" },
17023
- { value: "outEnd", labelKey: "pptx.chart.labelPosOutsideEnd" },
17024
- { value: "bestFit", labelKey: "pptx.chart.labelPosBestFit" }
17025
- ];
17026
- var TRENDLINE_TYPE_OPTIONS = [
17027
- { value: "", labelKey: "pptx.chart.trendlineNone" },
17028
- { value: "linear", labelKey: "pptx.chart.trendlineLinear" },
17029
- { value: "exponential", labelKey: "pptx.chart.trendlineExponential" },
17030
- { value: "logarithmic", labelKey: "pptx.chart.trendlineLogarithmic" },
17031
- { value: "polynomial", labelKey: "pptx.chart.trendlinePolynomial" },
17032
- { value: "power", labelKey: "pptx.chart.trendlinePower" },
17033
- { value: "movingAvg", labelKey: "pptx.chart.trendlineMovingAvg" }
17034
- ];
17035
- var TRENDLINE_SUPPORTED_TYPES = /* @__PURE__ */ new Set([
17036
- "bar",
17037
- "line",
17038
- "area",
17039
- "scatter",
17040
- "bubble"
17041
- ]);
17042
- var ERROR_BAR_VALTYPE_OPTIONS = [
17043
- { value: "", labelKey: "pptx.chart.errorBarNone" },
17044
- { value: "fixedVal", labelKey: "pptx.chart.errorBarFixed" },
17045
- { value: "percentage", labelKey: "pptx.chart.errorBarPercentage" },
17046
- { value: "stdDev", labelKey: "pptx.chart.errorBarStdDev" },
17047
- { value: "stdErr", labelKey: "pptx.chart.errorBarStdErr" }
17048
- ];
17049
- var ERROR_BAR_TYPE_OPTIONS = [
17050
- { value: "both", labelKey: "pptx.chart.errorBarBoth" },
17051
- { value: "plus", labelKey: "pptx.chart.errorBarPlus" },
17052
- { value: "minus", labelKey: "pptx.chart.errorBarMinus" }
17053
- ];
17054
- var ERROR_BAR_VALUE_TYPES = /* @__PURE__ */ new Set(["fixedVal", "percentage", "stdDev"]);
17055
- var ERROR_BAR_SUPPORTED_TYPES = /* @__PURE__ */ new Set([
17056
- "bar",
17057
- "line",
17058
- "area",
17059
- "scatter",
17060
- "bubble"
17061
- ]);
17062
- var GROUPING_SUPPORTED_TYPES = /* @__PURE__ */ new Set(["bar", "line", "area"]);
17063
- var MARKER_SYMBOL_OPTIONS = [
17064
- { value: "", labelKey: "pptx.chart.markerAuto" },
17065
- { value: "none", labelKey: "pptx.chart.markerNone" },
17066
- { value: "circle", labelKey: "pptx.chart.markerCircle" },
17067
- { value: "square", labelKey: "pptx.chart.markerSquare" },
17068
- { value: "diamond", labelKey: "pptx.chart.markerDiamond" },
17069
- { value: "triangle", labelKey: "pptx.chart.markerTriangle" },
17070
- { value: "x", labelKey: "pptx.chart.markerX" },
17071
- { value: "star", labelKey: "pptx.chart.markerStar" },
17072
- { value: "plus", labelKey: "pptx.chart.markerPlus" },
17073
- { value: "dot", labelKey: "pptx.chart.markerDot" },
17074
- { value: "dash", labelKey: "pptx.chart.markerDash" }
17075
- ];
17076
- var MARKER_SUPPORTED_TYPES = /* @__PURE__ */ new Set([
17077
- "line",
17078
- "scatter",
17079
- "bubble",
17080
- "radar"
17081
- ]);
17082
- var GRIDLINE_DASH_OPTIONS = [
17083
- { value: "", labelKey: "pptx.chart.dashDefault" },
17084
- { value: "solid", labelKey: "pptx.chart.dashSolid" },
17085
- { value: "dash", labelKey: "pptx.chart.dashDash" },
17086
- { value: "dot", labelKey: "pptx.chart.dashDot" },
17087
- { value: "dashDot", labelKey: "pptx.chart.dashDashDot" },
17088
- { value: "lgDash", labelKey: "pptx.chart.dashLong" }
17089
- ];
17090
- var COMBO_SERIES_TYPE_OPTIONS = [
17091
- { value: "", labelKey: "pptx.chart.comboDefault" },
17092
- { value: "bar", labelKey: "pptx.chart.typeBar" },
17093
- { value: "line", labelKey: "pptx.chart.typeLine" },
17094
- { value: "area", labelKey: "pptx.chart.typeArea" },
17095
- { value: "scatter", labelKey: "pptx.chart.typeScatter" }
17096
- ];
17097
- var COMBO_SUPPORTED_TYPES = /* @__PURE__ */ new Set(["bar", "line", "area", "combo"]);
17098
- var EXPLOSION_SUPPORTED_TYPES = /* @__PURE__ */ new Set([
17099
- "pie",
17100
- "pie3D",
17101
- "doughnut",
17102
- "ofPie"
17103
- ]);
17104
17308
  var AXIS_ROWS = [
17105
17309
  { type: "valAx", labelKey: "pptx.chart.valueAxis", hasScale: true },
17106
17310
  { type: "dateAx", labelKey: "pptx.chart.dateAxis", hasScale: true },
@@ -17122,7 +17326,7 @@ function ChartAxisOptions({ axes, canEdit, onUpdateAxis }) {
17122
17326
  {
17123
17327
  type: "number",
17124
17328
  disabled: !canEdit,
17125
- className: INPUT2,
17329
+ className: INPUT,
17126
17330
  value: value ?? "",
17127
17331
  placeholder: t("pptx.chart.auto"),
17128
17332
  onChange: (e) => {
@@ -17139,8 +17343,8 @@ function ChartAxisOptions({ axes, canEdit, onUpdateAxis }) {
17139
17343
  }
17140
17344
  )
17141
17345
  ] });
17142
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17143
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.axes") }),
17346
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
17347
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.axes") }),
17144
17348
  rows.map(({ type, labelKey, hasScale, axis }) => /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
17145
17349
  /* @__PURE__ */ jsx("div", { className: "text-[11px] font-medium", children: t(labelKey) }),
17146
17350
  hasScale && /* @__PURE__ */ jsxs("div", { className: "space-y-1.5 ml-2", children: [
@@ -17155,7 +17359,7 @@ function ChartAxisOptions({ axes, canEdit, onUpdateAxis }) {
17155
17359
  {
17156
17360
  "aria-label": t("pptx.chart.displayUnits"),
17157
17361
  disabled: !canEdit,
17158
- className: INPUT2,
17362
+ className: INPUT,
17159
17363
  value: axis.displayUnits ?? "",
17160
17364
  onChange: (e) => onUpdateAxis(type, {
17161
17365
  displayUnits: e.target.value || void 0
@@ -17173,7 +17377,7 @@ function ChartAxisOptions({ axes, canEdit, onUpdateAxis }) {
17173
17377
  {
17174
17378
  type: "text",
17175
17379
  disabled: !canEdit,
17176
- className: INPUT2,
17380
+ className: INPUT,
17177
17381
  value: axis.titleText ?? "",
17178
17382
  placeholder: t("pptx.chart.axisTitlePlaceholder"),
17179
17383
  onChange: (e) => onUpdateAxis(type, { titleText: e.target.value })
@@ -17187,7 +17391,7 @@ function ChartAxisOptions({ axes, canEdit, onUpdateAxis }) {
17187
17391
  {
17188
17392
  type: "text",
17189
17393
  disabled: !canEdit,
17190
- className: INPUT2,
17394
+ className: INPUT,
17191
17395
  value: axis.numFmt?.formatCode ?? "",
17192
17396
  placeholder: t("pptx.settings.general"),
17193
17397
  onChange: (e) => onUpdateAxis(type, {
@@ -17203,7 +17407,7 @@ function ChartAxisOptions({ axes, canEdit, onUpdateAxis }) {
17203
17407
  {
17204
17408
  "aria-label": t("pptx.chart.tickLabels"),
17205
17409
  disabled: !canEdit,
17206
- className: INPUT2,
17410
+ className: INPUT,
17207
17411
  value: axis.tickLblPos ?? "nextTo",
17208
17412
  onChange: (e) => onUpdateAxis(type, {
17209
17413
  tickLblPos: e.target.value
@@ -17263,8 +17467,8 @@ function ChartAxisStyleOptions({
17263
17467
  if (rows.length === 0) {
17264
17468
  return null;
17265
17469
  }
17266
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17267
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.axisStyling") }),
17470
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
17471
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.axisStyling") }),
17268
17472
  rows.map(({ type, labelKey, axis }) => {
17269
17473
  const hasScale = type === "valAx" || type === "dateAx";
17270
17474
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
@@ -17309,7 +17513,7 @@ function ChartAxisStyleOptions({
17309
17513
  {
17310
17514
  type: "text",
17311
17515
  disabled: !canEdit,
17312
- className: INPUT2,
17516
+ className: INPUT,
17313
17517
  placeholder: t("pptx.chart.auto"),
17314
17518
  value: axis.fontFamily ?? "",
17315
17519
  onChange: (e) => onSetTitleStyle(type, { fontFamily: e.target.value || null })
@@ -17413,7 +17617,7 @@ function ChartAxisStyleOptions({
17413
17617
  {
17414
17618
  disabled: !canEdit,
17415
17619
  title: t("pptx.chart.gridlineDash"),
17416
- className: INPUT2,
17620
+ className: INPUT,
17417
17621
  value: spPr?.strokeDashStyle ?? "",
17418
17622
  onChange: (e) => onSetGridlineStyle(type, which, { dashStyle: e.target.value || null }),
17419
17623
  children: GRIDLINE_DASH_OPTIONS.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: t(opt.labelKey) }, opt.value))
@@ -17436,15 +17640,15 @@ function ChartComboTypeOptions({
17436
17640
  if (!COMBO_SUPPORTED_TYPES.has(chartType) || series.length < 2) {
17437
17641
  return null;
17438
17642
  }
17439
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17440
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.comboTypes") }),
17643
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
17644
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.comboTypes") }),
17441
17645
  /* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: series.map((s, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [
17442
17646
  /* @__PURE__ */ jsx("span", { className: "flex-1 truncate", title: s.name, children: s.name }),
17443
17647
  /* @__PURE__ */ jsx(
17444
17648
  "select",
17445
17649
  {
17446
17650
  disabled: !canEdit,
17447
- className: INPUT2,
17651
+ className: INPUT,
17448
17652
  value: s.seriesChartType ?? "",
17449
17653
  onChange: (e) => {
17450
17654
  const value = e.target.value;
@@ -17482,15 +17686,15 @@ function ChartDataGrid({
17482
17686
  const highlightClass = " ring-1 ring-primary";
17483
17687
  const isSeriesHighlight = (si) => highlightCell?.seriesIndex === si && highlightCell.pointIndex === void 0;
17484
17688
  const isValueHighlight = (si, ci) => highlightCell?.seriesIndex === si && highlightCell.pointIndex === ci;
17485
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17689
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
17486
17690
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
17487
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.data") }),
17691
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.data") }),
17488
17692
  canEdit && /* @__PURE__ */ jsxs("div", { className: "flex gap-1", children: [
17489
17693
  /* @__PURE__ */ jsxs(
17490
17694
  "button",
17491
17695
  {
17492
17696
  type: "button",
17493
- className: `${BTN2} inline-flex items-center justify-center`,
17697
+ className: `${BTN} inline-flex items-center justify-center`,
17494
17698
  style: iconBtnStyle,
17495
17699
  title: t("pptx.chart.addCategory"),
17496
17700
  onClick: onAddCategory,
@@ -17504,7 +17708,7 @@ function ChartDataGrid({
17504
17708
  "button",
17505
17709
  {
17506
17710
  type: "button",
17507
- className: `${BTN2} inline-flex items-center justify-center`,
17711
+ className: `${BTN} inline-flex items-center justify-center`,
17508
17712
  style: iconBtnStyle,
17509
17713
  title: t("pptx.chart.addSeries"),
17510
17714
  onClick: onAddSeries,
@@ -17610,8 +17814,8 @@ function ChartDataLabelOptions({
17610
17814
  }
17611
17815
  const labels = style.dataLabels ?? {};
17612
17816
  const patchLabels = (patch) => onUpdateStyle({ dataLabels: { ...labels, ...patch } });
17613
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17614
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.dataLabels") }),
17817
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
17818
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.dataLabels") }),
17615
17819
  /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
17616
17820
  DATA_LABEL_CONTENT_OPTIONS.map((opt) => /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
17617
17821
  /* @__PURE__ */ jsx(
@@ -17633,7 +17837,7 @@ function ChartDataLabelOptions({
17633
17837
  {
17634
17838
  "aria-label": t("pptx.chart.labelPosition"),
17635
17839
  disabled: !canEdit,
17636
- className: INPUT2,
17840
+ className: INPUT,
17637
17841
  value: labels.position ?? "",
17638
17842
  onChange: (e) => patchLabels({
17639
17843
  position: e.target.value || void 0
@@ -17661,8 +17865,8 @@ function ChartDataPointMarkerOptions({
17661
17865
  }
17662
17866
  const activeSeries = series[Math.min(seriesIndex, series.length - 1)];
17663
17867
  const pointFor = (idx) => activeSeries.dataPoints?.find((p) => p.idx === idx);
17664
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17665
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.pointMarkers") }),
17868
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
17869
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.pointMarkers") }),
17666
17870
  series.length > 1 && /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-[11px]", children: [
17667
17871
  /* @__PURE__ */ jsx("span", { className: "w-12 text-muted-foreground shrink-0", children: t("pptx.chart.series") }),
17668
17872
  /* @__PURE__ */ jsx(
@@ -17771,8 +17975,8 @@ function ChartDataPointOptions({
17771
17975
  const activeSeries = series[Math.min(seriesIndex, series.length - 1)];
17772
17976
  const showExplosion = EXPLOSION_SUPPORTED_TYPES.has(chartType);
17773
17977
  const pointFor = (idx) => activeSeries.dataPoints?.find((p) => p.idx === idx);
17774
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17775
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.dataPoints") }),
17978
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
17979
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.dataPoints") }),
17776
17980
  series.length > 1 && /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-[11px]", children: [
17777
17981
  /* @__PURE__ */ jsx("span", { className: "w-12 text-muted-foreground shrink-0", children: t("pptx.chart.series") }),
17778
17982
  /* @__PURE__ */ jsx(
@@ -17780,7 +17984,7 @@ function ChartDataPointOptions({
17780
17984
  {
17781
17985
  "aria-label": t("pptx.chart.series"),
17782
17986
  disabled: !canEdit,
17783
- className: INPUT2,
17987
+ className: INPUT,
17784
17988
  value: Math.min(seriesIndex, series.length - 1),
17785
17989
  onChange: (e) => setSeriesIndex(Number.parseInt(e.target.value, 10)),
17786
17990
  children: series.map((s, i) => /* @__PURE__ */ jsx("option", { value: i, children: s.name }, `${s.name}-${i}`))
@@ -17867,8 +18071,8 @@ function ChartDisplayOptions({
17867
18071
  onToggleGridlines
17868
18072
  }) {
17869
18073
  const { t } = useTranslation();
17870
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17871
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.display") }),
18074
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18075
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.display") }),
17872
18076
  /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
17873
18077
  /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
17874
18078
  /* @__PURE__ */ jsx(
@@ -17903,7 +18107,7 @@ function ChartDisplayOptions({
17903
18107
  {
17904
18108
  "aria-label": t("pptx.chart.legendPosition"),
17905
18109
  disabled: !canEdit,
17906
- className: INPUT2,
18110
+ className: INPUT,
17907
18111
  value: style.legendPosition ?? "b",
17908
18112
  onChange: (e) => onUpdateStyle({
17909
18113
  legendPosition: e.target.value
@@ -17953,8 +18157,8 @@ function ChartErrorBarOptions({
17953
18157
  if (!ERROR_BAR_SUPPORTED_TYPES.has(chartType) || series.length === 0) {
17954
18158
  return null;
17955
18159
  }
17956
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
17957
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.errorBars") }),
18160
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18161
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.errorBars") }),
17958
18162
  /* @__PURE__ */ jsx("div", { className: "space-y-2", children: series.map((s, i) => {
17959
18163
  const bars = s.errBars?.[0];
17960
18164
  const valType = bars?.valType ?? "";
@@ -17966,7 +18170,7 @@ function ChartErrorBarOptions({
17966
18170
  "select",
17967
18171
  {
17968
18172
  disabled: !canEdit,
17969
- className: INPUT2,
18173
+ className: INPUT,
17970
18174
  value: valType,
17971
18175
  onChange: (e) => {
17972
18176
  const value = e.target.value;
@@ -17990,7 +18194,7 @@ function ChartErrorBarOptions({
17990
18194
  "select",
17991
18195
  {
17992
18196
  disabled: !canEdit,
17993
- className: INPUT2,
18197
+ className: INPUT,
17994
18198
  value: bars.barType,
17995
18199
  onChange: (e) => onSetErrorBars(i, {
17996
18200
  ...bars,
@@ -18004,7 +18208,7 @@ function ChartErrorBarOptions({
18004
18208
  {
18005
18209
  type: "number",
18006
18210
  disabled: !canEdit,
18007
- className: INPUT2,
18211
+ className: INPUT,
18008
18212
  value: bars.val ?? "",
18009
18213
  placeholder: t("pptx.chart.errorBarAmount"),
18010
18214
  onChange: (e) => {
@@ -18035,8 +18239,8 @@ function ChartFilteredSeriesOptions({
18035
18239
  if (filteredSeries.length === 0 && seriesWithRange.length === 0 && chartData.series.length <= 1) {
18036
18240
  return null;
18037
18241
  }
18038
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
18039
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.chartFilters") }),
18242
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18243
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.chartFilters") }),
18040
18244
  chartData.series.length > 1 && /* @__PURE__ */ jsx("div", { className: "space-y-1", children: chartData.series.map((series, index) => /* @__PURE__ */ jsxs(
18041
18245
  "div",
18042
18246
  {
@@ -18047,7 +18251,7 @@ function ChartFilteredSeriesOptions({
18047
18251
  "button",
18048
18252
  {
18049
18253
  type: "button",
18050
- className: BTN2,
18254
+ className: BTN,
18051
18255
  disabled: !canEdit,
18052
18256
  "aria-label": t("pptx.chart.hideSeries", { name: series.name }),
18053
18257
  "data-testid": `chart-series-hide-${index}`,
@@ -18071,7 +18275,7 @@ function ChartFilteredSeriesOptions({
18071
18275
  "button",
18072
18276
  {
18073
18277
  type: "button",
18074
- className: BTN2,
18278
+ className: BTN,
18075
18279
  disabled: !canEdit,
18076
18280
  "aria-label": t("pptx.chart.showSeries", { name }),
18077
18281
  "data-testid": `chart-series-show-${index}`,
@@ -18114,8 +18318,8 @@ function ChartMarkerOptions({
18114
18318
  if (!MARKER_SUPPORTED_TYPES.has(chartType) || series.length === 0) {
18115
18319
  return null;
18116
18320
  }
18117
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
18118
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.markers") }),
18321
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18322
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.markers") }),
18119
18323
  /* @__PURE__ */ jsx("div", { className: "space-y-2", children: series.map((s, i) => {
18120
18324
  const marker = s.marker;
18121
18325
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
@@ -18125,7 +18329,7 @@ function ChartMarkerOptions({
18125
18329
  "select",
18126
18330
  {
18127
18331
  disabled: !canEdit,
18128
- className: INPUT2,
18332
+ className: INPUT,
18129
18333
  value: marker?.symbol ?? "",
18130
18334
  onChange: (e) => {
18131
18335
  const value = e.target.value;
@@ -18228,8 +18432,8 @@ function ChartSeriesColorOptions({
18228
18432
  if (series.length === 0) {
18229
18433
  return null;
18230
18434
  }
18231
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
18232
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.seriesColors") }),
18435
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18436
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.seriesColors") }),
18233
18437
  /* @__PURE__ */ jsx("div", { className: "space-y-1", children: series.map((s, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [
18234
18438
  /* @__PURE__ */ jsx("span", { className: "flex-1 truncate", title: s.name, children: s.name }),
18235
18439
  /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-muted-foreground shrink-0", children: [
@@ -18277,8 +18481,8 @@ function ChartSubtypeOptions({
18277
18481
  if (chartData.chartType !== "bar3D" && chartData.chartType !== "radar" && chartData.chartType !== "surface") {
18278
18482
  return null;
18279
18483
  }
18280
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
18281
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.display") }),
18484
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18485
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.display") }),
18282
18486
  /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
18283
18487
  chartData.chartType === "bar3D" && /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-[11px]", children: [
18284
18488
  /* @__PURE__ */ jsx("span", { className: "w-16 text-muted-foreground shrink-0", children: t("pptx.chart.bar3DShapeLabel") }),
@@ -18288,7 +18492,7 @@ function ChartSubtypeOptions({
18288
18492
  "data-testid": "pptx-chart-bar3d-shape",
18289
18493
  "aria-label": t("pptx.chart.bar3DShapeLabel"),
18290
18494
  disabled: !canEdit,
18291
- className: INPUT2,
18495
+ className: INPUT,
18292
18496
  value: chartData.barShape ?? "box",
18293
18497
  onChange: (e) => onUpdateChartData(bar3DShapePatch(chartData, e.target.value)),
18294
18498
  children: BAR3D_SHAPE_OPTIONS.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: t(opt.labelKey) }, opt.value))
@@ -18303,7 +18507,7 @@ function ChartSubtypeOptions({
18303
18507
  "data-testid": "pptx-chart-radar-style",
18304
18508
  "aria-label": t("pptx.chart.radarStyleLabel"),
18305
18509
  disabled: !canEdit,
18306
- className: INPUT2,
18510
+ className: INPUT,
18307
18511
  value: chartData.radarStyle ?? "standard",
18308
18512
  onChange: (e) => onUpdateChartData(
18309
18513
  radarStylePatch(
@@ -18323,7 +18527,7 @@ function ChartSubtypeOptions({
18323
18527
  "data-testid": "pptx-chart-surface-wireframe",
18324
18528
  "aria-label": t("pptx.chart.surfaceWireframeLabel"),
18325
18529
  disabled: !canEdit,
18326
- className: INPUT2,
18530
+ className: INPUT,
18327
18531
  value: chartData.wireframe ? "true" : "false",
18328
18532
  onChange: (e) => onUpdateChartData(surfaceWireframePatch(chartData, e.target.value === "true")),
18329
18533
  children: SURFACE_WIREFRAME_OPTIONS.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: t(opt.labelKey) }, opt.value))
@@ -18343,8 +18547,8 @@ function ChartTrendlineOptions({
18343
18547
  if (!TRENDLINE_SUPPORTED_TYPES.has(chartType) || series.length === 0) {
18344
18548
  return null;
18345
18549
  }
18346
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
18347
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.trendlines") }),
18550
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18551
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.trendlines") }),
18348
18552
  /* @__PURE__ */ jsx("div", { className: "space-y-2", children: series.map((s, i) => {
18349
18553
  const trendline = s.trendlines?.[0];
18350
18554
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
@@ -18354,7 +18558,7 @@ function ChartTrendlineOptions({
18354
18558
  "select",
18355
18559
  {
18356
18560
  disabled: !canEdit,
18357
- className: INPUT2,
18561
+ className: INPUT,
18358
18562
  value: trendline?.trendlineType ?? "",
18359
18563
  onChange: (e) => {
18360
18564
  const value = e.target.value;
@@ -18417,8 +18621,8 @@ function ChartTypeSelector({
18417
18621
  const { t } = useTranslation();
18418
18622
  const supportsGrouping = GROUPING_SUPPORTED_TYPES.has(chartType);
18419
18623
  const displayedType = resolveDisplayedChartType(chartData);
18420
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
18421
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.heading") }),
18624
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18625
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.heading") }),
18422
18626
  /* @__PURE__ */ jsxs("div", { className: "text-[11px] text-muted-foreground mb-1", children: [
18423
18627
  seriesCount,
18424
18628
  " ",
@@ -18435,7 +18639,7 @@ function ChartTypeSelector({
18435
18639
  {
18436
18640
  type: "text",
18437
18641
  disabled: !canEdit,
18438
- className: INPUT2,
18642
+ className: INPUT,
18439
18643
  value: title ?? "",
18440
18644
  onChange: (e) => onTitleChange(e.target.value)
18441
18645
  }
@@ -18448,7 +18652,7 @@ function ChartTypeSelector({
18448
18652
  {
18449
18653
  "aria-label": t("pptx.chart.type"),
18450
18654
  disabled: !canEdit,
18451
- className: INPUT2,
18655
+ className: INPUT,
18452
18656
  value: displayedType,
18453
18657
  onChange: (e) => onUpdateChartData({
18454
18658
  chartType: e.target.value
@@ -18464,7 +18668,7 @@ function ChartTypeSelector({
18464
18668
  {
18465
18669
  "aria-label": t("pptx.chart.grouping"),
18466
18670
  disabled: !canEdit,
18467
- className: INPUT2,
18671
+ className: INPUT,
18468
18672
  value: grouping ?? "clustered",
18469
18673
  onChange: (e) => onUpdateChartData({
18470
18674
  grouping: e.target.value
@@ -18484,7 +18688,7 @@ function NumberField({ value, canEdit, fraction, nonNegative, onChange }) {
18484
18688
  min: fraction || nonNegative ? 0 : void 0,
18485
18689
  max: fraction ? 1 : void 0,
18486
18690
  disabled: !canEdit,
18487
- className: INPUT2,
18691
+ className: INPUT,
18488
18692
  value,
18489
18693
  onChange: (e) => onChange(Number(e.target.value))
18490
18694
  }
@@ -18505,7 +18709,7 @@ function RotationField({
18505
18709
  step: "1",
18506
18710
  "aria-label": t("pptx.chart.userShapeRotation"),
18507
18711
  disabled: !canEdit,
18508
- className: INPUT2,
18712
+ className: INPUT,
18509
18713
  value: row.rotation ?? 0,
18510
18714
  onChange: (e) => onRotationPatch(row.path, Number(e.target.value) || void 0)
18511
18715
  }
@@ -18706,15 +18910,15 @@ function ChartUserShapeOptions({
18706
18910
  )
18707
18911
  });
18708
18912
  };
18709
- return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
18913
+ return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
18710
18914
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
18711
- /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.chart.userShapes") }),
18915
+ /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.chart.userShapes") }),
18712
18916
  /* @__PURE__ */ jsx(
18713
18917
  "button",
18714
18918
  {
18715
18919
  type: "button",
18716
18920
  disabled: !canEdit,
18717
- className: BTN2,
18921
+ className: BTN,
18718
18922
  onClick: () => onUpdateChartData({
18719
18923
  userShapes: withChartUserShapeAdded(shapes, createDefaultChartUserShape())
18720
18924
  }),
@@ -18739,7 +18943,7 @@ function ChartUserShapeOptions({
18739
18943
  {
18740
18944
  type: "button",
18741
18945
  disabled: !canEdit,
18742
- className: BTN2,
18946
+ className: BTN,
18743
18947
  onClick: () => addIntoGroup(row.path),
18744
18948
  children: t("pptx.chart.userShapeAddIntoGroup")
18745
18949
  }
@@ -18750,7 +18954,7 @@ function ChartUserShapeOptions({
18750
18954
  type: "button",
18751
18955
  disabled: !canEdit,
18752
18956
  "aria-label": t("pptx.chart.userShapeDelete"),
18753
- className: BTN2,
18957
+ className: BTN,
18754
18958
  onClick: () => onUpdateChartData({
18755
18959
  userShapes: withChartUserShapeRowRemoved(shapes, row.path)
18756
18960
  }),
@@ -18766,7 +18970,7 @@ function ChartUserShapeOptions({
18766
18970
  type: "text",
18767
18971
  "aria-label": t("pptx.chart.userShapeText"),
18768
18972
  disabled: !canEdit,
18769
- className: INPUT2,
18973
+ className: INPUT,
18770
18974
  value: row.text ?? "",
18771
18975
  onChange: (e) => onUpdateChartData({
18772
18976
  userShapes: withChartUserShapeRowTextUpdated(
@@ -18814,7 +19018,7 @@ function ChartUserShapeOptions({
18814
19018
  type: "text",
18815
19019
  "aria-label": t("pptx.chart.userShapeAltText"),
18816
19020
  disabled: !canEdit,
18817
- className: INPUT2,
19021
+ className: INPUT,
18818
19022
  value: row.altText ?? "",
18819
19023
  onChange: (e) => update(row.path, { altText: e.target.value })
18820
19024
  }
@@ -19656,8 +19860,8 @@ function ConnectorPanel({
19656
19860
  if (selectedElement.type !== "connector") {
19657
19861
  return null;
19658
19862
  }
19659
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
19660
- /* @__PURE__ */ jsx("div", { className: HEADING, children: "Connector" }),
19863
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
19864
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: "Connector" }),
19661
19865
  /* @__PURE__ */ jsx(
19662
19866
  ConnectorArrowsSection,
19663
19867
  {
@@ -19676,8 +19880,8 @@ function GroupInfoPanel({
19676
19880
  return null;
19677
19881
  }
19678
19882
  const group = selectedElement;
19679
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
19680
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.elementType.group") }),
19883
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
19884
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.elementType.group") }),
19681
19885
  /* @__PURE__ */ jsx("div", { className: "text-[11px] text-muted-foreground", children: Array.isArray(group.children) ? t("pptx.group.childCount", { count: group.children.length }) : t("pptx.group.groupedElement") })
19682
19886
  ] });
19683
19887
  }
@@ -19692,8 +19896,8 @@ function OlePropertiesPanel({
19692
19896
  return null;
19693
19897
  }
19694
19898
  const ole = selectedElement;
19695
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
19696
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.ole.title") }),
19899
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
19900
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.ole.title") }),
19697
19901
  /* @__PURE__ */ jsxs("div", { className: "space-y-1.5 text-[11px]", children: [
19698
19902
  canEdit && !ole.isLinked && /* @__PURE__ */ jsx(
19699
19903
  "button",
@@ -19711,7 +19915,7 @@ function OlePropertiesPanel({
19711
19915
  {
19712
19916
  type: "text",
19713
19917
  disabled: !canEdit,
19714
- className: INPUT,
19918
+ className: INPUT2,
19715
19919
  value: ole.oleName ?? "",
19716
19920
  placeholder: t("pptx.ole.objectNamePlaceholder"),
19717
19921
  onChange: (e) => onUpdateElement(buildOleObjectNamePatch(e.target.value))
@@ -19756,8 +19960,8 @@ function TransformPanel({
19756
19960
  canEdit,
19757
19961
  onUpdateElement
19758
19962
  }) {
19759
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
19760
- /* @__PURE__ */ jsx("div", { className: HEADING, children: "Transform" }),
19963
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
19964
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: "Transform" }),
19761
19965
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-1.5 text-[11px]", children: [
19762
19966
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
19763
19967
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Rotation (\xB0)" }),
@@ -19766,7 +19970,7 @@ function TransformPanel({
19766
19970
  {
19767
19971
  type: "number",
19768
19972
  disabled: !canEdit,
19769
- className: INPUT,
19973
+ className: INPUT2,
19770
19974
  value: Math.round(selectedElement.rotation || 0),
19771
19975
  onChange: (e) => onUpdateElement({ rotation: Number(e.target.value) })
19772
19976
  }
@@ -19799,7 +20003,7 @@ function LayerOrderButtons({
19799
20003
  "button",
19800
20004
  {
19801
20005
  type: "button",
19802
- className: cn("flex-1", BTN),
20006
+ className: cn("flex-1", BTN2),
19803
20007
  disabled: !canEdit,
19804
20008
  onClick: () => onMoveLayer("forward"),
19805
20009
  children: "\u2191 Forward"
@@ -19809,7 +20013,7 @@ function LayerOrderButtons({
19809
20013
  "button",
19810
20014
  {
19811
20015
  type: "button",
19812
- className: cn("flex-1", BTN),
20016
+ className: cn("flex-1", BTN2),
19813
20017
  disabled: !canEdit,
19814
20018
  onClick: () => onMoveLayer("backward"),
19815
20019
  children: "\u2193 Backward"
@@ -20325,8 +20529,8 @@ function ImagePropertiesPanel({
20325
20529
  imageEffects: { ...fx, ...patch }
20326
20530
  });
20327
20531
  };
20328
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
20329
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.image.properties") }),
20532
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
20533
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.image.properties") }),
20330
20534
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
20331
20535
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1 text-[11px]", children: [
20332
20536
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.image.altText") }),
@@ -20335,7 +20539,7 @@ function ImagePropertiesPanel({
20335
20539
  {
20336
20540
  rows: 2,
20337
20541
  disabled: !canEdit,
20338
- className: cn(INPUT, "resize-none text-[11px]"),
20542
+ className: cn(INPUT2, "resize-none text-[11px]"),
20339
20543
  value: selectedElement.altText ?? "",
20340
20544
  onChange: (e) => onUpdateElement({
20341
20545
  altText: e.target.value
@@ -21286,8 +21490,8 @@ function AccessibilityTextSection({
21286
21490
  if (!fields.showAltText && !fields.showTitle) {
21287
21491
  return null;
21288
21492
  }
21289
- return /* @__PURE__ */ jsxs("div", { className: CARD, "data-pptx-accessibility-text": true, children: [
21290
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.accessibility.heading", "Accessibility") }),
21493
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, "data-pptx-accessibility-text": true, children: [
21494
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.accessibility.heading", "Accessibility") }),
21291
21495
  fields.showAltText && /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1 text-[11px]", children: [
21292
21496
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.elementAccessibility.altText") }),
21293
21497
  /* @__PURE__ */ jsx(
@@ -21296,7 +21500,7 @@ function AccessibilityTextSection({
21296
21500
  rows: 2,
21297
21501
  disabled: !canEdit,
21298
21502
  placeholder: t("pptx.elementAccessibility.altTextPlaceholder"),
21299
- className: cn(INPUT, "resize-none text-[11px]"),
21503
+ className: cn(INPUT2, "resize-none text-[11px]"),
21300
21504
  value: fields.altText,
21301
21505
  onChange: (e) => onUpdateElement({ altText: e.target.value })
21302
21506
  }
@@ -21310,7 +21514,7 @@ function AccessibilityTextSection({
21310
21514
  type: "text",
21311
21515
  disabled: !canEdit,
21312
21516
  placeholder: t("pptx.elementAccessibility.titlePlaceholder"),
21313
- className: cn(INPUT, "text-[11px]"),
21517
+ className: cn(INPUT2, "text-[11px]"),
21314
21518
  value: fields.title,
21315
21519
  onChange: (e) => onUpdateElement({ title: e.target.value })
21316
21520
  }
@@ -22877,7 +23081,7 @@ function AdvancedTextFormatting({
22877
23081
  label
22878
23082
  ] }, label)) }),
22879
23083
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
22880
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Highlight" }),
23084
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.text.highlightColor") }),
22881
23085
  /* @__PURE__ */ jsx(
22882
23086
  "input",
22883
23087
  {
@@ -23024,7 +23228,7 @@ function AdvancedTextFormatting({
23024
23228
  onChange: (e) => onUpdateTextStyle({ autoFit: e.target.checked })
23025
23229
  }
23026
23230
  ),
23027
- "Auto-fit text to shape"
23231
+ t("pptx.textProperties.autoFitToShape")
23028
23232
  ] })
23029
23233
  ] });
23030
23234
  }
@@ -23067,7 +23271,7 @@ function TextReflectionSection({
23067
23271
  ] }),
23068
23272
  hasReflection && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 pl-4", children: [
23069
23273
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23070
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Blur" }),
23274
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.blur") }),
23071
23275
  /* @__PURE__ */ jsx(
23072
23276
  "input",
23073
23277
  {
@@ -23084,7 +23288,7 @@ function TextReflectionSection({
23084
23288
  )
23085
23289
  ] }),
23086
23290
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23087
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Offset" }),
23291
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.offset") }),
23088
23292
  /* @__PURE__ */ jsx(
23089
23293
  "input",
23090
23294
  {
@@ -23184,7 +23388,7 @@ function TextEffectsPanel({
23184
23388
  ] }),
23185
23389
  hasShadow && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 pl-4", children: [
23186
23390
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23187
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Color" }),
23391
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.color") }),
23188
23392
  /* @__PURE__ */ jsx(
23189
23393
  "input",
23190
23394
  {
@@ -23199,7 +23403,7 @@ function TextEffectsPanel({
23199
23403
  )
23200
23404
  ] }),
23201
23405
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23202
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Opacity" }),
23406
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.opacity") }),
23203
23407
  /* @__PURE__ */ jsx(
23204
23408
  "input",
23205
23409
  {
@@ -23216,7 +23420,7 @@ function TextEffectsPanel({
23216
23420
  )
23217
23421
  ] }),
23218
23422
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23219
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Blur" }),
23423
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.blur") }),
23220
23424
  /* @__PURE__ */ jsx(
23221
23425
  "input",
23222
23426
  {
@@ -23292,7 +23496,7 @@ function TextEffectsPanel({
23292
23496
  ] }),
23293
23497
  hasGlow && /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-2 pl-4", children: [
23294
23498
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23295
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Color" }),
23499
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.color") }),
23296
23500
  /* @__PURE__ */ jsx(
23297
23501
  "input",
23298
23502
  {
@@ -23307,7 +23511,7 @@ function TextEffectsPanel({
23307
23511
  )
23308
23512
  ] }),
23309
23513
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23310
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Opacity" }),
23514
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.opacity") }),
23311
23515
  /* @__PURE__ */ jsx(
23312
23516
  "input",
23313
23517
  {
@@ -23324,7 +23528,7 @@ function TextEffectsPanel({
23324
23528
  )
23325
23529
  ] }),
23326
23530
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23327
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Size" }),
23531
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.textEffects.size") }),
23328
23532
  /* @__PURE__ */ jsx(
23329
23533
  "input",
23330
23534
  {
@@ -23425,14 +23629,14 @@ function ShapeTextPanels({
23425
23629
  }) {
23426
23630
  const { t } = useTranslation();
23427
23631
  return /* @__PURE__ */ jsxs(Fragment, { children: [
23428
- hasShapeProperties(selectedElement) && /* @__PURE__ */ jsxs("div", { className: CARD, children: [
23429
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.shape.type", "Shape Type") }),
23632
+ hasShapeProperties(selectedElement) && /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
23633
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.shape.type", "Shape Type") }),
23430
23634
  /* @__PURE__ */ jsx(
23431
23635
  "select",
23432
23636
  {
23433
23637
  value: selectedElement.shapeType || "rect",
23434
23638
  disabled: !canEdit,
23435
- className: cn(INPUT, "w-full"),
23639
+ className: cn(INPUT2, "w-full"),
23436
23640
  onChange: (e) => onUpdateElement({
23437
23641
  shapeType: e.target.value
23438
23642
  }),
@@ -23440,8 +23644,8 @@ function ShapeTextPanels({
23440
23644
  }
23441
23645
  )
23442
23646
  ] }),
23443
- hasShapeProperties(selectedElement) && /* @__PURE__ */ jsxs("div", { className: CARD, "data-pptx-fill-stroke": true, children: [
23444
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.shape.fillStroke", "Fill & Stroke") }),
23647
+ hasShapeProperties(selectedElement) && /* @__PURE__ */ jsxs("div", { className: CARD2, "data-pptx-fill-stroke": true, children: [
23648
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.shape.fillStroke", "Fill & Stroke") }),
23445
23649
  /* @__PURE__ */ jsx(
23446
23650
  FillStrokeProperties,
23447
23651
  {
@@ -23458,8 +23662,8 @@ function ShapeTextPanels({
23458
23662
  }
23459
23663
  )
23460
23664
  ] }),
23461
- hasTextProperties(selectedElement) && /* @__PURE__ */ jsxs("div", { className: CARD, "data-pptx-text-card": true, children: [
23462
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.text.title", "Text") }),
23665
+ hasTextProperties(selectedElement) && /* @__PURE__ */ jsxs("div", { className: CARD2, "data-pptx-text-card": true, children: [
23666
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.text.title", "Text") }),
23463
23667
  /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-1.5 text-[11px]", children: [
23464
23668
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
23465
23669
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Size" }),
@@ -23468,7 +23672,7 @@ function ShapeTextPanels({
23468
23672
  {
23469
23673
  type: "number",
23470
23674
  disabled: !canEdit,
23471
- className: INPUT,
23675
+ className: INPUT2,
23472
23676
  min: 6,
23473
23677
  max: 200,
23474
23678
  step: "any",
@@ -23919,7 +24123,7 @@ function SmartArtNodeRow({
23919
24123
  "data-testid": "smartart-node-text",
23920
24124
  disabled: !canEdit,
23921
24125
  "aria-label": label,
23922
- className: cn(INPUT, "flex-1 text-[11px] py-0.5"),
24126
+ className: cn(INPUT2, "flex-1 text-[11px] py-0.5"),
23923
24127
  value: text,
23924
24128
  onChange: (e) => onChangeText(nodeId, e.target.value),
23925
24129
  onKeyDown: (e) => onKeyDown(e, nodeId),
@@ -24011,7 +24215,7 @@ function SmartArtStyleControls({
24011
24215
  disabled: !canEdit,
24012
24216
  "data-testid": "smartart-color-scheme",
24013
24217
  "aria-label": t("pptx.smartart.colorScheme"),
24014
- className: cn(INPUT, "w-full"),
24218
+ className: cn(INPUT2, "w-full"),
24015
24219
  value: colorScheme,
24016
24220
  onChange: (e) => onChangeColorScheme(e.target.value),
24017
24221
  children: colorSchemes.map((cs) => /* @__PURE__ */ jsx("option", { value: cs, children: schemaLabel(SMARTART_COLOR_SCHEME_LABEL_KEYS, cs, translate) }, cs))
@@ -24160,8 +24364,8 @@ function SmartArtPropertiesPanel({
24160
24364
  new Set(extraConnections.map((c) => c.type ?? "unknown"))
24161
24365
  ).join(", ");
24162
24366
  let topDisplayIndex = 0;
24163
- return /* @__PURE__ */ jsxs("div", { className: CARD, role: "group", "aria-label": t("pptx.smartart.title"), children: [
24164
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.smartart.title") }),
24367
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, role: "group", "aria-label": t("pptx.smartart.title"), children: [
24368
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.smartart.title") }),
24165
24369
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
24166
24370
  /* @__PURE__ */ jsx(
24167
24371
  SmartArtLayoutSwitcher,
@@ -24195,7 +24399,7 @@ function SmartArtPropertiesPanel({
24195
24399
  {
24196
24400
  type: "button",
24197
24401
  disabled: addDisabled,
24198
- className: BTN,
24402
+ className: BTN2,
24199
24403
  onClick: addNode,
24200
24404
  title: addDisabled ? boundsHint : void 0,
24201
24405
  children: t("pptx.smartart.addItem")
@@ -24275,15 +24479,15 @@ function TableDataGrid({
24275
24479
  }
24276
24480
  onUpdateElement({ tableData: next.tableData, rawXml: next.rawXml });
24277
24481
  };
24278
- return /* @__PURE__ */ jsx("div", { className: CARD, children: /* @__PURE__ */ jsxs("section", { "aria-label": t("pptx.tableDataEditor.ariaLabel"), children: [
24482
+ return /* @__PURE__ */ jsx("div", { className: CARD2, children: /* @__PURE__ */ jsxs("section", { "aria-label": t("pptx.tableDataEditor.ariaLabel"), children: [
24279
24483
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-1 mb-1.5", children: [
24280
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.inspector.tableData") }),
24484
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.inspector.tableData") }),
24281
24485
  canEdit && /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-0.5", children: [
24282
24486
  /* @__PURE__ */ jsx(
24283
24487
  "button",
24284
24488
  {
24285
24489
  type: "button",
24286
- className: `${BTN} inline-flex items-center justify-center`,
24490
+ className: `${BTN2} inline-flex items-center justify-center`,
24287
24491
  style: touchBtnStyle,
24288
24492
  title: t("pptx.tableDataEditor.addRowTitle"),
24289
24493
  onClick: () => commit(appendTableElementRow(tableElement)),
@@ -24294,7 +24498,7 @@ function TableDataGrid({
24294
24498
  "button",
24295
24499
  {
24296
24500
  type: "button",
24297
- className: `${BTN} inline-flex items-center justify-center`,
24501
+ className: `${BTN2} inline-flex items-center justify-center`,
24298
24502
  style: touchBtnStyle,
24299
24503
  disabled: !grid.canRemoveRow,
24300
24504
  title: t("pptx.tableDataEditor.removeRowTitle"),
@@ -24306,7 +24510,7 @@ function TableDataGrid({
24306
24510
  "button",
24307
24511
  {
24308
24512
  type: "button",
24309
- className: `${BTN} inline-flex items-center justify-center`,
24513
+ className: `${BTN2} inline-flex items-center justify-center`,
24310
24514
  style: touchBtnStyle,
24311
24515
  title: t("pptx.tableDataEditor.addColumnTitle"),
24312
24516
  onClick: () => commit(appendTableElementColumn(tableElement)),
@@ -24317,7 +24521,7 @@ function TableDataGrid({
24317
24521
  "button",
24318
24522
  {
24319
24523
  type: "button",
24320
- className: `${BTN} inline-flex items-center justify-center`,
24524
+ className: `${BTN2} inline-flex items-center justify-center`,
24321
24525
  style: touchBtnStyle,
24322
24526
  disabled: !grid.canRemoveColumn,
24323
24527
  title: t("pptx.tableDataEditor.removeColumnTitle"),
@@ -24728,8 +24932,8 @@ function TableCellFormattingPanel({
24728
24932
  });
24729
24933
  onUpdateTableData({ rows: newRows });
24730
24934
  };
24731
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
24732
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.table.cell", { row: rowIndex + 1, col: columnIndex + 1 }) }),
24935
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
24936
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.table.cell", { row: rowIndex + 1, col: columnIndex + 1 }) }),
24733
24937
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
24734
24938
  /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-[11px]", children: [
24735
24939
  /* @__PURE__ */ jsx("span", { className: "w-10 text-muted-foreground", children: t("pptx.table.fontSize") }),
@@ -24738,7 +24942,7 @@ function TableCellFormattingPanel({
24738
24942
  {
24739
24943
  type: "number",
24740
24944
  disabled: !canEdit,
24741
- className: INPUT,
24945
+ className: INPUT2,
24742
24946
  min: 6,
24743
24947
  max: 200,
24744
24948
  value: cs.fontSize ?? 14,
@@ -24859,7 +25063,7 @@ function TableCellFormattingPanel({
24859
25063
  {
24860
25064
  type: "number",
24861
25065
  disabled: !canEdit,
24862
- className: cn(INPUT, "w-14"),
25066
+ className: cn(INPUT2, "w-14"),
24863
25067
  min: 0,
24864
25068
  max: 10,
24865
25069
  value: cs[widthKey] ?? 1,
@@ -24875,7 +25079,7 @@ function TableCellFormattingPanel({
24875
25079
  {
24876
25080
  type: "button",
24877
25081
  disabled: !canEdit,
24878
- className: cn(BTN, "text-center"),
25082
+ className: cn(BTN2, "text-center"),
24879
25083
  onClick: () => {
24880
25084
  const newRows = computeMergeCellRight(td, rowIndex, columnIndex);
24881
25085
  if (newRows) {
@@ -24890,7 +25094,7 @@ function TableCellFormattingPanel({
24890
25094
  {
24891
25095
  type: "button",
24892
25096
  disabled: !canEdit,
24893
- className: cn(BTN, "text-center"),
25097
+ className: cn(BTN2, "text-center"),
24894
25098
  onClick: () => {
24895
25099
  const newRows = computeMergeCellDown(td, rowIndex, columnIndex);
24896
25100
  if (newRows) {
@@ -24905,7 +25109,7 @@ function TableCellFormattingPanel({
24905
25109
  {
24906
25110
  type: "button",
24907
25111
  disabled: !canEdit,
24908
- className: cn(BTN, "text-center"),
25112
+ className: cn(BTN2, "text-center"),
24909
25113
  onClick: () => {
24910
25114
  const newRows = computeSplitCell(td, rowIndex, columnIndex);
24911
25115
  if (newRows) {
@@ -24927,7 +25131,7 @@ function TableStyleEditorFields({
24927
25131
  const { t } = useTranslation();
24928
25132
  return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
24929
25133
  /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
24930
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.tableStyleEditor.fillSection") }),
25134
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.tableStyleEditor.fillSection") }),
24931
25135
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [
24932
25136
  /* @__PURE__ */ jsx(
24933
25137
  "input",
@@ -24965,13 +25169,13 @@ function TableStyleEditorFields({
24965
25169
  ] }),
24966
25170
  descriptor.hasTextAndBorders && /* @__PURE__ */ jsxs(Fragment, { children: [
24967
25171
  /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
24968
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.tableStyleEditor.textSection") }),
25172
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.tableStyleEditor.textSection") }),
24969
25173
  /* @__PURE__ */ jsx("div", { className: "flex gap-1", children: ["bold", "italic", "underline"].map((flag) => /* @__PURE__ */ jsx(
24970
25174
  "button",
24971
25175
  {
24972
25176
  type: "button",
24973
25177
  disabled: !canEdit,
24974
- className: `${BTN} ${descriptor.text[flag] ? "bg-accent" : ""}`,
25178
+ className: `${BTN2} ${descriptor.text[flag] ? "bg-accent" : ""}`,
24975
25179
  onClick: () => onEdit(textFlagEdit(flag, !descriptor.text[flag])),
24976
25180
  children: t(`pptx.format.${flag}`)
24977
25181
  },
@@ -25002,7 +25206,7 @@ function TableStyleEditorFields({
25002
25206
  )
25003
25207
  ] }),
25004
25208
  /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
25005
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.tableStyleEditor.bordersSection") }),
25209
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.tableStyleEditor.bordersSection") }),
25006
25210
  TABLE_STYLE_BORDER_SIDES.map((side) => /* @__PURE__ */ jsx(
25007
25211
  BorderSideRow,
25008
25212
  {
@@ -25054,7 +25258,7 @@ function BorderSideRow({
25054
25258
  disabled: !canEdit,
25055
25259
  value: state.width,
25056
25260
  onChange: (e) => onEdit({ kind: "borderWidth", side, width: Number(e.target.value) }),
25057
- className: `${INPUT} w-12`
25261
+ className: `${INPUT2} w-12`
25058
25262
  }
25059
25263
  ),
25060
25264
  /* @__PURE__ */ jsx(
@@ -25063,7 +25267,7 @@ function BorderSideRow({
25063
25267
  disabled: !canEdit,
25064
25268
  value: state.dash,
25065
25269
  onChange: (e) => onEdit({ kind: "borderDash", side, dash: e.target.value }),
25066
- className: INPUT,
25270
+ className: INPUT2,
25067
25271
  children: TABLE_STYLE_DASH_PRESETS.map((dash) => /* @__PURE__ */ jsx("option", { value: dash, children: dash }, dash))
25068
25272
  }
25069
25273
  ),
@@ -25130,10 +25334,10 @@ function TableStyleEditor({
25130
25334
  onDeleteStyle(entry.styleId);
25131
25335
  onClose();
25132
25336
  }
25133
- return /* @__PURE__ */ jsxs("div", { className: CARD, "data-testid": "table-style-editor", children: [
25337
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, "data-testid": "table-style-editor", children: [
25134
25338
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
25135
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.tableStyleEditor.title") }),
25136
- /* @__PURE__ */ jsx("button", { type: "button", className: BTN, onClick: onClose, children: t("pptx.tableStyleEditor.close") })
25339
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.tableStyleEditor.title") }),
25340
+ /* @__PURE__ */ jsx("button", { type: "button", className: BTN2, onClick: onClose, children: t("pptx.tableStyleEditor.close") })
25137
25341
  ] }),
25138
25342
  !entry && /* @__PURE__ */ jsx("div", { className: "text-[11px] text-muted-foreground", children: t("pptx.tableStyleEditor.noStyleSelected") }),
25139
25343
  entry && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: TABLE_STYLE_EDITOR_PARTS.map((part) => /* @__PURE__ */ jsx(
@@ -25141,7 +25345,7 @@ function TableStyleEditor({
25141
25345
  {
25142
25346
  type: "button",
25143
25347
  disabled: !canEdit,
25144
- className: `${BTN} ${selectedPart === part.id ? "bg-accent" : ""}`,
25348
+ className: `${BTN2} ${selectedPart === part.id ? "bg-accent" : ""}`,
25145
25349
  onClick: () => setSelectedPart(part.id),
25146
25350
  children: t(part.labelKey)
25147
25351
  },
@@ -25149,8 +25353,8 @@ function TableStyleEditor({
25149
25353
  )) }),
25150
25354
  descriptor && /* @__PURE__ */ jsx(TableStyleEditorFields, { descriptor, canEdit, onEdit: edit }),
25151
25355
  /* @__PURE__ */ jsxs("div", { className: "flex gap-1.5 pt-1 border-t border-border", children: [
25152
- /* @__PURE__ */ jsx("button", { type: "button", className: BTN, disabled: !canEdit, onClick: createFromCurrent, children: entry ? t("pptx.tableStyleEditor.newFromCurrent") : t("pptx.tableStyleEditor.newStyle") }),
25153
- entry && /* @__PURE__ */ jsx("button", { type: "button", className: BTN, disabled: !canEdit, onClick: handleDelete, children: t("pptx.tableStyleEditor.deleteStyle") })
25356
+ /* @__PURE__ */ jsx("button", { type: "button", className: BTN2, disabled: !canEdit, onClick: createFromCurrent, children: entry ? t("pptx.tableStyleEditor.newFromCurrent") : t("pptx.tableStyleEditor.newStyle") }),
25357
+ entry && /* @__PURE__ */ jsx("button", { type: "button", className: BTN2, disabled: !canEdit, onClick: handleDelete, children: t("pptx.tableStyleEditor.deleteStyle") })
25154
25358
  ] })
25155
25359
  ] });
25156
25360
  }
@@ -25186,8 +25390,8 @@ function TablePropertiesPanel({
25186
25390
  onUpdateElement(updates);
25187
25391
  };
25188
25392
  return /* @__PURE__ */ jsxs(Fragment, { children: [
25189
- /* @__PURE__ */ jsxs("div", { className: CARD, children: [
25190
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.table.title") }),
25393
+ /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
25394
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.table.title") }),
25191
25395
  /* @__PURE__ */ jsx("div", { className: "text-[11px] text-muted-foreground mb-2", children: t("pptx.table.rowsColumns", { rows: rowCount, cols: colCount }) }),
25192
25396
  /* @__PURE__ */ jsx("div", { className: "space-y-1", children: [
25193
25397
  ["bandedRows", "pptx.table.bandedRows"],
@@ -25244,8 +25448,8 @@ function TablePropertiesPanel({
25244
25448
  )
25245
25449
  ] })
25246
25450
  ] }),
25247
- /* @__PURE__ */ jsxs("div", { className: CARD, children: [
25248
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.table.stylePresets") }),
25451
+ /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
25452
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.table.stylePresets") }),
25249
25453
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-1.5", children: TABLE_STYLE_PRESETS.map((preset) => /* @__PURE__ */ jsx(
25250
25454
  "button",
25251
25455
  {
@@ -25269,7 +25473,7 @@ function TablePropertiesPanel({
25269
25473
  "button",
25270
25474
  {
25271
25475
  type: "button",
25272
- className: `${BTN} mt-1.5`,
25476
+ className: `${BTN2} mt-1.5`,
25273
25477
  disabled: !canEdit,
25274
25478
  onClick: () => setShowStyleEditor((v) => !v),
25275
25479
  children: t("pptx.tableStyleEditor.editButton")
@@ -25288,14 +25492,14 @@ function TablePropertiesPanel({
25288
25492
  onClose: () => setShowStyleEditor(false)
25289
25493
  }
25290
25494
  ),
25291
- /* @__PURE__ */ jsxs("div", { className: CARD, children: [
25495
+ /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
25292
25496
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1", children: [
25293
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.table.columnWidths") }),
25497
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.table.columnWidths") }),
25294
25498
  /* @__PURE__ */ jsx(
25295
25499
  "button",
25296
25500
  {
25297
25501
  type: "button",
25298
- className: BTN,
25502
+ className: BTN2,
25299
25503
  disabled: !canEdit,
25300
25504
  onClick: () => {
25301
25505
  updateTableData({ columnWidths: evenColumnWidths(colCount) });
@@ -25329,14 +25533,14 @@ function TablePropertiesPanel({
25329
25533
  ] })
25330
25534
  ] }, ci)) })
25331
25535
  ] }),
25332
- /* @__PURE__ */ jsxs("div", { className: CARD, children: [
25536
+ /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
25333
25537
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1", children: [
25334
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.table.rowHeights") }),
25538
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.table.rowHeights") }),
25335
25539
  /* @__PURE__ */ jsx(
25336
25540
  "button",
25337
25541
  {
25338
25542
  type: "button",
25339
- className: BTN,
25543
+ className: BTN2,
25340
25544
  disabled: !canEdit,
25341
25545
  onClick: () => {
25342
25546
  updateTableData({ rows: evenRowHeights(td.rows) });
@@ -25352,7 +25556,7 @@ function TablePropertiesPanel({
25352
25556
  {
25353
25557
  type: "number",
25354
25558
  disabled: !canEdit,
25355
- className: INPUT,
25559
+ className: INPUT2,
25356
25560
  min: 16,
25357
25561
  max: 500,
25358
25562
  value: row.height ?? 32,
@@ -25403,9 +25607,9 @@ function ElementInspectorBody({
25403
25607
  onUpdateElement({ locks: elementLockTogglePatch(!isLocked) });
25404
25608
  };
25405
25609
  return /* @__PURE__ */ jsxs(Fragment, { children: [
25406
- /* @__PURE__ */ jsxs("div", { className: CARD, children: [
25610
+ /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
25407
25611
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
25408
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.inspector.element") }),
25612
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.inspector.element") }),
25409
25613
  /* @__PURE__ */ jsx(
25410
25614
  "button",
25411
25615
  {
@@ -25425,7 +25629,7 @@ function ElementInspectorBody({
25425
25629
  "input",
25426
25630
  {
25427
25631
  type: "number",
25428
- className: INPUT,
25632
+ className: INPUT2,
25429
25633
  disabled: !canEdit,
25430
25634
  value: Math.round(selectedElement[key] ?? 0),
25431
25635
  onChange: (e) => onUpdateElement({
@@ -26065,13 +26269,13 @@ function InspectorElementsTab({
26065
26269
  };
26066
26270
  if (!activeSlide) {
26067
26271
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
26068
- /* @__PURE__ */ jsx("div", { className: cn(HEADING, "mb-2"), children: t("pptx.inspector.layerOrder") }),
26272
+ /* @__PURE__ */ jsx("div", { className: cn(HEADING2, "mb-2"), children: t("pptx.inspector.layerOrder") }),
26069
26273
  /* @__PURE__ */ jsx("div", { className: "text-muted-foreground italic", children: t("pptx.inspector.noSlideSelected") })
26070
26274
  ] });
26071
26275
  }
26072
26276
  const elements = activeSlide.elements || [];
26073
26277
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1", "data-pptx-elements-tab": true, children: [
26074
- /* @__PURE__ */ jsx("div", { className: cn(HEADING, "mb-2"), children: t("pptx.inspector.layerOrder") }),
26278
+ /* @__PURE__ */ jsx("div", { className: cn(HEADING2, "mb-2"), children: t("pptx.inspector.layerOrder") }),
26075
26279
  [...elements].reverse().map((el, reversedIndex) => {
26076
26280
  const index = elements.length - 1 - reversedIndex;
26077
26281
  const selected = selectedElementId === el.id || selectedElementIds.includes(el.id);
@@ -26169,7 +26373,7 @@ function TextFieldRow({
26169
26373
  "input",
26170
26374
  {
26171
26375
  type: "text",
26172
- className: INPUT,
26376
+ className: INPUT2,
26173
26377
  disabled,
26174
26378
  value,
26175
26379
  onChange: (e) => onChange(e.target.value)
@@ -26190,7 +26394,7 @@ function CustomPropertiesBlock({
26190
26394
  "button",
26191
26395
  {
26192
26396
  type: "button",
26193
- className: BTN,
26397
+ className: BTN2,
26194
26398
  onClick: () => onUpdate([
26195
26399
  ...customProperties,
26196
26400
  {
@@ -26208,7 +26412,7 @@ function CustomPropertiesBlock({
26208
26412
  "input",
26209
26413
  {
26210
26414
  type: "text",
26211
- className: INPUT,
26415
+ className: INPUT2,
26212
26416
  disabled: !canEdit,
26213
26417
  value: entry.name,
26214
26418
  onChange: (e) => onUpdate(
@@ -26222,7 +26426,7 @@ function CustomPropertiesBlock({
26222
26426
  "input",
26223
26427
  {
26224
26428
  type: "text",
26225
- className: INPUT,
26429
+ className: INPUT2,
26226
26430
  disabled: !canEdit,
26227
26431
  value: entry.value,
26228
26432
  onChange: (e) => onUpdate(
@@ -26236,7 +26440,7 @@ function CustomPropertiesBlock({
26236
26440
  "button",
26237
26441
  {
26238
26442
  type: "button",
26239
- className: cn(BTN, "px-1.5 text-red-400 hover:text-red-300"),
26443
+ className: cn(BTN2, "px-1.5 text-red-400 hover:text-red-300"),
26240
26444
  onClick: () => onUpdate(customProperties.filter((_, i) => i !== index)),
26241
26445
  children: "\xD7"
26242
26446
  }
@@ -26250,8 +26454,8 @@ function NotesHandoutCard({
26250
26454
  handoutMaster
26251
26455
  }) {
26252
26456
  const { t } = useTranslation();
26253
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
26254
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.documentProperties.notesHandoutHeading") }),
26457
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
26458
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.documentProperties.notesHandoutHeading") }),
26255
26459
  /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-[11px] text-muted-foreground", children: [
26256
26460
  /* @__PURE__ */ jsx(
26257
26461
  InfoRow,
@@ -26287,8 +26491,8 @@ function DocumentPropertiesCard({
26287
26491
  onUpdateCustomProperties
26288
26492
  }) {
26289
26493
  const { t } = useTranslation();
26290
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
26291
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.documentProperties.documentHeading") }),
26494
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
26495
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.documentProperties.documentHeading") }),
26292
26496
  /* @__PURE__ */ jsxs("div", { className: "space-y-2 text-[11px] text-muted-foreground", children: [
26293
26497
  /* @__PURE__ */ jsx(
26294
26498
  TextFieldRow,
@@ -26410,8 +26614,8 @@ function SlideSizeCard({
26410
26614
  onUpdateSlideSize?.(pendingSize, mode);
26411
26615
  setPendingSize(null);
26412
26616
  };
26413
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
26414
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.slideSize.title") }),
26617
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
26618
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.slideSize.title") }),
26415
26619
  /* @__PURE__ */ jsxs("div", { className: "space-y-1.5 text-[11px]", children: [
26416
26620
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
26417
26621
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.slideSize.presets") }),
@@ -26421,7 +26625,7 @@ function SlideSizeCard({
26421
26625
  "aria-label": t("pptx.slideSize.presets"),
26422
26626
  "data-pptx-slide-size-preset": true,
26423
26627
  disabled: presetDisabled,
26424
- className: INPUT,
26628
+ className: INPUT2,
26425
26629
  value: selection.preset?.labelKey ?? CUSTOM_PRESET_VALUE,
26426
26630
  onChange: (e) => handlePreset(e.target.value),
26427
26631
  children: [
@@ -26439,7 +26643,7 @@ function SlideSizeCard({
26439
26643
  "aria-label": t("pptx.slideSize.orientation"),
26440
26644
  "data-pptx-slide-size-orientation": true,
26441
26645
  disabled: presetDisabled,
26442
- className: INPUT,
26646
+ className: INPUT2,
26443
26647
  value: selection.orientation,
26444
26648
  onChange: (e) => handleOrientation(e.target.value),
26445
26649
  children: [
@@ -26458,7 +26662,7 @@ function SlideSizeCard({
26458
26662
  "input",
26459
26663
  {
26460
26664
  type: "number",
26461
- className: INPUT,
26665
+ className: INPUT2,
26462
26666
  disabled: !canEdit,
26463
26667
  value: canvasSize[key],
26464
26668
  onChange: (e) => onUpdate({ ...canvasSize, [key]: Number(e.target.value) })
@@ -26494,8 +26698,8 @@ function PresentationSettingsCard({
26494
26698
  onUpdate
26495
26699
  }) {
26496
26700
  const { t } = useTranslation();
26497
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
26498
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.slideInspector.presentation") }),
26701
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
26702
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.slideInspector.presentation") }),
26499
26703
  /* @__PURE__ */ jsxs("div", { className: "space-y-1.5 text-[11px]", children: [
26500
26704
  /* @__PURE__ */ jsxs("label", { className: "flex items-center justify-between gap-2", children: [
26501
26705
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.presentationSettings.showType") }),
@@ -26504,7 +26708,7 @@ function PresentationSettingsCard({
26504
26708
  {
26505
26709
  "aria-label": t("pptx.presentationSettings.showType"),
26506
26710
  disabled: !canEdit,
26507
- className: cn(INPUT, "w-28"),
26711
+ className: cn(INPUT2, "w-28"),
26508
26712
  value: presentationProperties.showType ?? "presented",
26509
26713
  onChange: (e) => onUpdate({
26510
26714
  showType: e.target.value
@@ -26564,7 +26768,7 @@ function PresentationSettingsCard({
26564
26768
  min: 1,
26565
26769
  max: 16,
26566
26770
  disabled: !canEdit,
26567
- className: cn(INPUT, "w-20"),
26771
+ className: cn(INPUT2, "w-20"),
26568
26772
  value: printPropertiesSlidesPerPage(presentationProperties.printProperties),
26569
26773
  onChange: (e) => onUpdate({
26570
26774
  printProperties: withSlidesPerPage(
@@ -26586,8 +26790,8 @@ function ThemeSelectorCard({
26586
26790
  onApplyTheme
26587
26791
  }) {
26588
26792
  const { t } = useTranslation();
26589
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
26590
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.documentProperties.themeHeading") }),
26793
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
26794
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.documentProperties.themeHeading") }),
26591
26795
  /* @__PURE__ */ jsxs("div", { className: "space-y-2 text-[11px]", children: [
26592
26796
  /* @__PURE__ */ jsxs("label", { className: "flex flex-col gap-1", children: [
26593
26797
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: t("pptx.documentProperties.themeHeading") }),
@@ -26596,7 +26800,7 @@ function ThemeSelectorCard({
26596
26800
  {
26597
26801
  "aria-label": t("pptx.documentProperties.themeHeading"),
26598
26802
  disabled: themeOptions.length === 0,
26599
- className: INPUT,
26803
+ className: INPUT2,
26600
26804
  value: selectedThemePath,
26601
26805
  onChange: (e) => setSelectedThemePath(e.target.value),
26602
26806
  children: themeOptions.length === 0 ? /* @__PURE__ */ jsx("option", { value: "", children: t("pptx.documentProperties.noThemesOption") }) : themeOptions.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.path, children: opt.name || opt.path.split("/").pop() }, opt.path))
@@ -26608,7 +26812,7 @@ function ThemeSelectorCard({
26608
26812
  "button",
26609
26813
  {
26610
26814
  type: "button",
26611
- className: BTN,
26815
+ className: BTN2,
26612
26816
  disabled: !canEdit || !selectedThemePath,
26613
26817
  onClick: () => onApplyTheme(selectedThemePath, false),
26614
26818
  children: t("pptx.documentProperties.applyFirstMaster")
@@ -26618,7 +26822,7 @@ function ThemeSelectorCard({
26618
26822
  "button",
26619
26823
  {
26620
26824
  type: "button",
26621
- className: BTN,
26825
+ className: BTN2,
26622
26826
  disabled: !canEdit || !selectedThemePath,
26623
26827
  onClick: () => onApplyTheme(selectedThemePath, true),
26624
26828
  children: t("pptx.documentProperties.applyAllMasters")
@@ -27057,7 +27261,7 @@ function TagsSection({
27057
27261
  const addTag = () => {
27058
27262
  onUpdateTagCollections(addTagToCollections(tagCollections));
27059
27263
  };
27060
- return /* @__PURE__ */ jsxs("div", { className: CARD, children: [
27264
+ return /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
27061
27265
  /* @__PURE__ */ jsxs(
27062
27266
  "button",
27063
27267
  {
@@ -27066,7 +27270,7 @@ function TagsSection({
27066
27270
  onClick: () => setCollapsed(!collapsed),
27067
27271
  children: [
27068
27272
  collapsed ? /* @__PURE__ */ jsx(LuChevronRight, { className: "w-3 h-3 text-muted-foreground" }) : /* @__PURE__ */ jsx(LuChevronDown, { className: "w-3 h-3 text-muted-foreground" }),
27069
- /* @__PURE__ */ jsx("span", { className: HEADING, children: t("pptx.tags.title") }),
27273
+ /* @__PURE__ */ jsx("span", { className: HEADING2, children: t("pptx.tags.title") }),
27070
27274
  /* @__PURE__ */ jsx("span", { className: "ml-auto text-[10px] text-muted-foreground", children: allTags.length })
27071
27275
  ]
27072
27276
  }
@@ -27081,7 +27285,7 @@ function TagsSection({
27081
27285
  "input",
27082
27286
  {
27083
27287
  type: "text",
27084
- className: INPUT,
27288
+ className: INPUT2,
27085
27289
  disabled: !canEdit,
27086
27290
  placeholder: t("pptx.tags.name"),
27087
27291
  value: tag.name,
@@ -27092,7 +27296,7 @@ function TagsSection({
27092
27296
  "input",
27093
27297
  {
27094
27298
  type: "text",
27095
- className: INPUT,
27299
+ className: INPUT2,
27096
27300
  disabled: !canEdit,
27097
27301
  placeholder: t("pptx.tags.value"),
27098
27302
  value: tag.value,
@@ -27103,7 +27307,7 @@ function TagsSection({
27103
27307
  "button",
27104
27308
  {
27105
27309
  type: "button",
27106
- className: cn(BTN, "px-1.5 text-red-400 hover:text-red-300"),
27310
+ className: cn(BTN2, "px-1.5 text-red-400 hover:text-red-300"),
27107
27311
  title: t("pptx.tags.deleteTag"),
27108
27312
  onClick: () => deleteTag(tag.colIdx, tag.tagIdx),
27109
27313
  children: /* @__PURE__ */ jsx(LuTrash2, { className: "w-3 h-3" })
@@ -27113,7 +27317,7 @@ function TagsSection({
27113
27317
  },
27114
27318
  `${tag.colIdx}-${tag.tagIdx}-${idx}`
27115
27319
  )),
27116
- canEdit && /* @__PURE__ */ jsx("button", { type: "button", className: BTN, onClick: addTag, children: t("pptx.tags.addTag") })
27320
+ canEdit && /* @__PURE__ */ jsx("button", { type: "button", className: BTN2, onClick: addTag, children: t("pptx.tags.addTag") })
27117
27321
  ] })
27118
27322
  ] });
27119
27323
  }
@@ -27173,8 +27377,8 @@ function PresentationPropertiesPanel({
27173
27377
  onApplyTheme
27174
27378
  }
27175
27379
  ),
27176
- /* @__PURE__ */ jsxs("div", { className: CARD, children: [
27177
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.themeOverride.heading") }),
27380
+ /* @__PURE__ */ jsxs("div", { className: CARD2, children: [
27381
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.themeOverride.heading") }),
27178
27382
  /* @__PURE__ */ jsx(
27179
27383
  SlideThemeOverridePanel,
27180
27384
  {
@@ -27232,8 +27436,8 @@ function PresentationPropertiesPanel({
27232
27436
  canEdit
27233
27437
  }
27234
27438
  ),
27235
- activeSlide && /* @__PURE__ */ jsxs("div", { className: cn(CARD, "space-y-1"), children: [
27236
- /* @__PURE__ */ jsx("div", { className: HEADING, children: "Slide" }),
27439
+ activeSlide && /* @__PURE__ */ jsxs("div", { className: cn(CARD2, "space-y-1"), children: [
27440
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: "Slide" }),
27237
27441
  /* @__PURE__ */ jsxs("div", { className: "text-[11px] text-muted-foreground", children: [
27238
27442
  activeSlide.elements?.length ?? 0,
27239
27443
  " elements"
@@ -27253,8 +27457,8 @@ function SlideBackgroundPanel({
27253
27457
  const { t } = useTranslation();
27254
27458
  const bgImageInputRef = useRef(null);
27255
27459
  return /* @__PURE__ */ jsxs(Fragment, { children: [
27256
- /* @__PURE__ */ jsxs("div", { className: cn(CARD, "space-y-2"), children: [
27257
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.viewer.background") }),
27460
+ /* @__PURE__ */ jsxs("div", { className: cn(CARD2, "space-y-2"), children: [
27461
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.viewer.background") }),
27258
27462
  /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-[11px]", children: [
27259
27463
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground w-10 shrink-0", children: t("pptx.slideBackground.colour") }),
27260
27464
  /* @__PURE__ */ jsx(
@@ -27299,7 +27503,7 @@ function SlideBackgroundPanel({
27299
27503
  "button",
27300
27504
  {
27301
27505
  type: "button",
27302
- className: cn(BTN, "flex-1 text-center"),
27506
+ className: cn(BTN2, "flex-1 text-center"),
27303
27507
  disabled: !canEdit,
27304
27508
  onClick: () => bgImageInputRef.current?.click(),
27305
27509
  children: activeSlide.backgroundImage ? t("pptx.slideBackground.replaceImage") : t("pptx.slideBackground.chooseImage")
@@ -27332,7 +27536,7 @@ function SlideBackgroundPanel({
27332
27536
  "button",
27333
27537
  {
27334
27538
  type: "button",
27335
- className: cn(BTN, "w-full text-center text-red-400 hover:text-red-300"),
27539
+ className: cn(BTN2, "w-full text-center text-red-400 hover:text-red-300"),
27336
27540
  disabled: !canEdit,
27337
27541
  onClick: () => onUpdateSlide({
27338
27542
  backgroundColor: void 0,
@@ -27381,8 +27585,8 @@ function TemplateBackgroundCard({
27381
27585
  t("pptx.master.layout"),
27382
27586
  t("pptx.master.master")
27383
27587
  );
27384
- return /* @__PURE__ */ jsxs("div", { className: cn(CARD, "space-y-2"), children: [
27385
- /* @__PURE__ */ jsx("div", { className: HEADING, children: t("pptx.slideBackground.templateBackgroundsHeading") }),
27588
+ return /* @__PURE__ */ jsxs("div", { className: cn(CARD2, "space-y-2"), children: [
27589
+ /* @__PURE__ */ jsx("div", { className: HEADING2, children: t("pptx.slideBackground.templateBackgroundsHeading") }),
27386
27590
  rows.layout && /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-[11px]", children: [
27387
27591
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground w-14 shrink-0 truncate", title: rows.layout.title, children: t("pptx.master.layout") }),
27388
27592
  /* @__PURE__ */ jsx(
@@ -32795,7 +32999,7 @@ function useTableStyleMapHandlers(input) {
32795
32999
  var AiChatPanel = lazy(async () => {
32796
33000
  const [{ useChat }, { default: Panel }] = await Promise.all([
32797
33001
  import('@ai-sdk/react'),
32798
- import('./AiChatPanel-ZH52BQBE.mjs')
33002
+ import('./AiChatPanel-7AU4A3A7.mjs')
32799
33003
  ]);
32800
33004
  function BoundAiChatPanel(props) {
32801
33005
  return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
@@ -33265,13 +33469,14 @@ function MobileDismissSheet({
33265
33469
  className,
33266
33470
  children
33267
33471
  }) {
33472
+ const { t } = useTranslation();
33268
33473
  const { dragY, handlers } = useSheetDismissDrag(onClose);
33269
33474
  return /* @__PURE__ */ jsxs(Fragment, { children: [
33270
33475
  /* @__PURE__ */ jsx(
33271
33476
  "button",
33272
33477
  {
33273
33478
  type: "button",
33274
- "aria-label": "Close",
33479
+ "aria-label": t("pptx.mobileSheet.close"),
33275
33480
  onClick: onClose,
33276
33481
  className: "md:hidden fixed inset-0 z-20 bg-black/40 backdrop-blur-[2px] animate-in fade-in duration-150"
33277
33482
  }