Skip to content

chore(release): version packages#99

Merged
karthikmudunuri merged 1 commit into
mainfrom
changeset-release/main
Jun 12, 2026
Merged

chore(release): version packages#99
karthikmudunuri merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@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/<layoutId>.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
    <p:pic> 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 (<p:embeddedFontLst> → 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).

website@0.0.35

Patch Changes

  • Updated dependencies [652f804]
  • Updated dependencies [652f804]
    • @textcortex/slidewise@1.21.0

@karthikmudunuri karthikmudunuri merged commit 6c38b79 into main Jun 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant