Skip to content

fix(pptx): preserve slide zoom when saving tool edits - #282

Merged
ChristopherVR merged 1 commit into
ChristopherVR:mainfrom
yunfeizhu:fix/pptx-preserve-slide-zoom
Nov 12, 2026
Merged

ChristopherVR merged 1 commit into
ChristopherVR:mainfrom
yunfeizhu:fix/pptx-preserve-slide-zoom

Conversation

@yunfeizhu

Copy link
Copy Markdown
Contributor

What does this change?

Fixes #281.

Keep each parsed XML node associated with its original mc:AlternateContent so the automation save handler can preserve the Slide Zoom choice, fallback picture, and namespace declarations. The regression edits speaker notes through the registered tool, parses the saved slide XML, and reloads the deck.

Reproduction deck

Testing

  • PPTX and automation tests (16,976 passed).
  • bun run typecheck and bun run build.
  • Saved the attached deck with both the ESM and CJS automation builds and verified the Slide Zoom XML.

@github-actions github-actions Bot added tests Test-only change area: pptx PowerPoint engine size: S Fewer than 100 changed lines labels Nov 12, 2026
@pkg-pr-new

pkg-pr-new Bot commented Nov 12, 2026

Copy link
Copy Markdown
  • ooxml-office-playground

    npm i https://pkg.pr.new/ChristopherVR/ooxml/ooxml-office-preview@dafba5f
    
    npm i https://pkg.pr.new/ChristopherVR/ooxml/ooxml-core@dafba5f
    
    npm i https://pkg.pr.new/ChristopherVR/ooxml/ooxml-ui@dafba5f
    

commit: dafba5f

@github-actions

Copy link
Copy Markdown
Contributor

Bundle size

6 of 67 entry points changed size against main (eef8aed):

