Skip to content

pptx-viewer-core ​

Release notes for pptx-viewer-core on npm, generated from Conventional Commits by the release pipeline.

4.13.4 - 2026-10-08 ​

Documentation ​

  • Refresh the readmes with webp images and the office suite (6a800d0)

4.13.3 - 2026-10-08 ​

4.13.2 - 2026-10-07 ​

4.13.1 - 2026-10-07 ​

4.13.0 - 2026-10-07 ​

Features ​

  • shared: Offer PowerPoint's built-in SmartArt layouts in every binding (29100c4)

4.12.0 - 2026-10-06 ​

Features ​

  • pptx: Forward the viewer's duplicated chart and theme helpers (c22b276)

Documentation ​

  • Bring the pptx docs and agent guide up to date with the move (8cc3f5e)

Build & CI ​

  • deps: Adopt ooxml-ui 0.29.1 and ooxml-core 0.21.1 (56e1979)
  • release: Publish the pptx viewer packages from this repository (21e790f)

Chores ​

  • viewers: Import the pptx-viewer repository with its history (dde62be)

Changelog ​

All notable changes to this project are documented here. This file is generated from Conventional Commits by git-cliff; do not edit it by hand. A release listed with no entries carried no Conventional Commit in this package's scope: scripts/release-plan.mjs re-releases a package whenever any of its files change, not only on conventional ones.

4.11.2 - 2026-10-05 ​

Build & CI ​

  • deps: Adopt ooxml-core 0.20.0 and ooxml-ui 0.28.0 (by @ChristopherVR) (3f52fa1)

4.11.1 - 2026-10-04 ​

Dependencies ​

  • deps: Update every dependency to its latest version (by @ChristopherVR) (7212b14)

4.11.0 - 2026-10-03 ​

Features ​

  • core: Reuse shared ooxml chart text and geometry APIs (by @ChristopherVR) (7a27232)

4.10.0 - 2026-10-03 ​

Features ​

  • core: Reuse shared office equation converters (by @ChristopherVR) (303312a)

4.9.4 - 2026-10-02 ​

Build & CI ​

  • core: Depend on the unscoped ooxml-core package (by @ChristopherVR) (5ae6159)

4.9.3 - 2026-10-01 ​

Refactor ​

  • core: Make pptx-viewer-core a thin entry point over @christophervr/ooxml-core/pptx (by @ChristopherVR) (caa5172)

Build & CI ​

  • Build against ooxml-core, retarget scripts and docs at the moved engine (by @ChristopherVR) (9b5146d)
  • Consume the published @christophervr/ooxml-core ^0.1.0 (by @ChristopherVR) (df84fe3)

4.9.2 - 2026-10-01 ​

Bug Fixes ​

  • core: Preserve SmartArt quick styles across save and reload (by @ChristopherVR) (b49b3fa)

4.9.1 - 2026-09-30 ​

Bug Fixes ​

  • core: Preserve selected layouts and template break order (by @ChristopherVR) (6b5af9b)

4.9.0 - 2026-09-29 ​

Features ​

  • core: Write every used slide master to legacy .ppt export (by @claude) (e629000)

Dependencies ​

  • deps: Update @christophervr/ole2 to 0.3.0 (by @claude) (483e932)

4.8.0 - 2026-09-29 ​

Features ​

  • core: Parse camera, transform and lights of 3D models (by @claude) (c8d2a48)

Bug Fixes ​

  • core: Compress GIF and TIFF pictures written to legacy .ppt (by @claude) (aa2dbde)
  • core: Keep empty blip extLst and showWhenStopped=1 on save (by @claude) (bbe50b5)

4.7.2 - 2026-09-26 ​

Refactor ​

  • core: Share legacy Office codecs through ole2 (by @ChristopherVR) (375d9a7)
  • core: Consume shared PPT writer and legacy Excel codecs (by @ChristopherVR) (439460f)

4.7.1 - 2026-09-26 ​

Bug Fixes ​

  • core: Apply a:tint and a:shade in linear light (by @claude) (edaa544)

Testing ​

  • core: Expect linear-light tint and shade results (by @claude) (025ce79)

4.7.0 - 2026-09-26 ​

Features ​

  • core: Style regenerated SmartArt shapes by their own style label (by @claude) (67ea2fb)

Bug Fixes ​

  • core: Draw a merged SmartArt text node's labels in its own colour (by @claude) (7e6232d)

4.6.0 - 2026-09-25 ​

Features ​

  • core: Write the slide master's placeholders and theme into .ppt (by @ChristopherVR) (95b2e26)
  • core: Keep a text reflection's end position and direction (by @ChristopherVR) (afb807d)

Bug Fixes ​

  • core: Keep paragraph markup on a rewritten slide (by @ChristopherVR) (ff79c00)
  • core: Recompute Words and Paragraphs in docProps/app.xml on save (by @ChristopherVR) (85ef0d6)
  • core: Write .ppt group members the way PowerPoint reads them (by @ChristopherVR) (8cf3852)
  • core: Write DIFAT sectors for compound files past 109 FAT sectors (by @ChristopherVR) (9e26fe8)
  • core: Write a new p:style between spPr and txBody (by @ChristopherVR) (c7a45b9)
  • core: Parse every behaviour of an effect with its own timing (by @ChristopherVR) (12ea267)
  • core: Rebuild an edited effect's behaviour tree on save (by @ChristopherVR) (d6e22c7)

Testing ​

  • e2e: Pin East Asian breaks to PowerPoint's own lines (by @ChristopherVR) (a358b4f)
  • e2e: Pin pie bestFit labels and label boxes to PowerPoint (by @ChristopherVR) (3480d42)
  • e2e: Pick a Picture Styles tile from Picture Format in every binding (by @ChristopherVR) (27c37ad)
  • e2e: Pin behaviour-tree playback and PowerPoint's wipe edge (by @ChristopherVR) (4cbb061)

Chores ​

  • npm: Surface every package in an npm search for pptx-viewer (by @ChristopherVR) (ac67fda)

4.5.0 - 2026-09-25 ​

Features ​

  • core: Resolve p:style references on demand for style galleries (by @ChristopherVR) (e4303f7)
  • core: Size smartart engine nodes from their own text (by @ChristopherVR) (34c33cb)
  • core: Lay org-chart assistants out in the smartart engine (by @ChristopherVR) (722a465)
  • core: Fit meet the team and process list grids in the smartart engine (by @ChristopherVR) (6ee431c)
  • core: Keep c:grouping standard distinct from clustered (by @claude) (c3472e2)
  • core: Write SmartArt drawing-shape 3D properties back on save (by @claude) (45ec2db)
  • core: Keep smartart quick-style 3d across structural edits (by @claude) (a815448)
  • core: Read SmartArt label colour from fontRef and keep fill alpha (by @claude) (866c7ee)
  • core: Rasterise fallback-less svg pictures for .ppt export in node (by @ChristopherVR) (b2f86e8)

Bug Fixes ​

  • core: Author the strips exit at presetID 18 (by @ChristopherVR) (eb1daca)
  • core: Embed every picture format in the .ppt export (by @ChristopherVR) (956f1dc)
  • core: Write placeholder text and master text styles in .ppt export (by @ChristopherVR) (81681c8)
  • core: Keep an authored pPr lvl="0" on a rewritten slide (by @ChristopherVR) (97a8cff)
  • core: Stop the first run's b and err leaking onto later runs (by @ChristopherVR) (4738cd4)
  • core: Do not invent an outline width on a rewritten slide (by @ChristopherVR) (089362a)
  • core: Refresh app.xml notes and untitled titles like PowerPoint (by @ChristopherVR) (52a8a53)
  • core: Write each ruby run property set back as authored (by @ChristopherVR) (94e7b76)
  • core: Follow ecma-376 for the trapezoid preset inset (by @claude) (eca6c9f)
  • core: Keep smartart drawing fill alpha and preset adjustments (by @claude) (d8d2f37)
  • core: Drop the old preset's guides when a shape's geometry changes (by @ChristopherVR) (118d8a0)
  • core: Relabel entrance/exit presets from PowerPoint COM ids (by @ChristopherVR) (ade27dc)
  • core: Write PowerPoint's captured behaviour tree for every preset (by @ChristopherVR) (b9fa2d6)
  • animation: Ripple letters inside a by-paragraph text build (by @ChristopherVR) (1676539)
  • core: Open PowerPoint's own password-protected .ppt files (by @ChristopherVR) (ca38faa)
  • core: Keep the node canvas import opaque to browser bundlers (by @ChristopherVR) (22f61ea)

Documentation ​

  • core: Record the eleventh smartart engine wave's measured numbers (by @ChristopherVR) (8395cb8)

Testing ​

  • core: Declare the new callout, CJK and org-chart assistant fixtures (by @ChristopherVR) (1ff7f05)
  • core: Lock the ECMA-376 trapezoid inset against the short side (by @claude) (26462a0)
  • core: Declare the by-paragraph letter ripple fixture (by @ChristopherVR) (532a448)
  • core: Pin the browser canvas ahead of the node svg rasteriser (by @ChristopherVR) (8ae3fed)

