Skip to content

Support and Nori parity ​

The reference baseline is byfungsi/nori at e9f0fd6. The goal is Nori's useful library architecture adapted to presentations, with semantic authoring and agents as the primary workflow. Spreadsheet-specific features do not map to slide features.

Nori capabilityLipat equivalent
Versioned canonical JSON and boundary validationDeckDocument source and SlideScene output, validated in Rust
Headless core and portable contractsNo DOM/React/file/network assumptions in model/core/parser contracts
XLSX byte import/exportIndependent PPTX byte import/export
CSV authoring/import convenienceMarkdown slide authoring and TypeScript slide presets
Cell edits and atomic batchesStable-ID node, layout, style, asset and slide operations
Bounded undo/redo and subscriptionsImmutable history, revisions, optimistic edit checks and subscriptions
Selection and dimension interactionsNode selection, drag/resize, keyboard nudges and inspector
Composable React viewsProvider/hooks, tabs, canvas, inspector, history and diagnostics
Read-only attachment previewLocal-navigation DeckPreview and separate DeckPlayer
Strict/headless checks and packed consumerEquivalent package, declaration, isolation and SSR checks
Documentation and agent-readable exportsVitePress guides, native-generated JSON schemas, llms exports
Browser playgroundReal WASM demo with imports, editing, agent edits, playback and exports
Formula evaluation and pivotsNo direct slide equivalent; semantic layout compilation and diagnostics are presentation-specific capabilities
WASMAdded: real Rust/WASM validation, editing, layout and PPTX translation

Current support ​

AreaImplementedBoundary
CreationJSON, TypeScript presets, Markdown; stack/row/grid/canvas; themes, rich text, images, basic shapes, lists, tables, charts, code and 30 full-deck templatesNo arbitrary HTML/CSS or automatic design generation
EditingAtomic operations, stable IDs, expected revisions, insert/delete/move nodes and slides, notes, theme and assetsSnapshot history is O(document size); no collaborative CRDT
LayoutDeterministic flow, explicit frames, wrapping, font metrics, node-specific overflow/bounds diagnosticsApproximate fallback fonts; no complex text shaping, auto font fitting or complete rich-run measurement
PPTX textText/runs, font family/size, bold/italic/underline, basic paragraph alignment, bullets as textAdvanced paragraph spacing, full text inheritance, font embedding and text effects are not retained
PPTX shapesRect/roundRect/ellipse/line, direct fill/stroke, element rotation, simple group scale/translationCustom geometry and complex group rotation/flips are approximate/omitted with warnings
ImagesEmbedded PNG/JPEG/GIF/WebP/static SVG, HTTP(S) URL sources, host-controlled offline embedding, alternative text, scene fit modesLinked images depend on client/network policy; offline browser embedding needs CORS; contain/cover export uses intrinsic dimensions; arbitrary asymmetric crop metadata is warned/flattened
ChartsSix editable 2D category kinds, SVG preview, native DrawingML and embedded XLSXComplete cached values required on import; unsupported 3D/combined/sparse/percent-stacked/logarithmic charts reported; formatting uses defaults
Templates60 categorized six-slide decks with native editable text, shapes, charts and embedded photographySample content is illustrative; fonts depend on host metrics and installation
TablesRectangular string cells with a header and simple grid preview/exportNo merged cells, full table styles, per-cell formatting or complete multiline layout
SlidesRelationship ordering, hidden state, title, background, notes, placeholder geometry and decorative master/layout shapesNo full master/layout editing or arbitrary source package preservation
PresentationLocal playback, incremental steps, built-in browser/native entrances and optional Motion, notes, HTML keyboard/print flow, reveal.js markup, vertical sectionsNative PPTX entrances, steps and delays are mapped; easing is approximate; standalone HTML/reveal retain steps only; transitions and arbitrary timelines are unsupported; vertical grouping is used by the reveal.js adapter, while built-in playback is linear
AgentFive framework-neutral tools, generated schemas, compact inspection and revision conflictsNo provider SDK, model execution or MCP server bundled
PlatformsNative Rust, actual WASM in Node/browser, React SSR, ESM declarations, precompiled Worker WASMworkerd verified locally; Expo development builds with an optional Rust native add-on; no CommonJS build
ExportCanonical PPTX, HTML (self-contained after image embedding), SVG, JSON; browser print CSSPDF generation belongs to the browser host; no PDF engine in WASM

Charts, SmartArt, OLE, macros, media, encryption, legacy .ppt, arbitrary gradients/effects, arbitrary original animations and lossless arbitrary-PPTX rewriting are outside the current version. Detected unsupported graphics/media/timing generate warnings. Features outside the documented subset may still be ignored. WebP support varies in external PowerPoint applications.

Immutable scene-only React previews/players and embedded-image-only rendering are available without an authoring runtime. Hosts can lower native parsing/compilation resource limits; these do not replace host body admission or runtime CPU/memory isolation.

The built-in web and native editors cover Lipat’s documented authoring subset, including drag/touch geometry, host-owned Save and image processing callbacks, rich-text runs and portable animation settings. They do not add arbitrary PowerPoint timelines, transitions, master editing or unsupported content types. See editor and React Native.