Package Overview

August 24, 2026 · View on GitHub

PPTKit is a TypeScript monorepo organized by cohesive responsibility. Public authoring semantics flow from Core through Layout into format-specific exporters.

Current packages

PackagePublic entry pointsResponsibility
@pptkit/corepackage rootMethod-managed authoring model, assets, themes, layouts, validation, and Canonical IR v2.
@pptkit/layoutpackage rootDetached geometric resolution over authoring or normalized documents.
@pptkit/pptx-exporterpackage root, /nodeEditable PPTX generation, asset loading, OOXML packaging, and Node file output.
@pptkit/svg-rendererpackage rootModern-browser SVG preview generation over resolved Layout state.
@pptkit/clipackage root/binThin command orchestration; presentation-authoring commands are not stable yet.

Data flow

application


@pptkit/core authoring state
    │ validate + normalize

Canonical Presentation IR v2
    │ resolve

@pptkit/layout result
    │ output transform
    ├───────────────┐
    ▼               ▼
@pptkit/pptx-exporter   @pptkit/svg-renderer
    ▼               ▼
  .pptx        per-slide SVG preview

The exporter orchestrates normalization and layout for convenience, so ordinary callers can pass a PresentationDocument directly to generatePptx() or writePptx().

Planned packages

  • @pptkit/pptx-parser — package-aware PPTX parsing with explicit editable, preserved, fallback, and unsupported tiers.
  • @pptkit/svg-parser — SVG ingestion into format-independent visual structures.

These packages are roadmap direction and have no public API in the current repository.

Design rules

  • Core contains no filesystem, network, ZIP, XML, or relationship behavior.
  • Layout contains no file output or OOXML serialization.
  • Exporters consume normalized/layout contracts and do not own authoring defaults.
  • Other packages are imported through public exports rather than private source paths.
  • New capabilities ship as vertical slices across the owning packages, tests, examples, and documentation.

See Package Boundaries for contributor-level dependency rules.