4.4.0 - 2026-09-25 ​

Features ​

  • core: Expose the zoom transition's in/out direction (by @ChristopherVR) (e9d9da5)
  • core: Read and write media-bookmark triggers the way PowerPoint does (by @ChristopherVR) (cbe17f9)
  • core: Break smartart engine-vs-legacy geometry ties on fonts (by @ChristopherVR) (9b23ac0)
  • core: Lay smartart hierarchies out as packed outlines, then scale (by @ChristopherVR) (74b7bce)
  • core: Lay smartart snake grids out from their cells' own sizes (by @ChristopherVR) (e9526ff)
  • core: Parse chart-area, plot-area and series gradient fills (by @ChristopherVR) (4db5abc)
  • core: Parse data-label boxes, callout shapes and c15 leader lines (by @ChristopherVR) (763cadd)

Bug Fixes ​

  • core: Parse SmartArt layout XML with a linear scanner, not backtracking regexes (by @ChristopherVR) (85b9117)
  • core: Keep runs apart that differ only by an authored baseline="0" (by @ChristopherVR) (aea3c57)
  • core: Keep authored buClr on a rewritten paragraph (by @ChristopherVR) (77f1f86)
  • core: Keep an authored tab-stop algn="l" on rewrite (by @ChristopherVR) (e6050da)
  • core: Stop unedited animation metadata growing on save (by @ChristopherVR) (d0fce7c)
  • core: Keep a source commentAuthors part nothing removed (by @ChristopherVR) (03f6967)
  • core: Read media bookmarks where PowerPoint nests them (by @ChristopherVR) (7ec0f27)
  • core: Size smartart engine text from primFontSz rules and groups (by @ChristopherVR) (e957395)
  • core: Measure smartart text with kerned boundwidth aptos metrics (by @ChristopherVR) (9603333)
  • core: Lay smartart engine text out by tx paragraph levels (by @ChristopherVR) (ff90fd8)
  • core: Draw smartart engine boxes that present text after a blank (by @ChristopherVR) (e049efb)
  • core: Match PowerPoint's auto-number schemes past the basics (by @ChristopherVR) (aa10890)
  • core: Render picture-filled text runs instead of solid black (by @ChristopherVR) (e1021f9)
  • core: Let a paragraph's own rtl beat the level default on its runs (by @ChristopherVR) (4ae3d68)
  • shared: Draw PowerPoint's automatic chart titles (by @ChristopherVR) (8f435a4)
  • core: Parse series gradients through a pure helper (by @ChristopherVR) (1f83eaf)

Documentation ​

  • core: Describe p14:bounceEnd as the bouncing share of the duration (by @ChristopherVR) (80caab6)
  • core: Record the smartart font, hierarchy and snake measurements (by @ChristopherVR) (2187e69)

Testing ​

  • e2e: Cover merge shapes and picture crop in every demo (by @ChristopherVR) (a7e7bed)
  • e2e: Author an On bookmark trigger in every demo and check the save (by @ChristopherVR) (aa3ff3c)
  • core,vanilla: Register the edit-points fixture and type the bookmark test store (by @ChristopherVR) (9114d7c)

4.3.1 - 2026-09-24 ​

Bug Fixes ​

  • core: Stop materializing mc:Ignorable for self-declaring a16 elements (by @ChristopherVR) (0e9a23a)
  • core: Stop materializing empty a:pPr / a:endParaRPr on real paragraphs (by @ChristopherVR) (d50a8b6)
  • core: Stop materializing a:rPr@dirty / @smtClean on runs that never authored them (by @ChristopherVR) (d14f95d)
  • core: Stop materializing a:t@xml:space and leaked font @panose (by @ChristopherVR) (2ce4d43)
  • core: Stop dropping authored schema-default line/gradient/transition values (by @ChristopherVR) (374ba48)
  • core: Stop dropping connector arrow-end/dash and ink fallback content (by @ChristopherVR) (de2a0d1)
  • core: Resolve font @panose/@pitchFamily/@charset from the run's own scope (by @ChristopherVR) (751d9fb)
  • core: Match typeface before trusting the baseline font metadata (by @ChristopherVR) (7c5f915)
  • core: Port pyraAcctRatio accent-column split into alg-pyra (by @ChristopherVR) (08792ef)
  • core: Resolve sibTrans transition-point labels in the smartart engine (by @ChristopherVR) (7a353f0)
  • core: Stop declining SmartArt diagrams over zero-area shapes; port hierRoot/hierChild (by @ChristopherVR) (2dae123)
  • core,shared: Render surface charts as PowerPoint's four surface types (by @ChristopherVR) (4a0232b)
  • core,shared: Aggregate Pareto bars by category, not by value bin (by @ChristopherVR) (67ec333)
  • core: Honor dgm:layoutNode moveWith to stop numbered-list phantom shapes (by @ChristopherVR) (2c247e9)
  • core: Stop fabricating a:rPr lang on runs that authored none (by @ChristopherVR) (ad495de)
  • core: Preserve text run inner-shadow preset/theme colour choice (by @ChristopherVR) (6a48785)
  • core: Stop padding partial gradFill fillToRect/tileRect with zeros (by @ChristopherVR) (2dc54d2)
  • core: Stop dropping a tiny but authored blipFill a:srcRect crop (by @ChristopherVR) (3753725)
  • shared,core: Fix text reflection mirror, inner shadow, glow, soft edge (by @ChristopherVR) (1796d14)
  • core,shared,react: Size inline equations from their own paragraph; assert anchorCtr on painted text (by @ChristopherVR) (16ecb59)

Testing ​

  • core: Fix stale coverage evidence anchors after test renames (by @ChristopherVR) (87c17c6)
  • core: Give the salt-less WHIRLPOOL verifier fixture a CI-safe timeout (by @ChristopherVR) (560c120)
  • core: Lock in a:blip/a:extLst vendor-extension preservation (by @ChristopherVR) (d2fad1a)

4.3.0 - 2026-09-24 ​

Features ​

  • shared,react,vue,angular,svelte,vanilla: Apply Zoom returnToParent/transitionDur during slide-show playback (by @ChristopherVR) (673afa5)
  • core,shared,react,vue,angular,svelte,vanilla: P15/p14 transition direction, pattern and Through Black options (by @ChristopherVR) (8b5ec7e)

Bug Fixes ​

  • core: Preserve blipFill and exact EMU on shape-with-image-fill save (by @ChristopherVR) (8cd7a59)
  • core: Parse and re-emit ppaction://media hlinkClick on media pics (by @ChristopherVR) (ea64525)
  • core: Stop merging authored runs and losing rPr/hlinkClick data (by @ChristopherVR) (aad7ac3)
  • core: Pass untouched chart parts through unchanged on save (by @ChristopherVR) (3094513)
  • core: Stop inventing a bare shape's p:txBody; keep bullet buFont hints (by @ChristopherVR) (1773570)
  • core: Stop fabricating docProps identity, keep comment authors (by @ChristopherVR) (47a60d8)

Reverts ​

  • core: Keep commentAuthors.xml deletion; it was correct behavior (by @ChristopherVR) (93e4f73)

Testing ​

  • core,shared: Lock the COM-verified SVG srcRect stretch rule (by @ChristopherVR) (f9029d4)

4.2.0 - 2026-09-24 ​

Features ​

  • core: Embed round-trip ooxml blobs for rich objects in .ppt export (work in progress) (by @ChristopherVR) (2f9aea3)
  • core: Start a per-point diagramml layout engine for smartart (work in progress) (by @ChristopherVR) (11c956f)
  • shared: Add media fullScrn full-slide overlay decision function (by @ChristopherVR) (8ae8ee1)
  • core: Route un-cached SmartArt through the per-point layout engine (by @ChristopherVR) (e020656)
  • core: Parse InkML per-point T (time) channel into pointTimestamps (by @ChristopherVR) (af3b954)
  • core: Parse zoom return-to-parent and transition duration (work in progress) (by @ChristopherVR) (5b0c9fb)
  • core: Route measurably-better SmartArt layouts through the engine first (by @ChristopherVR) (59e78c9)
  • core: Implement the snake algorithm in the SmartArt layout engine (by @ChristopherVR) (4b27704)
  • core: Implement the cycle algorithm in the SmartArt layout engine (by @ChristopherVR) (ad971a3)
  • core: Parse p14:bounceEnd and play a Fly In bounce settle curve (by @ChristopherVR) (2c44f37)
  • core: Model onMediaBookmark triggers and fire them on playback (by @ChristopherVR) (b153932)
  • core: Implement the pyra algorithm in the SmartArt layout engine (by @ChristopherVR) (8dfb1d0)

