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.

No compatibility guarantees

All of the composables below are importable from pptx-vue-viewer/composables-unstable, but the name is literal: signatures, behavior, and existence can change in any release, including a patch release, without a deprecation period. 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/composables-unstable';

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.

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/composables-unstable. 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/composables-unstable; import the others directly from their source files if you need the type by that exact name.

Released under the Apache-2.0 License.