Skip to content

Complete Composables Reference ​

This is the complete list referenced from the Composables page: every composable that composes PowerPointViewer.vue internally (directly, or via a wiring composable used by a child component), grouped by concern. For the small curated subset that has a semver-stable public API, see Composables > Public composables instead.

Internal building blocks

All of the composables below are importable from pptx-vue-viewer/internals, but the name is literal: they are not covered by semver, so signatures, behavior, and existence can change without a major bump. Reach for this entry only when the curated pptx-vue-viewer/viewer export and the public props/defineExpose API genuinely can't do what you need. Pin an exact version if you depend on it.

ts
import { useEditorHistory, useAlignGroup } from 'pptx-vue-viewer/internals';

Core state & lifecycle ​

ComposableConcern
useLoadContentParses the PPTX buffer on load via PptxHandler.
useAutosaveDebounced autosave timer, dirty tracking, and status.
useDocumentStatisticsWord/character/slide/note counts for the Document Properties dialog.
useDocumentPropertiesDialogCore / custom / app document-properties dialog state.
useMasterViewStateSlide / notes / handout master view state.
useViewerSettingsDialogViewer settings dialog (spell check, grid, etc.) state.
useVersionHistoryNamed, restorable in-memory slide snapshots.
useVersionHistoryWiringWires version history + the compare panel into the component.

Editing & history ​

ComposableConcern
useEditorHistoryUndo/redo snapshot stack, aware of the template (master/layout) element layer.
useEditorOperationsElement create/update/delete/duplicate primitives.
useEditorKeyboardConfig-driven keyboard-shortcut registry + dispatch.
useElementDragMove / resize / rotate / adjust, plus snap & alignment guides.
useElementInsertionShape / image / text box / table / chart insertion.
useMultiSelectOpsDelete / duplicate / bring-forward / send-backward for the selection.
useAlignGroupAlign / distribute / group / ungroup.
useSlideOperationsAdd / delete / duplicate / reorder slides.
useSlideMutationsNotes / hidden-flag / transition / animation mutations on a slide.
useSectionOperationsSlide-rail section (grouping) create/rename/delete/reorder.
useThemeEditingApply/edit the document's PowerPoint theme + palette.
useFindReplaceFind & replace across slide text.
useFormatPainterCopy formatting from one element and apply it to another.
useInlineEditingInline text and table-cell edit entry, commit, and cancel.
useInkDrawingFreehand ink stroke drawing and erase.
useChartEditingChart axis-title, gridline, marker, and series style editing.
useColorChangeImageImage "recolor" (clrChange) effect editing (use-color-change-image.ts).
useModel3dSceneInteractive GLB/GLTF 3D model viewer scene.

SmartArt editing ​

ComposableConcern
useSmartArtEditingSmartArt node/layout/color/style editing operations.
useSmartArtFocusSmartArt node keyboard focus and navigation.
useSmartArtHoverRectHover-highlight rectangle for a SmartArt node.
useSmartArtNodeEditContextProvide/inject context for inline SmartArt node text/fill editing.
useSmartArtInlineEditStateInline SmartArt node editor open/close state (smartart-inline-edit.ts).
useSmartArt3DReads the smartArt3D opt-in flag via inject (smart-art-3d.ts).

Tables ​

ComposableConcern
useTableCellEditingContextProvide/inject context for inline table-cell text editing.
useTableCellSelectionTable cell range selection + column/row resize (table-selection.ts).

Canvas interaction ​

ComposableConcern
useContextMenuRight-click / long-press element context menu.
useIsMobileDevice/viewport classification (mobile/tablet/orientation).
useTouchGesturesPinch-zoom, pan, and long-press gesture recognition.
useKeyboardInsetsAdjusts layout for the on-screen keyboard (mobile).
useKeyboardShortcutsHotkey catalog, grouping, and match resolution.
useSheetDismissDragSwipe-to-dismiss for bottom sheets (mobile).
useToolbarAutoHideMouse-idle auto-hide for the floating presentation toolbar.
useDebouncedCallbackGeneric debounced-callback utility.
useSelectionGeneric reactive selected-id-set helper (single/additive/toggle/clear).

Ribbon / toolbar ​

ComposableConcern
useRibbonPropsComposes the full Office-ribbon RibbonProps contract.
useRibbonActionsRibbon action handlers (text style, flip, move-to-edge, align).
useRibbonUiStateRibbon open/collapsed/section and drawing-tool UI state.

