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.
- package/CHANGELOG.md +35 -0
- package/dist/{AiChatPanel-ZH52BQBE.mjs → AiChatPanel-7AU4A3A7.mjs} +4 -4
- package/dist/AiChatPanel-7AU4A3A7.mjs.br +0 -0
- package/dist/AiChatPanel-7AU4A3A7.mjs.gz +0 -0
- package/dist/{AiChatPanel-KILEXOPT.js → AiChatPanel-FIUTFT55.js} +25 -25
- package/dist/AiChatPanel-FIUTFT55.js.br +0 -0
- package/dist/AiChatPanel-FIUTFT55.js.gz +0 -0
- package/dist/{Area3DChartScene-UHN7ZOZT.mjs → Area3DChartScene-SPRHDMNQ.mjs} +1 -1
- package/dist/{Area3DChartScene-UHN7ZOZT.mjs.br → Area3DChartScene-SPRHDMNQ.mjs.br} +0 -0
- package/dist/Area3DChartScene-SPRHDMNQ.mjs.gz +0 -0
- package/dist/{Area3DChartScene-HS7EBQLQ.js → Area3DChartScene-ZGVLTYDW.js} +2 -2
- package/dist/Area3DChartScene-ZGVLTYDW.js.br +0 -0
- package/dist/Area3DChartScene-ZGVLTYDW.js.gz +0 -0
- package/dist/{Bar3DChartScene-TFGSYASD.mjs → Bar3DChartScene-FJCRJCZV.mjs} +1 -1
- package/dist/{Bar3DChartScene-TFGSYASD.mjs.br → Bar3DChartScene-FJCRJCZV.mjs.br} +0 -0
- package/dist/Bar3DChartScene-FJCRJCZV.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-E57TRVUU.js → Bar3DChartScene-GVIX7ENI.js} +2 -2
- package/dist/Bar3DChartScene-GVIX7ENI.js.br +0 -0
- package/dist/Bar3DChartScene-GVIX7ENI.js.gz +0 -0
- package/dist/{Line3DChartScene-NM7YYLZD.js → Line3DChartScene-6C3WDA42.js} +2 -2
- package/dist/Line3DChartScene-6C3WDA42.js.br +0 -0
- package/dist/Line3DChartScene-6C3WDA42.js.gz +0 -0
- package/dist/{Line3DChartScene-RES5D7W7.mjs → Line3DChartScene-KP4RMVAQ.mjs} +1 -1
- package/dist/{Line3DChartScene-RES5D7W7.mjs.br → Line3DChartScene-KP4RMVAQ.mjs.br} +0 -0
- package/dist/Line3DChartScene-KP4RMVAQ.mjs.gz +0 -0
- package/dist/{Model3DScene-6CWFGE7M.mjs → Model3DScene-SH6ZLOXE.mjs} +1 -1
- package/dist/Model3DScene-SH6ZLOXE.mjs.br +0 -0
- package/dist/Model3DScene-SH6ZLOXE.mjs.gz +0 -0
- package/dist/{Model3DScene-SL3QF63O.js → Model3DScene-SXZYGMN6.js} +2 -2
- package/dist/Model3DScene-SXZYGMN6.js.br +0 -0
- package/dist/Model3DScene-SXZYGMN6.js.gz +0 -0
- package/dist/{PieChart3DScene-QYJUOYMB.mjs → PieChart3DScene-F4IE7565.mjs} +1 -1
- package/dist/{PieChart3DScene-QYJUOYMB.mjs.br → PieChart3DScene-F4IE7565.mjs.br} +0 -0
- package/dist/PieChart3DScene-F4IE7565.mjs.gz +0 -0
- package/dist/{PieChart3DScene-WIVYOQUQ.js → PieChart3DScene-V2Q73UEQ.js} +2 -2
- package/dist/PieChart3DScene-V2Q73UEQ.js.br +0 -0
- package/dist/PieChart3DScene-V2Q73UEQ.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-Y2LF73QQ.mjs → SurfaceChart3DScene-AXLDY5BB.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-Y2LF73QQ.mjs.br → SurfaceChart3DScene-AXLDY5BB.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-AXLDY5BB.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-QCUYYQBZ.js → SurfaceChart3DScene-XUGVYHD2.js} +2 -2
- package/dist/SurfaceChart3DScene-XUGVYHD2.js.br +0 -0
- package/dist/SurfaceChart3DScene-XUGVYHD2.js.gz +0 -0
- package/dist/{chunk-RPPLJQ6R.js → chunk-2BQKGTIF.js} +1571 -1366
- package/dist/chunk-2BQKGTIF.js.br +0 -0
- package/dist/chunk-2BQKGTIF.js.gz +0 -0
- package/dist/{chunk-7XJ7I6TJ.mjs → chunk-F65J67TW.mjs} +7 -3
- package/dist/chunk-F65J67TW.mjs.br +0 -0
- package/dist/chunk-F65J67TW.mjs.gz +0 -0
- package/dist/{chunk-ATKAU2J4.mjs → chunk-GV6LVDBE.mjs} +562 -357
- package/dist/chunk-GV6LVDBE.mjs.br +0 -0
- package/dist/chunk-GV6LVDBE.mjs.gz +0 -0
- package/dist/{chunk-ZUIM5737.js → chunk-HN5QJSVB.js} +514 -172
- package/dist/chunk-HN5QJSVB.js.br +0 -0
- package/dist/chunk-HN5QJSVB.js.gz +0 -0
- package/dist/{chunk-M5BAPEQL.mjs → chunk-JIP6BCRV.mjs} +9 -9
- package/dist/chunk-JIP6BCRV.mjs.br +0 -0
- package/dist/chunk-JIP6BCRV.mjs.gz +0 -0
- package/dist/{chunk-F7VYECOL.js → chunk-K7TAGREH.js} +5 -5
- package/dist/chunk-K7TAGREH.js.br +0 -0
- package/dist/chunk-K7TAGREH.js.gz +0 -0
- package/dist/{chunk-BRJN3ZMG.js → chunk-M24DEOP6.js} +15 -0
- package/dist/chunk-M24DEOP6.js.br +0 -0
- package/dist/chunk-M24DEOP6.js.gz +0 -0
- package/dist/{chunk-2LK3OHAN.js → chunk-ML4MTTPV.js} +796 -796
- package/dist/chunk-ML4MTTPV.js.br +0 -0
- package/dist/chunk-ML4MTTPV.js.gz +0 -0
- package/dist/{chunk-GULL4H2I.mjs → chunk-MWNB4BX5.mjs} +511 -173
- package/dist/chunk-MWNB4BX5.mjs.br +0 -0
- package/dist/chunk-MWNB4BX5.mjs.gz +0 -0
- package/dist/{chunk-NEMPFYZ5.mjs → chunk-OKIHMWGI.mjs} +1 -1
- package/dist/chunk-OKIHMWGI.mjs.br +0 -0
- package/dist/chunk-OKIHMWGI.mjs.gz +0 -0
- package/dist/{chunk-MQUTXOET.mjs → chunk-R664EPDC.mjs} +15 -0
- package/dist/chunk-R664EPDC.mjs.br +0 -0
- package/dist/chunk-R664EPDC.mjs.gz +0 -0
- package/dist/{chunk-YH4ODPSH.js → chunk-U46O2NL5.js} +187 -183
- package/dist/chunk-U46O2NL5.js.br +0 -0
- package/dist/chunk-U46O2NL5.js.gz +0 -0
- package/dist/i18n/de.cjs +15 -0
- package/dist/i18n/de.cjs.br +0 -0
- package/dist/i18n/de.cjs.gz +0 -0
- package/dist/i18n/de.mjs +15 -0
- package/dist/i18n/de.mjs.br +0 -0
- package/dist/i18n/de.mjs.gz +0 -0
- package/dist/i18n/es.cjs +15 -0
- package/dist/i18n/es.cjs.br +0 -0
- package/dist/i18n/es.cjs.gz +0 -0
- package/dist/i18n/es.mjs +15 -0
- package/dist/i18n/es.mjs.br +0 -0
- package/dist/i18n/es.mjs.gz +0 -0
- package/dist/i18n/fr.cjs +15 -0
- package/dist/i18n/fr.cjs.br +0 -0
- package/dist/i18n/fr.cjs.gz +0 -0
- package/dist/i18n/fr.mjs +15 -0
- package/dist/i18n/fr.mjs.br +0 -0
- package/dist/i18n/fr.mjs.gz +0 -0
- package/dist/i18n/zh-CN.cjs +15 -0
- package/dist/i18n/zh-CN.cjs.br +0 -0
- package/dist/i18n/zh-CN.cjs.gz +0 -0
- package/dist/i18n/zh-CN.mjs +15 -0
- package/dist/i18n/zh-CN.mjs.br +0 -0
- package/dist/i18n/zh-CN.mjs.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +48 -48
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +4 -4
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +37 -0
- package/dist/internals.js +105 -105
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/viewer/index.d.ts +37 -0
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-KILEXOPT.js.br +0 -0
- package/dist/AiChatPanel-KILEXOPT.js.gz +0 -0
- package/dist/AiChatPanel-ZH52BQBE.mjs.br +0 -0
- package/dist/AiChatPanel-ZH52BQBE.mjs.gz +0 -0
- package/dist/Area3DChartScene-HS7EBQLQ.js.br +0 -0
- package/dist/Area3DChartScene-HS7EBQLQ.js.gz +0 -0
- package/dist/Area3DChartScene-UHN7ZOZT.mjs.gz +0 -0
- package/dist/Bar3DChartScene-E57TRVUU.js.br +0 -0
- package/dist/Bar3DChartScene-E57TRVUU.js.gz +0 -0
- package/dist/Bar3DChartScene-TFGSYASD.mjs.gz +0 -0
- package/dist/Line3DChartScene-NM7YYLZD.js.br +0 -0
- package/dist/Line3DChartScene-NM7YYLZD.js.gz +0 -0
- package/dist/Line3DChartScene-RES5D7W7.mjs.gz +0 -0
- package/dist/Model3DScene-6CWFGE7M.mjs.br +0 -0
- package/dist/Model3DScene-6CWFGE7M.mjs.gz +0 -0
- package/dist/Model3DScene-SL3QF63O.js.br +0 -0
- package/dist/Model3DScene-SL3QF63O.js.gz +0 -0
- package/dist/PieChart3DScene-QYJUOYMB.mjs.gz +0 -0
- package/dist/PieChart3DScene-WIVYOQUQ.js.br +0 -0
- package/dist/PieChart3DScene-WIVYOQUQ.js.gz +0 -0
- package/dist/SurfaceChart3DScene-QCUYYQBZ.js.br +0 -0
- package/dist/SurfaceChart3DScene-QCUYYQBZ.js.gz +0 -0
- package/dist/SurfaceChart3DScene-Y2LF73QQ.mjs.gz +0 -0
- package/dist/chunk-2LK3OHAN.js.br +0 -0
- package/dist/chunk-2LK3OHAN.js.gz +0 -0
- package/dist/chunk-7XJ7I6TJ.mjs.br +0 -0
- package/dist/chunk-7XJ7I6TJ.mjs.gz +0 -0
- package/dist/chunk-ATKAU2J4.mjs.br +0 -0
- package/dist/chunk-ATKAU2J4.mjs.gz +0 -0
- package/dist/chunk-BRJN3ZMG.js.br +0 -0
- package/dist/chunk-BRJN3ZMG.js.gz +0 -0
- package/dist/chunk-F7VYECOL.js.br +0 -0
- package/dist/chunk-F7VYECOL.js.gz +0 -0
- package/dist/chunk-GULL4H2I.mjs.br +0 -0
- package/dist/chunk-GULL4H2I.mjs.gz +0 -0
- package/dist/chunk-M5BAPEQL.mjs.br +0 -0
- package/dist/chunk-M5BAPEQL.mjs.gz +0 -0
- package/dist/chunk-MQUTXOET.mjs.br +0 -0
- package/dist/chunk-MQUTXOET.mjs.gz +0 -0
- package/dist/chunk-NEMPFYZ5.mjs.br +0 -0
- package/dist/chunk-NEMPFYZ5.mjs.gz +0 -0
- package/dist/chunk-RPPLJQ6R.js.br +0 -0
- package/dist/chunk-RPPLJQ6R.js.gz +0 -0
- package/dist/chunk-YH4ODPSH.js.br +0 -0
- package/dist/chunk-YH4ODPSH.js.gz +0 -0
- package/dist/chunk-ZUIM5737.js.br +0 -0
- package/dist/chunk-ZUIM5737.js.gz +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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(
|
|
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: "
|
|
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: "
|
|
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": "
|
|
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 : "
|
|
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": "
|
|
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: "
|
|
5641
|
-
/* @__PURE__ */ jsxs(RibbonGroup, { label: "
|
|
5642
|
-
/* @__PURE__ */ jsx(
|
|
5643
|
-
|
|
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: "
|
|
5646
|
-
/* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuEraser, {}), label: "
|
|
5647
|
-
/* @__PURE__ */ jsx(RibbonCommand, { icon: /* @__PURE__ */ jsx(LuRotateCcw, {}), label: "
|
|
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: "
|
|
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":
|
|
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
|
-
"
|
|
12677
|
-
!isExpanded && hasNotes && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50 text-[10px]", children: "
|
|
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
|
|
16759
|
-
var
|
|
16760
|
-
var
|
|
16761
|
-
var
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
16887
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
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:
|
|
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:
|
|
17143
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
17267
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
17440
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
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: `${
|
|
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: `${
|
|
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:
|
|
17614
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
17665
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
17775
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
17871
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
17957
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
18039
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
18118
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
18232
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
18281
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
18347
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
18421
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
19660
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
19680
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
19696
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
19760
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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",
|
|
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",
|
|
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:
|
|
20329
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
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:
|
|
21290
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
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(
|
|
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: "
|
|
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
|
-
"
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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:
|
|
23429
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
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:
|
|
23444
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
23462
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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(
|
|
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(
|
|
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:
|
|
24164
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
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: `${
|
|
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: `${
|
|
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: `${
|
|
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: `${
|
|
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:
|
|
24732
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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:
|
|
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: `${
|
|
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:
|
|
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: `${
|
|
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:
|
|
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:
|
|
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:
|
|
25136
|
-
/* @__PURE__ */ jsx("button", { type: "button", className:
|
|
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: `${
|
|
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:
|
|
25153
|
-
entry && /* @__PURE__ */ jsx("button", { type: "button", className:
|
|
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:
|
|
25190
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
25248
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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: `${
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
25610
|
+
/* @__PURE__ */ jsxs("div", { className: CARD2, children: [
|
|
25407
25611
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
25408
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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(
|
|
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(
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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(
|
|
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:
|
|
26254
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
26291
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
26414
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
26498
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
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(
|
|
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:
|
|
26590
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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(
|
|
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:
|
|
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:
|
|
27177
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
27236
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
27257
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
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(
|
|
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(
|
|
27385
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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-
|
|
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": "
|
|
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
|
}
|