pptx-svelte-viewer
Release notes for pptx-svelte-viewer on npm, generated from Conventional Commits by the release pipeline.
3.2.2 - 2026-08-29
Bug Fixes
3.2.1 - 2026-08-29
Bug Fixes
- svelte: Shrink mobile bottom bar and rebuild the hamburger menu (by @ChristopherVR) (c8f394d)
- ui: Stop resize/rotate handles rendering behind their own element (by @ChristopherVR) (1eefded)
- ui: Stop ribbon Insert/Animation/View tab content stretching and clipping (by @ChristopherVR) (9487346)
- print: Stop print opening a blank tab and doing nothing (by @ChristopherVR) (6616f81)
- ui: Stop connector-endpoint detach breaking on Vue and Svelte (by @ChristopherVR) (7fe9401)
3.2.0 - 2026-08-28
Features
- svelte: Add a Protected View banner with per-document dismissal (by @ChristopherVR) (9710dea)
Bug Fixes
- ui: Stop ribbon action buttons from stretching to fill the row height (by @ChristopherVR) (d53ce5b)
- core: Reindex chart data-point overrides after removing a category (by @ChristopherVR) (7bd64f8)
- shared: Repair print, drop Package for Sharing, wire Options behavior (by @ChristopherVR) (bcc2ac7)
- svelte: Repair print, drop Package for Sharing, wire Options behavior (by @ChristopherVR) (9a164d6)
Security
- shared: Drop duplicate Protected View banner strings (by @ChristopherVR) (1c35863)
3.1.1 - 2026-08-28
Bug Fixes
- charts: Offer 3-D chart types in the type-change dropdown (by @ChristopherVR) (4e960f7)
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 p:seq @concurrent/@nextAc/@prevAc and p:cTn @restart (by @ChristopherVR) (3e3427d)
- shared: Honour animRot/animScale absolute values, tavLst, txEl ranges, p:excl and bldLvl in playback (by @ChristopherVR) (f71396b)
- shared: Resolve 9 more SMIL animEffect filter families to real reveals (by @ChristopherVR) (e47aa40)
- Author and embed transition sounds from the ribbon Sound picker (by @ChristopherVR) (ada8cdb)
- Expose transition speed and morph-option controls in all five bindings (by @ChristopherVR) (122894d)
- ink: Retain pen-tilt InkML channels and render a calligraphic nib (by @ChristopherVR) (6adab79)
- shared: Raycast hover tooltip for surface chart marks (by @ChristopherVR) (c943646)
- shared: Resolve stretch, newsflash and random animEffect filters (by @ChristopherVR) (58c898e)
- core,shared: Surface p:tavLst attrName, honour colour ramps (by @ChristopherVR) (2ccf45f)
- shared: Widen native-animation preset playback coverage to 54/200 (by @ChristopherVR) (41e2b52)
- shared: True 3D bar3D chart scene via three.js, opt-in all bindings (by @ChristopherVR) (ac920da)
- shared: True 3D line3D/area3D chart scenes via three.js, opt-in all bindings (by @ChristopherVR) (1447517)
- charts: Give pie3D charts true 3D rendering across all bindings (by @ChristopherVR) (a1b32e7)
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)
- shared: Capture Draw tool pressure in all five bindings (by @ChristopherVR) (b8a124a)
- shared: Sample ink pressure curves along the actual Bezier path (by @ChristopherVR) (629ab5d)
- core: Honour text-run reflection scale/skew/rotation/fade/anchor (by @ChristopherVR) (41dfa76)
- shared: Render rect path gradients as nested rectangles, not an ellipse (by @ChristopherVR) (f6f479e)
- shared: Add elliptical tilt foreshortening to pie3D charts (by @ChristopherVR) (63f57ba)
- shared: Claim morph proximity pairs closest-first, not by document order (by @ChristopherVR) (b68a04d)
- deps: Converge ai-sdk adapters on a single ai package version, fix two flaky tests (by @ChristopherVR) (4365a02)
- core: Author Draw-tab ink InkML that real PowerPoint actually opens (by @ChristopherVR) (38633c7)
- animation: Correct tests left stale by combining independent preset fix waves (by @ChristopherVR) (02371bb)
- charts: Repair merge conflicts left broken by a diff3 edge case, wire remaining demos (by @ChristopherVR) (42d550d)
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.3 - 2026-08-26
Bug Fixes
- Stop duplicate inline-edit text render and fix ribbon popup clipping (by @ChristopherVR) (f084c64)
- Derive mobile chrome from the browser viewport, not the container (by @ChristopherVR) (29e5ea1)
Dependencies
- deps: Update fast-xml-parser requirement from ^5.10.1 to ^5.11.0 (#177) (by @dependabot[bot]) (a876e0f)
- deps: Bump @microsoft/api-extractor from 7.59.0 to 7.58.13 (#172) (by @dependabot[bot]) (c773015)
- deps: Update dompurify requirement from ^3.4.13 to ^3.4.14 (#173) (by @dependabot[bot]) (19afbe1)
3.0.2 - 2026-08-22
Bug Fixes
- shared,angular: Stop the stroke overlay inventing outlines, and finish the Angular whitespace fix (by @ChristopherVR) (20d4d17)
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)
- shared: Print notes pages in every binding, and honour notesStyle in the master preview (by @ChristopherVR) (6f2f54d)
- 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)
- shared: Honour a:ln/@algn and per-subpath fill modes (by @ChristopherVR) (d049a8f)
- shared: Correct autofit and paragraph-spacing semantics (by @ChristopherVR) (86f61e9)
- shared: Move per-script fonts and measured tab layout out of React (by @ChristopherVR) (dbd3442)
- shared: Render table cell image fill, zero margins and authored grid spacing (by @ChristopherVR) (d4079d2)
- svelte: Consume the shared render decisions for the OpenXML fidelity fixes (by @ChristopherVR) (8d6c2be)
- 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)
- shared: Render data tables, legend entries, image overlays and 3D text (by @ChristopherVR) (ecec502)
- svelte: Consume the shared decisions for the second parity wave (by @ChristopherVR) (971c76d)
Refactor
- shared: Split oversized text modules and add the circle-in keyframe (by @ChristopherVR) (1c0797f)
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.23.0 - 2026-08-21
Features
- shared,react: Wire interactive 3D surface chart scene (opt-in) (by @ChristopherVR) (78587a4)
- svelte: Wire interactive 3D surface chart scene (opt-in) (by @ChristopherVR) (f37c598)
Bug Fixes
- shared: Compute elbow/curved connector routing from actual shape geometry (by @ChristopherVR) (eecc519)
- 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.22.1 - 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.22.0 - 2026-08-21
Features
- shared: Add header-footer dialog draft helpers (by @ChristopherVR) (0f640c8)
- shared: Add classifyMediaType, the audio/video MIME classifier (by @ChristopherVR) (56520a1)
- shared: Add resolveTemplateBackgroundRows for the template background card (by @ChristopherVR) (67d327d)
- shared: Add patchChartData, the type-aware chart data patcher (by @ChristopherVR) (5309296)
- svelte: Add the missing element lock/unlock toggle (by @ChristopherVR) (e235f66)
- shared: Add pptx.group.childCount/groupedElement i18n keys (by @ChristopherVR) (f5557e1)
- svelte: Add the missing group/OLE element info cards (by @ChristopherVR) (8eb1adf)
- svelte: Add the table quick-style preset swatch gallery (by @ChristopherVR) (b2c8d8c)
- svelte: Fill out the ribbon overflow "..." menu (by @ChristopherVR) (077c867)
- svelte: Add SmartArt text-pane keyboard editing (Tab/Enter/Backspace) (by @ChristopherVR) (21abb01)
- svelte: Add table column/row drag-resize handles (by @ChristopherVR) (37d965c)
- svelte: Add slide sorter context menu (duplicate/hide/delete) (by @ChristopherVR) (e187e58)
- svelte: Add editor-canvas pinch-zoom and touch double-tap-to-edit (by @ChristopherVR) (48158f8)
- svelte: Edit layout/master background from the slide inspector (by @ChristopherVR) (7611027)
Bug Fixes
- shared: Sanitize every download filename, not just callers that remember to (by @ChristopherVR) (7bdf73b)
- shared: Floor animation timeline bar width to a visible minimum (by @ChristopherVR) (918ac2f)
- angular,svelte: Render each font-picker option in its own font (by @ChristopherVR) (b1845fa)
- svelte,vanilla: Commit in-progress SmartArt node text before Tab/Enter (by @ChristopherVR) (2c79a1f)
Refactor
- svelte: Repoint header-footer draft clone/patch onto shared (by @ChristopherVR) (8bafb06)
- react,vue,svelte,vanilla: Repoint media-type check onto shared (by @ChristopherVR) (bb8e95c)
2.21.4 - 2026-08-21
Bug Fixes
- core: Parse full custom geometry on pictures, not just path data (by @ChristopherVR) (b6cbef6)
2.21.3 - 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)
- shared: Apply autofit shrink-to-fit scale/reduction to paragraph struts (by @ChristopherVR) (4c1d5c8)
2.21.2 - 2026-08-20
Bug Fixes
- svelte,vanilla: Fix the obfuscation key order in the embedded-font test fixture (by @ChristopherVR) (20320c2)
- shared: Describe stripped invisible characters by code point, not literally (by @ChristopherVR) (9ddca51)
2.21.1 - 2026-08-20
Bug Fixes
- shared: Repoint options numeric-control clamp onto shared helper (by @ChristopherVR) (138dfe5)
Refactor
- shared,react,vue,vanilla: Repoint comment mutations onto shared comments-list (by @ChristopherVR) (0eb28dc)
2.21.0 - 2026-08-20
Features
- shared: Add hover tooltips to every chart mark, not just the region map (by @ChristopherVR) (4ca29f5)
Bug Fixes
- angular: Wire Home ribbon Reset/Fill/Outline through shared commands (by @ChristopherVR) (c06b894)
- svelte: Make table row/column insert-delete merge-aware (by @ChristopherVR) (111d272)
- svelte,vanilla: Wire double-click chart title rename (by @ChristopherVR) (48b997c)
- react,svelte: Block unsafe URL schemes on hyperlink save (by @ChristopherVR) (61b43e6)
- shared: Stack line/area charts and lock their drag geometry (by @ChristopherVR) (0da8ba5)
- shared: Extract table column-width redistribution to shared (by @ChristopherVR) (cbd9fc7)
Refactor
- shared: Extract SmartArt node-count bounds table (by @ChristopherVR) (10cd945)
- shared: Extract animation drag-to-reorder into shared (by @ChristopherVR) (b136d02)
- shared: Extract SmartArt text-pane handlers to shared (by @ChristopherVR) (911693c)
- shared: Extract chart legend layout to shared (by @ChristopherVR) (acec62b)
- shared: Extract animation timeline-bar layout math to shared (by @ChristopherVR) (1a9f66d)
- shared: Extract table quick-style preset application (by @ChristopherVR) (aa52c10)
- shared: Extract export base-filename derivation to shared (by @ChristopherVR) (58091bc)
2.20.7 - 2026-08-19
Bug Fixes
- core: Correct OOXML a:tint colour math (ECMA-376 20.1.2.3.32) (by @ChristopherVR) (7cf29f3)
- shared: Stretch uncropped pictures to fill their frame (by @ChristopherVR) (ff2fee3)
- 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)
- security: Resolve code-scanning ReDoS and comment-sanitization alerts (by @ChristopherVR) (e58e3f5)
2.20.6 - 2026-08-19
Bug Fixes
- shared: Add collaboration-active-session connected-users view-model (by @ChristopherVR) (7add165)
- svelte: Mobile Comments double header, Share dialog user list (by @ChristopherVR) (e97fdd6)
2.20.5 - 2026-08-19
Dependencies
- deps: Update y-websocket requirement from ^3.0.0 to ^3.1.0 (#169) (by @dependabot[bot]) (7e9c5a5)
- deps: Update @lucide/svelte requirement from ^1.28.0 to ^1.31.0 (#166) (by @dependabot[bot]) (3e1a554)
Chores
- deps-dev: Update rollup-plugin-dts requirement (#167) (by @dependabot[bot]) (d6ecdf5)
- deps-dev: Update vite requirement from ^8.2.0 to ^8.2.1 (#165) (by @dependabot[bot]) (a059a9e)
- deps-dev: Bump the minor-and-patch group with 2 updates (#162) (by @dependabot[bot]) (2645f25)
2.20.4 - 2026-08-14
Bug Fixes
- vanilla: Repair the properties panel, inline editor, mobile chrome and show performance (by @ChristopherVR) (47265ef)
2.20.3 - 2026-08-14
Bug Fixes
- shared: Run an in-place morph dissolve on the wrapper, not the element (by @ChristopherVR) (d46d2ee)
2.20.2 - 2026-08-14
Bug Fixes
- shared: Sum a morph cross-dissolve instead of stacking two fades (by @ChristopherVR) (86a9e7a)
Testing
- Mask the fields that legitimately move, and size two waits for CI (by @ChristopherVR) (68bae19)
2.20.1 - 2026-08-14
Bug Fixes
- Repair five regressions this review introduced (by @ChristopherVR) (952063b)
2.20.0 - 2026-08-13
Features
- shared: Take the last six chart kinds and the autosave policy (by @ChristopherVR) (efe8438)
Bug Fixes
- core: Repair the XML plumbing four separate defects were hiding behind (by @ChristopherVR) (8beb664)
- bindings: Stop read-only surfaces clobbering live state (by @ChristopherVR) (e820984)
2.19.0 - 2026-08-13
Bug Fixes
- core: Stop save rewriting what the author never wrote (by @ChristopherVR) (6fb2767)
2.18.0 - 2026-08-13
Features
- shared: Own the decisions the bindings were each making themselves (by @ChristopherVR) (5421272)
- shared: Model hyperlinks and equations, and own the group rules (by @ChristopherVR) (a6bf4c1)
Bug Fixes
- core: Repair save-pipeline corruption found by the OpenXML parity audit (by @ChristopherVR) (554006e)
- svelte: Stop shadowing shared table ops and wire the missing gestures (by @ChristopherVR) (c90fb3f)
- core: Close the round-trip defects the corpus harness exposed (by @ChristopherVR) (2011c66)
- svelte,vanilla: Wire SmartArt reflow and the shared run rendering (by @ChristopherVR) (37b7e45)
2.17.9 - 2026-08-11
Bug Fixes
- shared: Keep a morph pair travelling when its outline is tweened too (by @ChristopherVR) (0316cf7)
- shared: Dissolve a re-fitted morph paragraph in place instead of stretching it (by @ChristopherVR) (975c6f6)
2.17.8 - 2026-08-11
Bug Fixes
- shared: Stop Vue and Angular writing an inline pointer-events lock during a show (by @ChristopherVR) (4cb649a)
- svelte: Stop the show stage writing an inline pointer-events unlock (by @ChristopherVR) (6f0a9f4)
2.17.7 - 2026-08-11
Bug Fixes
- vue: Swap inherited layout artwork when a slide's layout changes (by @ChristopherVR) (1e927ce)
Refactor
- shared: One paragraph-spacing resolver, and delete four more binding copies (by @ChristopherVR) (65f8268)
- shared: Give the cached-SmartArt projection the whole decision, and React's table styling too (by @ChristopherVR) (411148f)
- shared: Move find/replace and per-cell table CSS off their React copies (by @ChristopherVR) (5b81728)
2.17.6 - 2026-08-10
Bug Fixes
- shared: Render cached SmartArt shapes and transparent table headers as authored (by @ChristopherVR) (24ec6b4)
2.17.5 - 2026-08-10
Bug Fixes
- core: Read placeholder, list and percentage values as authored (by @ChristopherVR) (dc2d679)
- shared: Paint an inert morph ghost statically so it stops jittering (by @ChristopherVR) (ce3be84)
2.17.4 - 2026-08-10
Bug Fixes
- shared: Crossfade morph wording instead of fading it out then in (by @ChristopherVR) (50984f1)
2.17.3 - 2026-08-10
Dependencies
- deps: Update dompurify requirement from ^3.4.12 to ^3.4.13 (#151) (by @dependabot[bot]) (7b975ff)
- deps: Update yjs requirement from ^13.6.31 to ^13.6.32 (#152) (by @dependabot[bot]) (456fdb8)
Chores
2.17.2 - 2026-08-08
Bug Fixes
- Dissolve a morph's arriving shapes over the ghost that hid them (by @ChristopherVR) (89536a3)
- Dissolve a morph's centre panel the way PowerPoint measurably does (by @ChristopherVR) (8c03a9a)
- shared: Measure per word, and never measure a glyph in isolation (by @ChristopherVR) (a92004b)
2.17.1 - 2026-08-07
Bug Fixes
- shared: Morph a picture's scale, which OOXML stores as a source crop (by @ChristopherVR) (e2743c7)
- shared: A still of a slide paints no media chrome (by @ChristopherVR) (d99e6fd)
- svelte: Route the media fallback through the shared surface rule (by @ChristopherVR) (f6b3b8d)
- shared: Measure each run's PowerPoint width instead of guessing one (by @ChristopherVR) (920d1f3)
- shared: A media fallback says WHICH badge, not just "a badge" (by @ChristopherVR) (1cbe78f)
- svelte: Mark missing media as not found, not as playable (by @ChristopherVR) (03e21b0)
Styling
- shared: Escape the measurement cache separator (by @ChristopherVR) (944b312)
2.17.0 - 2026-08-07
Features
- Navigate a running slide show on the wheel in every binding (by @ChristopherVR) (91a19e9)
2.16.0 - 2026-08-07
Features
- shared: Map wheel gestures to PowerPoint's intents (by @ChristopherVR) (1cc7797)
Refactor
- Route four bindings through the shared geometry cascade (by @ChristopherVR) (859ca12)
2.15.3 - 2026-08-07
Bug Fixes
- shared: Stop category-axis labels crowding the plot (by @ChristopherVR) (b511ac4)
- Let clicks fall through an unfilled shape's interior (by @ChristopherVR) (7e17f9d)
- Hollow-shape click-through in the remaining four bindings (by @ChristopherVR) (fee05ad)
Refactor
- shared: Single-source the shape geometry cascade (by @ChristopherVR) (396e4a2)
2.15.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)
- Stop slicing overflowing text with an identity rect clip-path (by @ChristopherVR) (7393111)
2.15.1 - 2026-08-07
Bug Fixes
- core: Recognize nodeType="afterEffect" when parsing animation triggers (by @ChristopherVR) (554c077)
2.15.0 - 2026-08-07
Features
- shared: Remember the open deck so a refresh reopens it (by @ChristopherVR) (abbe3bd)
Bug Fixes
- shared: Make Set Up Slide Show's Manual advance mode actually work (by @ChristopherVR) (c308423)
2.14.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: Insert slides from a template gallery (by @ChristopherVR) (abc7f77)
- shared: Blackboard mode, element rename and column charts (by @ChristopherVR) (a69ffce)
- shared: Selectively-subscribable viewer store with per-binding adapters (by @ChristopherVR) (745c554)
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)
- shared: Animation reveal, stroke paint and comment threading (by @ChristopherVR) (946aea2)
- svelte: Translate inspector tabs and place the caret at the end (by @ChristopherVR) (b6d302c)
- angular: Title the Selection Pane control like every other binding (by @ChristopherVR) (801a88a)
- shared: Keep a drawing gesture from advancing the show (by @ChristopherVR) (e2578cc)
- shared: Return the keyboard to the viewer after an inline edit (by @ChristopherVR) (351947a)
- present: Let a blanked screen pass clicks through to the show (by @ChristopherVR) (a8cc5d2)
- shared: Translate the labels five bindings were rendering in English (by @ChristopherVR) (d1bfad6)
- cli: Let the scaffolded starters open legacy .ppt decks (by @ChristopherVR) (2cde7f8)
- shared: Escape SVG gradient markup attributes (by @ChristopherVR) (7e5dd23)
- shared: Route numeric SVG gradient attributes through the escape barrier (by @ChristopherVR) (58485f3)
- shared: Stop a morph inventing pairs and hiding what arrives (by @ChristopherVR) (058051d)
Performance
- shared: Drop state writes that carry no new information (by @ChristopherVR) (74ba824)
Refactor
- shared: Place the eight resize handles from one table (by @ChristopherVR) (86feabb)
- shared: Move the canvas zoom slice onto the viewer runtime (by @ChristopherVR) (054c9eb)
2.13.2 - 2026-08-05
Bug Fixes
- core: Resolve styled full font names and add condensed fallbacks (by @ChristopherVR) (26b1f74)
- shared: Draw chart text at point size and scale chart SVGs 1:1 (by @ChristopherVR) (da333f9)
- shared: Suspend the show on window blur, not only tab-hide (by @ChristopherVR) (4a2c254)
- shared: Fold the origami transition like a sheet of paper (by @ChristopherVR) (f0f9fc2)
- shared: Cover the fillRect placement fields in the collab schema (by @ChristopherVR) (d455ed7)
2.13.1 - 2026-08-05
Dependencies
- deps: Bump ai from 7.0.48 to 7.0.44 (#134) (by @dependabot[bot]) (08a13e0)
- deps: Update @lucide/svelte requirement from ^1.27.0 to ^1.28.0 (#142) (by @dependabot[bot]) (1a13fb6)
Chores
2.13.0 - 2026-08-01
Features
- Fixed graphs and arrows shapes (by @ChristopherVR) (94813f5)
2.12.1 - 2026-08-01
Bug Fixes
- Let the presenter finish the show, and keep scrubbers out of its panes (by @ChristopherVR) (c7c12bc)
Refactor
- shared: Split arrow markers and dash patterns out of connector-path (by @ChristopherVR) (53d47d1)
2.12.0 - 2026-08-01
Features
- Mark hidden slides in every rail and sorter, and honour custom shows in vanilla and svelte (by @ChristopherVR) (b61f202)
- Name every animation preset a user can reach, in every locale (by @ChristopherVR) (f99962d)
- vue: Add the connector arrowhead controls, and make connectors clickable (by @ChristopherVR) (2b0976e)
- Draw action affordances in every binding, and mark group children (by @ChristopherVR) (39ed47f)
- Make connectors clickable and give all five the same arrowhead controls (by @ChristopherVR) (e482b12)
- Give all five the same presenter console, and stop vanilla dropping the show (by @ChristopherVR) (bf861fd)
Bug Fixes
- shared: Paint SVG-only pictures, honour srcRect crops, stop bold leaking (by @ChristopherVR) (ff866db)
- Give every binding React's slide-show bar, and make slice clicks work (by @ChristopherVR) (31f30f7)
- Play slide media the way the deck authored it (by @ChristopherVR) (855f140)
2.11.1 - 2026-07-31
Bug Fixes
- shared: Stop a morph gliding one text box into an unrelated one (by @ChristopherVR) (bc4789f)
- shared: Stop a morph double-painting unchanged shapes, and dissolve text (by @ChristopherVR) (d4b3952)
- Stop showing users raw OOXML tokens, and make Vanilla's point index work (by @ChristopherVR) (33d63ce)
- Skip hidden slides in the show, and honour endWithBlackSlide (by @ChristopherVR) (2a9ef49)
2.11.0 - 2026-07-31
Features
- shared: Outline view, motion-path authoring, and chart marker resolution (by @ChristopherVR) (e6a3621)
- Outline view, motion-path authoring and the missing chart controls (by @ChristopherVR) (278de2f)
Bug Fixes
- core: Stop dropping a:pPr/@lvl when a paragraph's runs share one style (by @ChristopherVR) (03aa4ed)
2.10.0 - 2026-07-31
Features
- shared: Own the equation, media, reading-view and table-grid logic (by @ChristopherVR) (c33af39)
- Wire reading view, the shared equation pipeline and a table data grid (by @ChristopherVR) (b731b52)
Bug Fixes
- shared: Resolve linked text-box chains inside groups (by @ChristopherVR) (5e09586)
2.9.0 - 2026-07-31
Features
- shared: Give every referenced translation key a real entry (by @ChristopherVR) (8ff4461)
- shared: Own the logic five bindings had each hand-ported (by @ChristopherVR) (60b9b0d)
- svelte: Close the ribbon, inspector and ruler gaps against the reference (by @ChristopherVR) (f2e0684)
- core: Model a gradient / pattern outline in structured form (by @ChristopherVR) (69322c9)
- shared: Stroke a gradient outline as SVG instead of a flat border (by @ChristopherVR) (fc72324)
- svelte: Paint a gradient outline with a stroked SVG path (by @ChristopherVR) (dd43f2d)
- shared: Stroke a patterned outline with a real pattern tile (by @ChristopherVR) (9d8c3bd)
- svelte: Stroke a patterned outline, not its bare foreground (by @ChristopherVR) (f11c0f5)
- shared: Translate the File backstage and merge the stray key namespaces (by @ChristopherVR) (e56aa6d)
Bug Fixes
- shared: Honour authored preset adjustments and emit parseable gradient CSS (by @ChristopherVR) (dbf5640)
- svelte: Apply the gradient tile background-position (by @ChristopherVR) (7c3d664)
- 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)
- shared: Resolve a click on a group's child to the group (by @ChristopherVR) (88ef671)
- shared: Flow linked text-box overflow in every binding (by @ChristopherVR) (abe1bb0)
Refactor
- svelte: Clear the file-size debt, and the duplicate viewer state behind it (by @ChristopherVR) (830bcc9)
Testing
- core: Pin issue #132 fill and adjustment parsing against the reporter deck (by @ChristopherVR) (06cd312)
2.8.0 - 2026-07-31
Features
- shared: Decide which slide-show clicks are a PowerPoint advance (by @ChristopherVR) (12ab5c8)
2.7.1 - 2026-07-31
Bug Fixes
- shared: Match PowerPoint's morph dissolve windows and half-turn direction (by @ChristopherVR) (661c250)
- shared: Stop morph pairing a shape with the group that wraps it (by @ChristopherVR) (d240498)
- core: Stop an interactive sequence adding a phantom click step (by @ChristopherVR) (65a4738)
- shared: Resolve the timed slide auto-advance delay (by @ChristopherVR) (beba8cc)
- svelte: Wire the backstage browse control and stretch its nav rail (by @ChristopherVR) (339adb2)
- svelte: Make the slide show's transitions visible on a large display (by @ChristopherVR) (f8a8b8a)
- svelte: Advance the slide show on a slide's authored timing (by @ChristopherVR) (3ce750a)
Refactor
- shared: Break the morph-matching <-> morph-flatten import cycle (by @ChristopherVR) (92223c5)
2.7.0 - 2026-07-31
Features
- shared: Morph a !!-named shape across a grouping boundary (by @ChristopherVR) (c74847d)
Bug Fixes
- shared: Morph rotates the short way round, like PowerPoint (by @ChristopherVR) (255d0b5)
- shared: Honour the legacy spd speed, including for morph (by @ChristopherVR) (ab796b9)
- shared: Keep a morphing object solid instead of dipping to the background (by @ChristopherVR) (5f2b518)
2.6.6 - 2026-07-30
Bug Fixes
- shared: Stop morph id-pairing shapes whose creationId GUIDs differ (by @ChristopherVR) (b9afc84)
2.6.5 - 2026-07-30
Bug Fixes
- core: Stamp the endParaRPr size on an empty paragraph's separator (by @ChristopherVR) (2b18374)
- shared: PowerPoint-exact line height, blank-line strut, marker indent reset (by @ChristopherVR) (7f7181b)
2.6.4 - 2026-07-30
Bug Fixes
- shared: Restate the static transform in every morph keyframe (by @ChristopherVR) (075a645)
2.6.3 - 2026-07-30
Bug Fixes
- shared: Stop morph pairing nearby shapes of very different sizes; 2s default (by @ChristopherVR) (3d49c67)
2.6.2 - 2026-07-30
Bug Fixes
- shared: Crossfade a morph pair whose GROUP children changed (by @ChristopherVR) (7492f26)
2.6.1 - 2026-07-29
Bug Fixes
- core: Keep grouped text at its authored point size (by @ChristopherVR) (56f676a)
- shared: Keep authored blank lines and give the bullet its hanging box (by @ChristopherVR) (0a8de56)
- shared: Make morph animate a near-duplicate slide pair (by @ChristopherVR) (e73ade7)
- svelte: Render authored blank lines and drop the bullet spacer (by @ChristopherVR) (a964ad1)
2.6.0 - 2026-07-27
Features
- shared: Morph transition render plan and paragraph strut basis (by @ChristopherVR) (94cfddd)
Bug Fixes
- core: Parse morph, fontRef text colour, and unsized bullets correctly (by @ChristopherVR) (7607996)
- svelte: Play morph transitions and re-base paragraph line boxes (by @ChristopherVR) (8c44caf)
2.5.3 - 2026-07-27
Dependencies
- deps: Update @lucide/svelte requirement from ^1.26.0 to ^1.27.0 (#121) (by @dependabot[bot]) (eec772a)
- deps: Update emf-converter requirement from ^2.0.0 to ^2.0.2 (#122) (by @dependabot[bot]) (423034a)
- deps: Update html2canvas-pro requirement from ^2.3.1 to ^2.3.2 (#124) (by @dependabot[bot]) (6ad6bce)
Chores
2.5.2 - 2026-07-27
Bug Fixes
- ci: Resolve workspace: ranges in every published manifest (by @ChristopherVR) (ea35290)
2.5.1 - 2026-07-26
Testing
- e2e: Cover remote presence geometry in every binding (by @ChristopherVR) (adb9b3c)
2.5.0 - 2026-07-26
Features
- shared: Lock the audience display out of edit mode (by @ChristopherVR) (79dc876)
- shared: Seed a slide as fully built, and keep audience input inert (by @ChristopherVR) (6acdf5e)
Bug Fixes
- core: Keep the click step's own start conditions (by @ChristopherVR) (755a4b2)
- shared: Play a slide's opening build without a click (by @ChristopherVR) (9d0ecec)
- svelte: Never show the editor in an audience display (by @ChristopherVR) (4b2c39b)
- core: Paint useBgFill shapes with the slide background (by @ChristopherVR) (f819817)
- shared: Ripple a by-paragraph build that also iterates (by @ChristopherVR) (73238d5)
- svelte: Hold back on a back step, ignore audience input (by @ChristopherVR) (4794bbe)
2.4.0 - 2026-07-25
Bug Fixes
- svelte: Clear the build warnings and repair windows dts bundling (by @ChristopherVR) (40c170a)
Dependencies
- deps: Update @lucide/svelte requirement from ^1.25.0 to ^1.26.0 (#113) (by @dependabot[bot]) (66c656f)
- deps: Update ai requirement from ^7.0.35 to ^7.0.37 (#115) (by @dependabot[bot]) (71d200d)
Chores
- deps-dev: Update tsdown requirement (#109) (by @dependabot[bot]) (f83aa0a)
- deps-dev: Update happy-dom requirement from ^20.11.0 to ^20.11.1 (#116) (by @dependabot[bot]) (0a2f499)
2.3.0 - 2026-07-25
Features
- shared: Rule for advancing a show from the presenter slide pane (by @ChristopherVR) (ee2d0f5)
Bug Fixes
- core: Rotate OOXML gradient angles into CSS space (by @ChristopherVR) (eebf128)
- shared: Rotate OOXML gradient angles into CSS space (by @ChristopherVR) (406d78b)
- shared: Parse playFrom media commands in linear time (by @ChristopherVR) (60820b1)
- svelte: Restore double-tap to edit under finger-sized handles (by @ChristopherVR) (956281e)
- Svelte border width for selected element (by @ChristopherVR) (b1dccd1)
- core: Honour a:noFill and stop painting hidden fills/lines (by @ChristopherVR) (ae13541)
2.2.1 - 2026-07-24
Bug Fixes
- core: Preserve native bullets and boundary spaces (#107) (7ed0971)
- svelte: Enable touch resize of elements on mobile (by @ChristopherVR) (6cab6d6)
2.2.0 - 2026-07-24
Features
- shared: Powerpoint-accurate slide-show keyboard map (by @ChristopherVR) (fdf55d4)
- vanilla: Follow PowerPoint's slide-show shortcuts (by @ChristopherVR) (629903c)
- svelte: Follow PowerPoint's slide-show shortcuts (by @ChristopherVR) (7d349f3)
- react: Give the slide-show menu PowerPoint's full command set (by @ChristopherVR) (33c826d)
2.1.0 - 2026-07-23
Features
- shared: Live-patch channel for interim collaboration state (by @ChristopherVR) (efdcc1e)
- shared: Make a departing collaborator actually leave the room (by @ChristopherVR) (6af3d8c)
Bug Fixes
- svelte: Publish inline-editor typing to peers before commit (by @ChristopherVR) (ad63f5b)
- svelte: Draw chrome icons with lucide, not text glyphs (by @ChristopherVR) (8df0a37)
- svelte: Stack the follow bar above the mobile bottom bar (by @ChristopherVR) (7f2140f)
- svelte: Leave the collab room when the document is destroyed (by @ChristopherVR) (17bd9f1)
- svelte: Anchor the follow bar top-centre and trim the collab controller (by @ChristopherVR) (daade43)
Other
- Svelte lucide icon sweep + follow bar clears the mobile bottom bar (by @ChristopherVR) (8b99577)
- Peers leave the room synchronously on frame teardown (no ghost collaborators) (by @ChristopherVR) (ae9acad)
Refactor
- shared: Split the live-patch module and escape its NUL key separator (by @ChristopherVR) (6362b22)
- svelte: Lift the collab controller's effects into their own module (by @ChristopherVR) (b3b9acd)
2.0.0 - 2026-07-23
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
- shared: Ai config, loader and bridge contracts (by @ChristopherVR) (1c40e28)
- vue: Ai bridge and chat session composables (by @ChristopherVR) (0f5cfd3)
- shared: Indexeddb-first ai chat history store (by @ChristopherVR) (88920f2)
- shared: Rebuild AI assistant tools on pptx-viewer-mcp (by @ChristopherVR) (da1c31e)
- core: Upgrade emf-converter to 2.0.0 (breaking) (by @ChristopherVR) (effa4e5)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
- build: Restore pptx-viewer-shared/ai vitest alias after main merge (by @ChristopherVR) (f878be8)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
- Friendly 2.0.0 changelog for root and packages (by @ChristopherVR) (f56564d)
Testing
- shared: Opt-in live gpt-4o-mini ai integration test (by @ChristopherVR) (48622f1)
Build & CI
- shared: Keep the ai SDK external across bindings (by @ChristopherVR) (fa5e6b7)
- Pin Vue/Angular/Svelte to exact TypeScript 6.0.3 (by @ChristopherVR) (3d80082)
1.39.0 - 2026-07-21
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.38.0 - 2026-07-21
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.37.0 - 2026-07-21
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.36.0 - 2026-07-21
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.35.0 - 2026-07-21
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.34.0 - 2026-07-21
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.33.0 - 2026-07-20
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.32.0 - 2026-07-20
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.31.0 - 2026-07-20
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.30.0 - 2026-07-20
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.29.0 - 2026-07-20
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.28.0 - 2026-07-20
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.27.0 - 2026-07-20
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.26.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.25.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.24.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.23.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.22.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.21.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.20.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.19.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.18.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Bug Fixes
- shared: Enforce transition advanceOnClick in Vue/Angular/Svelte/Vanilla (#82) (by @ChristopherVR) (66d489b)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.17.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.16.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.15.0 - 2026-07-19
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.14.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.13.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.12.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.11.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.10.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.9.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.8.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.7.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.6.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
Documentation
- Correct and expand the per-package npm readmes (by @ChristopherVR) (46f7c57)
1.5.0 - 2026-07-18
Features
- svelte: Export Ribbon/ViewerToolbar + createViewerState factory (by @ChristopherVR) (8a16608)
1.4.0 - 2026-07-18
Dependencies
- deps: Update dependencies to latest and migrate core/shared/locales to TypeScript 7 (by @ChristopherVR) (cc72948)
1.3.0 - 2026-07-18
Bug Fixes
- svelte: Ship jszip and fast-xml-parser as real dependencies (by @ChristopherVR) (20d8cf2)
1.2.0 - 2026-07-18
Features
- svelte: Ribbon and chrome parity with React (by @ChristopherVR) (41b5bf1)
- svelte: Full React-parity Properties sections in the inspector (by @ChristopherVR) (2afd746)
1.1.0 - 2026-07-17
Features
- svelte: Add theme/language switching and a real Account page (by @ChristopherVR) (499fef4)
Other
- Integrate release version bumps (by @ChristopherVR) (4b3893f)
- Integrate Svelte theme/language switching and Account page (by @ChristopherVR) (2f1488e)
1.0.0 - 2026-07-17
Features
- svelte: Add hiddenActions prop to hide individual toolbar/ribbon actions (by @ChristopherVR) (dbc6a7d)
Bug Fixes
- svelte: Ship extracted stylesheet instead of runtime-injected CSS (by @ChristopherVR) (80270a1)
0.9.1 - 2026-07-17
Dependencies
- deps: Update outdated dependencies within semver ranges (by @ChristopherVR) (3249d8e)
0.9.0 - 2026-07-17
Features
- file: Use Lucide icons in Svelte and Vanilla (by @ChristopherVR) (a956f1b)
0.8.1 - 2026-07-16
Bug Fixes
- e2e: Relax media pause timing check (by @ChristopherVR) (17e5116)
0.8.0 - 2026-07-16
Documentation
- packages: Add package-specific readme visuals (by @ChristopherVR) (9e20f13)
0.7.0 - 2026-07-15
Features
- viewer: Complete shared e2e parity (by @ChristopherVR) (170bc74)
Bug Fixes
- viewer: Align inspector and status chrome (by @ChristopherVR) (0a4b38a)
- viewer: Align responsive mobile chrome (by @ChristopherVR) (547f98c)
Testing
- viewer: Enforce framework-neutral e2e parity (by @ChristopherVR) (7389c7e)
0.6.0 - 2026-07-13
Features
- bindings: Close svelte and vanilla parity gaps (by @ChristopherVR) (9cb9d7e)
Bug Fixes
- build: Restore compatibility after dependency updates (by @ChristopherVR) (ddbfae6)
Dependencies
- deps: Update html2canvas-pro to 2.2.3 (by @dependabot[bot]) (0fe015b)
- deps: Update fast-xml-parser to 5.10.0 (by @dependabot[bot]) (6080273)
- deps: Update dompurify to 3.4.12 (by @dependabot[bot]) (00a6ca4)
- deps: Update api-extractor to 7.58.9 (by @dependabot[bot]) (0225e1f)
- deps: Update minor and patch dependencies (by @dependabot[bot]) (5cd81fb)
- deps: Update typescript to 7.0.2 (by @dependabot[bot]) (0a7c1f1)
0.5.1 - 2026-07-13
Bug Fixes
- svelte: Raise smart-art-3d-view's flushMount tick budget to de-flake CI (by @ChristopherVR) (cefb575)
- core: Open Office-encrypted pptx files (by @ChristopherVR) (51aa670)
0.5.0 - 2026-07-11
Features
- core: Add canonical collaboration field-schema (by @ChristopherVR) (cc78c1e)
- svelte: Full collaboration presence + UI (Share/Broadcast/cursors) (by @ChristopherVR) (b5dda6e)
- shared: Add the office colour swatch catalogue (by @ChristopherVR) (41135a0)
- svelte: Add ink-stroke editing state (EditorInkController) (by @ChristopherVR) (9f8d2ec)
- svelte: Wire pen/highlighter/eraser pointer gestures on the stage (by @ChristopherVR) (25540a6)
- svelte: Add the Draw ribbon tab (by @ChristopherVR) (90bb39b)
Bug Fixes
- shared: Close CRDT allowlist data-loss gaps, add binary asset map (by @ChristopherVR) (60ad222)
- svelte: Keep zoom/fullscreen/notes controls always visible in the ribbon (by @ChristopherVR) (00fd396)
0.4.0 - 2026-07-11
Features
- svelte: Add chart insert to the Insert tab (by @ChristopherVR) (b4dbbc3)
- svelte: Add equation insert to the Insert tab (by @ChristopherVR) (5d8a5fd)
- svelte: Add SmartArt insert to the Insert tab (by @ChristopherVR) (6a5a12e)
- svelte: Add media insert factory for the Insert tab (by @ChristopherVR) (3fe31b7)
- svelte: Add action button insert to the Insert tab (by @ChristopherVR) (22136ca)
- svelte: Add field insert to the Insert tab (by @ChristopherVR) (e8c4f7f)
- svelte: Wire the new Insert actions into the ribbon (by @ChristopherVR) (105a338)
- svelte: Add slide-background/transition/animation editor actions (by @ChristopherVR) (f032a47)
- svelte: Add Design, Transitions, and Animations ribbon tabs (by @ChristopherVR) (86caaec)
- shared: Add text wrap/autofit, image adjustments, and table inspector helpers (by @ChristopherVR) (54b2eda)
- svelte: Add fill/stroke opacity and gradient to the inspector (by @ChristopherVR) (34cb1ab)
- svelte: Add text properties to the inspector panel (by @ChristopherVR) (7d8819b)
- svelte: Add image adjustment and crop controls to the inspector (by @ChristopherVR) (fbe0f85)
- svelte: Add table properties to the inspector panel (by @ChristopherVR) (d87360f)
Documentation
- shared: Add i18n keys for the vanilla Design tab theme gallery (by @ChristopherVR) (593ea23)
0.3.0 - 2026-07-11
Features
- svelte: Add ribbon editor logic (clipboard, slides, arrange, text/paragraph, find-replace) (by @ChristopherVR) (12d53da)
- svelte: Add tabbed ribbon shell with File/Home/Insert/View tabs (by @ChristopherVR) (4f391ab)
Bug Fixes
- shared,react,vue,angular: Make the Aa Change Case dropdown actually rewrite text (by @ChristopherVR) (d84fd78)
- svelte: Prune the selection on undo/redo so ribbon buttons re-disable (by @ChristopherVR) (7539b70)
Refactor
- shared: Extract clipboard, shape-preset, and text-format catalogs from react (by @ChristopherVR) (b9d7cc9)
- svelte: Multi-element selection state (by @ChristopherVR) (a259d5d)
- shared: Dedupe change-case logic against text-case-transform (by @ChristopherVR) (d007c07)
0.2.0 - 2026-07-11
Features
- svelte: Collaboration and autosave (by @ChristopherVR) (240bc2c)
0.1.3 - 2026-07-11
Documentation
- svelte: Restyle readme to match the established binding readmes (by @ChristopherVR) (5328bc8)
0.1.2 - 2026-07-10
Features
- core: Add signature-node module and shared signature utilities (by @ChristopherVR) (e7cb263)
- vue: Add pptx-vue-viewer package + bundled pptx-viewer-shared (by @ChristopherVR) (1b7a958)
- shared: Add Three.js SmartArt 3D model + scene runtime (by @ChristopherVR) (f949213)
- shared: Add canonical i18n translation dictionary (by @ChristopherVR) (429e386)
- core,cli: Add react, angular, vue to npm keywords (by @ChristopherVR) (528ec61)
- svelte: Add pptx-svelte-viewer Svelte 5 binding (viewer) (by @ChristopherVR) (d5c9164)
- svelte: Render table, chart, smartArt, media, ink, and ole elements (by @ChristopherVR) (5077d82)
- vanilla,svelte: Opt-in 3D SmartArt renderer (by @ChristopherVR) (15337c9)
- svelte: PNG and PDF export (by @ChristopherVR) (b1c273e)
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)
- angular: Bundle pptx-viewer-core and fix demo JIT + Vue demo alias (by @ChristopherVR) (78838ec)
- Missing document links (by @ChristopherVR) (f52bd6f)
- 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)
Other
- smartart: Snapshot in-progress SmartArt session work (by @ChristopherVR) (0cac22f)
- Reconcile with origin/main before push (by @ChristopherVR) (b8c46bc)
- Reconcile with origin/main before push (by @ChristopherVR) (10acef8)
- Reconcile with origin/main before push (by @ChristopherVR) (0ecd3d9)
Refactor
- react: Consume theme + loader from pptx-viewer-shared (by @ChristopherVR) (1b93d1f)
- core: Consume emf-converter and mtx-decompressor from npm (by @ChristopherVR) (2f6013d)
- shared: Extract text-rendering pure logic (line-height, warp, effects) (by @ChristopherVR) (11c8d22)
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)
- Sharpen npm descriptions and keywords for discoverability (by @ChristopherVR) (8fea56d)
- core: Reword README in plain language (by @ChristopherVR) (793c26e)
- Remove completed ROADMAP and PORTING trackers, scrub stale references (by @ChristopherVR) (8a745a1)
- core: Remove explicit jszip/fast-xml-parser mention from install section (by @ChristopherVR) (6b72906)
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)
- deps: Update dependencies within semver ranges (by @ChristopherVR) (d472b58)
- deps: Declare yjs, y-websocket, and y-webrtc across bindings (by @ChristopherVR) (27a2849)
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)
- Bump vanilla + svelte to 0.1.1; clarify view-only in READMEs (by @ChristopherVR) (0bc44ab)
Changelog
All notable changes to pptx-svelte-viewer are documented in this file.