From cc7fcbc94e3a80525881cef5d6fdf22602f9876f Mon Sep 17 00:00:00 2001 From: karthikmudunuri <102793643+karthikmudunuri@users.noreply.github.com> Date: Fri, 12 Jun 2026 07:15:14 +0000 Subject: [PATCH] chore(release): version packages --- .changeset/applyedits-layout-instantiation.md | 24 --------- .changeset/render-and-font-transparency.md | 31 ----------- packages/slidewise/CHANGELOG.md | 53 +++++++++++++++++++ packages/slidewise/package.json | 2 +- website/CHANGELOG.md | 8 +++ website/package.json | 2 +- 6 files changed, 63 insertions(+), 57 deletions(-) delete mode 100644 .changeset/applyedits-layout-instantiation.md delete mode 100644 .changeset/render-and-font-transparency.md diff --git a/.changeset/applyedits-layout-instantiation.md b/.changeset/applyedits-layout-instantiation.md deleted file mode 100644 index 648b986..0000000 --- a/.changeset/applyedits-layout-instantiation.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -"@textcortex/slidewise": minor ---- - -feat(pptx): layout-instantiation in `applyEdits` (lossless scale-with-variety) - -`applyEdits` now supports `source: { layoutId, fills? }` in a `PlannedSlide` — -instantiating a fresh slide from one of the template's **own** layouts inside -the lossless byte-patch path. Because the layout is already a part of `source`, -the new slide binds to `ppt/slideLayouts/.xml` (inheriting theme / -master / background chrome) while every other part stays byte-identical. This -unlocks lossless **and** scale-with-variety in one deck: clone slides where you -want the exact thing, instantiate from layouts where you want variety. - -Each layout placeholder is materialised as an addressable, positioned element -with a deterministic id — `layoutSlotElementId(layoutId, key)` (exported) where -`key` is the `placeholderKey` / `summarizeLayouts` slot key. Text/`obj` slots -are populated from `fills` and editable via `setText`; picture slots become a -`` with a transparent placeholder blip so `setImage` can repoint them; -chart/table/other slots expose their geometry so the host fills them with -`addChart` / `addDiagram`. Placeholder geometry is read EMU-native from the -layout (falling back to the matching master slot), so it stays correct without a -canvas-px round-trip. An unresolvable `layoutId` is surfaced via `onWarning` and -the slide is skipped rather than shipped wrong. diff --git a/.changeset/render-and-font-transparency.md b/.changeset/render-and-font-transparency.md deleted file mode 100644 index 9787137..0000000 --- a/.changeset/render-and-font-transparency.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -"@textcortex/slidewise": minor ---- - -feat(render): headless `renderDeckToImages` + `deck.fontUsage` font transparency - -**Headless render-to-image (visual-QA loop).** New browser-free renderer that -draws **what the editor draws** — native charts (`buildChartOption` + ECharts -SSR), diagrams (`layoutDiagram`), text/shapes/images/backgrounds in z-order — -*not* the OOXML raster fallbacks. No Playwright/Chromium/DOM. - -- `renderDeckToSvg(deck, opts?)` → one composed SVG per slide (ECharts is - loaded on demand, so it never bloats the editor bundle). -- `renderDeckToImages(deck, opts?)` / `renderSlideToImage(deck, i, opts?)` / - `renderPptxToImages(bytes, opts?)` → raster bytes. Rasterisation is an - injected hook (`opts.rasterizeSvg`, e.g. `@resvg/resvg-js`); when omitted the - default tries a dynamic `@resvg/resvg-js` import and throws a clear error if - it isn't installed — so there's no hard native dependency. -- `opts`: `slides` (1-based subset), `dpi` (canvas scales by `dpi/96`), - `format`, `maxWidth` (thumbnail cap). Deterministic (no animation). - -Enables the host's render → fresh-eyes inspect → targeted `applyEdits` fix → -re-render cycle, rendering a final `applyEdits` output directly. - -**Font transparency.** `parsePptx` now stamps `deck.fontUsage: -{ family, embedded }[]` — every font family the deck's text uses, flagged -whether the source PPTX actually **embeds** it (`` → a real -`ppt/fonts/*` part) or merely **references** it (system-fallback risk on -viewers that don't ship the brand font). Hosts use it to warn at generation -time ("missing fonts for some ppts"). It's a read-only diagnostic, distinct from -`deck.fonts` (the embeddable payloads). diff --git a/packages/slidewise/CHANGELOG.md b/packages/slidewise/CHANGELOG.md index 628ffe2..e04a81c 100644 --- a/packages/slidewise/CHANGELOG.md +++ b/packages/slidewise/CHANGELOG.md @@ -1,5 +1,58 @@ # @textcortex/slidewise +## 1.21.0 + +### Minor Changes + +- 652f804: feat(pptx): layout-instantiation in `applyEdits` (lossless scale-with-variety) + + `applyEdits` now supports `source: { layoutId, fills? }` in a `PlannedSlide` — + instantiating a fresh slide from one of the template's **own** layouts inside + the lossless byte-patch path. Because the layout is already a part of `source`, + the new slide binds to `ppt/slideLayouts/.xml` (inheriting theme / + master / background chrome) while every other part stays byte-identical. This + unlocks lossless **and** scale-with-variety in one deck: clone slides where you + want the exact thing, instantiate from layouts where you want variety. + + Each layout placeholder is materialised as an addressable, positioned element + with a deterministic id — `layoutSlotElementId(layoutId, key)` (exported) where + `key` is the `placeholderKey` / `summarizeLayouts` slot key. Text/`obj` slots + are populated from `fills` and editable via `setText`; picture slots become a + `` with a transparent placeholder blip so `setImage` can repoint them; + chart/table/other slots expose their geometry so the host fills them with + `addChart` / `addDiagram`. Placeholder geometry is read EMU-native from the + layout (falling back to the matching master slot), so it stays correct without a + canvas-px round-trip. An unresolvable `layoutId` is surfaced via `onWarning` and + the slide is skipped rather than shipped wrong. + +- 652f804: feat(render): headless `renderDeckToImages` + `deck.fontUsage` font transparency + + **Headless render-to-image (visual-QA loop).** New browser-free renderer that + draws **what the editor draws** — native charts (`buildChartOption` + ECharts + SSR), diagrams (`layoutDiagram`), text/shapes/images/backgrounds in z-order — + _not_ the OOXML raster fallbacks. No Playwright/Chromium/DOM. + + - `renderDeckToSvg(deck, opts?)` → one composed SVG per slide (ECharts is + loaded on demand, so it never bloats the editor bundle). + - `renderDeckToImages(deck, opts?)` / `renderSlideToImage(deck, i, opts?)` / + `renderPptxToImages(bytes, opts?)` → raster bytes. Rasterisation is an + injected hook (`opts.rasterizeSvg`, e.g. `@resvg/resvg-js`); when omitted the + default tries a dynamic `@resvg/resvg-js` import and throws a clear error if + it isn't installed — so there's no hard native dependency. + - `opts`: `slides` (1-based subset), `dpi` (canvas scales by `dpi/96`), + `format`, `maxWidth` (thumbnail cap). Deterministic (no animation). + + Enables the host's render → fresh-eyes inspect → targeted `applyEdits` fix → + re-render cycle, rendering a final `applyEdits` output directly. + + **Font transparency.** `parsePptx` now stamps `deck.fontUsage: +{ family, embedded }[]` — every font family the deck's text uses, flagged + whether the source PPTX actually **embeds** it (`` → a real + `ppt/fonts/*` part) or merely **references** it (system-fallback risk on + viewers that don't ship the brand font). Hosts use it to warn at generation + time ("missing fonts for some ppts"). It's a read-only diagnostic, distinct from + `deck.fonts` (the embeddable payloads). + ## 1.20.0 ### Minor Changes diff --git a/packages/slidewise/package.json b/packages/slidewise/package.json index ee3bef2..afa1693 100644 --- a/packages/slidewise/package.json +++ b/packages/slidewise/package.json @@ -1,6 +1,6 @@ { "name": "@textcortex/slidewise", - "version": "1.20.0", + "version": "1.21.0", "description": "Embeddable React PPTX editor.", "license": "MIT", "type": "module", diff --git a/website/CHANGELOG.md b/website/CHANGELOG.md index 984a49b..64e7caa 100644 --- a/website/CHANGELOG.md +++ b/website/CHANGELOG.md @@ -1,5 +1,13 @@ # website +## 0.0.35 + +### Patch Changes + +- Updated dependencies [652f804] +- Updated dependencies [652f804] + - @textcortex/slidewise@1.21.0 + ## 0.0.34 ### Patch Changes diff --git a/website/package.json b/website/package.json index 3e6398e..8becfd7 100644 --- a/website/package.json +++ b/website/package.json @@ -1,6 +1,6 @@ { "name": "website", - "version": "0.0.34", + "version": "0.0.35", "private": true, "type": "module", "scripts": {