deckjsx 0.8.1 → 0.8.2
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 +54 -1
- package/dist/{adapter-B-bVXjv-.d.mts → adapter-B0PALTZN.d.mts} +2 -2
- package/dist/{adapter-CNSvvD4i.mjs → adapter-B3Efckbf.mjs} +105 -52
- package/dist/adapter.d.mts +1 -1
- package/dist/adapter.mjs +1 -1
- package/dist/{index-BlOsGMTm.d.mts → index-DOxigSfK.d.mts} +16 -12
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +984 -161
- package/dist/inspect.d.mts +3 -3
- package/dist/jsx-dev-runtime.d.mts +2 -2
- package/dist/{jsx-runtime-Dd6G09P7.d.mts → jsx-runtime-BhY1AeJ9.d.mts} +1 -1
- package/dist/jsx-runtime.d.mts +2 -2
- package/dist/{model-oqG9gKTq.d.mts → model-C82_FI4k.d.mts} +2 -2
- package/dist/node-output-L2bV2_8g.mjs +136 -0
- package/dist/{resolve-CfjiMtv5.d.mts → resolve-DH0cI2C3.d.mts} +5 -2
- package/package.json +1 -1
- package/dist/node-output-BXQOTLKj.mjs +0 -28
package/README.md
CHANGED
|
@@ -237,6 +237,11 @@ styles. Class conflicts are resolved by selector specificity first, then stylesh
|
|
|
237
237
|
rule order. Supported selectors are intentionally small: class selectors, tag/class compounds, and
|
|
238
238
|
descendant selectors such as `.title`, `p.title`, or `.card .caption`.
|
|
239
239
|
|
|
240
|
+
Inline `span` text runs inherit text-related parent values such as `color`, `fontFamily`,
|
|
241
|
+
`fontSize`, `fontWeight`, `lineHeight`, `letterSpacing`, `direction`, and wrapping controls. The
|
|
242
|
+
inherited values are visible in resolved-style inspection; Project avoids duplicating inherited-only
|
|
243
|
+
run styles when the parent text box already carries the concrete PPTX text body style.
|
|
244
|
+
|
|
240
245
|
Style cascade is source-local. A mounted child deck resolves its own theme and stylesheets against
|
|
241
246
|
its own slides, which keeps sandboxed and HMR-style composition predictable.
|
|
242
247
|
|
|
@@ -262,7 +267,9 @@ const deck = new Deck({
|
|
|
262
267
|
deck.slide({ template: "report" }, ({ template }) => (
|
|
263
268
|
<main>
|
|
264
269
|
<h1 area={template.title}>Quarterly Review</h1>
|
|
265
|
-
<section area={template.body}>
|
|
270
|
+
<section area={template.body}>
|
|
271
|
+
<p style={{ width: "100%", height: 0.5 }}>Performance highlights</p>
|
|
272
|
+
</section>
|
|
266
273
|
</main>
|
|
267
274
|
));
|
|
268
275
|
```
|
|
@@ -307,6 +314,25 @@ If a loader claims an image source but cannot provide dimensions, treat that as
|
|
|
307
314
|
retrieval failure and report it through Project diagnostics rather than waiting for the writer to
|
|
308
315
|
guess.
|
|
309
316
|
|
|
317
|
+
When an `img` has probed intrinsic `width` and `height`, layout uses that ratio if the author did
|
|
318
|
+
not provide `aspectRatio`. This means an image with only `width` can derive its projected height,
|
|
319
|
+
and an image with only `height` can derive its projected width. Author `aspectRatio` still wins for
|
|
320
|
+
intentional crops, logos, or placeholder boxes. `aspectRatio: "auto"` is accepted as the CSS-like
|
|
321
|
+
spelling for no authored ratio.
|
|
322
|
+
|
|
323
|
+
For foreground images, use `objectFit` / `fit`, `objectPosition`, and `crop`. `objectFit: "fill"`
|
|
324
|
+
uses the same projection as deckjsx's `stretch` fit; unsupported CSS values such as `"none"` and
|
|
325
|
+
`"scale-down"` are preserved as diagnostics and fall back to `contain`:
|
|
326
|
+
|
|
327
|
+
```tsx
|
|
328
|
+
<img src="hero.png" style={{ x: 1, y: 1, width: 4 }} />
|
|
329
|
+
<img src="portrait.png" style={{ x: 5.3, y: 1, width: 2, height: 2, objectFit: "cover" }} />
|
|
330
|
+
<img src="map.png" style={{ x: 1, y: 3.4, width: 4, height: 1.6, objectPosition: "right 25% bottom 10%" }} />
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
For decorative or underlay images inside a box, use background layers with `backgroundSize`,
|
|
334
|
+
`backgroundPosition`, `backgroundRepeat`, `backgroundClip`, and `backgroundOrigin`.
|
|
335
|
+
|
|
310
336
|
Primitive string and number children inside view-like elements are normalized to implicit text
|
|
311
337
|
nodes. Inline rich text uses `span` inside text-like elements:
|
|
312
338
|
|
|
@@ -336,6 +362,10 @@ and simple `gridColumn` / `gridRow` spans resolve to concrete slide coordinates
|
|
|
336
362
|
rendering. Absolutely positioned children inside flex or grid containers also use the
|
|
337
363
|
container content frame, including padding, as their containing block.
|
|
338
364
|
|
|
365
|
+
`display: "flex"` follows CSS-like defaults for the supported subset: row direction when
|
|
366
|
+
`flexDirection` is omitted, and cross-axis stretch when `alignItems` is omitted. The older
|
|
367
|
+
deck-specific `layout: "stack"` default remains vertical.
|
|
368
|
+
|
|
339
369
|
Use direct slide children when you want slide-global absolute placement. Use children
|
|
340
370
|
inside a view-like element when you want a local, web-like layout region.
|
|
341
371
|
|
|
@@ -350,6 +380,29 @@ include the unsupported feature, the projected value, and a fallback strategy de
|
|
|
350
380
|
were preserved and which behavior is still missing. Malformed projected unsupported-semantic payloads
|
|
351
381
|
from custom projections fail before Render emits bytes.
|
|
352
382
|
|
|
383
|
+
## CSS-like Defaults And Gotchas
|
|
384
|
+
|
|
385
|
+
deckjsx intentionally stays close to HTML/CSS naming, but the current v0.8 layout engine is a slide
|
|
386
|
+
layout solver, not a browser. These are the defaults most likely to surprise CSS authors:
|
|
387
|
+
|
|
388
|
+
| Area | deckjsx v0.8 behavior | Browser expectation | Guidance |
|
|
389
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
|
390
|
+
| Block views | `display: "block"` creates a local containing block and vertically flows unpositioned children; explicit frame props still opt into local absolute placement. | Block formatting creates vertical flow. | Use ordinary block flow for simple stacks; use flex/grid or explicit frames for decks. |
|
|
391
|
+
| Flex | `display: "flex"` defaults to row and cross-axis stretch. | Same for the supported subset. | Prefer flex for simple rows/columns. |
|
|
392
|
+
| Sizing | Block-flow text gets available width and a line-height based height; explicit/local absolute boxes still need size, insets, layout stretch, or image ratio. | Many elements have intrinsic or content-based size. | Use declared sizes for precise PPTX geometry; rely on block defaults for simple text. |
|
|
393
|
+
| Text measurement | Stack/grid do not measure wrapped text to push later siblings. | Browser layout uses measured content. | Use declared heights or `fit: "shrink"` for text boxes. |
|
|
394
|
+
| Units | Layout numbers are inches; font-size-like numbers are points. Strings support common CSS units including `cm`, `mm`, `Q`, `pc`, `vmin`, and `vmax`. | CSS unitless numbers are property-specific. | Use strings for CSS-like units when supported, or keep numeric domains explicit. |
|
|
395
|
+
| CSS-wide keywords | `initial`, `inherit`, `unset`, `revert`, and `revert-layer` fall back to supported-subset defaults with diagnostics where full cascade/reset semantics are missing. | CSS has full cascade defaulting semantics. | Prefer ordinary omission for defaults; inspect diagnostics when using reset keywords. |
|
|
396
|
+
| Text spacing | `letterSpacing` accepts `normal` or point lengths; paragraph before/after spacing accepts point lengths. | CSS text spacing uses property-specific length rules. | Prefer `px`, `pt`, `em`, or `rem` when porting CSS-like text spacing. |
|
|
397
|
+
| Style keys | Unsupported CSS-like property names produce nonblocking compile warnings and remain visible in graph inspection. | Browsers ignore invalid declarations after parsing rules. | Use supported style keys; expect warnings for `flex`, `flexFlow`, or logical aliases. |
|
|
398
|
+
| Box sizing | Containers, text, and shapes default to `border-box`. | CSS initial is `content-box`. | This is deliberate for slide geometry. |
|
|
399
|
+
| Border radius | Single-value `borderRadius` supports percentages against the projected short side. | CSS supports richer per-corner radii. | `borderRadius: "50%"` works for capsule-like PPTX geometry. |
|
|
400
|
+
| Shadows | One shadow layer projects offset/blur/color; spread radius is preserved as unsupported fallback metadata. | CSS box-shadow supports spread and multiple layers. | Avoid relying on spread for exact PPTX output; Project diagnostics preserve it. |
|
|
401
|
+
| Grid | Missing tracks fill the available grid content frame. | CSS implicit tracks default to `auto`. | Declare tracks for precise dashboards. |
|
|
402
|
+
| Images | Foreground images default to contain/center and can use probed natural ratio. | `<img>` has intrinsic layout behavior in normal document flow. | Use one axis plus probed dimensions, or set both axes for a fixed box. |
|
|
403
|
+
| Shapes | Shapes default to visible white fill with no stroke. | CSS boxes are transparent unless styled. | Use `fill: "transparent"` or a `div` when you need a layout/debug box. |
|
|
404
|
+
| zIndex | Simple projected paint-order number. | CSS stacking contexts and `auto`. | Use it for slide paint order, not browser compositing semantics. |
|
|
405
|
+
|
|
353
406
|
## Development
|
|
354
407
|
|
|
355
408
|
```bash
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as Diagnostics } from "./index-
|
|
2
|
-
import { bn as RenderedArtifact, hn as RenderInspectionSummary, in as OutputFormat, rn as InspectionDetailLevel, sn as ProjectionFormat, w as PptxPackageModel } from "./model-
|
|
1
|
+
import { $ as Diagnostics } from "./index-DOxigSfK.mjs";
|
|
2
|
+
import { bn as RenderedArtifact, hn as RenderInspectionSummary, in as OutputFormat, rn as InspectionDetailLevel, sn as ProjectionFormat, w as PptxPackageModel } from "./model-C82_FI4k.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/adapter.d.ts
|
|
5
5
|
type PptxRenderOptions = {
|
|
@@ -63,8 +63,15 @@ const EMU_PER_INCH = 914400;
|
|
|
63
63
|
const POINTS_PER_INCH = 72;
|
|
64
64
|
const DEFAULT_FONT_SIZE_PT = 16 / 96 * 72;
|
|
65
65
|
const CH_WIDTH_RATIO = .5;
|
|
66
|
-
const DECK_LENGTH_PATTERN = /^[-+]?(?:\d+|\d*\.\d+)(?:in|pt|px|%|em|rem|vh|vw|ch)$/i;
|
|
67
|
-
const DECK_POINT_LENGTH_PATTERN = /^[-+]?(?:\d+|\d*\.\d+)(?:pt|
|
|
66
|
+
const DECK_LENGTH_PATTERN = /^[-+]?(?:\d+|\d*\.\d+)(?:in|cm|mm|q|pt|pc|px|%|em|rem|vh|vw|vmin|vmax|ch)$/i;
|
|
67
|
+
const DECK_POINT_LENGTH_PATTERN = /^[-+]?(?:\d+|\d*\.\d+)(?:in|cm|mm|q|pt|pc|px|em|rem|vh|vw|vmin|vmax|ch)$/i;
|
|
68
|
+
const CSS_WIDE_KEYWORDS = new Set([
|
|
69
|
+
"initial",
|
|
70
|
+
"inherit",
|
|
71
|
+
"unset",
|
|
72
|
+
"revert",
|
|
73
|
+
"revert-layer"
|
|
74
|
+
]);
|
|
68
75
|
function pointsToEmu(value) {
|
|
69
76
|
return value / 72 * EMU_PER_INCH;
|
|
70
77
|
}
|
|
@@ -76,86 +83,103 @@ function parsePercentage(value) {
|
|
|
76
83
|
function resolvePointUnitBase(context) {
|
|
77
84
|
return context?.fontSizePt ?? DEFAULT_FONT_SIZE_PT;
|
|
78
85
|
}
|
|
86
|
+
function absoluteLengthInInches(normalized) {
|
|
87
|
+
if (normalized.endsWith("vmin") || normalized.endsWith("vmax")) return;
|
|
88
|
+
if (normalized.endsWith("in")) return Number.parseFloat(normalized.slice(0, -2));
|
|
89
|
+
if (normalized.endsWith("cm")) return Number.parseFloat(normalized.slice(0, -2)) / 2.54;
|
|
90
|
+
if (normalized.endsWith("mm")) return Number.parseFloat(normalized.slice(0, -2)) / 25.4;
|
|
91
|
+
if (normalized.endsWith("q")) return Number.parseFloat(normalized.slice(0, -1)) / 101.6;
|
|
92
|
+
if (normalized.endsWith("pt")) return Number.parseFloat(normalized.slice(0, -2)) / 72;
|
|
93
|
+
if (normalized.endsWith("pc")) return Number.parseFloat(normalized.slice(0, -2)) / 6;
|
|
94
|
+
if (normalized.endsWith("px")) return Number.parseFloat(normalized.slice(0, -2)) / 96;
|
|
95
|
+
}
|
|
96
|
+
function resolveViewportEmu(normalized, context, errorContext) {
|
|
97
|
+
if (normalized.endsWith("vw")) {
|
|
98
|
+
const viewportWidthEmu = context?.viewportWidthEmu;
|
|
99
|
+
if (viewportWidthEmu === void 0) throw new Error(`Unsupported viewport ${errorContext} without viewport context: ${normalized}`);
|
|
100
|
+
return viewportWidthEmu * Number.parseFloat(normalized.slice(0, -2)) / 100;
|
|
101
|
+
}
|
|
102
|
+
if (normalized.endsWith("vh")) {
|
|
103
|
+
const viewportHeightEmu = context?.viewportHeightEmu;
|
|
104
|
+
if (viewportHeightEmu === void 0) throw new Error(`Unsupported viewport ${errorContext} without viewport context: ${normalized}`);
|
|
105
|
+
return viewportHeightEmu * Number.parseFloat(normalized.slice(0, -2)) / 100;
|
|
106
|
+
}
|
|
107
|
+
if (normalized.endsWith("vmin") || normalized.endsWith("vmax")) {
|
|
108
|
+
const viewportWidthEmu = context?.viewportWidthEmu;
|
|
109
|
+
const viewportHeightEmu = context?.viewportHeightEmu;
|
|
110
|
+
if (viewportWidthEmu === void 0 || viewportHeightEmu === void 0) throw new Error(`Unsupported viewport ${errorContext} without viewport context: ${normalized}`);
|
|
111
|
+
const base = normalized.endsWith("vmin") ? Math.min(viewportWidthEmu, viewportHeightEmu) : Math.max(viewportWidthEmu, viewportHeightEmu);
|
|
112
|
+
const suffixLength = normalized.endsWith("vmin") ? 4 : 4;
|
|
113
|
+
return base * Number.parseFloat(normalized.slice(0, -suffixLength)) / 100;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
79
116
|
function isDeckLengthString(value) {
|
|
80
117
|
return DECK_LENGTH_PATTERN.test(value.trim());
|
|
81
118
|
}
|
|
82
119
|
function isDeckPointLengthString(value) {
|
|
83
120
|
return DECK_POINT_LENGTH_PATTERN.test(value.trim());
|
|
84
121
|
}
|
|
122
|
+
function isCssWideKeyword(value) {
|
|
123
|
+
return typeof value === "string" && CSS_WIDE_KEYWORDS.has(value.trim().toLowerCase());
|
|
124
|
+
}
|
|
85
125
|
function parseLengthToken(value, baseEmu, fallback = 0, context) {
|
|
86
126
|
const trimmed = value.trim();
|
|
87
127
|
if (trimmed === "0") return 0;
|
|
128
|
+
if (isCssWideKeyword(trimmed)) return fallback;
|
|
88
129
|
if (!isDeckLengthString(trimmed)) throw new Error(`Unsupported length value: ${value}`);
|
|
89
130
|
return parseLength(trimmed, baseEmu, fallback, context);
|
|
90
131
|
}
|
|
91
132
|
function parsePointToken(value, fallback = 0, context) {
|
|
92
133
|
const trimmed = value.trim();
|
|
93
134
|
if (trimmed === "0") return 0;
|
|
135
|
+
if (isCssWideKeyword(trimmed)) return fallback;
|
|
94
136
|
if (!isDeckPointLengthString(trimmed)) throw new Error(`Unsupported point value: ${value}`);
|
|
95
137
|
return parsePointValue(trimmed, fallback, context);
|
|
96
138
|
}
|
|
97
139
|
function parsePointValue(value, fallback = 0, context) {
|
|
98
140
|
if (value === void 0) return fallback;
|
|
99
141
|
if (typeof value === "number") return value;
|
|
100
|
-
|
|
101
|
-
if (
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
if (
|
|
105
|
-
if (
|
|
106
|
-
if (
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
if (value.endsWith("vh")) {
|
|
112
|
-
const viewportHeightEmu = context?.viewportHeightEmu;
|
|
113
|
-
if (viewportHeightEmu === void 0) throw new Error(`Unsupported viewport point value without viewport context: ${value}`);
|
|
114
|
-
return viewportHeightEmu * Number.parseFloat(value.slice(0, -2)) / 100 / EMU_PER_INCH * 72;
|
|
115
|
-
}
|
|
142
|
+
const normalized = value.trim().toLowerCase();
|
|
143
|
+
if (normalized === "0") return 0;
|
|
144
|
+
if (isCssWideKeyword(normalized)) return fallback;
|
|
145
|
+
const absoluteInches = absoluteLengthInInches(normalized);
|
|
146
|
+
if (absoluteInches !== void 0) return absoluteInches * 72;
|
|
147
|
+
if (normalized.endsWith("rem")) return Number.parseFloat(normalized.slice(0, -3)) * DEFAULT_FONT_SIZE_PT;
|
|
148
|
+
if (normalized.endsWith("em")) return Number.parseFloat(normalized.slice(0, -2)) * resolvePointUnitBase(context);
|
|
149
|
+
if (normalized.endsWith("ch")) return Number.parseFloat(normalized.slice(0, -2)) * resolvePointUnitBase(context) * CH_WIDTH_RATIO;
|
|
150
|
+
const viewportEmu = resolveViewportEmu(normalized, context, "point value");
|
|
151
|
+
if (viewportEmu !== void 0) return viewportEmu / EMU_PER_INCH * 72;
|
|
116
152
|
throw new Error(`Unsupported point value: ${value}`);
|
|
117
153
|
}
|
|
118
154
|
function parseStrokeWidth(value, fallback = 0, context) {
|
|
119
155
|
if (value === void 0) return fallback;
|
|
120
156
|
if (typeof value === "number") return value;
|
|
121
|
-
|
|
122
|
-
if (
|
|
123
|
-
if (
|
|
124
|
-
|
|
125
|
-
if (
|
|
126
|
-
if (
|
|
127
|
-
if (
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
if (value.endsWith("vh")) {
|
|
133
|
-
const viewportHeightEmu = context?.viewportHeightEmu;
|
|
134
|
-
if (viewportHeightEmu === void 0) throw new Error(`Unsupported viewport stroke width without viewport context: ${value}`);
|
|
135
|
-
return viewportHeightEmu * Number.parseFloat(value.slice(0, -2)) / 100 / EMU_PER_INCH * 72;
|
|
136
|
-
}
|
|
157
|
+
const normalized = value.trim().toLowerCase();
|
|
158
|
+
if (normalized === "0") return 0;
|
|
159
|
+
if (isCssWideKeyword(normalized)) return fallback;
|
|
160
|
+
const absoluteInches = absoluteLengthInInches(normalized);
|
|
161
|
+
if (absoluteInches !== void 0) return absoluteInches * 72;
|
|
162
|
+
if (normalized.endsWith("rem")) return Number.parseFloat(normalized.slice(0, -3)) * DEFAULT_FONT_SIZE_PT;
|
|
163
|
+
if (normalized.endsWith("em")) return Number.parseFloat(normalized.slice(0, -2)) * resolvePointUnitBase(context);
|
|
164
|
+
if (normalized.endsWith("ch")) return Number.parseFloat(normalized.slice(0, -2)) * resolvePointUnitBase(context) * CH_WIDTH_RATIO;
|
|
165
|
+
const viewportEmu = resolveViewportEmu(normalized, context, "stroke width");
|
|
166
|
+
if (viewportEmu !== void 0) return viewportEmu / EMU_PER_INCH * 72;
|
|
137
167
|
throw new Error(`Unsupported stroke width: ${value}`);
|
|
138
168
|
}
|
|
139
169
|
function parseLength(value, baseEmu, fallback = 0, context) {
|
|
140
170
|
if (value === void 0) return fallback;
|
|
141
171
|
if (typeof value === "number") return value * EMU_PER_INCH;
|
|
142
|
-
|
|
143
|
-
if (
|
|
144
|
-
if (
|
|
145
|
-
if (
|
|
146
|
-
|
|
147
|
-
if (
|
|
148
|
-
if (
|
|
149
|
-
if (
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
if (value.endsWith("vh")) {
|
|
155
|
-
const viewportHeightEmu = context?.viewportHeightEmu;
|
|
156
|
-
if (viewportHeightEmu === void 0) throw new Error(`Unsupported viewport length without viewport context: ${value}`);
|
|
157
|
-
return viewportHeightEmu * Number.parseFloat(value.slice(0, -2)) / 100;
|
|
158
|
-
}
|
|
172
|
+
const normalized = value.trim().toLowerCase();
|
|
173
|
+
if (normalized === "0") return 0;
|
|
174
|
+
if (isCssWideKeyword(normalized)) return fallback;
|
|
175
|
+
if (normalized.endsWith("%")) return baseEmu * Number.parseFloat(normalized.slice(0, -1)) / 100;
|
|
176
|
+
const absoluteInches = absoluteLengthInInches(normalized);
|
|
177
|
+
if (absoluteInches !== void 0) return absoluteInches * EMU_PER_INCH;
|
|
178
|
+
if (normalized.endsWith("rem")) return Number.parseFloat(normalized.slice(0, -3)) * DEFAULT_FONT_SIZE_PT * EMU_PER_INCH / 72;
|
|
179
|
+
if (normalized.endsWith("em")) return Number.parseFloat(normalized.slice(0, -2)) * resolvePointUnitBase(context) * EMU_PER_INCH / 72;
|
|
180
|
+
if (normalized.endsWith("ch")) return Number.parseFloat(normalized.slice(0, -2)) * resolvePointUnitBase(context) * CH_WIDTH_RATIO * EMU_PER_INCH / 72;
|
|
181
|
+
const viewportEmu = resolveViewportEmu(normalized, context, "length");
|
|
182
|
+
if (viewportEmu !== void 0) return viewportEmu;
|
|
159
183
|
throw new Error(`Unsupported length value: ${value}`);
|
|
160
184
|
}
|
|
161
185
|
//#endregion
|
|
@@ -458,7 +482,9 @@ const UNSUPPORTED_SEMANTIC_FEATURES = [
|
|
|
458
482
|
"border",
|
|
459
483
|
"clipping",
|
|
460
484
|
"filter",
|
|
485
|
+
"image",
|
|
461
486
|
"isolation",
|
|
487
|
+
"layout",
|
|
462
488
|
"outline",
|
|
463
489
|
"opacity",
|
|
464
490
|
"shadow",
|
|
@@ -1024,6 +1050,29 @@ function validateDrawingFrame(input) {
|
|
|
1024
1050
|
});
|
|
1025
1051
|
return issues;
|
|
1026
1052
|
}
|
|
1053
|
+
function validateDrawingFrameExtent(input) {
|
|
1054
|
+
const frame = input.element.frame;
|
|
1055
|
+
if (typeof frame !== "object" || frame === null) return [];
|
|
1056
|
+
const { widthEmu, heightEmu } = frame;
|
|
1057
|
+
if (typeof widthEmu !== "number" || typeof heightEmu !== "number" || !Number.isFinite(widthEmu) || !Number.isFinite(heightEmu)) return [];
|
|
1058
|
+
if (input.element.kind === "shape" && input.element.shape === "line") return widthEmu === 0 && heightEmu === 0 ? [drawingMetadataDiagnostic({
|
|
1059
|
+
path: `${input.path}.frame`,
|
|
1060
|
+
message: "line shape frame must have a non-zero axis",
|
|
1061
|
+
title: "pptx drawing frame is degenerate"
|
|
1062
|
+
})] : [];
|
|
1063
|
+
const issues = [];
|
|
1064
|
+
if (widthEmu === 0) issues.push(drawingMetadataDiagnostic({
|
|
1065
|
+
path: `${input.path}.frame.widthEmu`,
|
|
1066
|
+
message: "drawing frame width must be greater than zero",
|
|
1067
|
+
title: "pptx drawing frame is degenerate"
|
|
1068
|
+
}));
|
|
1069
|
+
if (heightEmu === 0) issues.push(drawingMetadataDiagnostic({
|
|
1070
|
+
path: `${input.path}.frame.heightEmu`,
|
|
1071
|
+
message: "drawing frame height must be greater than zero",
|
|
1072
|
+
title: "pptx drawing frame is degenerate"
|
|
1073
|
+
}));
|
|
1074
|
+
return issues;
|
|
1075
|
+
}
|
|
1027
1076
|
function validateSlideLayoutAnchor(input) {
|
|
1028
1077
|
const issues = [];
|
|
1029
1078
|
if (typeof input.anchor.template !== "string" || input.anchor.template.length === 0) issues.push(diagnostic({
|
|
@@ -3266,6 +3315,10 @@ function validateDrawingMetadata(input) {
|
|
|
3266
3315
|
frame: input.element.frame,
|
|
3267
3316
|
path: `${input.path}.frame`
|
|
3268
3317
|
}),
|
|
3318
|
+
...validateDrawingFrameExtent({
|
|
3319
|
+
element: input.element,
|
|
3320
|
+
path: input.path
|
|
3321
|
+
}),
|
|
3269
3322
|
...element.opacity === void 0 || typeof element.opacity === "number" && Number.isFinite(element.opacity) && element.opacity >= 0 && element.opacity <= 1 ? [] : [drawingMetadataDiagnostic({
|
|
3270
3323
|
path: `${input.path}.opacity`,
|
|
3271
3324
|
message: "invalid opacity"
|
|
@@ -8610,4 +8663,4 @@ function pptx(options = {}) {
|
|
|
8610
8663
|
};
|
|
8611
8664
|
}
|
|
8612
8665
|
//#endregion
|
|
8613
|
-
export {
|
|
8666
|
+
export { diagnostic as A, parsePointToken as C, EMU_PER_INCH as D, pointsToEmu as E, formatDiagnostic as F, formatDiagnostics as I, DeckDiagnosticError as M, SemanticGraphDiagnosticError as N, POINTS_PER_INCH as O, StyleDiagnosticError as P, parsePercentage as S, parseStrokeWidth as T, isCssWideKeyword as _, isInspectableThemePayload as a, parseLength as b, fingerprintString as c, createWriterRenderContext as d, createTemplateHandle as f, DEFAULT_FONT_SIZE_PT as g, validateSlideTemplates as h, isContentTypesPayload as i, CompositionDiagnosticError as j, createDiagnostics as k, stableJson$1 as l, templateRefValue as m, pptxMediaAssetLoadRequirements as n, isRecord as o, isTemplateAreaRef as p, validatePptxPackageModel as r, projectedRelationshipTarget as s, pptx as t, withPackagePartFingerprints as u, isDeckLengthString as v, parsePointValue as w, parseLengthToken as x, isDeckPointLengthString as y };
|
package/dist/adapter.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as WriterRenderContext, i as WriterAdapterResult, n as RenderOptions, o as pptx, r as WriterAdapter, t as PptxRenderOptions } from "./adapter-
|
|
1
|
+
import { a as WriterRenderContext, i as WriterAdapterResult, n as RenderOptions, o as pptx, r as WriterAdapter, t as PptxRenderOptions } from "./adapter-B0PALTZN.mjs";
|
|
2
2
|
export { PptxRenderOptions, RenderOptions, WriterAdapter, WriterAdapterResult, WriterRenderContext, pptx };
|
package/dist/adapter.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as pptx } from "./adapter-
|
|
1
|
+
import { t as pptx } from "./adapter-B3Efckbf.mjs";
|
|
2
2
|
export { pptx };
|
|
@@ -3,11 +3,14 @@ type AuthoredTag = "article" | "aside" | "div" | "figure" | "footer" | "h1" | "h
|
|
|
3
3
|
type SectioningTag = "article" | "aside" | "footer" | "header" | "main" | "nav" | "section";
|
|
4
4
|
//#endregion
|
|
5
5
|
//#region src/style/types.d.ts
|
|
6
|
-
type
|
|
7
|
-
type
|
|
8
|
-
type
|
|
6
|
+
type CssWideKeyword = "initial" | "inherit" | "unset" | "revert" | "revert-layer";
|
|
7
|
+
type DeckLength = number | CssWideKeyword | `${number}${"in" | "cm" | "mm" | "q" | "pt" | "pc" | "px" | "%" | "em" | "rem" | "vh" | "vw" | "vmin" | "vmax" | "ch"}`;
|
|
8
|
+
type DeckPointLength = number | CssWideKeyword | `${number}${"in" | "cm" | "mm" | "q" | "pt" | "pc" | "px" | "em" | "rem" | "vh" | "vw" | "vmin" | "vmax" | "ch"}`;
|
|
9
|
+
type CssLetterSpacing = DeckPointLength | "normal";
|
|
10
|
+
type CssAspectRatio = number | "auto" | `${number}` | `${number}/${number}` | `${number} / ${number}`;
|
|
9
11
|
type CssBoxSizing = "border-box" | "content-box";
|
|
10
|
-
type
|
|
12
|
+
type CssSpacingShorthand = `${string} ${string}`;
|
|
13
|
+
type Spacing = DeckLength | CssSpacingShorthand | readonly [DeckLength, DeckLength, DeckLength, DeckLength];
|
|
11
14
|
type StackAxis = "horizontal" | "vertical";
|
|
12
15
|
type StackAlignment = "start" | "center" | "end";
|
|
13
16
|
type LayoutMode = "absolute" | "stack" | "grid";
|
|
@@ -18,7 +21,7 @@ type StrokeLineJoin = "miter" | "round" | "bevel";
|
|
|
18
21
|
type VerticalAlign = "top" | "middle" | "bottom";
|
|
19
22
|
type TextFit = "none" | "shrink" | "resize";
|
|
20
23
|
type CssDisplay = "flex" | "block" | "grid" | "none";
|
|
21
|
-
type CssPosition = "absolute" | "relative";
|
|
24
|
+
type CssPosition = "static" | "absolute" | "relative";
|
|
22
25
|
type CssVisibility = "visible" | "hidden";
|
|
23
26
|
type CssOverflow = "visible" | "hidden";
|
|
24
27
|
type CssFlexDirection = "row" | "column";
|
|
@@ -205,12 +208,12 @@ type TextStyle = FrameAuthorProps & BoxStyleAuthorProps & {
|
|
|
205
208
|
lineSpacing?: number;
|
|
206
209
|
lineSpacingMultiple?: number;
|
|
207
210
|
lineHeight?: DeckPointLength | "normal";
|
|
208
|
-
paragraphSpacingBefore?:
|
|
209
|
-
paragraphSpacingAfter?:
|
|
211
|
+
paragraphSpacingBefore?: DeckPointLength;
|
|
212
|
+
paragraphSpacingAfter?: DeckPointLength;
|
|
210
213
|
textIndent?: DeckPointLength;
|
|
211
214
|
tabStops?: readonly TextTabStopAuthoring[];
|
|
212
|
-
charSpacing?:
|
|
213
|
-
letterSpacing?:
|
|
215
|
+
charSpacing?: DeckPointLength;
|
|
216
|
+
letterSpacing?: CssLetterSpacing;
|
|
214
217
|
whiteSpace?: "normal" | "nowrap" | "pre" | "pre-wrap" | "pre-line";
|
|
215
218
|
wordBreak?: "normal" | "break-all" | "keep-all" | "break-word";
|
|
216
219
|
overflowWrap?: "normal" | "break-word" | "anywhere";
|
|
@@ -225,9 +228,10 @@ type TextStyle = FrameAuthorProps & BoxStyleAuthorProps & {
|
|
|
225
228
|
fit?: TextFit;
|
|
226
229
|
wrap?: boolean;
|
|
227
230
|
};
|
|
231
|
+
type ImageFit = "contain" | "cover" | "stretch" | "fill";
|
|
228
232
|
type ImageStyle = FrameAuthorProps & {
|
|
229
|
-
fit?:
|
|
230
|
-
objectFit?:
|
|
233
|
+
fit?: ImageFit;
|
|
234
|
+
objectFit?: ImageFit;
|
|
231
235
|
objectPosition?: CssObjectPosition;
|
|
232
236
|
crop?: ImageCropAuthoring;
|
|
233
237
|
href?: string;
|
|
@@ -762,4 +766,4 @@ type DeckJsxIntrinsicElements = {
|
|
|
762
766
|
span: IntrinsicSpanProps;
|
|
763
767
|
} & { [Tag in IntrinsicViewTag]: IntrinsicDivProps } & { [Tag in IntrinsicTextTag]: IntrinsicPProps };
|
|
764
768
|
//#endregion
|
|
765
|
-
export { Diagnostics as $,
|
|
769
|
+
export { Diagnostics as $, Spacing as $t, BaseSemanticNode as A, CssGridAutoFlow as At, SemanticRole as B, CssLetterSpacing as Bt, SourceContextValue as C, CssAlignSelf as Ct, StyleSheet as D, CssFlexBasis as Dt, ThemeDefaults as E, CssDisplay as Et, SemanticDocumentNode as F, CssGridTemplateAreas as Ft, SourceIdentity as G, DeckLength as Gt, SemanticSlideNode as H, CssOverflow as Ht, SemanticImageNode as I, CssGridTemplateShorthand as It, StyleEntity as J, ImageCropValue as Jt, SourceOrigin as K, DeckPointLength as Kt, SemanticNode as L, CssGridTrack as Lt, GraphNodeId as M, CssGridPlacement as Mt, SemanticAuthorGraph as N, CssGridShorthand as Nt, AssetEntity as O, CssFlexDirection as Ot, SemanticContainerNode as P, CssGridTemplate as Pt, DiagnosticSeverity as Q, SlideStyle as Qt, SemanticNodeKind as R, CssJustifyContent as Rt, SourceContextMapper as S, CssAlignItems as St, ThemeInput as T, CssBoxSizing as Tt, SemanticTextNode as U, CssPosition as Ut, SemanticShapeNode as V, CssObjectPosition as Vt, SemanticTextRunNode as W, CssVisibility as Wt, Diagnostic as X, LayoutMode as Xt, StyleEntityId as Y, ImageStyle as Yt, DiagnosticLabel as Z, ShapeStyle as Zt, SlideFactory as _, TemplateFrame as _t, IntrinsicDivProps as a, StyleDeclaration as an, StyleDiagnosticError as at, SlideOptions as b, BorderStyle as bt, IntrinsicShapeProps as c, TextRunStyle as cn, ClassNameObject as ct, JsxNode as d, TextTabStopAuthoring as dn, EmptySlideTemplateSet as dt, StackAlignment as en, formatDiagnostic as et, TextJsxChild as f, TextTabStopLength as fn, SlideTemplate as ft, CompositionSourceInternals as g, TemplateAreaRef as gt, CompositionSource as h, TemplateAreaKind as ht, DeckOptions as i, StrokeLineJoin as in, SemanticGraphDiagnosticError as it, Brand as j, CssGridLine as jt, AssetEntityId as k, CssFlexWrap as kt, IntrinsicTextTag as l, TextStyle as ln, ClassNameValue as lt, CompositionContext as m, ViewStyle as mn, TemplateArea as mt, DeckJsxElement as n, StrokeDashType as nn, CompositionDiagnosticError as nt, IntrinsicImgProps as o, StyleDeclarationValue as on, JsxKey as ot, COMPOSITION_SOURCE as p, VerticalAlign as pn, SlideTemplateSet as pt, StyleClassRef as q, ImageCropAuthoring as qt, DeckJsxIntrinsicElements as r, StrokeLineCap as rn, DeckDiagnosticError as rt, IntrinsicPProps as s, TextFit as sn, SourceSpan as st, ContentJsxChild as t, StackAxis as tn, formatDiagnostics as tt, IntrinsicViewTag as u, TextTabStopAlignment as un, ClassNameValueArray as ut, SlideFactoryInput as v, TemplateHandle as vt, Theme as w, CssAspectRatio as wt, SourceContextInput as x, CssAlignContent as xt, SlideFactoryInputWithTemplate as y, TemplateName as yt, SemanticOrigin as z, CssJustifySelf as zt };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as Diagnostics, $t as
|
|
2
|
-
import { An as AssetSource, Cn as StageSummary, Dn as AssetLoaderContext, En as AssetLoader, Gt as ProjectInspectionSummary, On as AssetMediaType, Sn as StageName, T as PptxPackageModelCandidate, Tn as AssetLoadResult, _n as RenderOutputSideEffectStatus, an as ProjectOptions, bn as RenderedArtifact, cn as RenderAssemblyBuildSummary, dn as RenderAssemblyFingerprintDelta, fn as RenderAssemblyPlanEntrySummary, gn as RenderOutputSideEffectReason, hn as RenderInspectionSummary, in as OutputFormat, kn as AssetProbeResult, ln as RenderAssemblyExpectedEntrySummary, mn as RenderAssemblyReasonDetails, nn as CompileStages, on as ProjectStages, pn as RenderAssemblyPlanSummary, rn as InspectionDetailLevel, sn as ProjectionFormat, un as RenderAssemblyFinalEntrySummary, vn as RenderOutputSideEffectSummary, w as PptxPackageModel, wn as WrittenOutput, xn as StageArtifactStatus, yn as RenderStages } from "./model-
|
|
3
|
-
import { n as RenderOptions, r as WriterAdapter } from "./adapter-
|
|
4
|
-
import { r as ResolvedStyleMap } from "./resolve-
|
|
1
|
+
import { $ as Diagnostics, $t as Spacing, At as CssGridAutoFlow, Bt as CssLetterSpacing, C as SourceContextValue, Ct as CssAlignSelf, D as StyleSheet, Dt as CssFlexBasis, E as ThemeDefaults, Et as CssDisplay, Ft as CssGridTemplateAreas, Gt as DeckLength, Ht as CssOverflow, It as CssGridTemplateShorthand, Jt as ImageCropValue, Kt as DeckPointLength, Lt as CssGridTrack, Mt as CssGridPlacement, N as SemanticAuthorGraph, Nt as CssGridShorthand, Ot as CssFlexDirection, Pt as CssGridTemplate, Q as DiagnosticSeverity, Qt as SlideStyle, Rt as CssJustifyContent, S as SourceContextMapper, St as CssAlignItems, T as ThemeInput, Tt as CssBoxSizing, Ut as CssPosition, Vt as CssObjectPosition, Wt as CssVisibility, X as Diagnostic, Xt as LayoutMode, Yt as ImageStyle, Z as DiagnosticLabel, Zt as ShapeStyle, _ as SlideFactory, _t as TemplateFrame, a as IntrinsicDivProps, at as StyleDiagnosticError, b as SlideOptions, bt as BorderStyle, c as IntrinsicShapeProps, cn as TextRunStyle, ct as ClassNameObject, dn as TextTabStopAuthoring, dt as EmptySlideTemplateSet, en as StackAlignment, et as formatDiagnostic, f as TextJsxChild, fn as TextTabStopLength, ft as SlideTemplate, g as CompositionSourceInternals, gt as TemplateAreaRef, h as CompositionSource, ht as TemplateAreaKind, i as DeckOptions, in as StrokeLineJoin, it as SemanticGraphDiagnosticError, jt as CssGridLine, kt as CssFlexWrap, l as IntrinsicTextTag, ln as TextStyle, lt as ClassNameValue, m as CompositionContext, mn as ViewStyle, mt as TemplateArea, n as DeckJsxElement, nn as StrokeDashType, nt as CompositionDiagnosticError, o as IntrinsicImgProps, ot as JsxKey, p as COMPOSITION_SOURCE, pn as VerticalAlign, pt as SlideTemplateSet, qt as ImageCropAuthoring, r as DeckJsxIntrinsicElements, rn as StrokeLineCap, rt as DeckDiagnosticError, s as IntrinsicPProps, sn as TextFit, st as SourceSpan, t as ContentJsxChild, tn as StackAxis, tt as formatDiagnostics, u as IntrinsicViewTag, un as TextTabStopAlignment, ut as ClassNameValueArray, v as SlideFactoryInput, vt as TemplateHandle, w as Theme, wt as CssAspectRatio, x as SourceContextInput, xt as CssAlignContent, y as SlideFactoryInputWithTemplate, yt as TemplateName, zt as CssJustifySelf } from "./index-DOxigSfK.mjs";
|
|
2
|
+
import { An as AssetSource, Cn as StageSummary, Dn as AssetLoaderContext, En as AssetLoader, Gt as ProjectInspectionSummary, On as AssetMediaType, Sn as StageName, T as PptxPackageModelCandidate, Tn as AssetLoadResult, _n as RenderOutputSideEffectStatus, an as ProjectOptions, bn as RenderedArtifact, cn as RenderAssemblyBuildSummary, dn as RenderAssemblyFingerprintDelta, fn as RenderAssemblyPlanEntrySummary, gn as RenderOutputSideEffectReason, hn as RenderInspectionSummary, in as OutputFormat, kn as AssetProbeResult, ln as RenderAssemblyExpectedEntrySummary, mn as RenderAssemblyReasonDetails, nn as CompileStages, on as ProjectStages, pn as RenderAssemblyPlanSummary, rn as InspectionDetailLevel, sn as ProjectionFormat, un as RenderAssemblyFinalEntrySummary, vn as RenderOutputSideEffectSummary, w as PptxPackageModel, wn as WrittenOutput, xn as StageArtifactStatus, yn as RenderStages } from "./model-C82_FI4k.mjs";
|
|
3
|
+
import { n as RenderOptions, r as WriterAdapter } from "./adapter-B0PALTZN.mjs";
|
|
4
|
+
import { r as ResolvedStyleMap } from "./resolve-DH0cI2C3.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/pipeline-runner.d.ts
|
|
7
7
|
type PresentStageArtifactStatus = Exclude<StageArtifactStatus, "missing">;
|
|
@@ -243,4 +243,4 @@ declare global {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
//#endregion
|
|
246
|
-
export { type AssetLoadResult, type AssetLoader, type AssetLoaderContext, type AssetMediaType, type AssetProbeResult, type AssetSource, type BorderStyle, type BoundSource, type ClassNameObject, type ClassNameValue, type ClassNameValueArray, type CompileResult, type CompositionContext, CompositionDiagnosticError, type ContentJsxChild, type CssAlignContent, type CssAlignItems, type CssAlignSelf, type CssAspectRatio, type CssBoxSizing, type CssDisplay, type CssFlexBasis, type CssFlexDirection, type CssFlexWrap, type CssGridAutoFlow, type CssGridLine, type CssGridPlacement, type CssGridShorthand, type CssGridTemplate, type CssGridTemplateAreas, type CssGridTemplateShorthand, type CssGridTrack, type CssJustifyContent, type CssJustifySelf, type CssObjectPosition, type CssOverflow, type CssPosition, type CssVisibility, Deck, DeckDiagnosticError, type DeckJsxElement, type DeckJsxIntrinsicElements, type DeckLength, type DeckOptions, type DeckPointLength, type Diagnostic, type DiagnosticLabel, type DiagnosticSeverity, type Diagnostics, EMU_PER_INCH, type ImageCropAuthoring, type ImageCropValue, type ImageStyle, type InspectionDetailLevel, type IntrinsicDivProps, type IntrinsicImgProps, type IntrinsicPProps, type IntrinsicShapeProps, type IntrinsicTextTag, type IntrinsicViewTag, type JsxKey, type LayoutMode, type OutputFormat, POINTS_PER_INCH, type ProjectOptions, type ProjectResult, type ProjectionFormat, type RenderAssemblyBuildSummary, type RenderAssemblyExpectedEntrySummary, type RenderAssemblyFinalEntrySummary, type RenderAssemblyFingerprintDelta, type RenderAssemblyPlanEntrySummary, type RenderAssemblyPlanSummary, type RenderAssemblyReasonDetails, type RenderInspectionSummary, type RenderOutputSideEffectReason, type RenderOutputSideEffectStatus, type RenderOutputSideEffectSummary, type RenderResult, type RenderedArtifact, SemanticGraphDiagnosticError, type ShapeStyle, type SlideFactory, type SlideFactoryInput, type SlideFactoryInputWithTemplate, type SlideOptions, type SlideStyle, type SlideTemplate, type SlideTemplateSet, type SourceContextMapper, type SourceSpan, type Spacing, type StackAlignment, type StackAxis, type StageArtifactStatus, type StageName, type StageSummary, type StrokeDashType, type StrokeLineCap, type StrokeLineJoin, StyleDiagnosticError, StyleSheet, type TemplateArea, type TemplateAreaKind, type TemplateAreaRef, type TemplateFrame, type TemplateHandle, type TextFit, type TextJsxChild, type TextRunStyle, type TextStyle, type TextTabStopAlignment, type TextTabStopAuthoring, type TextTabStopLength, Theme, type ThemeDefaults, type ThemeInput, type VerticalAlign, type ViewStyle, type WrittenOutput, formatDiagnostic, formatDiagnostics };
|
|
246
|
+
export { type AssetLoadResult, type AssetLoader, type AssetLoaderContext, type AssetMediaType, type AssetProbeResult, type AssetSource, type BorderStyle, type BoundSource, type ClassNameObject, type ClassNameValue, type ClassNameValueArray, type CompileResult, type CompositionContext, CompositionDiagnosticError, type ContentJsxChild, type CssAlignContent, type CssAlignItems, type CssAlignSelf, type CssAspectRatio, type CssBoxSizing, type CssDisplay, type CssFlexBasis, type CssFlexDirection, type CssFlexWrap, type CssGridAutoFlow, type CssGridLine, type CssGridPlacement, type CssGridShorthand, type CssGridTemplate, type CssGridTemplateAreas, type CssGridTemplateShorthand, type CssGridTrack, type CssJustifyContent, type CssJustifySelf, type CssLetterSpacing, type CssObjectPosition, type CssOverflow, type CssPosition, type CssVisibility, Deck, DeckDiagnosticError, type DeckJsxElement, type DeckJsxIntrinsicElements, type DeckLength, type DeckOptions, type DeckPointLength, type Diagnostic, type DiagnosticLabel, type DiagnosticSeverity, type Diagnostics, EMU_PER_INCH, type ImageCropAuthoring, type ImageCropValue, type ImageStyle, type InspectionDetailLevel, type IntrinsicDivProps, type IntrinsicImgProps, type IntrinsicPProps, type IntrinsicShapeProps, type IntrinsicTextTag, type IntrinsicViewTag, type JsxKey, type LayoutMode, type OutputFormat, POINTS_PER_INCH, type ProjectOptions, type ProjectResult, type ProjectionFormat, type RenderAssemblyBuildSummary, type RenderAssemblyExpectedEntrySummary, type RenderAssemblyFinalEntrySummary, type RenderAssemblyFingerprintDelta, type RenderAssemblyPlanEntrySummary, type RenderAssemblyPlanSummary, type RenderAssemblyReasonDetails, type RenderInspectionSummary, type RenderOutputSideEffectReason, type RenderOutputSideEffectStatus, type RenderOutputSideEffectSummary, type RenderResult, type RenderedArtifact, SemanticGraphDiagnosticError, type ShapeStyle, type SlideFactory, type SlideFactoryInput, type SlideFactoryInputWithTemplate, type SlideOptions, type SlideStyle, type SlideTemplate, type SlideTemplateSet, type SourceContextMapper, type SourceSpan, type Spacing, type StackAlignment, type StackAxis, type StageArtifactStatus, type StageName, type StageSummary, type StrokeDashType, type StrokeLineCap, type StrokeLineJoin, StyleDiagnosticError, StyleSheet, type TemplateArea, type TemplateAreaKind, type TemplateAreaRef, type TemplateFrame, type TemplateHandle, type TextFit, type TextJsxChild, type TextRunStyle, type TextStyle, type TextTabStopAlignment, type TextTabStopAuthoring, type TextTabStopLength, Theme, type ThemeDefaults, type ThemeInput, type VerticalAlign, type ViewStyle, type WrittenOutput, formatDiagnostic, formatDiagnostics };
|