Bug Fixes ​

  • core: Declare every namespace prefix a saved part uses (by @ChristopherVR) (bd0a7fc)
  • core: Keep run-level slide jumps as slide relationships on save (by @ChristopherVR) (d2f6924)
  • core: Stop showing chart data labels PowerPoint hides (work in progress) (by @ChristopherVR) (a8de727)
  • core: Write valid build lists and effect behaviours for animations (work in progress) (by @ChristopherVR) (09af92c)
  • core: Prune custom-show/section refs on slide delete without opts (by @ChristopherVR) (4046345)
  • core: Stop a bulleted paragraph's marker from shadowing its own algn (by @ChristopherVR) (3a4307b)
  • core: Stop dropping empty self-closing image effect elements (by @ChristopherVR) (2ee225e)
  • core: Stop untouched SmartArt colours corrupting on save (by @ChristopherVR) (fc06842)
  • core: Fix TS18048 possibly-undefined scope in namespace declarations (by @ChristopherVR) (a55c718)
  • core: Resolve spcPct paragraph spacing against 1.2x font size (by @ChristopherVR) (bca61b4)
  • core: Reconcile animation write tests with valid build-list output (by @ChristopherVR) (ef4e294)
  • core: Read back .ppt gradient fills and stop dropping pattern fills (by @ChristopherVR) (42ded86)
  • core: Resolve a:tblBg fillRef against the theme format scheme (by @ChristopherVR) (0174572)
  • core: Resolve legacy VML-only OLE preview images (by @ChristopherVR) (98ae67c)
  • core: Size table cell text from the master other-text style (work in progress) (by @ChristopherVR) (481c564)
  • core: Update the OLE in-place-editing compatibility warning (by @ChristopherVR) (9dd216e)
  • core: Stop the SmartArt engine dropping hideGeom item-role shapes (by @ChristopherVR) (9c8c2dc)
  • core: Preserve untouched equation XML on save (by @ChristopherVR) (640bd17)
  • core: Keep a soft line break from becoming a paragraph break (by @ChristopherVR) (fbdb209)
  • core: Stop reformatting and mutating untouched comment timestamps (by @ChristopherVR) (bfc92de)
  • core: Write PowerPoint's real behaviour tree for entrance/exit presets (by @ChristopherVR) (d510300)
  • core: Write PowerPoint's real behaviour tree for emphasis presets (by @ChristopherVR) (0662453)
  • shared: Render real dates for datetime fields, not the field type (by @ChristopherVR) (f3653c2)
  • shared: Apply theme per-script fonts over a run's cascaded font (by @ChristopherVR) (0a00208)
  • core: Resolve buBlip picture-bullet images after slide parsing (by @ChristopherVR) (beb20b5)
  • shared: Apply brightness scaled by contrast in a:lum luminance (by @ChristopherVR) (e55b28a)
  • core: Parse and render table-style band fill alpha (by @ChristopherVR) (69f124a)
  • core,shared: Settle table-style fill alpha on one unit (by @ChristopherVR) (afa50de)
  • shared: Draw stock HLC/OHLC candles per PowerPoint semantics (by @ChristopherVR) (7ecb42b)
  • shared: Correct trendline math, formatting and legend (by @ChristopherVR) (91cc3c8)
  • shared,core: Map animation preset 30 to Float, not Spinner (by @ChristopherVR) (e98152e)
  • core: Read the pyramid composite ctrX/w fill idiom as a fraction (by @ChristopherVR) (9cf9fd9)
  • core: Stop pinning inherited bodyPr onto untouched shapes on save (by @ChristopherVR) (7f35589)
  • core: Stop pinning master bullets and dropping bullet inherit markers (by @ChristopherVR) (c406fa9)
  • core: Stop flattening master text-style aliases on every save (by @ChristopherVR) (1cdd778)
  • core: Mirror the master/layout p:bgRef guard onto slide rewrite (by @ChristopherVR) (670d106)
  • core,shared: Stop empty auto-numbered paragraphs consuming a number and marR being dropped (by @ChristopherVR) (b163cad)
  • core: Stretch SVG picture fills instead of squashing srcRect crops (by @ChristopherVR) (096794f)
  • angular,core,shared: Finish View > Normal and zoom field wiring after rebase (by @ChristopherVR) (df6bddf)

Documentation ​

  • core: Restate the SmartArt interpreter gate with measured numbers (by @ChristopherVR) (8d706b9)

Testing ​

  • core: Re-anchor coverage evidence to the renamed build-list tests (by @ChristopherVR) (a1b26e5)
  • core: Cover attribute-less grayscl parsing in image colour effects (by @ChristopherVR) (5588bec)
  • core: Register the new table-row-autogrow.pptx fixture (by @ChristopherVR) (e1cebe9)
  • core: Cover the notes master save path for text-less anchor loss (by @ChristopherVR) (8bed413)
  • core: Add extractOwnBackgroundRefNode to mocked loader params (by @ChristopherVR) (8056d5a)

Dependencies ​

  • deps: Update emf-converter to 3.1.0 (by @ChristopherVR) (5eac42f)
  • deps: Update emf-converter to 3.2.0 (by @ChristopherVR) (bc37b25)
  • deps: Update emf-converter to 3.3.0 (by @ChristopherVR) (9c83a17)

4.1.0 - 2026-09-24 ​

Features ​

  • core: Parse 3D scene/extrusion for cached SmartArt drawing shapes (by @ChristopherVR) (e80b086)

4.0.2 - 2026-09-22 ​

Bug Fixes ​

  • layout: Render inherited artwork on inserted slides (by @ChristopherVR) (179aa2f)

4.0.1 - 2026-09-19 ​

Bug Fixes ​

  • core: Drop the false PARTIAL_SMARTART_SUPPORT warning (by @ChristopherVR) (7551727)
  • core: Size vertical lin SmartArt rows to full width (by @ChristopherVR) (bb324ca)

Performance ​

  • core: Avoid partial XML names in text-order scans (by @Sudhansh6) (f6f5871)

4.0.0 - 2026-09-18 ​

Bug Fixes ​

  • core: Switch to emf-converter's unified convertMetafileToDataUrl (by @ChristopherVR) (70a2ea5)

3.15.5 - 2026-09-17 ​

Bug Fixes ​

  • core: Embed real images in CLI export-md/export-svg output (by @ChristopherVR) (6617c92)

Testing ​

  • core: Remove duplicate chart-stacked-line-markers manifest entry (by @ChristopherVR) (5c60b11)

3.15.4 - 2026-09-17 ​

Bug Fixes ​

  • shared: Cycle PowerPoint's automatic marker-symbol sequence per series idx (by @ChristopherVR) (f55afb4)
  • shared: Honor a chart-level default legend text style (by @ChristopherVR) (1807bd3)
  • core: Treat a bare c:majorGridlines/minorGridlines as present (by @ChristopherVR) (2e06cee)
  • core,shared: Preserve series formatting across a Chart Filters hide/restore round trip (by @ChristopherVR) (6555181)
  • core: Make editor ids collision-free within a process (by @ChristopherVR) (04a61a0)

Testing ​

  • core: Register the missing chart-stacked-line-markers fixture in the corpus manifest (by @ChristopherVR) (2d7c886)
  • core: Register the stacked line marker fixture (by @Sudhansh6) (87a8423)

3.15.3 - 2026-09-17 ​

Bug Fixes ​

  • export: Reconcile selection cleanup with current main (by @Sudhansh6) (a292a8c)
  • core: Honor blipFill rotWithShape for picture-filled shapes (by @ChristopherVR) (3a28d90)
  • core,shared: Recognize implied blipFill picture fills and correct clustered bar overlap width (by @ChristopherVR) (4cbb83d)
  • shared: Reserve axis label space on top and stop defaulting chart-area fill to grey (by @ChristopherVR) (1e9b167)
  • shared: Draw a line and marker legend swatch for line-drawn series (by @ChristopherVR) (7b6837b)

3.15.2 - 2026-09-16 ​

Bug Fixes ​

  • core: Honour a:alpha on solid slide backgrounds and keep it on save (by @ChristopherVR) (3b50c7a)
  • core: Blend a:alpha on pattern background colours onto white (by @ChristopherVR) (893a261)

3.15.1 - 2026-09-14 ​

Bug Fixes ​

  • Preserve live list editing through upstream merge (by @Sudhansh6) (3f8b4f4)

Refactor ​

  • core: Expose paragraph geometry keys for editing (by @Sudhansh6) (da5b8f5)

Testing ​

  • core: Register the nested list roundtrip fixture (by @Sudhansh6) (857e0b2)

Chores ​

  • Merge main into live list editing (by @Sudhansh6) (a9b760d)
  • Sync upstream validation and ribbon updates (by @Sudhansh6) (c70516c)
  • Merge main and resolve locale documentation conflicts (by @yunfeizhu) (ac9123d)

3.15.0 - 2026-09-14 ​

Features ​

  • core: Preserve smart art diagram parts (by @ChristopherVR) (187e0e1)

Bug Fixes ​

  • core: Retain original duplicate shape ids (by @ChristopherVR) (74d595c)
  • core: Evaluate connector and cloud preset geometry (by @ChristopherVR) (5f34ed5)
  • core: Evaluate connector and cloud preset geometry (by @ChristopherVR) (8e2608a)
  • core: Avoid namespace scan backtracking (by @ChristopherVR) (2c3f038)

Documentation ​

  • repo: Sync guides and references with implementation (by @ChristopherVR) (70440f6)