Entry point Before (gzip) After (gzip) Change
ooxml-core/pptx 1377.1 kB 1376.9 kB -0.2 kB (-0.0%)
ooxml-core/pptx/automation 1528.3 kB 1528.1 kB -0.2 kB (-0.0%)
ooxml-core/pptx/cli 1266.8 kB 1266.6 kB -0.2 kB (-0.0%)
ooxml-core/pptx/converter 600.3 kB 600.3 kB +0.0 kB (+0.0%)
ooxml-ui/pptx 1087.7 kB 1090.1 kB +2.4 kB (+0.2%)
ooxml-ui/pptx/dom 1097.5 kB 1100.0 kB +2.4 kB (+0.2%)
All entry points
Entry point Before (gzip) After (gzip) Change
ooxml-core 553.2 kB 553.2 kB 0
ooxml-core/automation 1197.1 kB 1197.1 kB 0
ooxml-core/automation/node 2.3 kB 2.3 kB 0
ooxml-core/chart 181.0 kB 181.0 kB 0
ooxml-core/chart/region-map 9.0 kB 9.0 kB 0
ooxml-core/collab 15.8 kB 15.8 kB 0
ooxml-core/color 4.8 kB 4.8 kB 0
ooxml-core/crypto 28.1 kB 28.1 kB 0
ooxml-core/diagram 230.0 kB 230.0 kB 0
ooxml-core/diagram/builtin 346.0 kB 346.0 kB 0
ooxml-core/digest 12.4 kB 12.4 kB 0
ooxml-core/docx 450.6 kB 450.6 kB 0
ooxml-core/docx/embedded 314.2 kB 314.2 kB 0
ooxml-core/docx/layout 215.0 kB 215.0 kB 0
ooxml-core/docx/load 401.6 kB 401.6 kB 0
ooxml-core/docx/ui 311.8 kB 311.8 kB 0
ooxml-core/drawingml 43.4 kB 43.4 kB 0
ooxml-core/embedding 4.6 kB 4.6 kB 0
ooxml-core/embedding/onedrive 8.6 kB 8.6 kB 0
ooxml-core/geometry 106.0 kB 106.0 kB 0
ooxml-core/i18n 5.6 kB 5.6 kB 0
ooxml-core/math 19.8 kB 19.8 kB 0
ooxml-core/opc 24.5 kB 24.5 kB 0
ooxml-core/pptx 1377.1 kB 1376.9 kB -0.2 kB (-0.0%)
ooxml-core/pptx/automation 1528.3 kB 1528.1 kB -0.2 kB (-0.0%)
ooxml-core/pptx/automation/schemas 128.5 kB 128.5 kB 0
ooxml-core/pptx/cli 1266.8 kB 1266.6 kB -0.2 kB (-0.0%)
ooxml-core/pptx/converter 600.3 kB 600.3 kB +0.0 kB (+0.0%)
ooxml-core/pptx/node 0.6 kB 0.6 kB 0
ooxml-core/pptx/signature-node 14.8 kB 14.8 kB 0
ooxml-core/pptx/smartart-layouts 353.3 kB 353.3 kB 0
ooxml-core/pptx/ui 5.3 kB 5.3 kB 0
ooxml-core/ribbon 0.4 kB 0.4 kB 0
ooxml-core/teams 459.3 kB 459.3 kB 0
ooxml-core/text 34.7 kB 34.7 kB 0
ooxml-core/units 0.7 kB 0.7 kB 0
ooxml-core/visio 603.6 kB 603.6 kB 0
ooxml-core/visio/collab 24.3 kB 24.3 kB 0
ooxml-core/visio/ui 618.1 kB 618.1 kB 0
ooxml-core/xlsx 708.0 kB 708.0 kB 0
ooxml-core/xlsx/collab 434.5 kB 434.5 kB 0
ooxml-core/xlsx/load 470.3 kB 470.3 kB 0
ooxml-core/xlsx/ui 829.0 kB 829.0 kB 0
ooxml-core/xml 8.9 kB 8.9 kB 0
ooxml-ui 309.2 kB 309.2 kB 0
ooxml-ui/bindings 3.2 kB 3.2 kB 0
ooxml-ui/bindings/react 1.0 kB 1.0 kB 0
ooxml-ui/bindings/solid 1.0 kB 1.0 kB 0
ooxml-ui/bindings/vue 2.3 kB 2.3 kB 0
ooxml-ui/chart-format-locales 14.5 kB 14.5 kB 0
ooxml-ui/controls 149.8 kB 149.8 kB 0
ooxml-ui/docx 478.8 kB 478.8 kB 0
ooxml-ui/icons 2.5 kB 2.5 kB 0
ooxml-ui/pptx 1087.7 kB 1090.1 kB +2.4 kB (+0.2%)
ooxml-ui/pptx/ai 26.3 kB 26.3 kB 0
ooxml-ui/pptx/dom 1097.5 kB 1100.0 kB +2.4 kB (+0.2%)
ooxml-ui/pptx/i18n 73.1 kB 73.1 kB 0
ooxml-ui/pptx/loader 1.1 kB 1.1 kB 0
ooxml-ui/pptx/onedrive 0.1 kB 0.1 kB 0
ooxml-ui/pptx/theme 8.7 kB 8.7 kB 0
ooxml-ui/presence 7.8 kB 7.8 kB 0
ooxml-ui/smartart 29.0 kB 29.0 kB 0
ooxml-ui/suite 3.0 kB 3.0 kB 0
ooxml-ui/teams 280.4 kB 280.4 kB 0
ooxml-ui/theme 6.3 kB 6.3 kB 0
ooxml-ui/visio 460.4 kB 460.4 kB 0
ooxml-ui/xlsx 530.0 kB 530.0 kB 0

Each entry point with the files it imports statically, gzipped, before minification. Measured by scripts/bundle-size.mjs.

@ChristopherVR
ChristopherVR merged commit 7af7b5e into ChristopherVR:main Nov 12, 2026
60 of 63 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: pptx PowerPoint engine size: S Fewer than 100 changed lines tests Test-only change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pptx: slide zoom XML breaks after a speaker notes edit

2 participants