@shbernal/ts-pptx 4.0.0 → 4.1.0
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.
- package/README.md +147 -114
- package/dist/{autopage-odPz7zZO.js → autopage-D4kyVp11.js} +5 -5
- package/dist/{autopage-odPz7zZO.js.map → autopage-D4kyVp11.js.map} +1 -1
- package/dist/{body-insets-Dw_BeWD_.js → body-insets-kVHmjGc6.js} +2 -2
- package/dist/{body-insets-Dw_BeWD_.js.map → body-insets-kVHmjGc6.js.map} +1 -1
- package/dist/browser.d.ts +7 -7
- package/dist/browser.js +5 -5
- package/dist/{clip-Bl01BPcN.d.ts → clip-DHDlnHUq.d.ts} +2 -2
- package/dist/{clip-Bl01BPcN.d.ts.map → clip-DHDlnHUq.d.ts.map} +1 -1
- package/dist/{diagnostics-D8ot4Ei7.d.ts → diagnostics-DiMmBU8P.d.ts} +6 -6
- package/dist/{diagnostics-D8ot4Ei7.d.ts.map → diagnostics-DiMmBU8P.d.ts.map} +1 -1
- package/dist/{embedded-fonts-DarT9aoa.d.ts → embedded-fonts-CI_YGW2d.d.ts} +2 -2
- package/dist/{embedded-fonts-DarT9aoa.d.ts.map → embedded-fonts-CI_YGW2d.d.ts.map} +1 -1
- package/dist/{entry-compose-DCnvBZz2.d.ts → entry-compose-6hF9aTmT.d.ts} +19 -17
- package/dist/{entry-compose-DCnvBZz2.d.ts.map → entry-compose-6hF9aTmT.d.ts.map} +1 -1
- package/dist/{enums-BUKTUB6V.d.ts → enums-DQRpVOLh.d.ts} +3 -3
- package/dist/{enums-BUKTUB6V.d.ts.map → enums-DQRpVOLh.d.ts.map} +1 -1
- package/dist/{errors-C4oENPcu.js → errors-Da2nXCJm.js} +6 -6
- package/dist/{errors-C4oENPcu.js.map → errors-Da2nXCJm.js.map} +1 -1
- package/dist/families.d.ts +6 -6
- package/dist/families.js +2 -2
- package/dist/{fit-Cb7naFj6.js → fit-CcXbg__l.js} +10 -10
- package/dist/{fit-Cb7naFj6.js.map → fit-CcXbg__l.js.map} +1 -1
- package/dist/{font-metrics-v5fn7s7e.d.ts → font-metrics-CBGmhLo0.d.ts} +6 -6
- package/dist/{font-metrics-v5fn7s7e.d.ts.map → font-metrics-CBGmhLo0.d.ts.map} +1 -1
- package/dist/{grid-DikTjFey.js → grid-9B2w5EaY.js} +2 -2
- package/dist/{grid-DikTjFey.js.map → grid-9B2w5EaY.js.map} +1 -1
- package/dist/{html-dom-Iuog2wdK.js → html-dom-DvJmuHt2.js} +10 -10
- package/dist/html-dom-DvJmuHt2.js.map +1 -0
- package/dist/html.d.ts +3 -3
- package/dist/html.js +2 -2
- package/dist/{image-size-CvN2iCA4.js → image-size-DwDbakcl.js} +64 -5
- package/dist/image-size-DwDbakcl.js.map +1 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.js +3 -3
- package/dist/inspect.d.ts +4 -4
- package/dist/inspect.js +4 -4
- package/dist/inspect.js.map +1 -1
- package/dist/math.d.ts +1 -1
- package/dist/math.js +1 -1
- package/dist/measure.d.ts +3 -3
- package/dist/measure.js +2 -2
- package/dist/node.d.ts +7 -7
- package/dist/node.js +3 -3
- package/dist/{notes-Dh12JAbn.js → notes-BcT571R4.js} +19 -18
- package/dist/notes-BcT571R4.js.map +1 -0
- package/dist/options-internal-WqgMf720.js.map +1 -1
- package/dist/{package-J49Ck6S2.d.ts → package-KoEgVwII.d.ts} +6 -2
- package/dist/{package-J49Ck6S2.d.ts.map → package-KoEgVwII.d.ts.map} +1 -1
- package/dist/{pres-C6qgOFAa.d.ts → pres-BA9_lJbY.d.ts} +32 -12
- package/dist/pres-BA9_lJbY.d.ts.map +1 -0
- package/dist/{presentation-DGYlAWhl.js → presentation-Cyl74rq2.js} +70 -35
- package/dist/presentation-Cyl74rq2.js.map +1 -0
- package/dist/{presentation-types-8jLQHI4M.d.ts → presentation-types-B3VQH4Bz.d.ts} +19 -15
- package/dist/presentation-types-B3VQH4Bz.d.ts.map +1 -0
- package/dist/read.d.ts +6 -6
- package/dist/read.js +3 -3
- package/dist/script.d.ts +2 -2
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +11 -11
- package/dist/script.js.map +1 -1
- package/dist/{shapes-re0KyQk_.js → shapes-BcyFdZpp.js} +14 -10
- package/dist/shapes-BcyFdZpp.js.map +1 -0
- package/dist/{slide-Dx2ZeVZ6.d.ts → slide-BqPtyKmb.d.ts} +12 -7
- package/dist/slide-BqPtyKmb.d.ts.map +1 -0
- package/dist/{table-cell-margins-EVg0EwxT.js → table-cell-margins-PDshga8T.js} +4 -4
- package/dist/{table-cell-margins-EVg0EwxT.js.map → table-cell-margins-PDshga8T.js.map} +1 -1
- package/dist/{table-dom-BTDP3lEP.js → table-dom-CVbvUfgh.js} +3 -3
- package/dist/{table-dom-BTDP3lEP.js.map → table-dom-CVbvUfgh.js.map} +1 -1
- package/dist/{text-KnLOtEEu.js → text-BvFFMMFQ.js} +38 -36
- package/dist/{text-KnLOtEEu.js.map → text-BvFFMMFQ.js.map} +1 -1
- package/dist/{text-anchor-CrYXAfUu.js → text-anchor-BgLPbwbL.js} +2 -2
- package/dist/{text-anchor-CrYXAfUu.js.map → text-anchor-BgLPbwbL.js.map} +1 -1
- package/dist/{units-internal-XJlf-hOl.js → units-internal-DFcUYjh3.js} +11 -6
- package/dist/units-internal-DFcUYjh3.js.map +1 -0
- package/dist/{zip-C0leZZMj.d.ts → zip-CTll_dr0.d.ts} +2 -2
- package/dist/{zip-C0leZZMj.d.ts.map → zip-CTll_dr0.d.ts.map} +1 -1
- package/dist/{zip-CKd8ihcf.js → zip-CYZ0F6BV.js} +2 -2
- package/dist/{zip-CKd8ihcf.js.map → zip-CYZ0F6BV.js.map} +1 -1
- package/dist/zip.d.ts +2 -2
- package/dist/zip.js +2 -2
- package/dist/{zoom-cX9sllpH.js → zoom-BoNyOlPm.js} +66 -52
- package/dist/zoom-BoNyOlPm.js.map +1 -0
- package/package.json +25 -25
- package/skills/ts-pptx-upstream/SKILL.md +18 -18
- package/dist/html-dom-Iuog2wdK.js.map +0 -1
- package/dist/image-size-CvN2iCA4.js.map +0 -1
- package/dist/notes-Dh12JAbn.js.map +0 -1
- package/dist/pres-C6qgOFAa.d.ts.map +0 -1
- package/dist/presentation-DGYlAWhl.js.map +0 -1
- package/dist/presentation-types-8jLQHI4M.d.ts.map +0 -1
- package/dist/shapes-re0KyQk_.js.map +0 -1
- package/dist/slide-Dx2ZeVZ6.d.ts.map +0 -1
- package/dist/units-internal-XJlf-hOl.js.map +0 -1
- package/dist/zoom-cX9sllpH.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/readme/banner/banner-dark.svg">
|
|
5
|
+
<img alt="pptx-ts: write a program, get a PowerPoint file" src="assets/readme/banner/banner-light.svg">
|
|
6
|
+
</picture>
|
|
7
|
+
|
|
8
|
+
[![npm][npm-badge]][npm]
|
|
9
|
+
[![Downloads][downloads-badge]][npm]
|
|
10
|
+
[![CI][ci-badge]][ci]
|
|
11
|
+
[![License][license-badge]][license]
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
[Install](#install) • [Quickstart](#quickstart) • [Read and edit](#read-and-edit-decks-too) • [Compare](#how-this-compares-with-pptxgenjs) • [Docs](https://shbernal.github.io/pptx-ts/)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
</div>
|
|
2
20
|
|
|
3
21
|
> **`@shbernal/ts-pptx` is an alias.** It is the same package as
|
|
4
22
|
> [`pptx-ts`](https://www.npmjs.com/package/pptx-ts), published from the
|
|
@@ -8,103 +26,130 @@
|
|
|
8
26
|
> `pptx-ts` is the canonical name, and the issue tracker, the changelog and
|
|
9
27
|
> every example below use it.
|
|
10
28
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
29
|
+
<p align="center">
|
|
30
|
+
<picture>
|
|
31
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/readme/demo/demo-dark.svg">
|
|
32
|
+
<img alt="A 28-line TypeScript program runs and writes report.pptx, a slide with a revenue bar chart" src="assets/readme/demo/demo-light.svg">
|
|
33
|
+
</picture>
|
|
34
|
+
</p>
|
|
16
35
|
|
|
17
|
-
|
|
36
|
+
pptx-ts writes `.pptx` files from TypeScript.
|
|
37
|
+
You describe slides in code, and a deck comes out that opens cleanly in desktop PowerPoint.
|
|
38
|
+
PowerPoint never runs, so there is no Office licence and nothing to install on the machine doing the writing.
|
|
18
39
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
40
|
+
- Text, tables that page across slides, shapes, connectors, pictures, SVG, video and audio.
|
|
41
|
+
- Native charts backed by an embedded workbook, so PowerPoint's "Edit Data" works.
|
|
42
|
+
- Slide masters, layouts, sections, speaker notes, gradients and an image clipped to a shape.
|
|
43
|
+
- LaTeX maths, embedded spreadsheets and 3D models.
|
|
44
|
+
- [An HTML `<table>` becomes paged slides](docs/html-tables.md), in the browser or under Node.
|
|
45
|
+
- [Text measured against the real font](docs/text-fit.md), so a box shrinks or grows to fit before the file is written.
|
|
46
|
+
- Opens existing decks too: [inspect](docs/reference/pptx-inspection.md), [edit](docs/reading/read-and-edit.md), or [turn one into code](docs/reference/pptx-to-script.md).
|
|
24
47
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
48
|
+
<p align="center">
|
|
49
|
+
<img alt="Nine slides from the two showcase decks: a consulting cover, a cost waterfall, a dark pitch-deck cover over a night sky, KPI cards, a pipeline diagram with connectors, a business-case table with Harvey balls, a terminal mock, a 2x2 prioritisation matrix and an area chart" src="assets/readme/gallery/gallery.webp">
|
|
50
|
+
</p>
|
|
28
51
|
|
|
29
|
-
|
|
52
|
+
pptx-ts wrote every slide above, and LibreOffice rendered them.
|
|
53
|
+
They come from the two [showcase decks](www/demos/decks/README.md).
|
|
30
54
|
|
|
31
|
-
|
|
32
|
-
pnpm add pptx-ts
|
|
33
|
-
```
|
|
55
|
+
## Why pptx-ts?
|
|
34
56
|
|
|
35
|
-
|
|
36
|
-
[Installation](docs/getting-started/installation.md) covers npm, CommonJS and the optional
|
|
37
|
-
math dependencies.
|
|
57
|
+
Use it when a deck has to be built from data that changes:
|
|
38
58
|
|
|
39
|
-
|
|
59
|
+
- a monthly report
|
|
60
|
+
- one deck per customer
|
|
61
|
+
- a hundred decks every night
|
|
62
|
+
- a download button that hands the user a deck built from what they are looking at
|
|
40
63
|
|
|
41
|
-
|
|
42
|
-
import
|
|
64
|
+
Every deck has to open cleanly in desktop PowerPoint.
|
|
65
|
+
Keynote, LibreOffice Impress and Google Slides import it on a best-effort basis.
|
|
43
66
|
|
|
44
|
-
|
|
45
|
-
const slide = pptx.addSlide()
|
|
67
|
+
## Quickstart
|
|
46
68
|
|
|
47
|
-
|
|
48
|
-
x: 1,
|
|
49
|
-
y: 1,
|
|
50
|
-
w: 8,
|
|
51
|
-
h: 1,
|
|
52
|
-
fontSize: 24,
|
|
53
|
-
color: "363636",
|
|
54
|
-
})
|
|
69
|
+
1. Install pptx-ts on your project:
|
|
55
70
|
|
|
56
|
-
|
|
57
|
-
|
|
71
|
+
[![Node ≥ 24][node-badge]][node]
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pnpm add pptx-ts
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
2. Save this as `hello.mts`:
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
import TsPptx from "pptx-ts"
|
|
81
|
+
|
|
82
|
+
const pptx = new TsPptx()
|
|
83
|
+
const slide = pptx.addSlide()
|
|
84
|
+
|
|
85
|
+
slide.addText("Hello from pptx-ts", {
|
|
86
|
+
x: 1,
|
|
87
|
+
y: 1,
|
|
88
|
+
w: 8,
|
|
89
|
+
h: 1,
|
|
90
|
+
fontSize: 24,
|
|
91
|
+
color: "363636",
|
|
92
|
+
})
|
|
58
93
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
in from the top-left corner of a 10 by 5.625 inch slide.
|
|
62
|
-
[Your first deck](docs/getting-started/first-deck.md) builds a bigger one from data, with a
|
|
63
|
-
table, a chart and speaker notes.
|
|
94
|
+
await pptx.writeFile({ fileName: "hello.pptx" })
|
|
95
|
+
```
|
|
64
96
|
|
|
65
|
-
|
|
97
|
+
2. Run it. Node 24 strips the types itself, so there is no build step.
|
|
66
98
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
PowerPoint opens its data the way it does for a chart a human made. Speaker notes,
|
|
71
|
-
sections, slide masters and layouts, gradients, an image clipped to a shape, a
|
|
72
|
-
spreadsheet embedded as an object, a 3D model, and LaTeX maths.
|
|
99
|
+
```bash
|
|
100
|
+
node hello.mts
|
|
101
|
+
```
|
|
73
102
|
|
|
74
|
-
|
|
103
|
+
3. Open `hello.pptx`.
|
|
75
104
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
slides. Works in a browser and under Node.
|
|
79
|
-
- **[Text that has to fit](docs/text-fit.md).** ts-pptx can measure the text
|
|
80
|
-
against the real font and shrink or grow the box before it writes the file, instead
|
|
81
|
-
of leaving you to guess at font sizes.
|
|
105
|
+
Positions are in inches, from the top-left corner of a 10 by 5.625 inch slide.
|
|
106
|
+
[Your first deck](docs/getting-started/first-deck.md) builds a four-slide report from an array, with a table, a chart and speaker notes.
|
|
82
107
|
|
|
83
|
-
##
|
|
108
|
+
## Read and edit decks too
|
|
84
109
|
|
|
85
|
-
|
|
86
|
-
|
|
110
|
+
PptxGenJS, the library pptx-ts descends from, only writes.
|
|
111
|
+
pptx-ts also opens a `.pptx` you already have.
|
|
87
112
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
-
|
|
93
|
-
get TypeScript that rebuilds it. Anything it could not express is reported to you
|
|
94
|
-
rather than dropped in silence. It is the fastest way to learn the API: build a
|
|
95
|
-
slide by hand in PowerPoint, then read the script for it.
|
|
113
|
+
| Entry point | What it does |
|
|
114
|
+
| --- | --- |
|
|
115
|
+
| `pptx-ts/inspect` | Slide count, size, parts, media and fonts, without loading the whole deck. [Guide](docs/reference/pptx-inspection.md) |
|
|
116
|
+
| `pptx-ts/read` | Open a deck, change the text on slide four, save it. Parts you did not touch keep their original bytes. [Guide](docs/reading/read-and-edit.md) |
|
|
117
|
+
| `pptx-ts/script` | Print TypeScript that rebuilds a deck, plus a note for each construct it could not carry. [Guide](docs/reference/pptx-to-script.md) |
|
|
96
118
|
|
|
97
|
-
|
|
119
|
+
```ts
|
|
120
|
+
import { readFile, writeFile } from "node:fs/promises"
|
|
121
|
+
import { Presentation } from "pptx-ts/read"
|
|
122
|
+
|
|
123
|
+
const deck = await Presentation.load(await readFile("report.pptx"))
|
|
124
|
+
const title = deck.slides[0]?.placeholder("title")
|
|
125
|
+
if (title) title.text = "Q3 review"
|
|
126
|
+
|
|
127
|
+
await writeFile("report.pptx", await deck.save())
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
The script printer is the quickest way to learn the API.
|
|
131
|
+
Build a slide by hand in PowerPoint, then read the code for it.
|
|
132
|
+
|
|
133
|
+
## How it works
|
|
134
|
+
|
|
135
|
+
<p align="center">
|
|
136
|
+
<picture>
|
|
137
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/readme/how-it-works/loop-dark.svg">
|
|
138
|
+
<img alt="pptx-ts writes a .pptx from your code; pptx-ts/read loads and saves it, pptx-ts/inspect lists its contents, and pptx-ts/script turns it back into TypeScript" src="assets/readme/how-it-works/loop-light.svg">
|
|
139
|
+
</picture>
|
|
140
|
+
</p>
|
|
98
141
|
|
|
99
|
-
|
|
142
|
+
A `.pptx` is a zip of XML parts.
|
|
143
|
+
pptx-ts builds those parts from your calls and zips them, with no Office process involved.
|
|
144
|
+
|
|
145
|
+
| Runtime | Import | `writeFile` |
|
|
100
146
|
| --- | --- | --- |
|
|
101
147
|
| Node.js 24 or later | `import`, or `require()` with the class on `.default` | writes to disk |
|
|
102
|
-
|
|
|
103
|
-
|
|
|
148
|
+
| Browser, with a bundler | `import` | downloads the file |
|
|
149
|
+
| Browser, no build step | `import TsPptx from "https://esm.sh/pptx-ts/browser"` | downloads the file |
|
|
104
150
|
| Deno, Bun, edge workers | `import` | throws; use `toBytes()` |
|
|
105
151
|
|
|
106
|
-
[Where it runs](docs/getting-started/runtime.md) lists every entry point
|
|
107
|
-
loads the one ESM build.
|
|
152
|
+
[Where it runs](docs/getting-started/runtime.md) lists every entry point.
|
|
108
153
|
|
|
109
154
|
<!-- comparison:start -->
|
|
110
155
|
<!-- GENERATED REGION. Do not edit by hand.
|
|
@@ -113,20 +158,20 @@ loads the one ESM build.
|
|
|
113
158
|
|
|
114
159
|
## How this compares with PptxGenJS
|
|
115
160
|
|
|
116
|
-
ts
|
|
161
|
+
pptx-ts is an independent derivative of
|
|
117
162
|
[PptxGenJS](https://github.com/gitbrent/PptxGenJS), detached at its v4.0.1. Both were
|
|
118
|
-
measured on 2026-
|
|
163
|
+
measured on 2026-10-11 by building the same 22 deck intents with each library and reading
|
|
119
164
|
the bytes that came out.
|
|
120
165
|
|
|
121
|
-
- **Construct coverage:** ts
|
|
122
|
-
corpus is emitted by pptxgenjs and not by ts
|
|
123
|
-
- **Schema validity:** of the decks each library built, 21 of 21 ts
|
|
166
|
+
- **Construct coverage:** pptx-ts emitted 21 of 22, pptxgenjs 10 of 22. Nothing in the
|
|
167
|
+
corpus is emitted by pptxgenjs and not by pptx-ts.
|
|
168
|
+
- **Schema validity:** of the decks each library built, 21 of 21 pptx-ts decks and 0 of 10
|
|
124
169
|
pptxgenjs decks validate with no error against the Open XML SDK.
|
|
125
|
-
- **Adoption:** pptxgenjs is downloaded
|
|
126
|
-
ts
|
|
170
|
+
- **Adoption:** pptxgenjs is downloaded 14,641,405 times a month, against 1,915 for
|
|
171
|
+
pptx-ts. If a large installed base matters to you more than the differences above, use
|
|
127
172
|
pptxgenjs.
|
|
128
|
-
- **Activity:** last commit on the default branch, 2026-
|
|
129
|
-
for pptxgenjs. Last npm publish, 2026-
|
|
173
|
+
- **Activity:** last commit on the default branch, 2026-10-10 for pptx-ts and 2025-06-26
|
|
174
|
+
for pptxgenjs. Last npm publish, 2026-09-21 and 2025-06-26.
|
|
130
175
|
|
|
131
176
|
Where the two libraries part company is on the [comparison page](docs/comparison.md), and
|
|
132
177
|
[how it was measured](docs/comparison-method.md) has every full table. Every intent as
|
|
@@ -135,40 +180,28 @@ PptxGenJS](docs/comparison-syntax.md).
|
|
|
135
180
|
|
|
136
181
|
<!-- comparison:end -->
|
|
137
182
|
|
|
138
|
-
##
|
|
139
|
-
|
|
140
|
-
The documentation site, with the generated API reference, is at
|
|
141
|
-
**<https://shbernal.github.io/ts-pptx/>**. The [demos page](https://shbernal.github.io/ts-pptx/demos)
|
|
142
|
-
builds a quarterly review deck in your browser and previews the slides.
|
|
143
|
-
|
|
144
|
-
- Start with the [Introduction](docs/getting-started/introduction.md),
|
|
145
|
-
[Your first deck](docs/getting-started/first-deck.md) and
|
|
146
|
-
[Core concepts](docs/getting-started/concepts.md)
|
|
147
|
-
- [Tables](docs/tables.md), [connectors](docs/connectors.md), [groups](docs/groups.md) and
|
|
148
|
-
[HTML tables to slides](docs/html-tables.md)
|
|
149
|
-
- [Smaller bundles](docs/bundle-size.md) for a browser program that composes only what it uses
|
|
150
|
-
- [Errors and warnings](docs/errors-and-warnings.md) and
|
|
151
|
-
[troubleshooting](docs/troubleshooting.md)
|
|
152
|
-
|
|
153
|
-
## Something wrong, or missing?
|
|
183
|
+
## Learn more
|
|
154
184
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
reproduction, instead of a silent workaround:
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
npx skills add ./node_modules/pptx-ts -s '*' -a claude-code -a codex -a universal -y
|
|
164
|
-
```
|
|
185
|
+
- [Documentation site](https://shbernal.github.io/pptx-ts/), with the API reference
|
|
186
|
+
- [Live demo](https://shbernal.github.io/pptx-ts/demos): build a strategy consulting deck and a startup pitch deck in your browser
|
|
187
|
+
- [Core concepts](docs/getting-started/concepts.md), [tables](docs/tables.md), [connectors](docs/connectors.md) and [groups](docs/groups.md)
|
|
188
|
+
- [Smaller browser bundles](docs/bundle-size.md)
|
|
189
|
+
- [Errors and warnings](docs/errors-and-warnings.md) and [troubleshooting](docs/troubleshooting.md)
|
|
165
190
|
|
|
166
|
-
|
|
167
|
-
|
|
191
|
+
Found a bug? [Open an issue](https://github.com/shbernal/pptx-ts/issues).
|
|
192
|
+
Errors that are the library's fault print that link themselves.
|
|
168
193
|
|
|
169
|
-
|
|
194
|
+
If an agent writes most of your code, install the `ts-pptx-upstream` skill that ships in the package.
|
|
195
|
+
It files a library defect the agent hits as an issue with a small reproduction, instead of a silent workaround.
|
|
196
|
+
[CONTRIBUTING.md](CONTRIBUTING.md#the-skill-that-files-the-issue-for-you) has the install command.
|
|
170
197
|
|
|
171
|
-
Copyright (c) 2015-2022 Brent Ely.
|
|
172
|
-
Modifications copyright (c) 2026 shbernal.
|
|
173
198
|
|
|
174
|
-
[
|
|
199
|
+
[npm]: https://www.npmjs.com/package/pptx-ts
|
|
200
|
+
[npm-badge]: https://img.shields.io/npm/v/pptx-ts?style=for-the-badge&logo=npm&logoColor=e9855c&label=npm&labelColor=1b1b1f&color=b4451f
|
|
201
|
+
[downloads-badge]: https://img.shields.io/npm/dm/pptx-ts?style=for-the-badge&label=downloads&labelColor=1b1b1f&color=b4451f
|
|
202
|
+
[ci]: https://github.com/shbernal/pptx-ts/actions/workflows/ci.yml
|
|
203
|
+
[ci-badge]: https://img.shields.io/github/actions/workflow/status/shbernal/pptx-ts/ci.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=e9855c&label=CI&labelColor=1b1b1f&color=b4451f
|
|
204
|
+
[node]: package.json
|
|
205
|
+
[node-badge]: https://img.shields.io/badge/node-%E2%89%A524-b4451f?style=for-the-badge&logo=nodedotjs&logoColor=e9855c&labelColor=1b1b1f
|
|
206
|
+
[license]: LICENSE
|
|
207
|
+
[license-badge]: https://img.shields.io/github/license/shbernal/pptx-ts?style=for-the-badge&labelColor=1b1b1f&color=b4451f
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { l as warn } from "./errors-
|
|
2
|
-
import { C as usableTableWidthEmu, R as DEF_SLIDE_MARGIN_IN, _ as resolveCellMarginsInches, b as resolveTableColWidthsEmu, c as inch2Emu, d as marginToEmu, m as pinnedRowHeightInches, s as getSmartParseNumber, t as autoPageLineHeightEmu, y as resolveSlideMarginsInches } from "./units-internal-
|
|
3
|
-
import { F as EMU_PER_INCH } from "./table-cell-margins-
|
|
4
|
-
import { a as resolveSpan, n as tableColCount, r as walkTableGrid, s as withCheckedSpans } from "./grid-
|
|
1
|
+
import { l as warn } from "./errors-Da2nXCJm.js";
|
|
2
|
+
import { C as usableTableWidthEmu, R as DEF_SLIDE_MARGIN_IN, _ as resolveCellMarginsInches, b as resolveTableColWidthsEmu, c as inch2Emu, d as marginToEmu, m as pinnedRowHeightInches, s as getSmartParseNumber, t as autoPageLineHeightEmu, y as resolveSlideMarginsInches } from "./units-internal-DFcUYjh3.js";
|
|
3
|
+
import { F as EMU_PER_INCH } from "./table-cell-margins-PDshga8T.js";
|
|
4
|
+
import { a as resolveSpan, n as tableColCount, r as walkTableGrid, s as withCheckedSpans } from "./grid-9B2w5EaY.js";
|
|
5
5
|
//#region src/gen/table/autopage.ts
|
|
6
6
|
/**
|
|
7
7
|
* A cell for the pager's working grid, carrying the source cell's options only when it has some.
|
|
@@ -533,4 +533,4 @@ function getSlidesForTableRows(rows = [], tableProps = {}, presLayout, masterSli
|
|
|
533
533
|
//#endregion
|
|
534
534
|
export { getSlidesForTableRows as t };
|
|
535
535
|
|
|
536
|
-
//# sourceMappingURL=autopage-
|
|
536
|
+
//# sourceMappingURL=autopage-D4kyVp11.js.map
|