Testing ​

  • core: Stabilize the Vitest 5 suite (by @ChristopherVR) (83b4cc5)

Dependencies ​

  • deps: Rebase lint-staged update (by @ChristopherVR) (c2a649e)

Chores ​

  • deps-dev: Bump vitest from 4.1.11 to 5.0.0 (by @dependabot[bot]) (5f8fe4f)

3.14.6 - 2026-09-13 ​

Bug Fixes ​

  • core: Preserve empty paragraph insertion formatting (by @Sudhansh6) (121f6bf)

Other ​

  • Retain empty paragraph styles with source alignment (by @Sudhansh6) (d979cd2)
  • Integrate semantic list commands with empty paragraph formatting (by @Sudhansh6) (c5d9a6f)
  • Sync main font and SmartArt fixes (by @Sudhansh6) (f2066eb)
  • Sync main paragraph and history fixes (by @Sudhansh6) (a18a2d7)
  • Sync public insertion with empty paragraph formatting (by @Sudhansh6) (d1ad9c9)

3.14.5 - 2026-09-13 ​

Bug Fixes ​

  • core: Preserve run styles after text-only edits (by @Sudhansh6) (3cb843c)
  • core: Size percentage bullets from the first text run (by @Sudhansh6) (51e26e1)

Refactor ​

  • core: Expose numbering sequence for paragraph edits (by @Sudhansh6) (a27fb46)

Chores ​

  • Merge main before SmartArt cancellation contribution (by @Sudhansh6) (4581de6)

3.14.4 - 2026-09-12 ​

Bug Fixes ​

  • core: Preserve edited table column widths on save (by @Sudhansh6) (fe4539f)

3.14.3 - 2026-09-12 ​

Bug Fixes ​

  • core: Avoid duplicating rich axis titles on save (by @Sudhansh6) (0a06dce)

3.14.2 - 2026-09-11 ​

Bug Fixes ​

  • Read attributed table text without object coercion (by @Sudhansh6) (a847293)
  • core: Read attributed chart axis titles (by @Sudhansh6) (4aa3aa1)
  • shared: Render edited single-run chart titles (by @Sudhansh6) (64d6712)
  • core: Read attributed chart title text (by @Sudhansh6) (1f47f85)

3.14.1 - 2026-09-11 ​

Bug Fixes ​

  • Preserve unchanged table text during merge and split (by @Sudhansh6) (22df796)

3.14.0 - 2026-09-10 ​

Features ​

  • core: SmartArt fanned-root hanging forests and choose-wrapped text templates (by @ChristopherVR) (f303bbb)
  • core: Size repeater-rendered SmartArt satellites from the diagram-wide userS (by @ChristopherVR) (fc5e931)
  • core: Reserve the fan-axis hang gap in transposed tailed hierarchies (by @ChristopherVR) (0a367d5)
  • core: Size nested SmartArt hub-and-satellite rings from the diagram-wide userS (by @ChristopherVR) (228d624)

Bug Fixes ​

  • core: Preserve table inline content order on save (by @Sudhansh6) (4f38ac3)
  • shared,core: Resolve the open code-scanning alerts (by @ChristopherVR) (e66f068)
  • core: Preserve empty soft line breaks on load (by @Sudhansh6) (be9f5f5)
  • core: Drop the removed ensureItems argument after the soft-break fix (by @ChristopherVR) (83f9b37)
  • Preserve rich table cells during row and column edits (by @Sudhansh6) (e83c2eb)

3.13.0 - 2026-09-10 ​

Features ​

  • core: SmartArt corner-anchored hierarchies and the layout-definition type split (by @ChristopherVR) (b3c9506)
  • core: SmartArt anchor-aware predicates, nested cycles and centred-fan hierarchies (by @ChristopherVR) (eee2c98)
  • core: Wire the hierarchy arranger to the resolved-orientation module (by @ChristopherVR) (ab035ea)
  • core: SmartArt hub aspect fitting and ancestor userS resolution (by @ChristopherVR) (9f9b534)

Bug Fixes ​

  • core: Terminate .ppt shape names so PowerPoint opens named shapes (by @ChristopherVR) (7d8f842)
  • core: Restore the generation-template call sites swept into eee2c98e4 (by @ChristopherVR) (ffee234)

Testing ​

  • core: Make the SmartArt gallery gate opt-in and give the .ppt password test its PBKDF2 budget (by @ChristopherVR) (0ff5e2b)

3.12.0 - 2026-09-10 ​

Features ​

  • core: Read OLE embeds back from legacy .ppt decks (by @ChristopherVR) (2f1a9a6)
  • core: SmartArt hang ratios, cascade reserve, generation margins and hub font fit (by @ChristopherVR) (8ccd7cc)

Testing ​

  • core: Pin PowerPoint's property-order dependence for combined rotated group edits (by @ChristopherVR) (dc6692e)

3.11.0 - 2026-09-10 ​

Features ​

  • core: SmartArt composite shape dispatch, per-role font fit and hang ratio (by @ChristopherVR) (b2d985f)
  • shared: Route every raster export through the foreignObject tiled pipeline (by @ChristopherVR) (1ad1993)
  • core: SmartArt repeated-template slots, table hierarchies and cascades (by @ChristopherVR) (725033d)

