pptx-react-viewer 3.12.0 → 3.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/dist/{AiChatPanel-TXCDQDHD.js → AiChatPanel-42X7I5I2.js} +32 -32
- package/dist/AiChatPanel-42X7I5I2.js.br +0 -0
- package/dist/AiChatPanel-42X7I5I2.js.gz +0 -0
- package/dist/{AiChatPanel-SCA4RLFI.mjs → AiChatPanel-NJBUCO4X.mjs} +11 -11
- package/dist/AiChatPanel-NJBUCO4X.mjs.br +0 -0
- package/dist/AiChatPanel-NJBUCO4X.mjs.gz +0 -0
- package/dist/{Area3DChartScene-YAK6W2J5.js → Area3DChartScene-IDS5APPJ.js} +2 -2
- package/dist/Area3DChartScene-IDS5APPJ.js.br +0 -0
- package/dist/Area3DChartScene-IDS5APPJ.js.gz +0 -0
- package/dist/{Area3DChartScene-NSV5AIMM.mjs → Area3DChartScene-TFZPHEZ6.mjs} +1 -1
- package/dist/Area3DChartScene-TFZPHEZ6.mjs.br +0 -0
- package/dist/Area3DChartScene-TFZPHEZ6.mjs.gz +0 -0
- package/dist/{Bar3DChartScene-WNBEX3TN.js → Bar3DChartScene-C3CQCKB6.js} +2 -2
- package/dist/Bar3DChartScene-C3CQCKB6.js.br +0 -0
- package/dist/Bar3DChartScene-C3CQCKB6.js.gz +0 -0
- package/dist/{Bar3DChartScene-DFJ7XK3Q.mjs → Bar3DChartScene-L3VXO7BS.mjs} +1 -1
- package/dist/{Bar3DChartScene-DFJ7XK3Q.mjs.br → Bar3DChartScene-L3VXO7BS.mjs.br} +0 -0
- package/dist/Bar3DChartScene-L3VXO7BS.mjs.gz +0 -0
- package/dist/{Line3DChartScene-TK6RPGET.mjs → Line3DChartScene-UM4ZJJSY.mjs} +1 -1
- package/dist/{Line3DChartScene-TK6RPGET.mjs.br → Line3DChartScene-UM4ZJJSY.mjs.br} +0 -0
- package/dist/Line3DChartScene-UM4ZJJSY.mjs.gz +0 -0
- package/dist/{Line3DChartScene-PXA6WAQG.js → Line3DChartScene-YU4M3VMW.js} +2 -2
- package/dist/Line3DChartScene-YU4M3VMW.js.br +0 -0
- package/dist/Line3DChartScene-YU4M3VMW.js.gz +0 -0
- package/dist/{Model3DScene-7FZSQ3SP.mjs → Model3DScene-YEWZQAN5.mjs} +1 -1
- package/dist/Model3DScene-YEWZQAN5.mjs.br +0 -0
- package/dist/Model3DScene-YEWZQAN5.mjs.gz +0 -0
- package/dist/{Model3DScene-FJQOUWCV.js → Model3DScene-YRRNSOYK.js} +2 -2
- package/dist/Model3DScene-YRRNSOYK.js.br +0 -0
- package/dist/Model3DScene-YRRNSOYK.js.gz +0 -0
- package/dist/{PieChart3DScene-KKZTAIFB.mjs → PieChart3DScene-2OBYYK55.mjs} +1 -1
- package/dist/{PieChart3DScene-KKZTAIFB.mjs.br → PieChart3DScene-2OBYYK55.mjs.br} +0 -0
- package/dist/PieChart3DScene-2OBYYK55.mjs.gz +0 -0
- package/dist/{PieChart3DScene-P25IGVT6.js → PieChart3DScene-GH4X3W3E.js} +2 -2
- package/dist/PieChart3DScene-GH4X3W3E.js.br +0 -0
- package/dist/PieChart3DScene-GH4X3W3E.js.gz +0 -0
- package/dist/{SurfaceChart3DScene-LWJCERTR.mjs → SurfaceChart3DScene-DYG5I5UP.mjs} +1 -1
- package/dist/{SurfaceChart3DScene-LWJCERTR.mjs.br → SurfaceChart3DScene-DYG5I5UP.mjs.br} +0 -0
- package/dist/SurfaceChart3DScene-DYG5I5UP.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-36MT6QAK.js → SurfaceChart3DScene-J5CAPHVA.js} +2 -2
- package/dist/SurfaceChart3DScene-J5CAPHVA.js.br +0 -0
- package/dist/SurfaceChart3DScene-J5CAPHVA.js.gz +0 -0
- package/dist/{chunk-T7MY5L3O.js → chunk-7OMXJNYI.js} +1568 -1416
- package/dist/chunk-7OMXJNYI.js.br +0 -0
- package/dist/chunk-7OMXJNYI.js.gz +0 -0
- package/dist/{chunk-AARQTIMN.js → chunk-7Z7AY4MH.js} +772 -580
- package/dist/chunk-7Z7AY4MH.js.br +0 -0
- package/dist/chunk-7Z7AY4MH.js.gz +0 -0
- package/dist/{chunk-ZOEKVSSU.mjs → chunk-EZ3EI2VM.mjs} +323 -171
- package/dist/chunk-EZ3EI2VM.mjs.br +0 -0
- package/dist/chunk-EZ3EI2VM.mjs.gz +0 -0
- package/dist/{chunk-WRHPPTYF.mjs → chunk-GQMVEUHM.mjs} +356 -165
- package/dist/chunk-GQMVEUHM.mjs.br +0 -0
- package/dist/chunk-GQMVEUHM.mjs.gz +0 -0
- package/dist/{chunk-O27KNZLJ.js → chunk-H4LMXJ2Z.js} +169 -169
- package/dist/chunk-H4LMXJ2Z.js.br +0 -0
- package/dist/chunk-H4LMXJ2Z.js.gz +0 -0
- package/dist/{chunk-C2BDHCL2.mjs → chunk-HADPGII2.mjs} +47276 -43466
- package/dist/chunk-HADPGII2.mjs.br +0 -0
- package/dist/chunk-HADPGII2.mjs.gz +0 -0
- package/dist/{chunk-45AVHO7M.js → chunk-INKQT4SQ.js} +5 -5
- package/dist/chunk-INKQT4SQ.js.br +0 -0
- package/dist/chunk-INKQT4SQ.js.gz +0 -0
- package/dist/{chunk-3WK4AE52.js → chunk-MH4VFSDL.js} +47294 -43466
- package/dist/chunk-MH4VFSDL.js.br +0 -0
- package/dist/chunk-MH4VFSDL.js.gz +0 -0
- package/dist/{chunk-HXDNYDRJ.mjs → chunk-OVOXRK7D.mjs} +4 -4
- package/dist/chunk-OVOXRK7D.mjs.br +0 -0
- package/dist/chunk-OVOXRK7D.mjs.gz +0 -0
- package/dist/{chunk-2FSNTJVI.mjs → chunk-YFYSY7ZL.mjs} +1 -1
- package/dist/chunk-YFYSY7ZL.mjs.br +0 -0
- package/dist/chunk-YFYSY7ZL.mjs.gz +0 -0
- package/dist/index.js +45 -45
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +33 -1
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +78 -78
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- 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.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +3 -1
- package/dist/AiChatPanel-SCA4RLFI.mjs.br +0 -0
- package/dist/AiChatPanel-SCA4RLFI.mjs.gz +0 -0
- package/dist/AiChatPanel-TXCDQDHD.js.br +0 -0
- package/dist/AiChatPanel-TXCDQDHD.js.gz +0 -0
- package/dist/Area3DChartScene-NSV5AIMM.mjs.br +0 -0
- package/dist/Area3DChartScene-NSV5AIMM.mjs.gz +0 -0
- package/dist/Area3DChartScene-YAK6W2J5.js.br +0 -0
- package/dist/Area3DChartScene-YAK6W2J5.js.gz +0 -0
- package/dist/Bar3DChartScene-DFJ7XK3Q.mjs.gz +0 -0
- package/dist/Bar3DChartScene-WNBEX3TN.js.br +0 -0
- package/dist/Bar3DChartScene-WNBEX3TN.js.gz +0 -0
- package/dist/Line3DChartScene-PXA6WAQG.js.br +0 -0
- package/dist/Line3DChartScene-PXA6WAQG.js.gz +0 -0
- package/dist/Line3DChartScene-TK6RPGET.mjs.gz +0 -0
- package/dist/Model3DScene-7FZSQ3SP.mjs.br +0 -0
- package/dist/Model3DScene-7FZSQ3SP.mjs.gz +0 -0
- package/dist/Model3DScene-FJQOUWCV.js.br +0 -0
- package/dist/Model3DScene-FJQOUWCV.js.gz +0 -0
- package/dist/PieChart3DScene-KKZTAIFB.mjs.gz +0 -0
- package/dist/PieChart3DScene-P25IGVT6.js.br +0 -0
- package/dist/PieChart3DScene-P25IGVT6.js.gz +0 -0
- package/dist/SurfaceChart3DScene-36MT6QAK.js.br +0 -0
- package/dist/SurfaceChart3DScene-36MT6QAK.js.gz +0 -0
- package/dist/SurfaceChart3DScene-LWJCERTR.mjs.gz +0 -0
- package/dist/chunk-2FSNTJVI.mjs.br +0 -0
- package/dist/chunk-2FSNTJVI.mjs.gz +0 -0
- package/dist/chunk-3WK4AE52.js.br +0 -0
- package/dist/chunk-3WK4AE52.js.gz +0 -0
- package/dist/chunk-45AVHO7M.js.br +0 -0
- package/dist/chunk-45AVHO7M.js.gz +0 -0
- package/dist/chunk-AARQTIMN.js.br +0 -0
- package/dist/chunk-AARQTIMN.js.gz +0 -0
- package/dist/chunk-C2BDHCL2.mjs.br +0 -0
- package/dist/chunk-C2BDHCL2.mjs.gz +0 -0
- package/dist/chunk-HXDNYDRJ.mjs.br +0 -0
- package/dist/chunk-HXDNYDRJ.mjs.gz +0 -0
- package/dist/chunk-O27KNZLJ.js.br +0 -0
- package/dist/chunk-O27KNZLJ.js.gz +0 -0
- package/dist/chunk-T7MY5L3O.js.br +0 -0
- package/dist/chunk-T7MY5L3O.js.gz +0 -0
- package/dist/chunk-WRHPPTYF.mjs.br +0 -0
- package/dist/chunk-WRHPPTYF.mjs.gz +0 -0
- package/dist/chunk-ZOEKVSSU.mjs.br +0 -0
- package/dist/chunk-ZOEKVSSU.mjs.gz +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
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, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, safePrompt, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, syncSelectionHandleOverlay, playAnimationSound } from './chunk-
|
|
3
|
-
import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, STROKE_DASH_OPTIONS } from './chunk-
|
|
4
|
-
import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, buildDeckSaveOptions, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, getElementTransform, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, themeToCssVars, shouldClearAutosaveCacheOnClose, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, elementIdSelector, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, modelDataToBlobUrl, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, getInlineEditorSelection, findChartPartTarget, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, collectCoherent3DOffNodeIds, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelope, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent2, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, 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, withChartPointValue, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, hasTiltData, elementLockTogglePatch, buildTableDataGrid, 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, resolveDisplayedChartType, CHART_TYPE_OPTIONS, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-C2BDHCL2.mjs';
|
|
1
|
+
import { computeFocusTargets, deckDataFieldChanged, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, collectStoredChats, exportAiChatLogs, applyElementUpdate } from './chunk-YFYSY7ZL.mjs';
|
|
2
|
+
import { useViewerOptions, useReadOnlyRecommendationState, useCompatibilityToastsState, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useViewPreferencesSync, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, safePrompt, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, getGlyphOutline, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, syncSelectionHandleOverlay, playAnimationSound } from './chunk-GQMVEUHM.mjs';
|
|
3
|
+
import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, STROKE_DASH_OPTIONS } from './chunk-OVOXRK7D.mjs';
|
|
4
|
+
import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, buildThemeColorMap, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, resolveSlideSizeSelection, buildDeckSaveOptions, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, getElementTransform, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, visibleTemplateElements, themeToCssVars, shouldClearAutosaveCacheOnClose, masterViewCrudActions, applyMasterViewCrudAction, masterViewCrudFailureKey, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, setMasterViewBackgroundColor, canUseClipboard, runProgramNoticeStackStyle, compatToastStackStyle, printPropertiesFrameSlides, printPropertiesSlidesPerPage, getDensePanelTouchTargetPx, shouldStickyActionRow, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, isHeaderFooterDateTextVisible, isHeaderFooterHeaderTextVisible, isHeaderFooterFooterTextVisible, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, elementIdSelector, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, modelDataToBlobUrl, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, getInlineEditorSelection, findChartPartTarget, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, collectCoherent3DOffNodeIds, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelope, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, getSlideBackgroundStyle, pushRecentColor, mruColorsPatch, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent2, resolveDefaultPrintSettings, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, COMMON_FONT_SIZES, textFontSizePtToPx, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, OFFICE_COLOR_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, buildStrokePathD, cursorForTool, annotationOverlayZIndex, presentationInkPath, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, shouldShowElementHandles, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, scaleSlidesForSizeChange, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, MIN_TOUCH_TARGET_PX, toggleSheet, SMARTART_PREVIEW_ELEMENT_HEIGHT, SMARTART_PREVIEW_ELEMENT_WIDTH, buildSmartArtPreviewElement, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, withChartPointValue, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, textFontSizePxToPt, buildFontCatalog, buildThemeColorSwatchGrid, themeColorSwatchRows, findSelectedThemeSwatch, themeSwatchCommit, RIBBON_SHAPE_SWATCHES, canGroupSelection, canUngroupSelection, canSetStrokeWidth, strokeWidthOf, readSoundFileAsDataUrl, applyTransitionSoundFile, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, applyTransitionStockSound, transitionStockSoundId, getEffectSoundAsset, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, getActiveXControlOverlayView, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, applyTableStyleDelete, applyTableStyleMapChange, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, buildLiveInkStrokeView, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, hasTiltData, elementLockTogglePatch, buildTableDataGrid, getDenseGridLayoutPlan, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, applyTableStylePreset, tableStyleAssignmentUpdate, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, collapseChartTitleRunsForEdit, chartGridlinesState, chartGridlinesPatch, seriesSecondaryAxisPatch, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, hideChartSeries, restoreFilteredSeries, setDataLabelsRangeCache, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, canInteractWithElement, buildOleObjectNamePatch, getOleObjectTypeLabel, sanitizeGradientStops, shouldShowAccessibilitySection, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, commentMentionQuery, matchCommentMentionAuthors, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setEffectStockSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, EFFECT_SOUND_CATALOGUE, normalizeTableStyleGuid, describeTableStyleEditor, TABLE_STYLE_EDITOR_PARTS, computeMergeCellRight, computeMergeCellDown, computeSplitCell, resolveDisplayedChartType, CHART_TYPE_OPTIONS, BAR3D_SHAPE_OPTIONS, bar3DShapePatch, RADAR_STYLE_OPTIONS, radarStylePatch, SURFACE_WIREFRAME_OPTIONS, surfaceWireframePatch, isSeriesUsingSecondaryAxis, listChartUserShapeRows, withChartUserShapeAdded, createDefaultChartUserShape, withChartUserShapeRowRemoved, withChartUserShapeRowTextUpdated, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, mediaTrimEndSeconds, trimmedMediaDurationMs, mediaTrimEndAbsoluteMs, mediaTrimEndMsFromAbsoluteMs, buildOleEditDialogDescriptor, buildOleContentUpdatePatch, applyOleSheetCellEdit, getOleSheetGrid, applyOleDocumentParagraphEdit, getOleDocumentParagraphs, applyOleNestedDeckElementTextEdit, getOleNestedDeckDetail, replaceOleFile, getNonVisualDescriptionFields, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, insertCommentMention, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, TABLE_STYLE_BORDER_SIDES, applyTableStyleFieldEdit, createTableStyleEntry, addTableStyleToMap, deleteTableStyleFromMap, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, getChartUserShapeGroupTransform, withChartUserShapeGroupChildAdded, createDefaultChartUserShapeGroupChild, withChartUserShapeRowUpdated, getChartUserShapeRowChartBox, withChartUserShapeRowFlipUpdated, withChartUserShapeRowRotationUpdated, withChartUserShapeRowChartBoxUpdated, switchSmartArtLayout, mediaTrimEndMsFromSeconds, validateMediaTrimRange, SHAPE_QUICK_STYLES, quickStyleSwatchCss, PATTERN_PRESET_OPTIONS, getPatternSvg, COMPOUND_LINE_OPTIONS, LINE_JOIN_OPTIONS, LINE_CAP_OPTIONS, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, toSlideIndex, TABLE_STYLE_BORDER_SIDE_LABEL_KEYS, TABLE_STYLE_DASH_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-HADPGII2.mjs';
|
|
5
5
|
import { LOCALE_CATALOG, translationsEn } from './chunk-HMX3MQR7.mjs';
|
|
6
6
|
import React20, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, useSyncExternalStore, useId, Fragment as Fragment$1, useDeferredValue } from 'react';
|
|
7
7
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -514,7 +514,7 @@ function FailedToLoad() {
|
|
|
514
514
|
var LazyArea3DChartScene = React20.lazy(
|
|
515
515
|
async () => {
|
|
516
516
|
try {
|
|
517
|
-
return await import('./Area3DChartScene-
|
|
517
|
+
return await import('./Area3DChartScene-TFZPHEZ6.mjs');
|
|
518
518
|
} catch {
|
|
519
519
|
return { default: FailedToLoad };
|
|
520
520
|
}
|
|
@@ -583,7 +583,7 @@ function FailedToLoad2() {
|
|
|
583
583
|
var LazyBar3DChartScene = React20.lazy(
|
|
584
584
|
async () => {
|
|
585
585
|
try {
|
|
586
|
-
return await import('./Bar3DChartScene-
|
|
586
|
+
return await import('./Bar3DChartScene-L3VXO7BS.mjs');
|
|
587
587
|
} catch {
|
|
588
588
|
return { default: FailedToLoad2 };
|
|
589
589
|
}
|
|
@@ -686,7 +686,7 @@ function FailedToLoad3() {
|
|
|
686
686
|
var LazyLine3DChartScene = React20.lazy(
|
|
687
687
|
async () => {
|
|
688
688
|
try {
|
|
689
|
-
return await import('./Line3DChartScene-
|
|
689
|
+
return await import('./Line3DChartScene-UM4ZJJSY.mjs');
|
|
690
690
|
} catch {
|
|
691
691
|
return { default: FailedToLoad3 };
|
|
692
692
|
}
|
|
@@ -755,7 +755,7 @@ function FailedToLoad4() {
|
|
|
755
755
|
var LazyPieChart3DScene = React20.lazy(
|
|
756
756
|
async () => {
|
|
757
757
|
try {
|
|
758
|
-
return await import('./PieChart3DScene-
|
|
758
|
+
return await import('./PieChart3DScene-2OBYYK55.mjs');
|
|
759
759
|
} catch {
|
|
760
760
|
return { default: FailedToLoad4 };
|
|
761
761
|
}
|
|
@@ -822,7 +822,7 @@ function FailedToLoad5() {
|
|
|
822
822
|
var LazySurfaceChart3DScene = React20.lazy(
|
|
823
823
|
async () => {
|
|
824
824
|
try {
|
|
825
|
-
return await import('./SurfaceChart3DScene-
|
|
825
|
+
return await import('./SurfaceChart3DScene-DYG5I5UP.mjs');
|
|
826
826
|
} catch {
|
|
827
827
|
return { default: FailedToLoad5 };
|
|
828
828
|
}
|
|
@@ -3181,7 +3181,7 @@ function FailedToLoad6() {
|
|
|
3181
3181
|
var LazyModel3DScene = React20.lazy(
|
|
3182
3182
|
async () => {
|
|
3183
3183
|
try {
|
|
3184
|
-
return await import('./Model3DScene-
|
|
3184
|
+
return await import('./Model3DScene-YEWZQAN5.mjs');
|
|
3185
3185
|
} catch {
|
|
3186
3186
|
return { default: FailedToLoad6 };
|
|
3187
3187
|
}
|
|
@@ -4428,6 +4428,9 @@ function EnvelopeGlyph({
|
|
|
4428
4428
|
glyph,
|
|
4429
4429
|
tspanProps
|
|
4430
4430
|
}) {
|
|
4431
|
+
if (glyph.outlinePath) {
|
|
4432
|
+
return /* @__PURE__ */ jsx("path", { d: glyph.outlinePath, fill: tspanProps.fill });
|
|
4433
|
+
}
|
|
4431
4434
|
if (!glyph.slices || glyph.slices.length <= 1) {
|
|
4432
4435
|
return /* @__PURE__ */ jsx("text", { x: glyph.x, y: glyph.y, transform: glyph.transform, ...tspanProps, children: glyph.char });
|
|
4433
4436
|
}
|
|
@@ -4527,7 +4530,8 @@ function WarpedText({
|
|
|
4527
4530
|
warpAdj,
|
|
4528
4531
|
warpAdj2,
|
|
4529
4532
|
paraIdx,
|
|
4530
|
-
lineCount
|
|
4533
|
+
lineCount,
|
|
4534
|
+
getGlyphOutline
|
|
4531
4535
|
);
|
|
4532
4536
|
return /* @__PURE__ */ jsx(
|
|
4533
4537
|
EnvelopeLine,
|
|
@@ -6706,7 +6710,7 @@ function AccountPage() {
|
|
|
6706
6710
|
return void 0;
|
|
6707
6711
|
});
|
|
6708
6712
|
};
|
|
6709
|
-
const version = "3.
|
|
6713
|
+
const version = "3.13.0" ;
|
|
6710
6714
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
|
|
6711
6715
|
/* @__PURE__ */ jsxs("section", { className: cardClass, children: [
|
|
6712
6716
|
/* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
@@ -9683,7 +9687,8 @@ function MobileSheet({
|
|
|
9683
9687
|
"aria-label": "Close",
|
|
9684
9688
|
onPointerDown: (event) => event.stopPropagation(),
|
|
9685
9689
|
onClick: onClose,
|
|
9686
|
-
|
|
9690
|
+
style: { minWidth: MIN_TOUCH_TARGET_PX, minHeight: MIN_TOUCH_TARGET_PX },
|
|
9691
|
+
className: "inline-flex items-center justify-center rounded text-xl text-muted-foreground hover:bg-accent hover:text-foreground",
|
|
9687
9692
|
children: "\xD7"
|
|
9688
9693
|
}
|
|
9689
9694
|
)
|
|
@@ -20460,8 +20465,8 @@ function SelectionPane({
|
|
|
20460
20465
|
}
|
|
20461
20466
|
);
|
|
20462
20467
|
}
|
|
20463
|
-
var INPUT_CLS = "bg-muted border border-border rounded px-2 py-1 w-full text-[11px]";
|
|
20464
|
-
var SELECT_CLS = "bg-muted border border-border rounded px-2 py-1 w-full text-[11px]";
|
|
20468
|
+
var INPUT_CLS = "bg-muted border border-border rounded px-2 py-1 w-full text-[11px] max-md:min-h-[44px]!";
|
|
20469
|
+
var SELECT_CLS = "bg-muted border border-border rounded px-2 py-1 w-full text-[11px] max-md:min-h-[44px]!";
|
|
20465
20470
|
var ENTRANCE_PRESETS = ANIMATION_PRESET_OPTIONS.filter(
|
|
20466
20471
|
(o) => o.value === "fadeIn" || o.value === "flyIn" || o.value === "zoomIn"
|
|
20467
20472
|
);
|
|
@@ -21297,6 +21302,9 @@ function AnimationPanel({
|
|
|
21297
21302
|
onUpdateSlide
|
|
21298
21303
|
}) {
|
|
21299
21304
|
const { t } = useTranslation();
|
|
21305
|
+
const { viewportWidth } = useIsMobile();
|
|
21306
|
+
const directionBtnPx = Math.max(28, getDensePanelTouchTargetPx(viewportWidth));
|
|
21307
|
+
const fieldStyle = { minHeight: getDensePanelTouchTargetPx(viewportWidth) };
|
|
21300
21308
|
const handlers = useAnimationHandlers({
|
|
21301
21309
|
selectedElement,
|
|
21302
21310
|
activeSlide,
|
|
@@ -21334,6 +21342,7 @@ function AnimationPanel({
|
|
|
21334
21342
|
"button",
|
|
21335
21343
|
{
|
|
21336
21344
|
type: "button",
|
|
21345
|
+
style: { minHeight: getDensePanelTouchTargetPx(viewportWidth) },
|
|
21337
21346
|
className: "flex items-center gap-1 text-[10px] text-primary hover:text-primary/80 transition-colors",
|
|
21338
21347
|
onClick: handlePreviewClick,
|
|
21339
21348
|
title: t("pptx.animation.preview"),
|
|
@@ -21354,6 +21363,7 @@ function AnimationPanel({
|
|
|
21354
21363
|
onChange: handleEntranceChange,
|
|
21355
21364
|
disabled: !canEdit,
|
|
21356
21365
|
className: SELECT_CLS,
|
|
21366
|
+
style: fieldStyle,
|
|
21357
21367
|
children: [
|
|
21358
21368
|
/* @__PURE__ */ jsx("option", { value: "none", children: t("pptx.animation.none") }),
|
|
21359
21369
|
ENTRANCE_PRESETS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(`pptx.animation.preset.${o.value}`) }, o.value))
|
|
@@ -21371,6 +21381,7 @@ function AnimationPanel({
|
|
|
21371
21381
|
onChange: handleEmphasisChange,
|
|
21372
21382
|
disabled: !canEdit,
|
|
21373
21383
|
className: SELECT_CLS,
|
|
21384
|
+
style: fieldStyle,
|
|
21374
21385
|
children: [
|
|
21375
21386
|
/* @__PURE__ */ jsx("option", { value: "none", children: t("pptx.animation.none") }),
|
|
21376
21387
|
EMPHASIS_PRESETS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(`pptx.animation.preset.${o.value}`) }, o.value))
|
|
@@ -21388,6 +21399,7 @@ function AnimationPanel({
|
|
|
21388
21399
|
onChange: handleExitChange,
|
|
21389
21400
|
disabled: !canEdit,
|
|
21390
21401
|
className: SELECT_CLS,
|
|
21402
|
+
style: fieldStyle,
|
|
21391
21403
|
children: [
|
|
21392
21404
|
/* @__PURE__ */ jsx("option", { value: "none", children: t("pptx.animation.none") }),
|
|
21393
21405
|
EXIT_PRESETS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(`pptx.animation.preset.${o.value}`) }, o.value))
|
|
@@ -21414,8 +21426,9 @@ function AnimationPanel({
|
|
|
21414
21426
|
{
|
|
21415
21427
|
type: "button",
|
|
21416
21428
|
disabled: !canEdit,
|
|
21429
|
+
style: { minWidth: directionBtnPx, minHeight: directionBtnPx },
|
|
21417
21430
|
className: cn(
|
|
21418
|
-
"flex items-center justify-center
|
|
21431
|
+
"flex items-center justify-center rounded border transition-colors",
|
|
21419
21432
|
isActive ? "border-primary bg-primary/20 text-primary" : "border-border bg-muted text-muted-foreground hover:bg-accent"
|
|
21420
21433
|
),
|
|
21421
21434
|
onClick: () => handleDirectionChange(opt.value),
|
|
@@ -21436,6 +21449,7 @@ function AnimationPanel({
|
|
|
21436
21449
|
onChange: handleSequenceChange,
|
|
21437
21450
|
disabled: !canEdit,
|
|
21438
21451
|
className: SELECT_CLS,
|
|
21452
|
+
style: fieldStyle,
|
|
21439
21453
|
children: SEQUENCE_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(o.labelKey) }, o.value))
|
|
21440
21454
|
}
|
|
21441
21455
|
)
|
|
@@ -21472,6 +21486,7 @@ function AnimationPanel({
|
|
|
21472
21486
|
onChange: handleTriggerChange,
|
|
21473
21487
|
disabled: !canEdit,
|
|
21474
21488
|
className: SELECT_CLS,
|
|
21489
|
+
style: fieldStyle,
|
|
21475
21490
|
children: TRIGGER_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(o.labelKey) }, o.value))
|
|
21476
21491
|
}
|
|
21477
21492
|
)
|
|
@@ -21486,6 +21501,7 @@ function AnimationPanel({
|
|
|
21486
21501
|
onChange: handleTriggerShapeChange,
|
|
21487
21502
|
disabled: !canEdit,
|
|
21488
21503
|
className: SELECT_CLS,
|
|
21504
|
+
style: fieldStyle,
|
|
21489
21505
|
children: [
|
|
21490
21506
|
/* @__PURE__ */ jsx("option", { value: "", children: t("pptx.animation.trigger.selectShape") }),
|
|
21491
21507
|
activeSlide.elements.filter((el) => el.id !== selectedElement.id).map((el) => /* @__PURE__ */ jsx("option", { value: el.id, children: getElementLabel(el) }, el.id))
|
|
@@ -21505,7 +21521,8 @@ function AnimationPanel({
|
|
|
21505
21521
|
disabled: !canEdit,
|
|
21506
21522
|
value: selectedElementAnimation?.durationMs ?? 450,
|
|
21507
21523
|
onChange: handleDurationChange,
|
|
21508
|
-
className: INPUT_CLS
|
|
21524
|
+
className: INPUT_CLS,
|
|
21525
|
+
style: fieldStyle
|
|
21509
21526
|
}
|
|
21510
21527
|
)
|
|
21511
21528
|
] }),
|
|
@@ -21521,7 +21538,8 @@ function AnimationPanel({
|
|
|
21521
21538
|
disabled: !canEdit,
|
|
21522
21539
|
value: selectedElementAnimation?.delayMs ?? 0,
|
|
21523
21540
|
onChange: handleDelayChange,
|
|
21524
|
-
className: INPUT_CLS
|
|
21541
|
+
className: INPUT_CLS,
|
|
21542
|
+
style: fieldStyle
|
|
21525
21543
|
}
|
|
21526
21544
|
)
|
|
21527
21545
|
] }),
|
|
@@ -21535,6 +21553,7 @@ function AnimationPanel({
|
|
|
21535
21553
|
onChange: handleTimingCurveChange,
|
|
21536
21554
|
disabled: !canEdit,
|
|
21537
21555
|
className: SELECT_CLS,
|
|
21556
|
+
style: fieldStyle,
|
|
21538
21557
|
children: TIMING_CURVE_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(o.labelKey) }, o.value))
|
|
21539
21558
|
}
|
|
21540
21559
|
)
|
|
@@ -21551,7 +21570,8 @@ function AnimationPanel({
|
|
|
21551
21570
|
disabled: !canEdit,
|
|
21552
21571
|
value: selectedElementAnimation?.repeatCount ?? 1,
|
|
21553
21572
|
onChange: handleRepeatCountChange,
|
|
21554
|
-
className: INPUT_CLS
|
|
21573
|
+
className: INPUT_CLS,
|
|
21574
|
+
style: fieldStyle
|
|
21555
21575
|
}
|
|
21556
21576
|
)
|
|
21557
21577
|
] }),
|
|
@@ -21565,6 +21585,7 @@ function AnimationPanel({
|
|
|
21565
21585
|
onChange: handleRepeatModeChange,
|
|
21566
21586
|
disabled: !canEdit,
|
|
21567
21587
|
className: SELECT_CLS,
|
|
21588
|
+
style: fieldStyle,
|
|
21568
21589
|
children: REPEAT_MODE_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(o.labelKey) }, o.value))
|
|
21569
21590
|
}
|
|
21570
21591
|
)
|
|
@@ -21587,8 +21608,8 @@ var INSPECTOR_TABS = [
|
|
|
21587
21608
|
];
|
|
21588
21609
|
var HEADING = "text-[11px] uppercase tracking-wide text-muted-foreground";
|
|
21589
21610
|
var CARD = "rounded border border-border bg-card p-2 space-y-2";
|
|
21590
|
-
var INPUT = "flex-1 bg-muted border border-border rounded px-1.5 py-0.5 w-full";
|
|
21591
|
-
var BTN = "rounded bg-muted hover:bg-accent px-2 py-1 text-[11px] transition-colors";
|
|
21611
|
+
var INPUT = "flex-1 bg-muted border border-border rounded px-1.5 py-0.5 w-full max-md:min-h-[44px]!";
|
|
21612
|
+
var BTN = "rounded bg-muted hover:bg-accent px-2 py-1 text-[11px] transition-colors max-md:min-h-[44px]! max-md:min-w-[44px]!";
|
|
21592
21613
|
var POS_FIELDS = [
|
|
21593
21614
|
["X", "x"],
|
|
21594
21615
|
["Y", "y"],
|
|
@@ -21806,8 +21827,8 @@ function ActionTriggerSection({
|
|
|
21806
21827
|
// src/viewer/components/inspector/chart-panel-constants.ts
|
|
21807
21828
|
var HEADING2 = "text-[11px] uppercase tracking-wide text-muted-foreground";
|
|
21808
21829
|
var CARD2 = "rounded border border-border bg-card p-2 space-y-2";
|
|
21809
|
-
var INPUT2 = "flex-1 bg-muted border border-border rounded px-1.5 py-0.5 w-full";
|
|
21810
|
-
var BTN2 = "rounded bg-muted hover:bg-accent px-2 py-1 text-[11px] transition-colors";
|
|
21830
|
+
var INPUT2 = "flex-1 bg-muted border border-border rounded px-1.5 py-0.5 w-full max-md:min-h-[44px]!";
|
|
21831
|
+
var BTN2 = "rounded bg-muted hover:bg-accent px-2 py-1 text-[11px] transition-colors max-md:min-h-[44px]!";
|
|
21811
21832
|
var CELL_INPUT = "bg-muted border border-border rounded px-1 py-0.5 text-[11px] w-full text-center";
|
|
21812
21833
|
var GROUPING_OPTIONS = [
|
|
21813
21834
|
{ value: "clustered", labelKey: "pptx.chart.groupingClustered" },
|
|
@@ -22301,6 +22322,11 @@ function ChartDataGrid({
|
|
|
22301
22322
|
}) {
|
|
22302
22323
|
const { t } = useTranslation();
|
|
22303
22324
|
const highlightRef = useRef(null);
|
|
22325
|
+
const { viewportWidth } = useIsMobile();
|
|
22326
|
+
const gridPlan = getDenseGridLayoutPlan(viewportWidth);
|
|
22327
|
+
const touchTargetPx = getDensePanelTouchTargetPx(viewportWidth);
|
|
22328
|
+
const rowHeaderClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10 bg-card" : "";
|
|
22329
|
+
const iconBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
22304
22330
|
useEffect(() => {
|
|
22305
22331
|
highlightRef.current?.scrollIntoView({ block: "nearest", inline: "nearest" });
|
|
22306
22332
|
}, [highlightCell?.seriesIndex, highlightCell?.pointIndex]);
|
|
@@ -22315,7 +22341,8 @@ function ChartDataGrid({
|
|
|
22315
22341
|
"button",
|
|
22316
22342
|
{
|
|
22317
22343
|
type: "button",
|
|
22318
|
-
className: BTN2
|
|
22344
|
+
className: `${BTN2} inline-flex items-center justify-center`,
|
|
22345
|
+
style: iconBtnStyle,
|
|
22319
22346
|
title: t("pptx.chart.addCategory"),
|
|
22320
22347
|
onClick: onAddCategory,
|
|
22321
22348
|
children: [
|
|
@@ -22328,7 +22355,8 @@ function ChartDataGrid({
|
|
|
22328
22355
|
"button",
|
|
22329
22356
|
{
|
|
22330
22357
|
type: "button",
|
|
22331
|
-
className: BTN2
|
|
22358
|
+
className: `${BTN2} inline-flex items-center justify-center`,
|
|
22359
|
+
style: iconBtnStyle,
|
|
22332
22360
|
title: t("pptx.chart.addSeries"),
|
|
22333
22361
|
onClick: onAddSeries,
|
|
22334
22362
|
children: [
|
|
@@ -22345,35 +22373,45 @@ function ChartDataGrid({
|
|
|
22345
22373
|
"th",
|
|
22346
22374
|
{
|
|
22347
22375
|
"aria-label": t("pptx.chart.categories"),
|
|
22348
|
-
className:
|
|
22376
|
+
className: `text-muted-foreground p-0.5 text-left ${rowHeaderClass}`,
|
|
22377
|
+
style: { minWidth: gridPlan.minCellWidthPx }
|
|
22349
22378
|
}
|
|
22350
22379
|
),
|
|
22351
|
-
series.map((s, si) => /* @__PURE__ */ jsx(
|
|
22352
|
-
|
|
22353
|
-
|
|
22354
|
-
|
|
22355
|
-
|
|
22356
|
-
|
|
22357
|
-
|
|
22358
|
-
|
|
22359
|
-
|
|
22360
|
-
|
|
22361
|
-
|
|
22362
|
-
|
|
22363
|
-
|
|
22364
|
-
|
|
22365
|
-
|
|
22366
|
-
|
|
22367
|
-
|
|
22368
|
-
|
|
22369
|
-
|
|
22370
|
-
|
|
22371
|
-
|
|
22372
|
-
|
|
22373
|
-
|
|
22380
|
+
series.map((s, si) => /* @__PURE__ */ jsx(
|
|
22381
|
+
"th",
|
|
22382
|
+
{
|
|
22383
|
+
className: "p-0.5 font-normal",
|
|
22384
|
+
style: { minWidth: gridPlan.minCellWidthPx },
|
|
22385
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-0.5", children: [
|
|
22386
|
+
/* @__PURE__ */ jsx(
|
|
22387
|
+
"input",
|
|
22388
|
+
{
|
|
22389
|
+
type: "text",
|
|
22390
|
+
disabled: !canEdit,
|
|
22391
|
+
ref: isSeriesHighlight(si) ? highlightRef : null,
|
|
22392
|
+
className: `${CELL_INPUT}${isSeriesHighlight(si) ? highlightClass : ""}`,
|
|
22393
|
+
value: s.name,
|
|
22394
|
+
onChange: (e) => onUpdateSeries(si, { name: e.target.value })
|
|
22395
|
+
}
|
|
22396
|
+
),
|
|
22397
|
+
canEdit && series.length > 1 && /* @__PURE__ */ jsx(
|
|
22398
|
+
"button",
|
|
22399
|
+
{
|
|
22400
|
+
type: "button",
|
|
22401
|
+
className: "text-muted-foreground hover:text-red-400 shrink-0 inline-flex items-center justify-center",
|
|
22402
|
+
style: iconBtnStyle,
|
|
22403
|
+
title: t("pptx.chart.removeSeries"),
|
|
22404
|
+
onClick: () => onRemoveSeries(si),
|
|
22405
|
+
children: /* @__PURE__ */ jsx(LuTrash2, { className: "w-3 h-3" })
|
|
22406
|
+
}
|
|
22407
|
+
)
|
|
22408
|
+
] })
|
|
22409
|
+
},
|
|
22410
|
+
si
|
|
22411
|
+
))
|
|
22374
22412
|
] }) }),
|
|
22375
22413
|
/* @__PURE__ */ jsx("tbody", { children: categories.map((cat, ci) => /* @__PURE__ */ jsxs("tr", { children: [
|
|
22376
|
-
/* @__PURE__ */ jsx("td", { className:
|
|
22414
|
+
/* @__PURE__ */ jsx("td", { className: `p-0.5 ${rowHeaderClass}`, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-0.5", children: [
|
|
22377
22415
|
/* @__PURE__ */ jsx(
|
|
22378
22416
|
"input",
|
|
22379
22417
|
{
|
|
@@ -22388,7 +22426,8 @@ function ChartDataGrid({
|
|
|
22388
22426
|
"button",
|
|
22389
22427
|
{
|
|
22390
22428
|
type: "button",
|
|
22391
|
-
className: "text-muted-foreground hover:text-red-400 shrink-0",
|
|
22429
|
+
className: "text-muted-foreground hover:text-red-400 shrink-0 inline-flex items-center justify-center",
|
|
22430
|
+
style: iconBtnStyle,
|
|
22392
22431
|
title: t("pptx.chart.removeCategory"),
|
|
22393
22432
|
onClick: () => onRemoveCategory(ci),
|
|
22394
22433
|
children: /* @__PURE__ */ jsx(LuTrash2, { className: "w-3 h-3" })
|
|
@@ -22638,7 +22677,7 @@ function ChartDataPointOptions({
|
|
|
22638
22677
|
type: "button",
|
|
22639
22678
|
disabled: !canEdit,
|
|
22640
22679
|
title: t("pptx.chart.pointFillClear"),
|
|
22641
|
-
className: "text-muted-foreground hover:text-foreground",
|
|
22680
|
+
className: "text-muted-foreground hover:text-foreground max-md:min-w-[44px]! max-md:min-h-[44px]! inline-flex items-center justify-center",
|
|
22642
22681
|
onClick: () => onSetPointFill(seriesIndex, idx, null),
|
|
22643
22682
|
children: "\xD7"
|
|
22644
22683
|
}
|
|
@@ -24152,6 +24191,13 @@ function OleEditorDialog({
|
|
|
24152
24191
|
const [deckSlides, setDeckSlides] = useState(void 0);
|
|
24153
24192
|
const [loading, setLoading] = useState(false);
|
|
24154
24193
|
const [saveError, setSaveError] = useState(false);
|
|
24194
|
+
const mountedRef = useRef(true);
|
|
24195
|
+
useEffect(
|
|
24196
|
+
() => () => {
|
|
24197
|
+
mountedRef.current = false;
|
|
24198
|
+
},
|
|
24199
|
+
[]
|
|
24200
|
+
);
|
|
24155
24201
|
useEffect(() => {
|
|
24156
24202
|
if (!isOpen || !descriptor.contentTab) {
|
|
24157
24203
|
return;
|
|
@@ -24200,9 +24246,13 @@ function OleEditorDialog({
|
|
|
24200
24246
|
const updated = await applyOleSheetCellEdit(element, { row, col, value });
|
|
24201
24247
|
commit(updated);
|
|
24202
24248
|
const refreshed = await getOleSheetGrid(updated);
|
|
24203
|
-
|
|
24249
|
+
if (mountedRef.current) {
|
|
24250
|
+
setGrid(refreshed);
|
|
24251
|
+
}
|
|
24204
24252
|
} catch {
|
|
24205
|
-
|
|
24253
|
+
if (mountedRef.current) {
|
|
24254
|
+
setSaveError(true);
|
|
24255
|
+
}
|
|
24206
24256
|
}
|
|
24207
24257
|
},
|
|
24208
24258
|
[element, commit]
|
|
@@ -24213,9 +24263,13 @@ function OleEditorDialog({
|
|
|
24213
24263
|
const updated = await applyOleDocumentParagraphEdit(element, index, text);
|
|
24214
24264
|
commit(updated);
|
|
24215
24265
|
const refreshed = await getOleDocumentParagraphs(updated);
|
|
24216
|
-
|
|
24266
|
+
if (mountedRef.current) {
|
|
24267
|
+
setParagraphs(refreshed);
|
|
24268
|
+
}
|
|
24217
24269
|
} catch {
|
|
24218
|
-
|
|
24270
|
+
if (mountedRef.current) {
|
|
24271
|
+
setSaveError(true);
|
|
24272
|
+
}
|
|
24219
24273
|
}
|
|
24220
24274
|
},
|
|
24221
24275
|
[element, commit]
|
|
@@ -24231,9 +24285,13 @@ function OleEditorDialog({
|
|
|
24231
24285
|
);
|
|
24232
24286
|
commit(updated);
|
|
24233
24287
|
const refreshed = await getOleNestedDeckDetail(updated);
|
|
24234
|
-
|
|
24288
|
+
if (mountedRef.current) {
|
|
24289
|
+
setDeckSlides(refreshed);
|
|
24290
|
+
}
|
|
24235
24291
|
} catch {
|
|
24236
|
-
|
|
24292
|
+
if (mountedRef.current) {
|
|
24293
|
+
setSaveError(true);
|
|
24294
|
+
}
|
|
24237
24295
|
}
|
|
24238
24296
|
},
|
|
24239
24297
|
[element, commit]
|
|
@@ -24244,9 +24302,13 @@ function OleEditorDialog({
|
|
|
24244
24302
|
const bytes = new Uint8Array(await file.arrayBuffer());
|
|
24245
24303
|
const updated = await replaceOleFile(element, bytes, file.name);
|
|
24246
24304
|
commit(updated);
|
|
24247
|
-
|
|
24305
|
+
if (mountedRef.current) {
|
|
24306
|
+
onClose();
|
|
24307
|
+
}
|
|
24248
24308
|
} catch {
|
|
24249
|
-
|
|
24309
|
+
if (mountedRef.current) {
|
|
24310
|
+
setSaveError(true);
|
|
24311
|
+
}
|
|
24250
24312
|
}
|
|
24251
24313
|
},
|
|
24252
24314
|
[element, commit, onClose]
|
|
@@ -24347,7 +24409,7 @@ function OleEditorDialog({
|
|
|
24347
24409
|
}
|
|
24348
24410
|
|
|
24349
24411
|
// src/viewer/components/inspector/element-properties-constants.ts
|
|
24350
|
-
var SELECT_CLS2 = "bg-muted border border-border rounded px-2 py-1";
|
|
24412
|
+
var SELECT_CLS2 = "bg-muted border border-border rounded px-2 py-1 max-md:min-h-[44px]!";
|
|
24351
24413
|
var BTN_CLS = "inline-flex items-center justify-center gap-1 rounded bg-muted hover:bg-accent px-2 py-1";
|
|
24352
24414
|
var END_LABEL_KEYS = {
|
|
24353
24415
|
Start: {
|
|
@@ -26664,7 +26726,7 @@ var VISUAL_EFFECT_CONFIGS = [
|
|
|
26664
26726
|
|
|
26665
26727
|
// src/viewer/components/inspector/FillStrokeHelpers.tsx
|
|
26666
26728
|
var EFFECT_CONFIGS = [...SHADOW_EFFECT_CONFIGS, ...VISUAL_EFFECT_CONFIGS];
|
|
26667
|
-
var SEL2 = "bg-muted border border-border rounded px-2 py-1";
|
|
26729
|
+
var SEL2 = "bg-muted border border-border rounded px-2 py-1 max-md:min-h-[44px]!";
|
|
26668
26730
|
var NUM2 = SEL2;
|
|
26669
26731
|
var RNG = "accent-primary";
|
|
26670
26732
|
var SWATCH = "h-4 w-4 rounded border border-border";
|
|
@@ -26838,8 +26900,9 @@ function ColorPickerRow({
|
|
|
26838
26900
|
{
|
|
26839
26901
|
type: "button",
|
|
26840
26902
|
disabled,
|
|
26841
|
-
className: "h-8 w-8 flex items-center justify-center rounded border border-border bg-muted hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
|
|
26903
|
+
className: "h-8 w-8 max-md:h-11 max-md:w-11 flex items-center justify-center rounded border border-border bg-muted hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
|
|
26842
26904
|
title: t("pptx.fillStroke.eyedropperTooltip"),
|
|
26905
|
+
"aria-label": t("pptx.fillStroke.eyedropperTooltip"),
|
|
26843
26906
|
onClick: (e) => {
|
|
26844
26907
|
e.preventDefault();
|
|
26845
26908
|
void handleEyedropper();
|
|
@@ -27150,6 +27213,8 @@ function QuickStylesGallery({
|
|
|
27150
27213
|
onUpdateShapeStyle
|
|
27151
27214
|
}) {
|
|
27152
27215
|
const { t } = useTranslation();
|
|
27216
|
+
const { viewportWidth } = useIsMobile();
|
|
27217
|
+
const swatchMinHeight = getDensePanelTouchTargetPx(viewportWidth);
|
|
27153
27218
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
27154
27219
|
/* @__PURE__ */ jsx("span", { className: LBL2, children: t("pptx.shape.quickStyles") }),
|
|
27155
27220
|
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-6 gap-1", children: SHAPE_QUICK_STYLES.map((qs, idx) => /* @__PURE__ */ jsx(
|
|
@@ -27158,8 +27223,8 @@ function QuickStylesGallery({
|
|
|
27158
27223
|
type: "button",
|
|
27159
27224
|
title: qs.name,
|
|
27160
27225
|
"aria-label": qs.name,
|
|
27161
|
-
className: "
|
|
27162
|
-
style: quickStyleSwatchCss(qs),
|
|
27226
|
+
className: "w-full rounded border border-border hover:border-primary transition-colors",
|
|
27227
|
+
style: { ...quickStyleSwatchCss(qs), minHeight: swatchMinHeight },
|
|
27163
27228
|
onClick: () => onUpdateShapeStyle(qs.style)
|
|
27164
27229
|
},
|
|
27165
27230
|
idx
|
|
@@ -27241,7 +27306,7 @@ function StrokeEffectsSection({
|
|
|
27241
27306
|
onChange: (e) => onUpdateShapeStyle({
|
|
27242
27307
|
strokeDash: e.target.value
|
|
27243
27308
|
}),
|
|
27244
|
-
className:
|
|
27309
|
+
className: SEL2,
|
|
27245
27310
|
children: STROKE_DASH_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: t(o.i18nKey) }, o.value))
|
|
27246
27311
|
}
|
|
27247
27312
|
)
|
|
@@ -27254,7 +27319,7 @@ function StrokeEffectsSection({
|
|
|
27254
27319
|
type: "button",
|
|
27255
27320
|
title: t(opt.i18nKey),
|
|
27256
27321
|
"aria-label": t(opt.i18nKey),
|
|
27257
|
-
className: `h-10 px-2 rounded border transition-all ${(style?.compoundLine || "sng") === opt.value ? "border-primary bg-accent" : "border-border hover:border-primary/50"}`,
|
|
27322
|
+
className: `h-10 max-md:h-11 px-2 rounded border transition-all ${(style?.compoundLine || "sng") === opt.value ? "border-primary bg-accent" : "border-border hover:border-primary/50"}`,
|
|
27258
27323
|
onClick: () => onUpdateShapeStyle({
|
|
27259
27324
|
compoundLine: opt.value
|
|
27260
27325
|
}),
|
|
@@ -27419,7 +27484,7 @@ function FillStrokeProperties({
|
|
|
27419
27484
|
] })
|
|
27420
27485
|
] });
|
|
27421
27486
|
}
|
|
27422
|
-
var INPUT_CLS2 = "bg-muted border border-border rounded px-2 py-1";
|
|
27487
|
+
var INPUT_CLS2 = "bg-muted border border-border rounded px-2 py-1 max-md:min-h-[44px]!";
|
|
27423
27488
|
var COLOR_CLS = "h-8 bg-muted border border-border rounded px-1";
|
|
27424
27489
|
function Text3DProperties({
|
|
27425
27490
|
ts,
|
|
@@ -27609,7 +27674,7 @@ function BevelSection({
|
|
|
27609
27674
|
] })
|
|
27610
27675
|
] });
|
|
27611
27676
|
}
|
|
27612
|
-
var INPUT_CLS3 = "bg-muted border border-border rounded px-2 py-1";
|
|
27677
|
+
var INPUT_CLS3 = "bg-muted border border-border rounded px-2 py-1 max-md:min-h-[44px]!";
|
|
27613
27678
|
var COLOR_CLS2 = "h-8 bg-muted border border-border rounded px-1";
|
|
27614
27679
|
var UNDERLINE_STYLES = [
|
|
27615
27680
|
["sng", "Single"],
|
|
@@ -28146,7 +28211,7 @@ function TextWarpGallery({
|
|
|
28146
28211
|
"button",
|
|
28147
28212
|
{
|
|
28148
28213
|
type: "button",
|
|
28149
|
-
className: "flex w-full items-center justify-between text-[11px] uppercase tracking-wide text-muted-foreground",
|
|
28214
|
+
className: "flex w-full items-center justify-between text-[11px] uppercase tracking-wide text-muted-foreground max-md:min-h-[44px]!",
|
|
28150
28215
|
onClick: () => setExpanded(!expanded),
|
|
28151
28216
|
children: [
|
|
28152
28217
|
/* @__PURE__ */ jsx("span", { children: t("pptx.textWarp.title") }),
|
|
@@ -28366,7 +28431,7 @@ function TextFormatToggle({
|
|
|
28366
28431
|
type: "button",
|
|
28367
28432
|
disabled,
|
|
28368
28433
|
className: cn(
|
|
28369
|
-
"px-2 py-1 rounded text-[11px] transition-colors",
|
|
28434
|
+
"px-2 py-1 rounded text-[11px] transition-colors max-md:min-w-[44px]! max-md:min-h-[44px]!",
|
|
28370
28435
|
italic && "italic",
|
|
28371
28436
|
underline && "underline",
|
|
28372
28437
|
active ? "bg-primary text-white" : "bg-muted hover:bg-accent"
|
|
@@ -29050,6 +29115,11 @@ function TableDataGrid({
|
|
|
29050
29115
|
}) {
|
|
29051
29116
|
const { t } = useTranslation();
|
|
29052
29117
|
const grid = buildTableDataGrid(tableElement);
|
|
29118
|
+
const { viewportWidth } = useIsMobile();
|
|
29119
|
+
const gridPlan = getDenseGridLayoutPlan(viewportWidth);
|
|
29120
|
+
const touchTargetPx = getDensePanelTouchTargetPx(viewportWidth);
|
|
29121
|
+
const stickyGutterClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10" : "";
|
|
29122
|
+
const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
29053
29123
|
if (grid.rowCount === 0 || grid.colCount === 0) {
|
|
29054
29124
|
return null;
|
|
29055
29125
|
}
|
|
@@ -29067,7 +29137,8 @@ function TableDataGrid({
|
|
|
29067
29137
|
"button",
|
|
29068
29138
|
{
|
|
29069
29139
|
type: "button",
|
|
29070
|
-
className: BTN
|
|
29140
|
+
className: `${BTN} inline-flex items-center justify-center`,
|
|
29141
|
+
style: touchBtnStyle,
|
|
29071
29142
|
title: t("pptx.tableDataEditor.addRowTitle"),
|
|
29072
29143
|
onClick: () => commit(appendTableElementRow(tableElement)),
|
|
29073
29144
|
children: t("pptx.tableDataEditor.addRowLabel")
|
|
@@ -29077,7 +29148,8 @@ function TableDataGrid({
|
|
|
29077
29148
|
"button",
|
|
29078
29149
|
{
|
|
29079
29150
|
type: "button",
|
|
29080
|
-
className: BTN
|
|
29151
|
+
className: `${BTN} inline-flex items-center justify-center`,
|
|
29152
|
+
style: touchBtnStyle,
|
|
29081
29153
|
disabled: !grid.canRemoveRow,
|
|
29082
29154
|
title: t("pptx.tableDataEditor.removeRowTitle"),
|
|
29083
29155
|
onClick: () => commit(removeLastTableElementRow(tableElement)),
|
|
@@ -29088,7 +29160,8 @@ function TableDataGrid({
|
|
|
29088
29160
|
"button",
|
|
29089
29161
|
{
|
|
29090
29162
|
type: "button",
|
|
29091
|
-
className: BTN
|
|
29163
|
+
className: `${BTN} inline-flex items-center justify-center`,
|
|
29164
|
+
style: touchBtnStyle,
|
|
29092
29165
|
title: t("pptx.tableDataEditor.addColumnTitle"),
|
|
29093
29166
|
onClick: () => commit(appendTableElementColumn(tableElement)),
|
|
29094
29167
|
children: t("pptx.tableDataEditor.addColumnLabel")
|
|
@@ -29098,7 +29171,8 @@ function TableDataGrid({
|
|
|
29098
29171
|
"button",
|
|
29099
29172
|
{
|
|
29100
29173
|
type: "button",
|
|
29101
|
-
className: BTN
|
|
29174
|
+
className: `${BTN} inline-flex items-center justify-center`,
|
|
29175
|
+
style: touchBtnStyle,
|
|
29102
29176
|
disabled: !grid.canRemoveColumn,
|
|
29103
29177
|
title: t("pptx.tableDataEditor.removeColumnTitle"),
|
|
29104
29178
|
onClick: () => commit(removeLastTableElementColumn(tableElement)),
|
|
@@ -29109,7 +29183,13 @@ function TableDataGrid({
|
|
|
29109
29183
|
] }),
|
|
29110
29184
|
/* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col text-[11px] w-max min-w-full", role: "grid", children: [
|
|
29111
29185
|
/* @__PURE__ */ jsxs("div", { className: "flex", role: "row", children: [
|
|
29112
|
-
/* @__PURE__ */ jsx(
|
|
29186
|
+
/* @__PURE__ */ jsx(
|
|
29187
|
+
"div",
|
|
29188
|
+
{
|
|
29189
|
+
className: `${HEADER_CELL} flex-none w-10 ${stickyGutterClass}`,
|
|
29190
|
+
"aria-hidden": "true"
|
|
29191
|
+
}
|
|
29192
|
+
),
|
|
29113
29193
|
grid.colIndices.map((colIndex) => /* @__PURE__ */ jsxs(
|
|
29114
29194
|
"div",
|
|
29115
29195
|
{
|
|
@@ -29121,7 +29201,8 @@ function TableDataGrid({
|
|
|
29121
29201
|
"button",
|
|
29122
29202
|
{
|
|
29123
29203
|
type: "button",
|
|
29124
|
-
className: REMOVE_BTN
|
|
29204
|
+
className: `${REMOVE_BTN} inline-flex items-center justify-center`,
|
|
29205
|
+
style: touchBtnStyle,
|
|
29125
29206
|
"aria-label": t("pptx.tableDataEditor.removeColumnN", {
|
|
29126
29207
|
number: colIndex + 1
|
|
29127
29208
|
}),
|
|
@@ -29136,22 +29217,30 @@ function TableDataGrid({
|
|
|
29136
29217
|
))
|
|
29137
29218
|
] }),
|
|
29138
29219
|
grid.rows.map((row) => /* @__PURE__ */ jsxs("div", { className: "flex", role: "row", children: [
|
|
29139
|
-
/* @__PURE__ */ jsxs(
|
|
29140
|
-
|
|
29141
|
-
|
|
29142
|
-
|
|
29143
|
-
|
|
29144
|
-
|
|
29145
|
-
|
|
29146
|
-
|
|
29147
|
-
|
|
29148
|
-
|
|
29149
|
-
|
|
29150
|
-
|
|
29151
|
-
|
|
29152
|
-
|
|
29153
|
-
|
|
29154
|
-
|
|
29220
|
+
/* @__PURE__ */ jsxs(
|
|
29221
|
+
"div",
|
|
29222
|
+
{
|
|
29223
|
+
className: `${HEADER_CELL} flex-none w-10 ${stickyGutterClass}`,
|
|
29224
|
+
role: "rowheader",
|
|
29225
|
+
children: [
|
|
29226
|
+
/* @__PURE__ */ jsx("span", { children: row.rowIndex + 1 }),
|
|
29227
|
+
canEdit && grid.canRemoveRow && /* @__PURE__ */ jsx(
|
|
29228
|
+
"button",
|
|
29229
|
+
{
|
|
29230
|
+
type: "button",
|
|
29231
|
+
className: `${REMOVE_BTN} inline-flex items-center justify-center`,
|
|
29232
|
+
style: touchBtnStyle,
|
|
29233
|
+
"aria-label": t("pptx.tableDataEditor.removeRowN", {
|
|
29234
|
+
number: row.rowIndex + 1
|
|
29235
|
+
}),
|
|
29236
|
+
title: t("pptx.tableDataEditor.removeRowN", { number: row.rowIndex + 1 }),
|
|
29237
|
+
onClick: () => commit(removeTableElementRow(tableElement, row.rowIndex)),
|
|
29238
|
+
children: "\xD7"
|
|
29239
|
+
}
|
|
29240
|
+
)
|
|
29241
|
+
]
|
|
29242
|
+
}
|
|
29243
|
+
),
|
|
29155
29244
|
row.cells.map((cell) => /* @__PURE__ */ jsx(
|
|
29156
29245
|
"div",
|
|
29157
29246
|
{
|
|
@@ -30008,7 +30097,7 @@ function TablePropertiesPanel({
|
|
|
30008
30097
|
disabled: !canEdit,
|
|
30009
30098
|
title: preset.label,
|
|
30010
30099
|
"aria-label": preset.label,
|
|
30011
|
-
className: "rounded border border-border hover:border-primary overflow-hidden h-10 transition-colors",
|
|
30100
|
+
className: "rounded border border-border hover:border-primary overflow-hidden h-10 max-md:h-11 transition-colors",
|
|
30012
30101
|
onClick: () => {
|
|
30013
30102
|
updateTableData({ rows: applyTableStylePreset(td, preset) });
|
|
30014
30103
|
},
|
|
@@ -30167,7 +30256,7 @@ function ElementInspectorBody({
|
|
|
30167
30256
|
onClick: handleToggleLock,
|
|
30168
30257
|
disabled: !canEdit,
|
|
30169
30258
|
title: isLocked ? t("pptx.inspector.unlock") : t("pptx.inspector.lock"),
|
|
30170
|
-
className: "p-1 rounded hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
|
|
30259
|
+
className: "p-1 rounded hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed transition-colors max-md:min-w-[44px]! max-md:min-h-[44px]! flex items-center justify-center",
|
|
30171
30260
|
"aria-pressed": isLocked,
|
|
30172
30261
|
children: isLocked ? /* @__PURE__ */ jsx(LuLock, { className: "w-3.5 h-3.5 text-amber-400" }) : /* @__PURE__ */ jsx(LuLockOpen, { className: "w-3.5 h-3.5 text-muted-foreground" })
|
|
30173
30262
|
}
|
|
@@ -30779,7 +30868,7 @@ function InspectorCommentsSection({
|
|
|
30779
30868
|
onClick: onAddComment,
|
|
30780
30869
|
disabled: !commentDraft.trim(),
|
|
30781
30870
|
className: cn(
|
|
30782
|
-
"w-full inline-flex items-center justify-center gap-1 rounded px-2 py-1 text-[11px] font-medium transition-colors",
|
|
30871
|
+
"w-full inline-flex items-center justify-center gap-1 rounded px-2 py-1 text-[11px] font-medium transition-colors max-md:min-h-[44px]!",
|
|
30783
30872
|
commentDraft.trim() ? "bg-primary hover:bg-primary/80 text-white" : "bg-muted text-muted-foreground cursor-not-allowed"
|
|
30784
30873
|
),
|
|
30785
30874
|
children: [
|
|
@@ -30870,14 +30959,18 @@ function InspectorPaneHeader({
|
|
|
30870
30959
|
onClose
|
|
30871
30960
|
}) {
|
|
30872
30961
|
const { t } = useTranslation();
|
|
30962
|
+
const { viewportWidth } = useIsMobile();
|
|
30963
|
+
const touchTargetPx = getDensePanelTouchTargetPx(viewportWidth);
|
|
30964
|
+
const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
30873
30965
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 px-3 py-2 border-b border-border", children: [
|
|
30874
30966
|
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 rounded bg-muted p-0.5", children: INSPECTOR_TABS.map(({ key, label, icon: Icon }) => /* @__PURE__ */ jsxs(
|
|
30875
30967
|
"button",
|
|
30876
30968
|
{
|
|
30877
30969
|
type: "button",
|
|
30878
30970
|
title: label,
|
|
30971
|
+
style: touchBtnStyle,
|
|
30879
30972
|
className: cn(
|
|
30880
|
-
"flex items-center gap-1 px-2 py-1 rounded text-[11px] transition-colors",
|
|
30973
|
+
"flex items-center justify-center gap-1 px-2 py-1 rounded text-[11px] transition-colors",
|
|
30881
30974
|
activeTab === key ? "bg-primary text-white" : "text-muted-foreground hover:text-foreground hover:bg-accent"
|
|
30882
30975
|
),
|
|
30883
30976
|
onClick: () => onSetActiveTab(key),
|
|
@@ -30894,7 +30987,8 @@ function InspectorPaneHeader({
|
|
|
30894
30987
|
type: "button",
|
|
30895
30988
|
onClick: onClose,
|
|
30896
30989
|
title: t("pptx.common.close"),
|
|
30897
|
-
|
|
30990
|
+
style: touchBtnStyle,
|
|
30991
|
+
className: "flex items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",
|
|
30898
30992
|
children: /* @__PURE__ */ jsx(LuX, { className: "w-4 h-4" })
|
|
30899
30993
|
}
|
|
30900
30994
|
)
|
|
@@ -31659,7 +31753,7 @@ function SlideTransitionSection({
|
|
|
31659
31753
|
onChange: (e) => onTransitionChange({
|
|
31660
31754
|
type: e.target.value
|
|
31661
31755
|
}),
|
|
31662
|
-
className: "bg-muted border border-border rounded px-2 py-1",
|
|
31756
|
+
className: "bg-muted border border-border rounded px-2 py-1 max-md:min-h-[44px]!",
|
|
31663
31757
|
children: SLIDE_TRANSITION_OPTIONS.map((option) => /* @__PURE__ */ jsx("option", { value: option.value, children: t(option.i18nKey) }, option.value))
|
|
31664
31758
|
}
|
|
31665
31759
|
)
|
|
@@ -31729,7 +31823,7 @@ function SlideTransitionSection({
|
|
|
31729
31823
|
onTransitionChange({ durationMs });
|
|
31730
31824
|
}
|
|
31731
31825
|
},
|
|
31732
|
-
className: "bg-muted border border-border rounded px-2 py-1"
|
|
31826
|
+
className: "bg-muted border border-border rounded px-2 py-1 max-md:min-h-[44px]!"
|
|
31733
31827
|
}
|
|
31734
31828
|
)
|
|
31735
31829
|
] }),
|
|
@@ -31744,7 +31838,7 @@ function SlideTransitionSection({
|
|
|
31744
31838
|
onChange: (e) => onTransitionChange({
|
|
31745
31839
|
speed: e.target.value
|
|
31746
31840
|
}),
|
|
31747
|
-
className: "bg-muted border border-border rounded px-2 py-1",
|
|
31841
|
+
className: "bg-muted border border-border rounded px-2 py-1 max-md:min-h-[44px]!",
|
|
31748
31842
|
children: TRANSITION_SPEED_OPTIONS.map((option) => /* @__PURE__ */ jsx("option", { value: option.value, children: t(option.i18nKey) }, option.value))
|
|
31749
31843
|
}
|
|
31750
31844
|
)
|
|
@@ -31760,7 +31854,7 @@ function SlideTransitionSection({
|
|
|
31760
31854
|
onChange: (e) => onTransitionChange({
|
|
31761
31855
|
morphOption: e.target.value
|
|
31762
31856
|
}),
|
|
31763
|
-
className: "bg-muted border border-border rounded px-2 py-1",
|
|
31857
|
+
className: "bg-muted border border-border rounded px-2 py-1 max-md:min-h-[44px]!",
|
|
31764
31858
|
children: TRANSITION_MORPH_OPTIONS.map((option) => /* @__PURE__ */ jsx("option", { value: option.value, children: t(option.i18nKey) }, option.value))
|
|
31765
31859
|
}
|
|
31766
31860
|
)
|
|
@@ -33920,6 +34014,10 @@ function PrintDialog({
|
|
|
33920
34014
|
}) {
|
|
33921
34015
|
const { t } = useTranslation();
|
|
33922
34016
|
const { panelStyle, handlers: dragHandlers } = useModalDismissDrag(onClose);
|
|
34017
|
+
const { viewportWidth } = useIsMobile();
|
|
34018
|
+
const touchTargetPx = getDensePanelTouchTargetPx(viewportWidth);
|
|
34019
|
+
const closeBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
34020
|
+
const footerBtnStyle = { minHeight: touchTargetPx };
|
|
33923
34021
|
const printOptionDefaults = resolveDefaultPrintSettings(useViewerOptionsContext());
|
|
33924
34022
|
const [printWhat, setPrintWhat] = useState(printOptionDefaults?.printWhat ?? "slides");
|
|
33925
34023
|
const [orientation, setOrientation] = useState("landscape");
|
|
@@ -34017,6 +34115,9 @@ function PrintDialog({
|
|
|
34017
34115
|
"div",
|
|
34018
34116
|
{
|
|
34019
34117
|
style: panelStyle,
|
|
34118
|
+
role: "dialog",
|
|
34119
|
+
"aria-modal": "true",
|
|
34120
|
+
"aria-label": t("pptx.print.title"),
|
|
34020
34121
|
className: "w-[780px] max-h-[90vh] rounded-xl border border-border bg-background shadow-2xl flex flex-col max-md:fixed max-md:inset-x-0 max-md:bottom-0 max-md:top-auto max-md:w-full max-md:max-w-none max-md:max-h-[88dvh] max-md:rounded-t-2xl max-md:rounded-b-none max-md:border-x-0 max-md:border-b-0 max-md:pb-[max(env(safe-area-inset-bottom),0px)]",
|
|
34021
34122
|
children: [
|
|
34022
34123
|
/* @__PURE__ */ jsxs(
|
|
@@ -34034,14 +34135,15 @@ function PrintDialog({
|
|
|
34034
34135
|
{
|
|
34035
34136
|
type: "button",
|
|
34036
34137
|
onClick: onClose,
|
|
34037
|
-
|
|
34138
|
+
style: closeBtnStyle,
|
|
34139
|
+
className: "p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground transition-colors inline-flex items-center justify-center",
|
|
34038
34140
|
children: /* @__PURE__ */ jsx(LuX, { className: "w-4 h-4" })
|
|
34039
34141
|
}
|
|
34040
34142
|
)
|
|
34041
34143
|
]
|
|
34042
34144
|
}
|
|
34043
34145
|
),
|
|
34044
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto px-5 py-4 flex gap-5", children: [
|
|
34146
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto px-5 py-4 flex gap-5 max-md:flex-col", children: [
|
|
34045
34147
|
/* @__PURE__ */ jsx(
|
|
34046
34148
|
PrintSettingsPanel,
|
|
34047
34149
|
{
|
|
@@ -34065,7 +34167,7 @@ function PrintDialog({
|
|
|
34065
34167
|
activeSlideIndex
|
|
34066
34168
|
}
|
|
34067
34169
|
),
|
|
34068
|
-
printWhat === "handouts" && /* @__PURE__ */ jsx("div", { className: "w-[230px] shrink-0 border-l border-border pl-4 overflow-y-auto", children: /* @__PURE__ */ jsx(
|
|
34170
|
+
printWhat === "handouts" && /* @__PURE__ */ jsx("div", { className: "w-[230px] shrink-0 border-l border-border pl-4 overflow-y-auto max-md:w-full max-md:border-l-0 max-md:border-t max-md:pl-0 max-md:pt-3", children: /* @__PURE__ */ jsx(
|
|
34069
34171
|
PrintPreview,
|
|
34070
34172
|
{
|
|
34071
34173
|
slideIndices: previewSlideIndices,
|
|
@@ -34074,7 +34176,7 @@ function PrintDialog({
|
|
|
34074
34176
|
frameSlides
|
|
34075
34177
|
}
|
|
34076
34178
|
) }),
|
|
34077
|
-
printWhat === "notes" && /* @__PURE__ */ jsx("div", { className: "w-[230px] shrink-0 border-l border-border pl-4 overflow-y-auto", children: /* @__PURE__ */ jsx(
|
|
34179
|
+
printWhat === "notes" && /* @__PURE__ */ jsx("div", { className: "w-[230px] shrink-0 border-l border-border pl-4 overflow-y-auto max-md:w-full max-md:border-l-0 max-md:border-t max-md:pl-0 max-md:pt-3", children: /* @__PURE__ */ jsx(
|
|
34078
34180
|
NotesPagePreview,
|
|
34079
34181
|
{
|
|
34080
34182
|
slideIndices: previewSlideIndices,
|
|
@@ -34094,6 +34196,7 @@ function PrintDialog({
|
|
|
34094
34196
|
{
|
|
34095
34197
|
type: "button",
|
|
34096
34198
|
onClick: onClose,
|
|
34199
|
+
style: footerBtnStyle,
|
|
34097
34200
|
className: "px-4 py-2 text-sm rounded-lg border border-border text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",
|
|
34098
34201
|
children: t("pptx.common.cancel")
|
|
34099
34202
|
}
|
|
@@ -34103,6 +34206,7 @@ function PrintDialog({
|
|
|
34103
34206
|
{
|
|
34104
34207
|
type: "button",
|
|
34105
34208
|
onClick: handlePrint,
|
|
34209
|
+
style: footerBtnStyle,
|
|
34106
34210
|
className: "px-4 py-2 text-sm rounded-lg bg-primary text-white hover:bg-primary/90 transition-colors flex items-center gap-1.5",
|
|
34107
34211
|
children: [
|
|
34108
34212
|
/* @__PURE__ */ jsx(LuPrinter, { className: "w-3.5 h-3.5" }),
|
|
@@ -34865,6 +34969,8 @@ function StartSessionForm({
|
|
|
34865
34969
|
onRetry
|
|
34866
34970
|
}) {
|
|
34867
34971
|
const { t } = useTranslation();
|
|
34972
|
+
const { viewportWidth } = useIsMobile();
|
|
34973
|
+
const tabBtnStyle = { minHeight: getDensePanelTouchTargetPx(viewportWidth) };
|
|
34868
34974
|
const inputReadOnlyClass = preconfigured ? " opacity-70 cursor-not-allowed" : "";
|
|
34869
34975
|
return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
34870
34976
|
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-1 rounded-lg bg-muted p-1", role: "tablist", children: ["create", "join"].map((candidate) => /* @__PURE__ */ jsx(
|
|
@@ -34874,6 +34980,7 @@ function StartSessionForm({
|
|
|
34874
34980
|
role: "tab",
|
|
34875
34981
|
"aria-selected": mode === candidate,
|
|
34876
34982
|
onClick: () => onModeChange(candidate),
|
|
34983
|
+
style: tabBtnStyle,
|
|
34877
34984
|
className: `rounded-md px-3 py-1.5 text-[12px] font-medium transition-colors ${mode === candidate ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"}`,
|
|
34878
34985
|
children: t(candidate === "create" ? "pptx.share.createSession" : "pptx.share.joinSession")
|
|
34879
34986
|
},
|
|
@@ -34919,7 +35026,8 @@ function StartSessionForm({
|
|
|
34919
35026
|
value: invitation,
|
|
34920
35027
|
onChange: (event) => onInvitationChange(event.target.value),
|
|
34921
35028
|
placeholder: t("pptx.share.invitationPlaceholder"),
|
|
34922
|
-
className: "w-full px-3 py-1.5 rounded border border-border bg-background text-foreground text-[13px] placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary"
|
|
35029
|
+
className: "w-full px-3 py-1.5 rounded border border-border bg-background text-foreground text-[13px] placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary",
|
|
35030
|
+
style: tabBtnStyle
|
|
34923
35031
|
}
|
|
34924
35032
|
),
|
|
34925
35033
|
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-muted-foreground", children: t("pptx.share.invitationHint") })
|
|
@@ -34935,7 +35043,8 @@ function StartSessionForm({
|
|
|
34935
35043
|
onChange: (e) => onRoomIdChange(e.target.value),
|
|
34936
35044
|
readOnly: preconfigured,
|
|
34937
35045
|
placeholder: t("pptx.share.sessionPlaceholder"),
|
|
34938
|
-
className: `w-full px-3 py-1.5 rounded border border-border bg-background text-foreground text-[13px] placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary${inputReadOnlyClass}
|
|
35046
|
+
className: `w-full px-3 py-1.5 rounded border border-border bg-background text-foreground text-[13px] placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary${inputReadOnlyClass}`,
|
|
35047
|
+
style: tabBtnStyle
|
|
34939
35048
|
}
|
|
34940
35049
|
),
|
|
34941
35050
|
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-muted-foreground", children: t("pptx.share.sessionHint") })
|
|
@@ -34952,7 +35061,8 @@ function StartSessionForm({
|
|
|
34952
35061
|
onChange: (e) => onUserNameChange(e.target.value),
|
|
34953
35062
|
readOnly: preconfigured,
|
|
34954
35063
|
placeholder: t("pptx.share.namePlaceholder"),
|
|
34955
|
-
className: `w-full px-3 py-1.5 rounded border border-border bg-background text-foreground text-[13px] placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary${inputReadOnlyClass}
|
|
35064
|
+
className: `w-full px-3 py-1.5 rounded border border-border bg-background text-foreground text-[13px] placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary${inputReadOnlyClass}`,
|
|
35065
|
+
style: tabBtnStyle
|
|
34956
35066
|
}
|
|
34957
35067
|
)
|
|
34958
35068
|
] }),
|
|
@@ -34968,7 +35078,8 @@ function StartSessionForm({
|
|
|
34968
35078
|
onChange: (e) => onServerUrlChange(e.target.value),
|
|
34969
35079
|
readOnly: preconfigured,
|
|
34970
35080
|
placeholder: t("pptx.share.serverPlaceholder"),
|
|
34971
|
-
className: `w-full px-3 py-1.5 rounded border border-border bg-background text-foreground text-[13px] placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary${inputReadOnlyClass}
|
|
35081
|
+
className: `w-full px-3 py-1.5 rounded border border-border bg-background text-foreground text-[13px] placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary${inputReadOnlyClass}`,
|
|
35082
|
+
style: tabBtnStyle
|
|
34972
35083
|
}
|
|
34973
35084
|
)
|
|
34974
35085
|
] }),
|
|
@@ -35004,6 +35115,10 @@ function ShareDialog({
|
|
|
35004
35115
|
const dialogRef = useRef(null);
|
|
35005
35116
|
const { panelStyle, handlers: dragHandlers } = useModalDismissDrag(onClose);
|
|
35006
35117
|
useModalFocus(open, dialogRef, onClose);
|
|
35118
|
+
const { viewportWidth, viewportHeight } = useIsMobile();
|
|
35119
|
+
const touchTargetPx = getDensePanelTouchTargetPx(viewportWidth);
|
|
35120
|
+
const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
35121
|
+
const stickyFooterClass = shouldStickyActionRow(viewportWidth, viewportHeight) ? "sticky bottom-0 bg-popover" : "";
|
|
35007
35122
|
useEffect(() => {
|
|
35008
35123
|
if (activeCollaboration) {
|
|
35009
35124
|
setRoomId(activeCollaboration.roomId);
|
|
@@ -35068,7 +35183,8 @@ function ShareDialog({
|
|
|
35068
35183
|
{
|
|
35069
35184
|
type: "button",
|
|
35070
35185
|
onClick: onClose,
|
|
35071
|
-
|
|
35186
|
+
style: touchBtnStyle,
|
|
35187
|
+
className: "text-muted-foreground hover:text-foreground text-lg leading-none inline-flex items-center justify-center",
|
|
35072
35188
|
"aria-label": t("pptx.share.close"),
|
|
35073
35189
|
children: "\xD7"
|
|
35074
35190
|
}
|
|
@@ -35103,27 +35219,35 @@ function ShareDialog({
|
|
|
35103
35219
|
onRetry: collab?.retry
|
|
35104
35220
|
}
|
|
35105
35221
|
) }),
|
|
35106
|
-
/* @__PURE__ */ jsxs(
|
|
35107
|
-
|
|
35108
|
-
|
|
35109
|
-
{
|
|
35110
|
-
|
|
35111
|
-
|
|
35112
|
-
|
|
35113
|
-
|
|
35114
|
-
|
|
35115
|
-
|
|
35116
|
-
|
|
35117
|
-
|
|
35118
|
-
|
|
35119
|
-
|
|
35120
|
-
|
|
35121
|
-
|
|
35122
|
-
|
|
35123
|
-
|
|
35124
|
-
|
|
35125
|
-
|
|
35126
|
-
|
|
35222
|
+
/* @__PURE__ */ jsxs(
|
|
35223
|
+
"div",
|
|
35224
|
+
{
|
|
35225
|
+
className: `flex justify-end gap-2 px-5 py-3 border-t border-border ${stickyFooterClass}`,
|
|
35226
|
+
children: [
|
|
35227
|
+
/* @__PURE__ */ jsx(
|
|
35228
|
+
"button",
|
|
35229
|
+
{
|
|
35230
|
+
type: "button",
|
|
35231
|
+
onClick: onClose,
|
|
35232
|
+
style: touchBtnStyle,
|
|
35233
|
+
className: "px-3 py-1.5 rounded bg-muted hover:bg-accent text-[12px] text-foreground transition-colors inline-flex items-center justify-center",
|
|
35234
|
+
children: isActive ? t("pptx.share.close") : t("pptx.share.cancel")
|
|
35235
|
+
}
|
|
35236
|
+
),
|
|
35237
|
+
!isActive && /* @__PURE__ */ jsx(
|
|
35238
|
+
"button",
|
|
35239
|
+
{
|
|
35240
|
+
type: "button",
|
|
35241
|
+
disabled: !canStart,
|
|
35242
|
+
onClick: handleStartSharing,
|
|
35243
|
+
style: touchBtnStyle,
|
|
35244
|
+
className: "px-3 py-1.5 rounded bg-primary hover:bg-primary/90 text-[12px] text-white transition-colors disabled:opacity-40 disabled:cursor-not-allowed inline-flex items-center justify-center",
|
|
35245
|
+
children: t(mode === "join" ? "pptx.share.joinSession" : "pptx.share.startSharing")
|
|
35246
|
+
}
|
|
35247
|
+
)
|
|
35248
|
+
]
|
|
35249
|
+
}
|
|
35250
|
+
)
|
|
35127
35251
|
]
|
|
35128
35252
|
}
|
|
35129
35253
|
)
|
|
@@ -37913,7 +38037,7 @@ function useTableStyleMapHandlers(input) {
|
|
|
37913
38037
|
var AiChatPanel = lazy(async () => {
|
|
37914
38038
|
const [{ useChat }, { default: Panel }] = await Promise.all([
|
|
37915
38039
|
import('@ai-sdk/react'),
|
|
37916
|
-
import('./AiChatPanel-
|
|
38040
|
+
import('./AiChatPanel-NJBUCO4X.mjs')
|
|
37917
38041
|
]);
|
|
37918
38042
|
function BoundAiChatPanel(props) {
|
|
37919
38043
|
return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
|
|
@@ -39953,12 +40077,15 @@ function ControlRow({
|
|
|
39953
40077
|
onOptionChange
|
|
39954
40078
|
}) {
|
|
39955
40079
|
const { t } = useTranslation();
|
|
40080
|
+
const { viewportWidth } = useIsMobile();
|
|
40081
|
+
const fieldMinHeight = getDensePanelTouchTargetPx(viewportWidth);
|
|
39956
40082
|
const value = readValue(options, control);
|
|
39957
40083
|
const label = t(control.labelKey);
|
|
39958
40084
|
const info = control.infoKey ? /* @__PURE__ */ jsx(InfoTip, { text: t(control.infoKey) }) : null;
|
|
39959
40085
|
const rowClass = cn("flex items-center justify-between gap-3 py-1.5", control.indent && "pl-6");
|
|
40086
|
+
const rowStyle = { minHeight: fieldMinHeight };
|
|
39960
40087
|
if (control.kind === "toggle") {
|
|
39961
|
-
return /* @__PURE__ */ jsxs("label", { className: cn(rowClass, "cursor-pointer select-none"), children: [
|
|
40088
|
+
return /* @__PURE__ */ jsxs("label", { className: cn(rowClass, "cursor-pointer select-none"), style: rowStyle, children: [
|
|
39962
40089
|
/* @__PURE__ */ jsxs("span", { className: "text-sm text-foreground", children: [
|
|
39963
40090
|
label,
|
|
39964
40091
|
info
|
|
@@ -39975,7 +40102,7 @@ function ControlRow({
|
|
|
39975
40102
|
] });
|
|
39976
40103
|
}
|
|
39977
40104
|
if (control.kind === "select") {
|
|
39978
|
-
return /* @__PURE__ */ jsxs("div", { className: rowClass, children: [
|
|
40105
|
+
return /* @__PURE__ */ jsxs("div", { className: rowClass, style: rowStyle, children: [
|
|
39979
40106
|
/* @__PURE__ */ jsxs("span", { className: "text-sm text-foreground", children: [
|
|
39980
40107
|
label,
|
|
39981
40108
|
info
|
|
@@ -39984,6 +40111,7 @@ function ControlRow({
|
|
|
39984
40111
|
"select",
|
|
39985
40112
|
{
|
|
39986
40113
|
"aria-label": label,
|
|
40114
|
+
style: { minHeight: fieldMinHeight },
|
|
39987
40115
|
className: "max-w-[55%] rounded border border-border bg-background px-2 py-1 text-xs text-foreground",
|
|
39988
40116
|
value: typeof value === "string" ? value : "",
|
|
39989
40117
|
onChange: (event) => onOptionChange(control.group, control.key, event.target.value),
|
|
@@ -39993,7 +40121,7 @@ function ControlRow({
|
|
|
39993
40121
|
] });
|
|
39994
40122
|
}
|
|
39995
40123
|
if (control.kind === "number") {
|
|
39996
|
-
return /* @__PURE__ */ jsxs("div", { className: rowClass, children: [
|
|
40124
|
+
return /* @__PURE__ */ jsxs("div", { className: rowClass, style: rowStyle, children: [
|
|
39997
40125
|
/* @__PURE__ */ jsxs("span", { className: "text-sm text-foreground", children: [
|
|
39998
40126
|
label,
|
|
39999
40127
|
info
|
|
@@ -40004,6 +40132,7 @@ function ControlRow({
|
|
|
40004
40132
|
{
|
|
40005
40133
|
type: "number",
|
|
40006
40134
|
"aria-label": label,
|
|
40135
|
+
style: { minHeight: fieldMinHeight },
|
|
40007
40136
|
className: "w-20 rounded border border-border bg-background px-2 py-1 text-right text-xs text-foreground",
|
|
40008
40137
|
min: control.min,
|
|
40009
40138
|
max: control.max,
|
|
@@ -40021,7 +40150,7 @@ function ControlRow({
|
|
|
40021
40150
|
] })
|
|
40022
40151
|
] });
|
|
40023
40152
|
}
|
|
40024
|
-
return /* @__PURE__ */ jsxs("div", { className: rowClass, children: [
|
|
40153
|
+
return /* @__PURE__ */ jsxs("div", { className: rowClass, style: rowStyle, children: [
|
|
40025
40154
|
/* @__PURE__ */ jsxs("span", { className: "text-sm text-foreground", children: [
|
|
40026
40155
|
label,
|
|
40027
40156
|
info
|
|
@@ -40031,6 +40160,7 @@ function ControlRow({
|
|
|
40031
40160
|
{
|
|
40032
40161
|
type: "text",
|
|
40033
40162
|
"aria-label": label,
|
|
40163
|
+
style: { minHeight: fieldMinHeight },
|
|
40034
40164
|
className: "w-48 max-w-[55%] rounded border border-border bg-background px-2 py-1 text-xs text-foreground",
|
|
40035
40165
|
maxLength: control.maxLength,
|
|
40036
40166
|
value: typeof value === "string" ? value : "",
|
|
@@ -40542,6 +40672,12 @@ function SettingsDialog({
|
|
|
40542
40672
|
const [activeTabId, setActiveTabId] = useState("general");
|
|
40543
40673
|
const { t } = useTranslation();
|
|
40544
40674
|
const { panelStyle, handlers: dragHandlers } = useModalDismissDrag(onClose);
|
|
40675
|
+
const { viewportWidth, viewportHeight } = useIsMobile();
|
|
40676
|
+
const touchTargetPx = getDensePanelTouchTargetPx(viewportWidth);
|
|
40677
|
+
const navBtnStyle = { minHeight: touchTargetPx, minWidth: touchTargetPx };
|
|
40678
|
+
const closeBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
|
|
40679
|
+
const footerBtnStyle = { minHeight: touchTargetPx };
|
|
40680
|
+
const stickyFooterClass = shouldStickyActionRow(viewportWidth, viewportHeight) ? "sticky bottom-0 bg-popover" : "";
|
|
40545
40681
|
const snapshotRef = useRef(null);
|
|
40546
40682
|
const wasOpenRef = useRef(false);
|
|
40547
40683
|
useEffect(() => {
|
|
@@ -40617,7 +40753,8 @@ function SettingsDialog({
|
|
|
40617
40753
|
{
|
|
40618
40754
|
type: "button",
|
|
40619
40755
|
onClick: onClose,
|
|
40620
|
-
|
|
40756
|
+
style: closeBtnStyle,
|
|
40757
|
+
className: "rounded p-1 transition-colors hover:bg-accent inline-flex items-center justify-center",
|
|
40621
40758
|
"aria-label": t("pptx.settings.close"),
|
|
40622
40759
|
children: /* @__PURE__ */ jsx(LuX, { className: "h-4 w-4 text-muted-foreground" })
|
|
40623
40760
|
}
|
|
@@ -40638,8 +40775,9 @@ function SettingsDialog({
|
|
|
40638
40775
|
type: "button",
|
|
40639
40776
|
onClick: () => setActiveTabId(tab.id),
|
|
40640
40777
|
"aria-current": activeTabId === tab.id,
|
|
40778
|
+
style: navBtnStyle,
|
|
40641
40779
|
className: cn(
|
|
40642
|
-
"
|
|
40780
|
+
"flex w-full items-center whitespace-nowrap rounded px-3 py-2 text-left text-sm transition-colors max-md:w-auto",
|
|
40643
40781
|
activeTabId === tab.id ? "bg-primary/10 font-medium text-primary" : "text-foreground hover:bg-accent"
|
|
40644
40782
|
),
|
|
40645
40783
|
children: t(tab.labelKey)
|
|
@@ -40652,8 +40790,9 @@ function SettingsDialog({
|
|
|
40652
40790
|
type: "button",
|
|
40653
40791
|
onClick: () => setActiveTabId(AI_TAB_ID),
|
|
40654
40792
|
"aria-current": activeTabId === AI_TAB_ID,
|
|
40793
|
+
style: navBtnStyle,
|
|
40655
40794
|
className: cn(
|
|
40656
|
-
"
|
|
40795
|
+
"flex w-full items-center whitespace-nowrap rounded px-3 py-2 text-left text-sm transition-colors max-md:w-auto",
|
|
40657
40796
|
activeTabId === AI_TAB_ID ? "bg-primary/10 font-medium text-primary" : "text-foreground hover:bg-accent"
|
|
40658
40797
|
),
|
|
40659
40798
|
children: t("pptx.ai.settingsSectionTitle")
|
|
@@ -40746,37 +40885,46 @@ function SettingsDialog({
|
|
|
40746
40885
|
}
|
|
40747
40886
|
) })
|
|
40748
40887
|
] }),
|
|
40749
|
-
/* @__PURE__ */ jsxs(
|
|
40750
|
-
|
|
40751
|
-
|
|
40752
|
-
{
|
|
40753
|
-
|
|
40754
|
-
|
|
40755
|
-
|
|
40756
|
-
|
|
40757
|
-
|
|
40758
|
-
|
|
40759
|
-
|
|
40760
|
-
|
|
40761
|
-
|
|
40762
|
-
|
|
40763
|
-
|
|
40764
|
-
|
|
40765
|
-
|
|
40766
|
-
|
|
40767
|
-
|
|
40768
|
-
|
|
40769
|
-
|
|
40770
|
-
|
|
40771
|
-
|
|
40772
|
-
|
|
40773
|
-
|
|
40774
|
-
|
|
40775
|
-
|
|
40776
|
-
|
|
40777
|
-
|
|
40778
|
-
|
|
40779
|
-
|
|
40888
|
+
/* @__PURE__ */ jsxs(
|
|
40889
|
+
"div",
|
|
40890
|
+
{
|
|
40891
|
+
className: `flex items-center justify-between gap-2 border-t border-border/60 px-5 py-3 ${stickyFooterClass}`,
|
|
40892
|
+
children: [
|
|
40893
|
+
/* @__PURE__ */ jsx(
|
|
40894
|
+
"button",
|
|
40895
|
+
{
|
|
40896
|
+
type: "button",
|
|
40897
|
+
onClick: () => onResetOptions(),
|
|
40898
|
+
style: footerBtnStyle,
|
|
40899
|
+
className: "rounded border border-border px-3 py-1.5 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
40900
|
+
children: t("pptx.options.resetAll")
|
|
40901
|
+
}
|
|
40902
|
+
),
|
|
40903
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
40904
|
+
/* @__PURE__ */ jsx(
|
|
40905
|
+
"button",
|
|
40906
|
+
{
|
|
40907
|
+
type: "button",
|
|
40908
|
+
onClick: handleCancel,
|
|
40909
|
+
style: footerBtnStyle,
|
|
40910
|
+
className: "rounded border border-border px-4 py-1.5 text-xs text-foreground transition-colors hover:bg-accent",
|
|
40911
|
+
children: t("pptx.common.cancel")
|
|
40912
|
+
}
|
|
40913
|
+
),
|
|
40914
|
+
/* @__PURE__ */ jsx(
|
|
40915
|
+
"button",
|
|
40916
|
+
{
|
|
40917
|
+
type: "button",
|
|
40918
|
+
onClick: onClose,
|
|
40919
|
+
style: footerBtnStyle,
|
|
40920
|
+
className: "rounded bg-primary px-4 py-1.5 text-xs font-medium text-primary-foreground transition-colors hover:bg-primary/90",
|
|
40921
|
+
children: t("pptx.common.ok")
|
|
40922
|
+
}
|
|
40923
|
+
)
|
|
40924
|
+
] })
|
|
40925
|
+
]
|
|
40926
|
+
}
|
|
40927
|
+
)
|
|
40780
40928
|
]
|
|
40781
40929
|
}
|
|
40782
40930
|
)
|
|
@@ -41695,6 +41843,10 @@ var PowerPointViewer = forwardRef(
|
|
|
41695
41843
|
// instead of silently downgrading it; the explicit ppi presets still
|
|
41696
41844
|
// scale proportionally from that baseline. Mirrors the other bindings.
|
|
41697
41845
|
imageExportScale: 2 * resolveImageResolutionScale(viewerOptions),
|
|
41846
|
+
// GIF/video export's shared `resolveExportCaptureDecision` derives its
|
|
41847
|
+
// own baseline from this raw multiplier instead of reusing
|
|
41848
|
+
// `imageExportScale` outright; see `useExportMediaHandlers.ts`.
|
|
41849
|
+
imageResolutionScale: resolveImageResolutionScale(viewerOptions),
|
|
41698
41850
|
mode,
|
|
41699
41851
|
slides,
|
|
41700
41852
|
activeSlide,
|