Export, print & I/O ​

ComposableConcern
useExportPNG / PDF export pipeline (html2canvas-pro + jspdf).
useExportProgressExport progress reporting and cancellation.
useExportWiringWires export, print, and media export into the component.
useMediaExportAnimated GIF and WebM video slide export.
usePrintPrint dialog state and the rasterised print-window flow.

Dialogs ​

ComposableConcern
useInsertElementDialogsInsert SmartArt / equation dialog state and edit-entry routing.
useHeaderFooterDialogHeader/footer dialog state.
usePasswordProtectionPassword-protection dialog and presentation password state.
useCustomShowsCustom show create/rename/delete CRUD.
useCustomShowsWiringWires custom shows into the component.
useSlideShowSettingsSet Up Slide Show dialog and the subtitles toggle.
useSignaturesDigital-signature verification and overall status.
useSignatureWorkflowSignatures panel and signature-stripped warning wiring.
useFontEmbeddingFont-embedding dialog and used-font-family detection.
useSelectionPaneWiringView > Selection Pane wiring (select, toggle visibility, reorder).

Comments ​

ComposableConcern
useCommentsComment thread state and CRUD.
useCommentsWiringWires comments into the component.

Presentation mode ​

ComposableConcern
usePresentationModeWiringSlideshow navigation, wired into the component (top-level composer).
usePresentationAnnotationsPen / highlighter / laser-pointer annotations while presenting.
useRehearseTimingsRecords per-slide timings during a rehearsal pass.

Slide-transition helpers ​

pptx-viewer-shared (the framework-agnostic logic every binding bundles) is a private, unpublished workspace package: it is never on npm, so code outside this monorepo cannot import from it directly. A host embedding its own presentation stage still needs the transition resolver/keyframes, so the whole surface is re-exported here (from ./viewer/composables/slide-transition-css) instead:

ExportConcern
resolveSlideTransition / resolveTransitionDurationMsResolve a PptxSlideTransition to CSS animation shorthands, and its effective duration (ms).
getSlideTransitionAnimations / getCinematicTransitionAnimations / getP14TransitionAnimationsThe classic, Office 2013+ cinematic, and Office 2010 exotic/3-D transition family resolvers.
SLIDE_TRANSITION_KEYFRAMES (alias SLIDE_TRANSITION_KEYFRAMES_CSS), CINEMATIC_TRANSITION_KEYFRAMES, P14_TRANSITION_KEYFRAMES_ALLThe @keyframes blocks the resolved animation names reference.
resolveDirection / resolveDirection8 / resolveOrientation / resolveWheelSpokeCountNormalize an OOXML dir/orient/spokes token.
RANDOM_ELIGIBLE_TYPES, INSTANT, DEFAULT_TRANSITION_DURATION_MS, DEFAULT_MORPH_DURATION_MS, TRANSITION_SPEED_DURATION_MS, EASE, WHEEL_SPOKE_COUNTSSupporting constants used by the resolvers above.
PresentationTransitionOverlay, MorphExtraLayers, FragmentedTransitionLayer (components), useMorphTransitionOverlayThe transition overlay component itself and its Morph-plan composable.

Collaboration ​

See Collaboration for the prop-driven flow. The full internal set:

ComposableConcern
useCollaborationYjs CRDT session lifecycle: start/stop, presence, cursors, elected-writer write-back.
useCollaborationWiringShare/Broadcast dialog state, prop-driven auto-start/stop, cursor/selection publishing.

Accessibility ​

ComposableConcern
useAccessibilityAccessibility checker (alt text, contrast, reading order, etc.).

This list is generated from packages/vue/src/viewer/composables/**/*.ts (files that export a use*() composable function) and re-exported in full from pptx-vue-viewer/internals. Files that only export pure helper functions, provide/inject keys, or constants (no use*() function) are internal implementation detail and are not part of this surface. If you add or rename a composable, update this page in the same change.

RasterizeSlide

useExport, useMediaExport, and usePrint each declare an identical RasterizeSlide type ((index: number) => Promise<HTMLCanvasElement>). To avoid an ambiguous re-export, only useExport's copy is re-exported from pptx-vue-viewer/internals; import the others directly from their source files if you need the type by that exact name.

Released under the Apache-2.0 License.