Bug Fixes ​

  • core: Preserve fractional table row heights (#224) (by @Sudhansh6) (aaa621f)
  • angular,core: Land the transition-split component and media-duration wiring (by @ChristopherVR) (3d0c8c7)

3.10.0 - 2026-09-10 ​

Features ​

  • core: Fit SmartArt text and structure from the corpus rules (by @ChristopherVR) (c29d1d1)
  • shared: Load a metric-compatible web font when a deck's font is missing (by @ChristopherVR) (75a1874)
  • shared: Light 3D bevels with SVG lighting filters and derive explicit camera overrides (by @ChristopherVR) (a36c635)
  • core: Decode a picture fill's first pixel and a media file's duration without the DOM (by @ChristopherVR) (a9136fa)
  • core: Write hyperlinks, click actions and OLE embeds into legacy .ppt (by @ChristopherVR) (b8a46fa)
  • shared: Render fragment-based cinematic transitions in every binding (by @ChristopherVR) (4aee13e)
  • core: Fourth SmartArt interpreter snapshot against the COM corpus (by @ChristopherVR) (7b29670)
  • shared: Match PowerPoint on soft edges, pixelate and run-program actions (by @ChristopherVR) (d4339c2)
  • core: Embed real WAV audio in legacy .ppt output (by @ChristopherVR) (dfebe92)

Bug Fixes ​

  • core: Resize a rotated shape or group child axis by axis, as PowerPoint does (by @ChristopherVR) (012929e)
  • core: Re-enable the hierarchy-descendant dispatch guard (by @ChristopherVR) (8d3d462)
  • core: Export readCnvPrId and track the two generated fixtures CI needs (by @ChristopherVR) (13bff65)

Documentation ​

  • State the measured SmartArt interpreter status in the limitations row (by @ChristopherVR) (de5c891)

Testing ​

  • core: Declare the two generated fixtures the decoding stream added (by @ChristopherVR) (acda9bf)

3.9.0 - 2026-09-10 ​

Features ​

  • core: Fit SmartArt layouts to PowerPoint's measured geometry (by @ChristopherVR) (4f689ef)

3.8.0 - 2026-09-09 ​

Features ​

  • core: Check salt-less modify verifiers instead of unlocking blindly (by @ChristopherVR) (7c7f1da)
  • core: Model the c15 filtered-title and Value From Cells chart extensions (by @ChristopherVR) (880fa81)
  • core: Ship PowerPoint's built-in stock sound gallery for effects and transitions (by @ChristopherVR) (41854e5)
  • core: Write legacy binary .ppt (PowerPoint 97-2003) from the save pipeline (by @ChristopherVR) (d3360c1)
  • core: Edit embedded OLE content in place across all five bindings (by @ChristopherVR) (3f51347)
  • core: Edit legacy Word 97-2003 (.doc) OLE documents in place (by @ChristopherVR) (cfad261)
  • core: Interpret SmartArt layouts against a COM-authored ground-truth corpus (by @ChristopherVR) (d1b43a5)

Bug Fixes ​

  • core: Break the OLE nested-deck import cycle and declare the effect-sound fixture (by @ChristopherVR) (7a99ea6)
  • core: Make SDK-authored .ppt decks open in PowerPoint (by @ChristopherVR) (7433ee5)
  • core: Build the validator enum table through a pure call (by @ChristopherVR) (d4977ea)
  • core: Replace a stray NUL byte inside a string literal (by @ChristopherVR) (40bdda3)
  • core: Place cached SmartArt shapes at their raw offsets and keep a lone column in bounds (by @ChristopherVR) (09ecba9)

Dependencies ​

  • deps: Bump the minor-and-patch group with 3 updates (by @dependabot[bot]) (6e40989)
  • deps: Merge dependabot #212 (by @ChristopherVR) (a69fe7e)
  • deps: Update every dependency to its latest in-range version (by @ChristopherVR) (1f242b7)

3.7.0 - 2026-09-06 ​

Features ​

  • core: Close the wave-5 OpenXML limitation gaps in parse/save (by @ChristopherVR) (175dbbd)

3.6.0 - 2026-09-05 ​

Features ​

  • core: Openxml parity wave 4/5 (table styles, userShapes, alt text, bldLst) (by @ChristopherVR) (bfd2af8)

3.5.0 - 2026-09-05 ​

Features ​

  • core: Wave-3 OpenXML parity (chart formatting, table styles, theme refs) (by @ChristopherVR) (1da1637)

3.4.0 - 2026-09-05 ​

Features ​

  • core: Close ECMA-376 parse/serialize gaps from the 2026-09 parity audit (by @ChristopherVR) (91ddcb7)
  • core: Close the remaining OpenXML parity gaps (wave 2) (by @ChristopherVR) (59fecbf)

Bug Fixes ​

  • Clip pictures by their own shape geometry in every binding (#202) (by @nikko82) (6027607)

Testing ​

  • core: Declare the wave-2 e2e fixtures in the corpus manifest (by @ChristopherVR) (593d3ba)

3.3.4 - 2026-09-03 ​

Bug Fixes ​

  • core: Preserve fractional table font sizes (#210) (by @Sudhansh6) (3f0c1ba)

3.3.3 - 2026-09-03 ​

Bug Fixes ​

  • Preserve table-cell font sizes across renderers (#208) (by @Sudhansh6) (8c2d97d)

3.3.2 - 2026-09-03 ​

Bug Fixes ​

  • core,shared: Preserve numbered text through edits (#204) (by @Sudhansh6) (9b5e9aa)

3.3.1 - 2026-09-02 ​

Bug Fixes ​

  • core: Preserve custom-geometry command order through placeholder merges (by @ChristopherVR) (29af002)
  • core: Regenerate slide background when an image is explicitly cleared (by @ChristopherVR) (c43e1ea)
  • Recolour template-layer shapes on a live theme colour-scheme edit (by @ChristopherVR) (34c3935)
  • core: Round-trip Hide Background Graphics (@showMasterSp) on save (by @ChristopherVR) (75ac54f)

3.3.0 - 2026-09-02 ​

Features ​

  • core: Master/layout CRUD, legacy comment threading, extended ppaction verbs (by @ChristopherVR) (033b024)

3.2.0 - 2026-09-02 ​

Features ​

  • core: Parse and save bar3D shape, radar style and surface wireframe (by @ChristopherVR) (1f46205)

Bug Fixes ​

  • core: Close OpenXML round-trip gaps in charts, pictures, tables, text and structure (by @ChristopherVR) (9780265)
  • core: Write gridline elements on generated chart axes (by @ChristopherVR) (0d03c1a)
  • core: Snapshot baked-in a14 corrections next to the live values (by @ChristopherVR) (9e6cc01)

Testing ​

  • e2e: Pin the webfont fallback probe across the five bindings (by @nikko82) (aabb9dd)

3.1.3 - 2026-09-01 ​

Chores ​

  • deps-dev: Bump the minor-and-patch group with 2 updates (#186) (by @dependabot[bot]) (effb251)

3.1.2 - 2026-08-29 ​

Bug Fixes ​

  • animation: Preserve authored PowerPoint playback and rendering (#185) (by @primerch) (628be23)

3.1.1 - 2026-08-28 ​

Bug Fixes ​

  • core: Reindex chart data-point overrides after removing a category (by @ChristopherVR) (7bd64f8)

3.1.0 - 2026-08-28 ​

Features ​

  • core: Decrypt RC4-encrypted legacy .ppt files (by @ChristopherVR) (b95adc7)
  • ole: Make embedded OLE objects' Object Name editable (by @ChristopherVR) (e06b32c)
  • shared: Add Pareto as an insertable chart type (by @ChristopherVR) (8fea110)
  • core: Support writing ECMA-376 Standard scheme encryption (by @ChristopherVR) (210d2a2)
  • shared: Apply the shadeToTitle background gradient effect (by @ChristopherVR) (f287389)
  • core: Allow animation drag-to-reorder across deck-native effects (by @ChristopherVR) (6f48a34)
  • Author animation effect sound and after-animation controls (by @ChristopherVR) (78daeb4)
  • shared: Honour animRot/animScale absolute values, tavLst, txEl ranges, p:excl and bldLvl in playback (by @ChristopherVR) (f71396b)
  • Author and embed transition sounds from the ribbon Sound picker (by @ChristopherVR) (ada8cdb)
  • ink: Retain pen-tilt InkML channels and render a calligraphic nib (by @ChristopherVR) (6adab79)
  • core,shared: Surface p:tavLst attrName, honour colour ramps (by @ChristopherVR) (2ccf45f)

Bug Fixes ​

  • Author Draw-tab ink as a PowerPoint-compatible content part (by @ChristopherVR) (d91ce08)
  • animation: Correct swapped exit/emphasis presets, cover 4 more IDs (by @ChristopherVR) (11c2d2e)
  • core: Honour text-run reflection scale/skew/rotation/fade/anchor (by @ChristopherVR) (41dfa76)
  • core: Author Draw-tab ink InkML that real PowerPoint actually opens (by @ChristopherVR) (38633c7)

Testing ​

  • core: Cover lte/equ ops and multi-hop bounds for SmartArt constraints (by @ChristopherVR) (3d8c5a0)

Chores ​

  • Reformat limitations.md table and a core test after merge (by @ChristopherVR) (d9db1f7)
  • Fix oxfmt comment placement in ppt-import.test.ts (by @ChristopherVR) (7cb2d3d)

3.0.2 - 2026-08-26 ​

Dependencies ​

  • deps: Update fast-xml-parser requirement from ^5.10.1 to ^5.11.0 (#177) (by @dependabot[bot]) (a876e0f)

3.0.1 - 2026-08-22 ​

Bug Fixes ​

  • core: Spell the SmartArt role sentinel as a unicode escape (by @ChristopherVR) (a2d4993)

3.0.0 - 2026-08-22 ​

Features ​

  • core: Unify SmartArt layout onto one DiagramML interpreter (by @ChristopherVR) (89116b1)
  • core: Write chart edits back to the embedded workbook (by @ChristopherVR) (dee19fc)
  • core: Solve relative SmartArt constraints and apply org-chart hints (by @ChristopherVR) (65eee20)
  • core: Author tag elements, model embedTrueTypeFonts, and add a text-style edit path (by @ChristopherVR) (0048d16)
  • core,shared: Serialize data-table styling, and paint 3D chart surfaces (by @ChristopherVR) (bd9595a)
  • core: Honour per-node shapes, style roles and connector text in SmartArt (by @ChristopherVR) (c823fca)
  • core,shared: Model timing templates and play animEffect filters (by @ChristopherVR) (8bf91f2)
  • core,shared: Cross-browser reflections, overlay fills, and remaining text gaps (by @ChristopherVR) (c0b0d6d)

Bug Fixes ​

  • core: Close five OpenXML parse and serialize fidelity gaps (by @ChristopherVR) (641b0b2)
  • core,shared: Correct animation preset IDs against PowerPoint COM ground truth (by @ChristopherVR) (61b0014)
  • core,shared: Honour cTn timing attributes, after-animation and effect sound (by @ChristopherVR) (07ee51f)
  • core: Close slide-structure, notes-style and DrawingML parse gaps (by @ChristopherVR) (ee1dbcd)

Documentation ​

  • core: Record audited OpenXML construct coverage in the manifest (by @ChristopherVR) (812fe61)

Testing ​

  • core: Evidence previously unverified OpenXML constructs, and record what is not implemented (by @ChristopherVR) (4dc6028)

Chores ​

  • core: Complete barrel and runtime wiring for the preceding two changes (by @ChristopherVR) (115379e)

2.3.14 - 2026-08-21 ​

Bug Fixes ​

  • core,vue: Compute elbow/curved connector routing from actual shape geometry (by @ChristopherVR) (f2882a1)

Documentation ​

  • core: Correct stale OLE and SmartArt capability text (by @ChristopherVR) (0c7e68d)
  • core: Certify DrawingML line/stroke properties in the OpenXML coverage manifest (by @ChristopherVR) (caa2570)

2.3.13 - 2026-08-21 ​

Bug Fixes ​

  • core: Restore mc:AlternateContent envelope on passthrough template save (by @ChristopherVR) (1659244)
  • core: Stop baking theme effectRef into a literal effectLst on save (by @ChristopherVR) (59a5566)
  • core: Read line-family chart series colors on any chart, not just combo (by @ChristopherVR) (e62dfcf)
  • core: Write line-family chart series colors into a:ln, not a corrupting spPr (by @ChristopherVR) (5b54357)

2.3.12 - 2026-08-21 ​

Bug Fixes ​

  • core: Parse full custom geometry on pictures, not just path data (by @ChristopherVR) (b6cbef6)

2.3.11 - 2026-08-20 ​

Bug Fixes ​

  • ci: Resolve oxlint errors and warnings blocking CI lint job (by @ChristopherVR) (a2031be)
  • core: Correct EOT header parsing for version 0x00020001 containers (by @ChristopherVR) (e43720e)
  • core: Size table graphic frames from their grid extent (by @ChristopherVR) (6d75c18)
  • core: Accept Strict-OOXML lexical percentages in table style tint/shade (by @ChristopherVR) (8fa8111)
  • core: Stabilize Strict-conformance resaves (by @ChristopherVR) (3c43f51)
  • core: Correct the Strict custom/extended-properties namespace mapping (by @ChristopherVR) (d5001f9)
  • core: Stop a paragraph's alignment from leaking onto later paragraphs (by @ChristopherVR) (c18b1e7)
  • core: Keep SmartArt cached line-preset shapes with zero width or height (by @ChristopherVR) (41e3059)

2.3.10 - 2026-08-19 ​

Bug Fixes ​

  • core: Correct OOXML a:tint colour math (ECMA-376 20.1.2.3.32) (by @ChristopherVR) (7cf29f3)
  • core: Don't clone an arbitrary slide onto a new blank slide (by @ChristopherVR) (1bd1bd6)
  • core: Don't bind special placeholders to untyped ones by idx alone (by @ChristopherVR) (d92eb11)
  • core: Resolve layout-switch geometry from the master when omitted (by @ChristopherVR) (a09aa5a)
  • core: Reverse the GUID-derived XOR key for font de/obfuscation (by @ChristopherVR) (7733edf)
  • core: Drop untouched placeholder prompts on repeated layout switch (by @ChristopherVR) (8842223)

2.3.9 - 2026-08-19 ​

Chores ​

  • deps-dev: Bump the minor-and-patch group with 2 updates (#162) (by @dependabot[bot]) (2645f25)

2.3.8 - 2026-08-14 ​

Bug Fixes ​

  • vanilla: Repair the properties panel, inline editor, mobile chrome and show performance (by @ChristopherVR) (47265ef)

Testing ​

  • Mask the fields that legitimately move, and size two waits for CI (by @ChristopherVR) (68bae19)

2.3.7 - 2026-08-13 ​

Bug Fixes ​

  • core: Repair the XML plumbing four separate defects were hiding behind (by @ChristopherVR) (8beb664)

2.3.6 - 2026-08-13 ​

Bug Fixes ​

  • core: Stop save rewriting what the author never wrote (by @ChristopherVR) (6fb2767)

2.3.5 - 2026-08-13 ​

Bug Fixes ​

  • core: Repair save-pipeline corruption found by the OpenXML parity audit (by @ChristopherVR) (554006e)
  • core: Close the round-trip defects the corpus harness exposed (by @ChristopherVR) (2011c66)

2.3.4 - 2026-08-10 ​

Bug Fixes ​

  • core: Read placeholder, list and percentage values as authored (by @ChristopherVR) (dc2d679)

2.3.3 - 2026-08-10 ​

Bug Fixes ​

  • shared: Morph a picture's scale, which OOXML stores as a source crop (by @ChristopherVR) (e2743c7)

Chores ​

  • deps-dev: Bump the minor-and-patch group with 2 updates (#150) (by @dependabot[bot]) (ab75bf1)

2.3.2 - 2026-08-07 ​

Bug Fixes ​

  • core: Measure parallelogram skew against the short side, not the width (by @ChristopherVR) (fea647f)
  • core: Bulge the teardrop preset's point outwards, not inwards (by @ChristopherVR) (0b23bc4)
  • Render ellipses as ellipses, not pills (by @ChristopherVR) (b6d2598)

2.3.1 - 2026-08-07 ​

Bug Fixes ​

  • core: Recognize nodeType="afterEffect" when parsing animation triggers (by @ChristopherVR) (554c077)

2.3.0 - 2026-08-07 ​

Features ​

  • core: Import legacy PowerPoint 97-2003 (.ppt) files (by @ChristopherVR) (6f71bd3)
  • core: Export and import decks as portable JSON (by @ChristopherVR) (965fc05)
  • shared: Blackboard mode, element rename and column charts (by @ChristopherVR) (a69ffce)

Bug Fixes ​

  • core: Stop inferring motion-path auto-rotate from rAng (by @ChristopherVR) (32ee041)
  • core: Read line-series colours from a:ln/a:solidFill (by @ChristopherVR) (714c10a)

2.2.2 - 2026-08-05 ​

Bug Fixes ​

  • core: Resolve styled full font names and add condensed fallbacks (by @ChristopherVR) (26b1f74)

2.2.1 - 2026-08-05 ​

Bug Fixes ​

  • core: Resolve omitted-lvl paragraphs through lvl1pPr, defPPr beneath (by @ChristopherVR) (af1cb66)
  • core: Play p14/p15 transitions written as mc:Choice direct children (by @ChristopherVR) (b6877a6)
  • core: Resolve transition and timing across multiple mc envelopes (by @ChristopherVR) (3e16e9e)
  • shared: Cross-slide audio foundation + visibility pause for slide shows (by @ChristopherVR) (21ce9e0)
  • core: Model a:stretch/a:fillRect as frame placement, not source crop (by @ChristopherVR) (bbb7fc4)

2.2.0 - 2026-08-01 ​

Features ​

  • Fixed graphs and arrows shapes (by @ChristopherVR) (94813f5)

2.1.2 - 2026-08-01 ​

Bug Fixes ​

  • Skip hidden slides in the show, and honour endWithBlackSlide (by @ChristopherVR) (2a9ef49)
  • Give every binding React's slide-show bar, and make slice clicks work (by @ChristopherVR) (31f30f7)

2.1.1 - 2026-07-31 ​

Bug Fixes ​

  • core: Stop dropping a:pPr/@lvl when a paragraph's runs share one style (by @ChristopherVR) (03aa4ed)

2.1.0 - 2026-07-31 ​

Features ​

  • core: Model a gradient / pattern outline in structured form (by @ChristopherVR) (69322c9)

Bug Fixes ​

  • core: Honour a preset path's own coordinate space, and repair hexagon (by @ChristopherVR) (8e4a91d)
  • core: Rebuild flowChartTerminator from its spec Beziers (by @ChristopherVR) (0e81403)
  • core: Keep an inline field in the position it was authored in (by @ChristopherVR) (beb2067)
  • core: Rebuild sun as a disc plus eight detached rays (by @ChristopherVR) (cd2fcd4)
  • core: Round-trip the Selection Pane hide toggle (by @ChristopherVR) (14bdb23)

Testing ​

  • core: Pin issue #132 fill and adjustment parsing against the reporter deck (by @ChristopherVR) (06cd312)

2.0.11 - 2026-07-31 ​

Bug Fixes ​

  • core: Stop an interactive sequence adding a phantom click step (by @ChristopherVR) (65a4738)

2.0.10 - 2026-07-30 ​

2.0.9 - 2026-07-30 ​

Bug Fixes ​

  • core: Stamp the endParaRPr size on an empty paragraph's separator (by @ChristopherVR) (2b18374)

2.0.8 - 2026-07-29 ​

Bug Fixes ​

  • core: Keep grouped text at its authored point size (by @ChristopherVR) (56f676a)

2.0.7 - 2026-07-27 ​

Bug Fixes ​

  • core: Parse morph, fontRef text colour, and unsized bullets correctly (by @ChristopherVR) (7607996)

2.0.6 - 2026-07-27 ​

Dependencies ​

  • deps: Update emf-converter requirement from ^2.0.0 to ^2.0.2 (#122) (by @dependabot[bot]) (423034a)

2.0.5 - 2026-07-27 ​

Bug Fixes ​

  • ci: Resolve workspace: ranges in every published manifest (by @ChristopherVR) (ea35290)

2.0.4 - 2026-07-26 ​

Bug Fixes ​

  • core: Keep the click step's own start conditions (by @ChristopherVR) (755a4b2)
  • core: Paint useBgFill shapes with the slide background (by @ChristopherVR) (f819817)

2.0.3 - 2026-07-25 ​

Chores ​

  • deps-dev: Update tsdown requirement (#109) (by @dependabot[bot]) (f83aa0a)

2.0.2 - 2026-07-25 ​

Bug Fixes ​

  • core: Rotate OOXML gradient angles into CSS space (by @ChristopherVR) (eebf128)
  • core: Honour a:noFill and stop painting hidden fills/lines (by @ChristopherVR) (ae13541)

2.0.1 - 2026-07-24 ​

Bug Fixes ​

  • core: Preserve native bullets and boundary spaces (#107) (7ed0971)

2.0.0 - 2026-07-23 ​

Features ​

  • core: Upgrade emf-converter to 2.0.0 (breaking) (by @ChristopherVR) (effa4e5)

Documentation ​

  • Friendly 2.0.0 changelog for root and packages (by @ChristopherVR) (f56564d)

1.6.10 - 2026-07-19 ​

Bug Fixes ​

  • core: Preserve rich cell text, per-paragraph pPr and font fidelity (#68, #69, #83, #84, #85) (by @ChristopherVR) (4d61e0e)
  • shared: Render chart markers, helper lines and pie/bar options (#88, #89, #72, #97) (by @ChristopherVR) (042bd01)
  • core: Wire viewProps.xml into load and default it on save (#90, #96) (by @ChristopherVR) (2e6616e)
  • core: Recompute app.xml TitlesOfParts and HeadingPairs on save (#91) (by @ChristopherVR) (87585a7)
  • core: Round-trip cNvSpPr txBox and cover spLocks serialization (#92) (by @ChristopherVR) (9feb36b)
  • core: Resolve SmartArt dsp blip fills and enumerate nested shapes (#73) (by @ChristopherVR) (ff08821)
  • core: Parse SmartArt colour lists and presLayoutVars (#94) (by @ChristopherVR) (7917f71)
  • core: Remap custom-show and section slide refs on reorder/remove (#96) (by @ChristopherVR) (9f83519)
  • core: Embed non-data-URL slide background images on save (#100) (by @ChristopherVR) (61da958)
  • core: Round-trip gradient/pattern line fills and gradient tileRect/grpFill (#87, #97) (by @ChristopherVR) (3942594)
  • core: Broaden table-style fills/text and apply corner-cell fills (#95) (by @ChristopherVR) (c2cab10)
  • core: Render chart invertIfNegative and fix SDK generator containers (#97) (by @ChristopherVR) (888b9c7)
  • core: Round-trip explicit run/paragraph text properties and fix colour maths (#98) (by @ChristopherVR) (3fe3ced)
  • core: Apply animation easing, sound loop, comment resolved and p14 media embed (#98) (by @ChristopherVR) (e7c1fd6)

1.6.9 - 2026-07-19 ​

Bug Fixes ​

  • core: Write sp3d colours as valid hex and preserve scene3d (#67, #86) (by @ChristopherVR) (d30f5a7)
  • core: Parse and render group rotation and flip (#70) (by @ChristopherVR) (5bb820a)
  • core: Resolve table-style borders from tcBdr (#71) (by @ChristopherVR) (1e8c072)
  • core: Parse gradient and pattern fills on SmartArt dsp shapes (#73) (by @ChristopherVR) (6b94c9a)
  • core: Decode real InkML contentPart traces to SVG paths (#74) (by @ChristopherVR) (8204f7c)
  • core: Resolve themed bullet colour via parseColor (#75) (by @ChristopherVR) (ba311d5)
  • core: Honour fly-in/out animation direction via presetSubtype (#76) (by @ChristopherVR) (316a7db)
  • core: Parse p15 prstTrans transitions and stop spurious cut (#77) (by @ChristopherVR) (a32260e)
  • core: Serialize justLow/dist/thaiDist paragraph alignment (#78) (by @ChristopherVR) (59a882a)
  • core: Flag embedded media as embedded, not linked (#79) (by @ChristopherVR) (0decc64)

1.6.8 - 2026-07-19 ​

Bug Fixes ​

  • core: Themed background text, colour and geometry fidelity (by @ChristopherVR) (a8fc2be)

1.6.7 - 2026-07-19 ​

Bug Fixes ​

  • core: Stop truncating interleaved custom-geometry paths (#66) (by @ChristopherVR) (9bbac7d)

Performance ​

  • core: Cache layout/master XML during background resolution (by @ChristopherVR) (9eea305)

1.6.6 - 2026-07-18 ​

Bug Fixes ​

  • core: Load themed backgrounds and inherited placeholders (#66) (by @ChristopherVR) (bed627b)

1.6.5 - 2026-07-18 ​

Documentation ​

  • Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)

1.6.4 - 2026-07-18 ​

Bug Fixes ​

  • core: Preserve OMML sibling order through parse, save, and markdown (by @ChristopherVR) (54e5de5)
  • core: Resolve ReDoS and prototype pollution in OMML sibling-order scan (by @ChristopherVR) (2eef210)

1.6.3 - 2026-07-18 ​

Other ​

  • Integrate release version bumps (by @ChristopherVR) (4b3893f)

Dependencies ​

  • deps: Update dependencies to latest and migrate core/shared/locales to TypeScript 7 (by @ChristopherVR) (cc72948)

1.6.2 - 2026-07-17 ​

Styling ​

  • Fix oxfmt formatting drift blocking CI (by @ChristopherVR) (4f26420)

1.6.1 - 2026-07-17 ​

Dependencies ​

  • deps: Update outdated dependencies within semver ranges (by @ChristopherVR) (3249d8e)

1.6.0 - 2026-07-17 ​

Features ​

  • core: Preserve DrawingML image color effects (by @ChristopherVR) (5ed726d)
  • core: Model PresentationML view geometry (by @ChristopherVR) (3b07978)
  • core: Round-trip ChartML markers and data points (by @ChristopherVR) (ae8edc5)
  • core: Add DiagramML definition headers (by @ChristopherVR) (314f9fa)
  • core: Complete DrawingML alpha effects (by @ChristopherVR) (3a402f4)
  • core: Add ChartML print settings (by @ChristopherVR) (f519b19)
  • core: Edit DiagramML constraints and rules (by @ChristopherVR) (01f1ed2)
  • core: Complete PresentationML print properties (by @ChristopherVR) (671f348)
  • core: Add ChartML protection (by @ChristopherVR) (e09b1a9)
  • core: Export print and protection types (by @ChristopherVR) (ea228d6)
  • core: Edit DiagramML layout algorithms (by @ChristopherVR) (42e7dd3)
  • core: Complete ChartML pivot sources (by @ChristopherVR) (afb317a)
  • core: Complete DrawingML audio metadata (by @ChristopherVR) (226c917)
  • core: Complete PresentationML embedded fonts (by @ChristopherVR) (5d54284)
  • core: Edit DiagramML layout control flow (by @ChristopherVR) (74fb263)
  • core: Complete PresentationML kinsoku (by @ChristopherVR) (9cc5604)
  • core: Edit ChartML pivot formats (by @ChristopherVR) (87a646a)
  • core: Export rich elements as SVG (by @ChristopherVR) (508fc6c)
  • core: Persist chart palette and axis positions (by @ChristopherVR) (69b05bd)
  • core: Render funnel charts in SVG exports (by @ChristopherVR) (efb6c36)
  • core: Author SDK funnel ChartEx parts (by @ChristopherVR) (73265f4)
  • core: Author SDK waterfall ChartEx parts (by @ChristopherVR) (e5ff15b)
  • core: Author SDK treemap ChartEx parts (by @ChristopherVR) (9264fad)
  • core: Round-trip sunburst hierarchy (by @ChristopherVR) (3cc868e)
  • core: Round-trip PowerPoint slide Zoom (by @ChristopherVR) (624c853)
  • core: Author SDK box-whisker ChartEx parts (by @ChristopherVR) (202496f)
  • core: Author histogram and Pareto ChartEx parts (by @ChristopherVR) (b8d779c)
  • core: Round-trip PowerPoint section Zoom (by @ChristopherVR) (67a162f)
  • core: Author SDK region-map ChartEx parts (by @ChristopherVR) (9d0c676)
  • core: Round-trip PowerPoint Summary Zoom (by @ChristopherVR) (27c5671)
  • shared: Honor category axis ordering and ticks (by @ChristopherVR) (45f7c1f)
  • core: Author embedded 3D models (by @ChristopherVR) (7189466)
  • core: Preserve ChartEx waterfall layout semantics (by @ChristopherVR) (10feb1b)
  • core: Author InkML content parts (by @ChristopherVR) (b8df789)
  • core: Author user-defined tag parts (by @ChristopherVR) (245dc7c)
  • core: Preserve classic date axis semantics (by @ChristopherVR) (f9391cd)
  • core: Author customer data parts (by @ChristopherVR) (8d99be8)
  • core: Preserve chart axis crossing semantics (by @ChristopherVR) (3fbcbc0)
  • core: Preserve ChartEx hierarchy and geography (by @ChristopherVR) (4b8e3ab)

Bug Fixes ​

  • core: Validate DiagramML iterator bounds (by @ChristopherVR) (cb375ce)
  • core: Correct DrawingML custom dash stops (by @ChristopherVR) (9b7bd11)
  • core: Export complete image colour effects (by @ChristopherVR) (e1468d3)
  • viewer: Restore thumbnail colours and suppress bullets (by @ChristopherVR) (4563d2d)
  • core: Parse all show property boolean forms (by @ChristopherVR) (0dc7329)
  • core: Preserve structured custom geometry paths (by @ChristopherVR) (423fb41)
  • core: Resolve theme effect placeholder colours (by @ChristopherVR) (3e9e348)
  • core: Preserve combo secondary axis mapping (by @ChristopherVR) (73085fd)
  • core: Resolve theme line placeholder colours (by @ChristopherVR) (e5cdfce)
  • core: Normalize multi-path custom geometry (by @ChristopherVR) (1cc46cd)
  • core: Resolve theme fill placeholder colours (by @ChristopherVR) (55fe588)
  • core: Preserve SmartArt rich text ordering (by @ChristopherVR) (ab56204)
  • core: Persist authored OLE payloads (by @ChristopherVR) (0c24f45)
  • core: Resolve ChartEx data references (by @ChristopherVR) (6faab07)
  • core: Persist chart axis direction (by @ChristopherVR) (47f70c1)
  • core: Retain SmartArt cached shape skew (by @ChristopherVR) (d219b0e)
  • core: Author editable OpenXML ink (by @ChristopherVR) (0e81e91)
  • core: Preserve SmartArt custom geometry (by @ChristopherVR) (782a2aa)
  • core: Persist notes on new slides (by @ChristopherVR) (330d54e)
  • core: Author handout master package parts (by @ChristopherVR) (0427da1)
  • core: Preserve custom geometry command order (by @ChristopherVR) (695a2fe)
  • core: Allocate string Zoom fallback IDs (by @ChristopherVR) (2fbb6e8)
  • core: Preserve SmartArt text paragraphs (by @ChristopherVR) (78a51bd)
  • core: Retain SmartArt extension order (by @ChristopherVR) (4475ba2)
  • core: Load embedded 3D model payloads (by @ChristopherVR) (f052f8c)
  • core: Reconcile SmartArt legacy text edits (by @ChristopherVR) (13253b5)
  • core: Project SmartArt rich text to shapes (by @ChristopherVR) (5b106a6)
  • core: Resolve SmartArt run text styles (by @ChristopherVR) (6737afd)
  • core: Evaluate SmartArt layout rules (by @ChristopherVR) (4a918fd)
  • core: Guard SmartArt text order annotation (by @ChristopherVR) (44d7013)
  • core: Preserve chart series option shape (by @ChristopherVR) (87c0df4)

Refactor ​

  • core: Name OpenXML coverage by capability (by @ChristopherVR) (1e25a7f)
  • core: Keep chart protection codec internal (by @ChristopherVR) (da3fcc1)

Testing ​

  • core: Record Wave 11 OpenXML coverage (by @ChristopherVR) (54da8fa)
  • core: Require evidence for OpenXML coverage (by @ChristopherVR) (c1d27e0)
  • core: Record implemented OpenXML capabilities (by @ChristopherVR) (a04f5ed)
  • core: Record print protection and rule coverage (by @ChristopherVR) (804c74e)
  • core: Record font audio pivot and algorithm coverage (by @ChristopherVR) (199a137)
  • core: Record line layout and pivot coverage (by @ChristopherVR) (f4e21db)
  • core: Assert structural chart SVG output (by @ChristopherVR) (e52c3c7)
  • core: Assert typed authored ink reload (by @ChristopherVR) (d12827f)

Chores ​

  • repo: Capture pending workspace updates (by @ChristopherVR) (5d274f1)

1.5.0 - 2026-07-16 ​

Documentation ​

  • packages: Add package-specific readme visuals (by @ChristopherVR) (9e20f13)

1.4.0 - 2026-07-13 ​

Bug Fixes ​

  • build: Restore compatibility after dependency updates (by @ChristopherVR) (ddbfae6)

Dependencies ​

  • deps: Update fast-xml-parser to 5.10.0 (by @dependabot[bot]) (6080273)
  • deps: Update typescript to 7.0.2 (by @dependabot[bot]) (0a7c1f1)

1.3.1 - 2026-07-13 ​

Bug Fixes ​

  • core: Open Office-encrypted pptx files (by @ChristopherVR) (51aa670)

1.3.0 - 2026-07-11 ​

Other ​

  • Reconcile with origin/main before push (by @ChristopherVR) (0ecd3d9)

1.2.8 - 2026-07-10 ​

Bug Fixes ​

  • core: Preserve whitespace-only run text on load (by @ChristopherVR) (b83bdbc)

1.2.7 - 2026-07-09 ​

Bug Fixes ​

  • core: Close residual ReDoS/path-traversal gaps from the last CodeQL pass (by @ChristopherVR) (9b17db9)

1.2.6 - 2026-07-09 ​

Other ​

  • Reconcile with origin/main before push (by @ChristopherVR) (10acef8)

1.2.5 - 2026-07-09 ​

Other ​

  • Reconcile with origin/main before push (by @ChristopherVR) (b8c46bc)

1.2.4 - 2026-07-09 ​

Bug Fixes ​

  • core: Preserve SmartArt node geometry when round-tripping (by @ChristopherVR) (cc5bd78)

1.2.3 - 2026-07-08 ​

Documentation ​

  • core: Remove explicit jszip/fast-xml-parser mention from install section (by @ChristopherVR) (6b72906)

1.2.2 - 2026-07-07 ​

Bug Fixes ​

  • core: Handle absolute relationship target paths in layout/master resolution (by @ChristopherVR) (5ea40c2)

1.2.1 - 2026-07-06 ​

Bug Fixes ​

  • core: Cast xmldom Element to Node for xml-crypto canonicalization (by @ChristopherVR) (8fbd97e)
  • core: Cast xmldom Element to Node at all canonicalization call sites (by @ChristopherVR) (5f0fa32)
  • core: Replace standard DOM types with structural interfaces in signature-node (by @ChristopherVR) (febe7bd)

1.2.0 - 2026-07-05 ​

Features ​

  • core,cli: Add react, angular, vue to npm keywords (by @ChristopherVR) (528ec61)

1.1.48 - 2026-07-04 ​

Bug Fixes ​

  • core: Namespace layout/master element ids by owning part (by @ChristopherVR) (baa499c)
  • core: Xmldom 0.9 type compatibility in signature-node (by @ChristopherVR) (ad514e8)
  • core: Correct install docs and drop the retired @christophervr/pptx-viewer alias (by @ChristopherVR) (6544b4e)
  • Build issue (by @ChristopherVR) (08a0d2c)
  • core: Clear stale drawing shapes when switching smartart layout (by @ChristopherVR) (c62959f)
  • core: Stop SmartArt edits from corrupting the saved pptx (by @ChristopherVR) (507fe33)
  • core: Fabricate diagram parts so inserted SmartArt survives save (by @ChristopherVR) (0d1341f)

1.1.43 - 2026-07-02 ​

Bug Fixes ​

  • core: Correct install docs and drop the retired @christophervr/pptx-viewer alias (by @ChristopherVR) (6544b4e)
  • core,angular: Revert xmldom to 0.8.x and fix shared import specifiers (by @ChristopherVR) (29eda31)

1.1.42 - 2026-06-27 ​

Bug Fixes ​

  • Missing document links (by @ChristopherVR) (f52bd6f)

1.1.28 - 2026-06-21 ​

Dependencies ​

  • deps: Update dependencies within semver ranges (by @ChristopherVR) (d472b58)

1.1.27 - 2026-06-21 ​

Bug Fixes ​

  • angular: Bundle pptx-viewer-core and fix demo JIT + Vue demo alias (by @ChristopherVR) (78838ec)

1.1.26 - 2026-06-21 ​

Documentation ​

  • Sharpen npm descriptions and keywords for discoverability (by @ChristopherVR) (8fea56d)
  • core: Reword README in plain language (by @ChristopherVR) (793c26e)

1.1.24 - 2026-06-20 ​

Features ​

  • core: Add signature-node module and shared signature utilities (by @ChristopherVR) (e7cb263)

Bug Fixes ​

  • Enable vitest globals in all packages to fix expectTypeOf errors (by @ChristopherVR) (6d90d72)
  • test: Add i18n mocks to react tests and bump versions to 1.2.0 (by @ChristopherVR) (2c1c962)
  • deps: Pin @xmldom/xmldom to 0.8.x in core to fix build (by @ChristopherVR) (2ed7b2e)
  • core: Declare jszip and fast-xml-parser as runtime dependencies (by @ChristopherVR) (b6636be)

Refactor ​

  • core: Consume emf-converter and mtx-decompressor from npm (by @ChristopherVR) (2f6013d)

Documentation ​

  • Restructure root README, elevate limitations, fix outdated claims (by @ChristopherVR) (86dcda9)
  • Rewrite limitations with technical explanations and remove inaccurate claims (by @ChristopherVR) (ac4bc84)
  • readme: Npm-friendly READMEs — hero image, capabilities & install first (by @ChristopherVR) (c843d19)
  • Streamline npm READMEs and add badges, screenshots, demo links (by @ChristopherVR) (92e980d)

Build & CI ​

  • Independent per-package versioning, tags, and changelogs (by @ChristopherVR) (79595d9)

Dependencies ​

  • deps: Update all dependencies to latest (by @ChristopherVR) (e3287c0)
  • deps: Bump all workspace manifest floors to latest (by @ChristopherVR) (890c33d)

Chores ​

  • Add license files, NOTICE, and package metadata for npm publishing (by @ChristopherVR) (9464bb8)
  • Bump all packages to v1.1.0 and remove remaining MyClawAssist refs (by @ChristopherVR) (c386511)
  • Bump all packages to 1.x.1 patch versions (by @ChristopherVR) (c75205a)
  • Bump all packages to minor versions for SDK table support (by @ChristopherVR) (2d4b635)
  • Bump dependencies to latest and minor-bump packages for parity work (by @ChristopherVR) (da19fdf)
  • Roll TypeScript back to 5.9.x; quiet new oxlint vitest rules (by @ChristopherVR) (713c020)
  • Relicense from MIT to Apache-2.0 (by @ChristopherVR) (e12f926)

Released under the Apache-2.0 License.