pptx-vue-viewer 1.1.31 → 1.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +50 -38
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project are documented here.
4
4
  This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
5
5
  by [git-cliff](https://git-cliff.org); do not edit it by hand.
6
6
 
7
+ ## [1.1.31](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-vue-viewer@1.1.31) - 2026-06-21
8
+
9
+ ### Bug Fixes
10
+
11
+ - **angular:** Bundle pptx-viewer-core and fix demo JIT + Vue demo alias (by @ChristopherVR) ([78838ec](https://github.com/ChristopherVR/pptx-viewer/commit/78838ec900fe2d8c90bc39333636d788c52c3161))
12
+
7
13
  ## [1.1.30](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-vue-viewer@1.1.30) - 2026-06-21
8
14
 
9
15
  ### Features
package/README.md CHANGED
@@ -3,17 +3,14 @@
3
3
  [![npm version](https://img.shields.io/npm/v/pptx-vue-viewer.svg)](https://www.npmjs.com/package/pptx-vue-viewer)
4
4
  [![license](https://img.shields.io/npm/l/pptx-vue-viewer.svg)](https://github.com/ChristopherVR/pptx-viewer/blob/main/LICENSE)
5
5
 
6
- Show Microsoft PowerPoint (`.pptx`) presentations directly in a Vue 3 app:
7
- no server, no conversion step, no PowerPoint install required. Drop in a
8
- `<PowerPointViewer>` component, hand it the file's bytes, and it reads and
9
- displays the slides as real HTML and CSS, with slide navigation and zoom.
6
+ Show, edit, and present Microsoft PowerPoint (`.pptx`) files directly in a
7
+ Vue 3 app: no server, no conversion step, no PowerPoint install required. Drop
8
+ in a `<PowerPointViewer>` component, hand it the file's bytes, and it renders
9
+ slides as real HTML and CSS with full editing and export support.
10
10
 
11
11
  ![PowerPoint editor UI rendered in the browser](https://raw.githubusercontent.com/ChristopherVR/pptx-viewer/main/.github/assets/editor.png)
12
12
 
13
- > The screenshot shows the full-featured **React** editor. This Vue package is at
14
- > a **read-only viewer** milestone today; see [Limitations](#limitations).
15
-
16
- The reading is done by the framework-agnostic [`pptx-viewer-core`](https://www.npmjs.com/package/pptx-viewer-core) engine (also published as [`@christophervr/pptx-viewer`](https://www.npmjs.com/package/@christophervr/pptx-viewer) -- the two names are identical releases), which turns a `.pptx` file into a structured slide model. This package is the Vue layer that draws that model on screen, and the engine is **bundled in**, so you install just one package.
13
+ The rendering is done by the framework-agnostic [`pptx-viewer-core`](https://www.npmjs.com/package/pptx-viewer-core) engine (also published as [`@christophervr/pptx-viewer`](https://www.npmjs.com/package/@christophervr/pptx-viewer) -- the two names are identical releases), which turns a `.pptx` file into a structured slide model. This package is the Vue layer that draws that model on screen, and the engine is **bundled in**, so you install just one package.
17
14
 
18
15
  <samp>**[▶️ Try the live demo](https://christophervr.github.io/pptx-viewer/demo-vue/)** · **[📦 npm](https://www.npmjs.com/package/pptx-vue-viewer)** · **[📖 Full docs](https://christophervr.github.io/pptx-viewer/)**</samp>
19
16
 
@@ -24,6 +21,18 @@ The reading is done by the framework-agnostic [`pptx-viewer-core`](https://www.n
24
21
  - **A single component**: `<PowerPointViewer>`, written in `<script setup>` style.
25
22
  - **Real HTML rendering**: slides are drawn as ordinary HTML and SVG, not as a
26
23
  picture, so text stays sharp at any zoom and is selectable and accessible.
24
+ - **Editing**: select, drag, resize, rotate; inline text editing; format painter;
25
+ shape adjustment handles; align, distribute, group, flip, and z-order; undo/redo;
26
+ snap-to-grid, snap-to-shape, H/V guides, and rulers.
27
+ - **Full Office-style ribbon**: all tabs wired (Home, Insert, Draw, Design,
28
+ Transitions, Animations, Slide Show, Review, View) plus a status bar and
29
+ context menu.
30
+ - **Inspector**: element and slide property panels, including chart data editor.
31
+ - **Presentation mode**: animation playback, presenter view, slide transitions,
32
+ rehearse timings, subtitles, and freehand ink.
33
+ - **Export**: PNG, PDF, GIF, and WebM video; print; Save As (pptx/ppsx/pptm).
34
+ - **Collaboration**: real-time Yjs-based co-editing with cursor/selection presence.
35
+ - **Comments, find/replace, accessibility panel, version history**, and more.
27
36
  - **Slide navigation**: live thumbnail previews, previous/next, and a slide counter.
28
37
  - **Zoom**: in, out, and reset.
29
38
  - **Themeable**: change colours through CSS custom properties.
@@ -140,23 +149,23 @@ async function save() {
140
149
 
141
150
  ### Props
142
151
 
143
- | Prop | Type | Default | Description |
144
- | --------------- | --------------------------- | ------- | ----------------------------------------------------------- |
145
- | `content` | `Uint8Array \| ArrayBuffer` | n/a | The `.pptx` bytes to render. **Required.** |
146
- | `theme` | `ViewerTheme` | n/a | Color/radius overrides applied as CSS custom properties. |
147
- | `class` | `string` | n/a | Class applied to the root element. |
148
- | `canEdit` | `boolean` | `false` | Reserved for the editor (not yet implemented). |
149
- | `filePath` | `string` | n/a | Reserved for autosave recovery. |
150
- | `authorName` | `string` | n/a | Reserved for comments/annotations. |
151
- | `collaboration` | `CollaborationConfig` | n/a | Reserved for real-time collaboration (not yet implemented). |
152
+ | Prop | Type | Default | Description |
153
+ | --------------- | --------------------------- | ------- | ----------------------------------------------------------------- |
154
+ | `content` | `Uint8Array \| ArrayBuffer` | n/a | The `.pptx` bytes to render. **Required.** |
155
+ | `theme` | `ViewerTheme` | n/a | Color/radius overrides applied as CSS custom properties. |
156
+ | `class` | `string` | n/a | Class applied to the root element. |
157
+ | `canEdit` | `boolean` | `false` | Enables the editor toolbar, inspector, and drag-and-drop editing. |
158
+ | `filePath` | `string` | n/a | Passed to autosave / recovery logic. |
159
+ | `authorName` | `string` | n/a | Displayed in comment annotations. |
160
+ | `collaboration` | `CollaborationConfig` | n/a | Yjs real-time collaboration config (server URL, room, role). |
152
161
 
153
162
  ### Events
154
163
 
155
- | Event | Payload | Description |
156
- | --------------------- | ------------ | ------------------------------------------- |
157
- | `active-slide-change` | `number` | Emits the active slide index on navigation. |
158
- | `content-change` | `Uint8Array` | Reserved for editing (not yet emitted). |
159
- | `dirty-change` | `boolean` | Reserved for editing (not yet emitted). |
164
+ | Event | Payload | Description |
165
+ | --------------------- | ------------ | -------------------------------------------------- |
166
+ | `active-slide-change` | `number` | Emits the active slide index on navigation. |
167
+ | `content-change` | `Uint8Array` | Emits updated bytes after any editing change. |
168
+ | `dirty-change` | `boolean` | Emits `true`/`false` when the dirty state changes. |
160
169
 
161
170
  ### Exposed methods (template `ref`)
162
171
 
@@ -172,22 +181,25 @@ async function save() {
172
181
 
173
182
  ## Limitations
174
183
 
175
- This package is at a **read-only viewer** milestone: it shows the content of a
176
- slide, but some visual effects and all editing are not built yet.
177
-
178
- - **Shown today:** text (with mixed formatting), shapes (solid, gradient, and
179
- image fills, plus outlines), pictures and images, the still frame of a video,
180
- nested groups, and straight connectors.
181
- - **Shown as placeholders:** tables, charts, SmartArt, ink, OLE objects, 3D
182
- models, and zoom links appear as labelled boxes for now.
183
- - **Not built yet:** custom shape outlines and bent or curved connectors;
184
- effects (shadows, glow, 3D, image filters); warped text and equations;
185
- embedded fonts; video and audio playback; animations, transitions, and
186
- presentation mode; editing (selecting, the toolbar, the inspector); and export.
187
-
188
- The `pptx-viewer-core` engine already reads most of this data, so you can get it
189
- from the parsed model even where this UI does not draw it yet. Progress, the
190
- roadmap, and design notes live in [`PORTING.md`](./PORTING.md).
184
+ The Vue package has reached feature parity with the React package for the vast
185
+ majority of the editing and presentation surface. A few depth/fidelity items
186
+ remain:
187
+
188
+ - **Secondary/log value axes** - Charts with a right-hand secondary value axis,
189
+ log scale, or display units show primary-axis data only. Data tables on charts
190
+ are also deferred.
191
+ - **True CSS-3D extrusion** - Shape extrusion is approximated with layered
192
+ box-shadows; real extruded faces (as in the React renderer) are deferred.
193
+ - **Image chroma-key** - Destructive `clrChange` colour-replacement on images is
194
+ not yet applied (recolour, duotone, and artistic effects are done).
195
+ - **3D models / Zoom elements** - GLB/GLTF models fall back to their poster image;
196
+ zoom elements render as static link tiles.
197
+ - **Master/template editing** - Editing routes to slide elements only; edits to
198
+ the slide master or layout template are not yet wired.
199
+
200
+ The `pptx-viewer-core` engine parses all of this data, so you can access it from
201
+ the model even where the UI does not expose it yet. Progress and design notes live
202
+ in [`PORTING.md`](./PORTING.md).
191
203
 
192
204
  ## Build (contributing)
193
205
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-vue-viewer",
3
- "version": "1.1.31",
3
+ "version": "1.1.32",
4
4
  "description": "Vue 3 PowerPoint viewer and editor component: render, edit, and export PPTX slides in the browser.",
5
5
  "keywords": [
6
6
  "editor",