@office-kit/pptx-preview 0.13.0 → 0.15.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 CHANGED
@@ -6,7 +6,7 @@ it to a **PNG / RGBA image in Node — with no headless browser**.
6
6
 
7
7
  > **Experimental (0.x).** This package lives in the `@office-kit/pptx` monorepo and
8
8
  > also powers the docs-site playground and the fidelity harness. The renderer
9
- > is an _approximation_ of PowerPoint / LibreOffice output and is still
9
+ > is an _approximation_ of desktop presentation app / LibreOffice output and is still
10
10
  > evolving; the API may change between minor versions, and `0.x` semver applies
11
11
  > (a minor bump may break). See [fidelity](#fidelity) below.
12
12
 
@@ -42,6 +42,12 @@ const svg = renderSlideToSvg(pres, getSlides(pres)[0]);
42
42
  // → '<svg …>…</svg>' (text laid out via <foreignObject> — the browser wraps it)
43
43
  ```
44
44
 
45
+ `renderSlideLayoutToSvg(pres, layout, { master })` draws what a slide master
46
+ editor shows behind the placeholders: the layout's background and decorative
47
+ shapes over its master's (the master's are left out when the layout hides
48
+ background graphics), or with `master: true` the slide master's own background
49
+ and shapes. Placeholders are not drawn.
50
+
45
51
  ### Underlines in custom HTML editors
46
52
 
47
53
  `textUnderlineStyle(underline, color)` returns inline CSS for a DrawingML
@@ -119,22 +125,25 @@ Options:
119
125
  wrapping is normal for body text; turn it on when auditing titles or labels
120
126
  meant to stay on one line.
121
127
 
122
- Accuracy: the bundled fonts are metric-compatible with the Office defaults, so
128
+ Accuracy: the bundled fonts are metric-compatible with the common default fonts, so
123
129
  verdicts for Calibri / Cambria / Arial / Times / Courier decks match real glyph
124
130
  widths; for any other font (custom brand fonts, Japanese fonts), register the
125
131
  real files via `buildFontkitMeasurer({ fonts })` — a registered font is used
126
132
  both for runs that name it and as a glyph fallback for CJK text in runs that
127
- resolve to a Latin face. Line-break positions can differ from PowerPoint by a
133
+ resolve to a Latin face. Line-break positions can differ from the reference desktop app by a
128
134
  few characters in edge cases (kinsoku, hyphenation), which is what the default
129
135
  1 px tolerance absorbs. Table cell text is not audited yet.
130
136
 
131
137
  ## Fidelity
132
138
 
133
- This is a high-fidelity preview, not a spec-complete PowerPoint renderer.
139
+ This is a high-fidelity preview, not a spec-complete presentation renderer.
134
140
  Preset and custom geometry, solid/gradient/pattern/image fills (including the
135
141
  placeholder layout/master cascade), strokes, rotation, effects (shadow, glow,
136
142
  soft edge, reflection), images with adjustments, charts (column, bar, line,
137
- area, pie, doughnut, scatter, radar, bubble), tables with per-run cell text,
143
+ area, pie, doughnut, scatter, radar, bubble), tables with per-run cell text and
144
+ every part of their table style (the 74 built-in table styles included:
145
+ fills, translucent bands, borders, text, the Themed Styles' background, and
146
+ the six style options; the background's shadow is not drawn),
138
147
  vertical and multi-column text in both text-layout modes, picture bullets, and
139
148
  template (layout/master) decoration all render. EMF pictures containing solid-filled
140
149
  line/Bézier paths, including rectangular and path clipping with copy semantics,
@@ -195,4 +204,4 @@ the editable paragraph text.
195
204
 
196
205
  ### Text regions for editing overlays
197
206
 
198
- `resolveTextBodyRect(preset, bounds, margins)` returns the same inner text rectangle used by the preview before wrapping and autofit. Pass `{x, y, w, h}` and `{left, top, right, bottom}` in the same unit, normally EMU, with inherited/default margins already resolved. It accounts for the preview's constrained preset regions and drops margins if they collapse such a region. Rectangular regions with nonpositive width or height remain degenerate so callers can handle them explicitly. This shares the preview's current geometry approximations; it does not evaluate arbitrary custom-geometry text rectangles.
207
+ `shapeTextRect(shape)` returns where a shape lays out its text, as fractions of its own extent: the `<a:rect>` its custom geometry states, or the one ECMA-376 defines for its preset (an ellipse's inscribed rectangle, a triangle's lower middle), following its adjust values. It is `null` when text takes the whole box. `resolveTextBodyRect(bounds, margins, region)` places that region in `bounds` less the body insets, giving the same inner text rectangle the preview uses before wrapping and autofit. Pass `{x, y, w, h}` and `{left, top, right, bottom}` in the same unit, normally EMU, with inherited/default margins already resolved. Margins that would collapse a region are dropped; a full box with nonpositive width or height stays degenerate so callers can handle it explicitly.
@@ -1,4 +1,4 @@
1
- import { BulletStyle, PresentationData, SlideData, SlideShapeData, TextFormat, getParagraphBullet, getParagraphIndent, getParagraphPropertiesEffective, getShapeBodyPrEffective, getShapeTextAutoFitParams, getShapeTextColumns, getShapeTextDirection } from "@office-kit/pptx";
1
+ import { BulletStyle, PresentationData, SlideData, SlideLayoutData, SlideShapeData, TextFormat, getParagraphBullet, getParagraphIndent, getParagraphPropertiesEffective, getShapeBodyPrEffective, getShapeTextAutoFitParams, getShapeTextColumns, getShapeTextDirection } from "@office-kit/pptx";
2
2
 
3
3
  //#region src/text-layout.d.ts
4
4
  /** What a measurer needs to size one run. Pixels at 96 DPI; the caller has
@@ -42,6 +42,9 @@ interface RenderSlideOptions {
42
42
  * Bodies with custom tab stops use SVG positioning in either mode, since
43
43
  * CSS cannot represent their alignment. The harness opts into 'svg'. */
44
44
  readonly textLayout?: TextLayoutMode;
45
+ /** `false` paints only the slide's own shapes on a transparent surface:
46
+ * no background fill and no master or layout graphics. Defaults to `true`. */
47
+ readonly background?: boolean;
45
48
  }
46
49
  declare const SANS = "Carlito";
47
50
  declare const SERIF = "Caladea";
@@ -69,6 +72,17 @@ declare const renderTextEffectsSvg: (pres: PresentationData, slide: SlideData, s
69
72
  };
70
73
  }) => string;
71
74
  declare const renderSlideSvg: (pres: PresentationData, slide: SlideData, opts?: RenderSlideOptions) => string;
75
+ /**
76
+ * Draws a slide layout — or, with `master`, its slide master — the way
77
+ * the reference desktop app's Slide Master view shows it behind the placeholders: the
78
+ * background and the decorative (non-placeholder) shapes of the master and,
79
+ * for a layout, of the layout itself. A layout that hides background graphics
80
+ * leaves the master's shapes out. Placeholders are not drawn; an editor draws
81
+ * them with their prompt text over this.
82
+ */
83
+ declare const renderSlideLayoutSvg: (pres: PresentationData, layout: SlideLayoutData, opts?: RenderSlideOptions & {
84
+ readonly master?: boolean;
85
+ }) => string;
72
86
  //#endregion
73
87
  //#region src/audit.d.ts
74
88
  interface IssueBase {
@@ -96,7 +110,7 @@ interface AuditTextLayoutOptions {
96
110
  * `@office-kit/pptx-preview/node` for real glyph metrics. */
97
111
  readonly measureText?: TextMeasurer;
98
112
  /** Overflow at or below this many px (96 DPI) is ignored. Default 1 —
99
- * measurement and PowerPoint disagree by sub-pixel amounts routinely. */
113
+ * measurement and the reference desktop app disagree by sub-pixel amounts routinely. */
100
114
  readonly tolerancePx?: number;
101
115
  /** Also report paragraphs that wrap onto more lines than their explicit
102
116
  * breaks author (段落ち). Off by default: wrapping is normal for body
@@ -120,42 +134,44 @@ declare const paragraphNumberLabels: (paraData: ReadonlyArray<{
120
134
  level: number;
121
135
  }>) => Array<string | null>;
122
136
  //#endregion
123
- //#region src/text-body-rect.d.ts
137
+ //#region src/decimal-separator.d.ts
124
138
  /**
125
- * The text rectangle a custom-geometry shape states for itself, as fractions
126
- * of its own extent, or `null` for a preset shape and for a custom one that
127
- * states none. `<a:rect>` is written in EMU against the shape's extents, so
128
- * dividing by them here is what lets the result travel with a shape that a
129
- * group has scaled.
139
+ * The character a decimal tab stop aligns on for a run's language
140
+ * (`<a:rPr lang>`): `,` for `de-DE`, `.` for `en-US`. Runs without a
141
+ * language, or with one Intl does not know, align on `.`. The reference desktop app on Mac
142
+ * uses the run language too, not the UI or system locale (native capture
143
+ * 2026-10-07: Set Proofing Language to German moved alignment to `,`).
130
144
  */
131
- declare function shapeCustomTextRect(custom: {
132
- textRect: {
133
- l: number;
134
- t: number;
135
- r: number;
136
- b: number;
137
- } | null;
138
- } | null, extent: {
139
- w: number;
140
- h: number;
141
- } | null): {
142
- l: number;
143
- t: number;
144
- r: number;
145
- b: number;
146
- } | null;
145
+ declare function decimalSeparatorOf(lang: string | null | undefined): string;
146
+ //#endregion
147
+ //#region src/text-body-rect.d.ts
148
+ /** A text rectangle as fractions of the shape's extent. */
149
+ interface TextRectFractions {
150
+ readonly l: number;
151
+ readonly t: number;
152
+ readonly r: number;
153
+ readonly b: number;
154
+ }
147
155
  /**
148
- * Text layout rectangle used by the preview, including preset geometry and body
149
- * insets. All coordinates and margins must use the same unit (normally EMU).
150
- * Preset regions follow the preview's current geometry approximations. When
151
- * margins collapse a preset region, retain that region without margins.
156
+ * Where a shape lays out its text, as fractions of its own extent: the
157
+ * `<a:rect>` its geometry states, written in its `<a:custGeom>` or in
158
+ * ECMA-376's definition of its preset (an ellipse's inscribed rectangle, a
159
+ * triangle's lower middle, an arrow's shaft). `null` lays text into the whole
160
+ * box: a shape that inherits its geometry, or whose rectangle has no room.
152
161
  *
153
- * A custom-geometry shape states its own rectangle in `<a:custGeom><a:rect>`.
154
- * Pass it as `custom`, as fractions of the shape's extent so that it scales
155
- * with `bounds` the way a preset region does, and it wins: unlike the table
156
- * above it is not an approximation of anything — it is what the file says.
162
+ * The rectangle is in the shape's own `<a:ext>` space, so dividing by that —
163
+ * not by on-screen bounds, which carry a group's or autofit's scale — is what
164
+ * lets the result travel with the shape.
165
+ */
166
+ declare function shapeTextRect(shape: SlideShapeData): TextRectFractions | null;
167
+ /**
168
+ * Text layout rectangle used by the preview: `region` (from
169
+ * {@link shapeTextRect}, or `null` for the whole box) placed in `bounds`, less
170
+ * the body insets. All coordinates and margins must use the same unit
171
+ * (normally EMU). When margins collapse a region, the region is kept without
172
+ * them, as the reference desktop app does.
157
173
  */
158
- declare function resolveTextBodyRect(preset: string | null, bounds: {
174
+ declare function resolveTextBodyRect(bounds: {
159
175
  x: number;
160
176
  y: number;
161
177
  w: number;
@@ -165,12 +181,7 @@ declare function resolveTextBodyRect(preset: string | null, bounds: {
165
181
  top: number;
166
182
  right: number;
167
183
  bottom: number;
168
- }, custom?: {
169
- l: number;
170
- t: number;
171
- r: number;
172
- b: number;
173
- } | null): {
184
+ }, region: TextRectFractions | null): {
174
185
  x: number;
175
186
  y: number;
176
187
  w: number;
@@ -188,8 +199,8 @@ interface VerticalTextStyle {
188
199
  }
189
200
  /**
190
201
  * `<a:bodyPr vert="…"/>` as CSS. `writing-mode` is the right primitive for
191
- * the East-Asian and Mongolian cases, and `text-orientation` for the WordArt
192
- * ones, which stack upright glyphs. `vert270` reads bottom-to-top, which no
202
+ * the East-Asian and Mongolian cases, and `text-orientation` for the
203
+ * `wordArtVert` ones, which stack upright glyphs. `vert270` reads bottom-to-top, which no
193
204
  * writing-mode expresses on its own — hence the half turn. Its columns still
194
205
  * follow the OOXML vertical-rl progression before that half turn; using
195
206
  * vertical-lr here reverses the column order relative to the SVG renderer.
@@ -225,7 +236,7 @@ interface ShapeAutoFitScaleOptions {
225
236
  *
226
237
  * `1` for a shape with no `<a:normAutofit>`: `<a:noAutofit>` overflows and
227
238
  * `<a:spAutoFit>` grows the box instead, so neither shrinks the text. A shape
228
- * with a baked `fontScale` reports that, unchanged — it is what PowerPoint
239
+ * with a baked `fontScale` reports that, unchanged — it is what the reference desktop app
229
240
  * itself applied.
230
241
  */
231
242
  declare function shapeAutoFitScale(pres: PresentationData, shape: SlideShapeData, options?: ShapeAutoFitScaleOptions): number;
@@ -245,5 +256,5 @@ declare function shapeTextAnchorOffset(pres: PresentationData, shape: SlideShape
245
256
  */
246
257
  declare function textUnderlineStyle(underline: TextFormat['underline'], color: string, includeDecorationColor?: boolean): string;
247
258
  //#endregion
248
- export { TIMES as C, substituteFamily as D, defaultMeasurer as E, SERIF as S, TextMeasurer as T, FontSpec as _, VerticalTextStyle as a, RenderSlideOptions as b, resolveTextBodyRect as c, AuditTextLayoutOptions as d, TextAuditIssue as f, ARIAL as g, renderTextEffectsSvg as h, shapeTextAnchorOffset as i, shapeCustomTextRect as l, renderSlideSvg as m, ShapeAutoFitScaleOptions as n, textColumnsStyle as o, auditTextLayout as p, shapeAutoFitScale as r, verticalTextStyle as s, textUnderlineStyle as t, paragraphNumberLabels as u, MONO as v, TextLayoutMode as w, SANS as x, MeasureResult as y };
249
- //# sourceMappingURL=index-DwLYANVE.d.ts.map
259
+ export { substituteFamily as A, RenderSlideOptions as C, TextLayoutMode as D, TIMES as E, TextMeasurer as O, MeasureResult as S, SERIF as T, renderSlideSvg as _, VerticalTextStyle as a, FontSpec as b, TextRectFractions as c, decimalSeparatorOf as d, paragraphNumberLabels as f, renderSlideLayoutSvg as g, auditTextLayout as h, shapeTextAnchorOffset as i, defaultMeasurer as k, resolveTextBodyRect as l, TextAuditIssue as m, ShapeAutoFitScaleOptions as n, textColumnsStyle as o, AuditTextLayoutOptions as p, shapeAutoFitScale as r, verticalTextStyle as s, textUnderlineStyle as t, shapeTextRect as u, renderTextEffectsSvg as v, SANS as w, MONO as x, ARIAL as y };
260
+ //# sourceMappingURL=index-74n14k3Y.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { C as TIMES, D as substituteFamily, E as defaultMeasurer, S as SERIF, T as TextMeasurer, _ as FontSpec, a as VerticalTextStyle, b as RenderSlideOptions, c as resolveTextBodyRect, d as AuditTextLayoutOptions, f as TextAuditIssue, g as ARIAL, h as renderTextEffectsSvg, i as shapeTextAnchorOffset, l as shapeCustomTextRect, m as renderSlideSvg, n as ShapeAutoFitScaleOptions, o as textColumnsStyle, p as auditTextLayout, r as shapeAutoFitScale, s as verticalTextStyle, t as textUnderlineStyle, u as paragraphNumberLabels, v as MONO, w as TextLayoutMode, x as SANS, y as MeasureResult } from "./index-DwLYANVE.js";
2
- export { ARIAL, type AuditTextLayoutOptions, type FontSpec, MONO, type MeasureResult, type RenderSlideOptions, SANS, SERIF, type ShapeAutoFitScaleOptions, TIMES, type TextAuditIssue, type TextLayoutMode, type TextMeasurer, type VerticalTextStyle, auditTextLayout, defaultMeasurer, paragraphNumberLabels, renderSlideSvg as renderSlideToSvg, renderTextEffectsSvg, resolveTextBodyRect, shapeAutoFitScale, shapeCustomTextRect, shapeTextAnchorOffset, substituteFamily, textColumnsStyle, textUnderlineStyle, verticalTextStyle };
1
+ import { A as substituteFamily, C as RenderSlideOptions, D as TextLayoutMode, E as TIMES, O as TextMeasurer, S as MeasureResult, T as SERIF, _ as renderSlideSvg, a as VerticalTextStyle, b as FontSpec, c as TextRectFractions, d as decimalSeparatorOf, f as paragraphNumberLabels, g as renderSlideLayoutSvg, h as auditTextLayout, i as shapeTextAnchorOffset, k as defaultMeasurer, l as resolveTextBodyRect, m as TextAuditIssue, n as ShapeAutoFitScaleOptions, o as textColumnsStyle, p as AuditTextLayoutOptions, r as shapeAutoFitScale, s as verticalTextStyle, t as textUnderlineStyle, u as shapeTextRect, v as renderTextEffectsSvg, w as SANS, x as MONO, y as ARIAL } from "./index-74n14k3Y.js";
2
+ export { ARIAL, type AuditTextLayoutOptions, type FontSpec, MONO, type MeasureResult, type RenderSlideOptions, SANS, SERIF, type ShapeAutoFitScaleOptions, TIMES, type TextAuditIssue, type TextLayoutMode, type TextMeasurer, type TextRectFractions, type VerticalTextStyle, auditTextLayout, decimalSeparatorOf, defaultMeasurer, paragraphNumberLabels, renderSlideLayoutSvg as renderSlideLayoutToSvg, renderSlideSvg as renderSlideToSvg, renderTextEffectsSvg, resolveTextBodyRect, shapeAutoFitScale, shapeTextAnchorOffset, shapeTextRect, substituteFamily, textColumnsStyle, textUnderlineStyle, verticalTextStyle };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { _ as textColumnsStyle, a as renderTextEffectsSvg, b as shapeCustomTextRect, c as MONO, d as TIMES, f as defaultMeasurer, g as textUnderlineStyle, h as paragraphNumberLabels, i as renderSlideSvg, l as SANS, m as substituteFamily, n as shapeTextAnchorOffset, o as ARIAL, r as auditTextLayout, t as shapeAutoFitScale, u as SERIF, v as verticalTextStyle, y as resolveTextBodyRect } from "./src-DYfIZIh8.js";
2
- export { ARIAL, MONO, SANS, SERIF, TIMES, auditTextLayout, defaultMeasurer, paragraphNumberLabels, renderSlideSvg as renderSlideToSvg, renderTextEffectsSvg, resolveTextBodyRect, shapeAutoFitScale, shapeCustomTextRect, shapeTextAnchorOffset, substituteFamily, textColumnsStyle, textUnderlineStyle, verticalTextStyle };
1
+ import { S as shapeTextRect, _ as paragraphNumberLabels, a as renderSlideSvg, b as verticalTextStyle, d as SERIF, f as TIMES, g as decimalSeparatorOf, h as substituteFamily, i as renderSlideLayoutSvg, l as MONO, n as shapeTextAnchorOffset, o as renderTextEffectsSvg, p as defaultMeasurer, r as auditTextLayout, s as ARIAL, t as shapeAutoFitScale, u as SANS, v as textUnderlineStyle, x as resolveTextBodyRect, y as textColumnsStyle } from "./src-pb3C61GD.js";
2
+ export { ARIAL, MONO, SANS, SERIF, TIMES, auditTextLayout, decimalSeparatorOf, defaultMeasurer, paragraphNumberLabels, renderSlideLayoutSvg as renderSlideLayoutToSvg, renderSlideSvg as renderSlideToSvg, renderTextEffectsSvg, resolveTextBodyRect, shapeAutoFitScale, shapeTextAnchorOffset, shapeTextRect, substituteFamily, textColumnsStyle, textUnderlineStyle, verticalTextStyle };
package/dist/node.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { C as TIMES, D as substituteFamily, E as defaultMeasurer, S as SERIF, T as TextMeasurer, _ as FontSpec, a as VerticalTextStyle, b as RenderSlideOptions, c as resolveTextBodyRect, d as AuditTextLayoutOptions, f as TextAuditIssue, g as ARIAL, h as renderTextEffectsSvg, i as shapeTextAnchorOffset, l as shapeCustomTextRect, m as renderSlideSvg, n as ShapeAutoFitScaleOptions, o as textColumnsStyle, p as auditTextLayout, r as shapeAutoFitScale, s as verticalTextStyle, t as textUnderlineStyle, u as paragraphNumberLabels, v as MONO, w as TextLayoutMode, x as SANS, y as MeasureResult } from "./index-DwLYANVE.js";
1
+ import { A as substituteFamily, C as RenderSlideOptions, D as TextLayoutMode, E as TIMES, O as TextMeasurer, S as MeasureResult, T as SERIF, _ as renderSlideSvg, a as VerticalTextStyle, b as FontSpec, c as TextRectFractions, d as decimalSeparatorOf, f as paragraphNumberLabels, g as renderSlideLayoutSvg, h as auditTextLayout, i as shapeTextAnchorOffset, k as defaultMeasurer, l as resolveTextBodyRect, m as TextAuditIssue, n as ShapeAutoFitScaleOptions, o as textColumnsStyle, p as AuditTextLayoutOptions, r as shapeAutoFitScale, s as verticalTextStyle, t as textUnderlineStyle, u as shapeTextRect, v as renderTextEffectsSvg, w as SANS, x as MONO, y as ARIAL } from "./index-74n14k3Y.js";
2
2
  import { PresentationData, SlideData } from "@office-kit/pptx";
3
3
 
4
4
  //#region src/measure.d.ts
@@ -73,5 +73,5 @@ declare const renderSlideToRgba: (pres: PresentationData, slide: SlideData, opts
73
73
  readonly png: Uint8Array;
74
74
  };
75
75
  //#endregion
76
- export { ARIAL, type AuditTextLayoutOptions, FONT_DIR, FONT_FILES, type FontSpec, type FontkitMeasurerOptions, MONO, type MeasureResult, type RegisteredFont, RenderImageOptions, type RenderSlideOptions, RgbaImage, SANS, SERIF, type ShapeAutoFitScaleOptions, TIMES, type TextAuditIssue, type TextLayoutMode, type TextMeasurer, type VerticalTextStyle, auditTextLayout, buildFontkitMeasurer, defaultMeasurer, paragraphNumberLabels, renderSlideToImage, renderSlideToRgba, renderSlideSvg as renderSlideToSvg, renderTextEffectsSvg, resolveTextBodyRect, shapeAutoFitScale, shapeCustomTextRect, shapeTextAnchorOffset, substituteFamily, textColumnsStyle, textUnderlineStyle, verticalTextStyle };
76
+ export { ARIAL, type AuditTextLayoutOptions, FONT_DIR, FONT_FILES, type FontSpec, type FontkitMeasurerOptions, MONO, type MeasureResult, type RegisteredFont, RenderImageOptions, type RenderSlideOptions, RgbaImage, SANS, SERIF, type ShapeAutoFitScaleOptions, TIMES, type TextAuditIssue, type TextLayoutMode, type TextMeasurer, type TextRectFractions, type VerticalTextStyle, auditTextLayout, buildFontkitMeasurer, decimalSeparatorOf, defaultMeasurer, paragraphNumberLabels, renderSlideLayoutSvg as renderSlideLayoutToSvg, renderSlideToImage, renderSlideToRgba, renderSlideSvg as renderSlideToSvg, renderTextEffectsSvg, resolveTextBodyRect, shapeAutoFitScale, shapeTextAnchorOffset, shapeTextRect, substituteFamily, textColumnsStyle, textUnderlineStyle, verticalTextStyle };
77
77
  //# sourceMappingURL=node.d.ts.map
package/dist/node.js CHANGED
@@ -1,4 +1,4 @@
1
- import { _ as textColumnsStyle, a as renderTextEffectsSvg, b as shapeCustomTextRect, c as MONO, d as TIMES, f as defaultMeasurer, g as textUnderlineStyle, h as paragraphNumberLabels, i as renderSlideSvg, l as SANS, m as substituteFamily, n as shapeTextAnchorOffset, o as ARIAL, p as isCjk, r as auditTextLayout, s as AVG_GLYPH_W_RATIO, t as shapeAutoFitScale, u as SERIF, v as verticalTextStyle, y as resolveTextBodyRect } from "./src-DYfIZIh8.js";
1
+ import { S as shapeTextRect, _ as paragraphNumberLabels, a as renderSlideSvg, b as verticalTextStyle, c as AVG_GLYPH_W_RATIO, d as SERIF, f as TIMES, g as decimalSeparatorOf, h as substituteFamily, i as renderSlideLayoutSvg, l as MONO, m as isCjk, n as shapeTextAnchorOffset, o as renderTextEffectsSvg, p as defaultMeasurer, r as auditTextLayout, s as ARIAL, t as shapeAutoFitScale, u as SANS, v as textUnderlineStyle, x as resolveTextBodyRect, y as textColumnsStyle } from "./src-pb3C61GD.js";
2
2
  import { getSlideSize } from "@office-kit/pptx";
3
3
  import { Resvg } from "@resvg/resvg-js";
4
4
  import * as fontkit from "fontkit";
@@ -195,6 +195,6 @@ const renderSlideToRgba = (pres, slide, opts = {}) => {
195
195
  };
196
196
  };
197
197
  //#endregion
198
- export { ARIAL, FONT_DIR, FONT_FILES, MONO, SANS, SERIF, TIMES, auditTextLayout, buildFontkitMeasurer, defaultMeasurer, paragraphNumberLabels, renderSlideToImage, renderSlideToRgba, renderSlideSvg as renderSlideToSvg, renderTextEffectsSvg, resolveTextBodyRect, shapeAutoFitScale, shapeCustomTextRect, shapeTextAnchorOffset, substituteFamily, textColumnsStyle, textUnderlineStyle, verticalTextStyle };
198
+ export { ARIAL, FONT_DIR, FONT_FILES, MONO, SANS, SERIF, TIMES, auditTextLayout, buildFontkitMeasurer, decimalSeparatorOf, defaultMeasurer, paragraphNumberLabels, renderSlideLayoutSvg as renderSlideLayoutToSvg, renderSlideToImage, renderSlideToRgba, renderSlideSvg as renderSlideToSvg, renderTextEffectsSvg, resolveTextBodyRect, shapeAutoFitScale, shapeTextAnchorOffset, shapeTextRect, substituteFamily, textColumnsStyle, textUnderlineStyle, verticalTextStyle };
199
199
 
200
200
  //# sourceMappingURL=node.js.map