@openpresentation/opf 0.3.0 → 0.4.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/LICENSE +1 -1
- package/README.md +2 -0
- package/dist/catalogs-x1oFFQnd.d.ts +1198 -0
- package/dist/catalogs.d.ts +2 -32413
- package/dist/catalogs.js +1 -18505
- package/dist/chunk-75N5I6M4.js +229 -0
- package/dist/chunk-EMTMQRX4.js +1007 -0
- package/dist/chunk-GCXOU5MZ.js +6515 -0
- package/dist/chunk-HJNJHB5H.js +454 -0
- package/dist/chunk-OZULJBSG.js +3368 -0
- package/dist/chunk-PIQXLBBJ.js +445 -0
- package/dist/chunk-SOSOBKQ2.js +145 -0
- package/dist/chunk-TWMRZ43O.js +18576 -0
- package/dist/composition.d.ts +190 -0
- package/dist/composition.js +1 -0
- package/dist/data.d.ts +32 -0
- package/dist/data.js +1 -0
- package/dist/docs.js +69 -5
- package/dist/examples.d.ts +1 -1
- package/dist/examples.js +112 -2
- package/dist/index.d.ts +6 -4
- package/dist/index.js +8 -29555
- package/dist/pagination.d.ts +52 -0
- package/dist/pagination.js +5 -0
- package/dist/{presentation-C8BOK0-5.d.ts → presentation-BjP4yTQ1.d.ts} +86 -3
- package/dist/previews.js +1 -447
- package/dist/repo-readme.js +1 -3
- package/dist/schemas-C1DxapX2.d.ts +206 -0
- package/dist/schemas.d.ts +1 -12373
- package/dist/schemas.js +1 -6275
- package/dist/spec/README.md +18 -3
- package/dist/spec/catalogs/audiences/index.json +1 -1
- package/dist/spec/catalogs/chart-types/index.json +1 -1
- package/dist/spec/catalogs/color-schemes/index.json +1 -1
- package/dist/spec/catalogs/font-schemes/index.json +1 -1
- package/dist/spec/catalogs/languages/index.json +1 -1
- package/dist/spec/catalogs/layouts/chart-1x.json +4 -1
- package/dist/spec/catalogs/layouts/chart-2x.json +5 -1
- package/dist/spec/catalogs/layouts/chart-3x.json +5 -1
- package/dist/spec/catalogs/layouts/code-1x.json +4 -1
- package/dist/spec/catalogs/layouts/extract/canonical.json +94 -21
- package/dist/spec/catalogs/layouts/image-1x.json +4 -1
- package/dist/spec/catalogs/layouts/image-2x.json +5 -1
- package/dist/spec/catalogs/layouts/image-3x.json +5 -1
- package/dist/spec/catalogs/layouts/index.json +1 -1
- package/dist/spec/catalogs/layouts/list-2x.json +4 -1
- package/dist/spec/catalogs/layouts/list-3x.json +4 -1
- package/dist/spec/catalogs/layouts/list-4x.json +5 -1
- package/dist/spec/catalogs/layouts/list-5x.json +5 -1
- package/dist/spec/catalogs/layouts/list-6x.json +5 -1
- package/dist/spec/catalogs/layouts/media-1x.json +4 -1
- package/dist/spec/catalogs/layouts/number-2x.json +4 -1
- package/dist/spec/catalogs/layouts/number-3x.json +4 -1
- package/dist/spec/catalogs/layouts/number-4x.json +5 -1
- package/dist/spec/catalogs/layouts/number-5x.json +5 -1
- package/dist/spec/catalogs/layouts/number-6x.json +5 -1
- package/dist/spec/catalogs/layouts/table-1x.json +4 -1
- package/dist/spec/catalogs/layouts/text-2x.json +4 -1
- package/dist/spec/catalogs/layouts/text-3x.json +4 -1
- package/dist/spec/catalogs/narratives/index.json +2 -2
- package/dist/spec/catalogs/purposes/index.json +1 -1
- package/dist/spec/catalogs/social-platforms/index.json +1 -1
- package/dist/spec/catalogs/themes/index.json +1 -1
- package/dist/spec/catalogs/tones/index.json +1 -1
- package/dist/spec/openapi.yaml +54 -14
- package/dist/spec/previews/layouts/index.json +71 -71
- package/dist/spec/schemas/catalog-index.schema.json +53 -0
- package/dist/spec/schemas/layout-preview-index.schema.json +54 -0
- package/dist/spec/schemas/layout.schema.json +63 -0
- package/dist/spec/schemas/opf.schema.json +182 -3
- package/dist/spec-files.d.ts +14 -2391
- package/dist/spec-files.js +1 -3356
- package/dist/types.d.ts +3 -1102
- package/dist/types.js +0 -2
- package/dist/validator.d.ts +3 -10
- package/dist/validator.js +4 -7243
- package/package.json +16 -3
- package/dist/catalogs.js.map +0 -1
- package/dist/docs.js.map +0 -1
- package/dist/examples.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/previews.js.map +0 -1
- package/dist/repo-readme.js.map +0 -1
- package/dist/schemas.js.map +0 -1
- package/dist/spec-files.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/validator.js.map +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { LayoutDiagnostic, ComposeSlideOptions, TextMeasurement } from './composition.js';
|
|
2
|
+
|
|
3
|
+
interface PaginationOptions extends ComposeSlideOptions {
|
|
4
|
+
/** Readability floor used while choosing page breaks. Default 24 reference pixels. */
|
|
5
|
+
minFontSize?: number;
|
|
6
|
+
/** All-or-nothing resource limit. Defaults to 100 output slides. */
|
|
7
|
+
maxSlides?: number;
|
|
8
|
+
/** Existing deck IDs to avoid when generating continuation IDs. */
|
|
9
|
+
reservedIds?: string[];
|
|
10
|
+
}
|
|
11
|
+
interface PaginationMapping {
|
|
12
|
+
sourcePath: string;
|
|
13
|
+
outputPath: string;
|
|
14
|
+
/** Half-open offsets into the original leaf; text offsets use UTF-16. */
|
|
15
|
+
range?: {
|
|
16
|
+
unit: 'utf16' | 'items';
|
|
17
|
+
start: number;
|
|
18
|
+
end: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface PaginatedPage {
|
|
22
|
+
slideIndex: number;
|
|
23
|
+
mappings: PaginationMapping[];
|
|
24
|
+
}
|
|
25
|
+
interface PaginationResult {
|
|
26
|
+
slides: Record<string, any>[];
|
|
27
|
+
pages: PaginatedPage[];
|
|
28
|
+
}
|
|
29
|
+
declare class OPFPaginationError extends Error {
|
|
30
|
+
readonly diagnostics: LayoutDiagnostic[];
|
|
31
|
+
readonly code = "pagination-unresolved";
|
|
32
|
+
constructor(message: string, diagnostics?: LayoutDiagnostic[]);
|
|
33
|
+
}
|
|
34
|
+
/** Explicit, lossless authoring transform. It never changes slide count during rendering. */
|
|
35
|
+
declare function paginateSlide(input: unknown, options?: PaginationOptions): PaginationResult;
|
|
36
|
+
interface PresentationPaginationOptions {
|
|
37
|
+
textMeasurement?: TextMeasurement;
|
|
38
|
+
minFontSize?: number;
|
|
39
|
+
maxSlides?: number;
|
|
40
|
+
/** Optional host-resolved layout/canvas overrides for each source slide. */
|
|
41
|
+
slideOptions?: (slide: Record<string, any>, index: number) => ComposeSlideOptions;
|
|
42
|
+
}
|
|
43
|
+
interface PresentationPaginationResult {
|
|
44
|
+
presentation: Record<string, any>;
|
|
45
|
+
pages: (PaginatedPage & {
|
|
46
|
+
sourceSlideIndex: number;
|
|
47
|
+
})[];
|
|
48
|
+
}
|
|
49
|
+
/** Resolve local catalogs and paginate a complete presentation without mutating it. */
|
|
50
|
+
declare function paginatePresentation(input: unknown, options?: PresentationPaginationOptions): PresentationPaginationResult;
|
|
51
|
+
|
|
52
|
+
export { OPFPaginationError, type PaginatedPage, type PaginationMapping, type PaginationOptions, type PaginationResult, type PresentationPaginationOptions, type PresentationPaginationResult, paginatePresentation, paginateSlide };
|
|
@@ -305,7 +305,7 @@ type TextRun = (string | {
|
|
|
305
305
|
*/
|
|
306
306
|
color?: string;
|
|
307
307
|
/**
|
|
308
|
-
*
|
|
308
|
+
* Requested run font size in points.
|
|
309
309
|
*/
|
|
310
310
|
fontSize?: number;
|
|
311
311
|
/**
|
|
@@ -377,7 +377,7 @@ type ChartDataCell = (string | number | boolean | null);
|
|
|
377
377
|
*/
|
|
378
378
|
type TableCell = (string | number | boolean | null);
|
|
379
379
|
/**
|
|
380
|
-
* A
|
|
380
|
+
* A content leaf or recursively composed group. A group contains blocks and optional composition; it cannot mix blocks with leaf payload fields. Groups may nest up to 32 levels.
|
|
381
381
|
*
|
|
382
382
|
* This interface was referenced by `Presentation`'s JSON-Schema
|
|
383
383
|
* via the `definition` "ContentPayload".
|
|
@@ -388,7 +388,7 @@ type ContentPayload = ({
|
|
|
388
388
|
/**
|
|
389
389
|
* Optional content kind. When omitted, engines infer the kind from the fields present.
|
|
390
390
|
*/
|
|
391
|
-
type?: ("text" | "list" | "image" | "chart" | "table" | "video" | "code" | "metric" | "quote" | "timeline");
|
|
391
|
+
type?: ("text" | "list" | "image" | "chart" | "table" | "video" | "code" | "metric" | "quote" | "timeline" | "group");
|
|
392
392
|
/**
|
|
393
393
|
* Text payload. Use a string for plain text or TextRun[] for inline rich text. TextRun items may be plain strings or formatted run objects.
|
|
394
394
|
*/
|
|
@@ -492,6 +492,13 @@ type ContentPayload = ({
|
|
|
492
492
|
*/
|
|
493
493
|
events: [TimelineEvent, ...(TimelineEvent)[]];
|
|
494
494
|
});
|
|
495
|
+
/**
|
|
496
|
+
* Ordered children of a group. Each child is a leaf or another group.
|
|
497
|
+
*
|
|
498
|
+
* @minItems 1
|
|
499
|
+
*/
|
|
500
|
+
blocks?: [ContentPayload, ...(ContentPayload)[]];
|
|
501
|
+
composition?: Composition;
|
|
495
502
|
});
|
|
496
503
|
/**
|
|
497
504
|
* Catalog source location. Accepts:
|
|
@@ -2173,6 +2180,7 @@ interface Slide {
|
|
|
2173
2180
|
* Whether the slide is hidden from the presented sequence.
|
|
2174
2181
|
*/
|
|
2175
2182
|
hidden?: boolean;
|
|
2183
|
+
composition?: Composition1;
|
|
2176
2184
|
}
|
|
2177
2185
|
/**
|
|
2178
2186
|
* Full-slide chart payload. Presence of this field infers type 'chart'.
|
|
@@ -2362,6 +2370,42 @@ interface Table1 {
|
|
|
2362
2370
|
*/
|
|
2363
2371
|
rows: TableCell[][];
|
|
2364
2372
|
}
|
|
2373
|
+
/**
|
|
2374
|
+
* Arrangement within this group. Only minFontSize and overflow inherit from the parent; strict overflow cannot be weakened.
|
|
2375
|
+
*/
|
|
2376
|
+
interface Composition {
|
|
2377
|
+
/**
|
|
2378
|
+
* auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track.
|
|
2379
|
+
*/
|
|
2380
|
+
mode?: ("auto" | "grid" | "row" | "column");
|
|
2381
|
+
/**
|
|
2382
|
+
* Column count for grid. In auto mode this caps the number of columns.
|
|
2383
|
+
*/
|
|
2384
|
+
columns?: number;
|
|
2385
|
+
/**
|
|
2386
|
+
* Space between cells as a fraction of the container short edge (canvas at slide root). Default 0.03333333333333333.
|
|
2387
|
+
*/
|
|
2388
|
+
gap?: number;
|
|
2389
|
+
/**
|
|
2390
|
+
* Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group.
|
|
2391
|
+
*/
|
|
2392
|
+
padding?: number;
|
|
2393
|
+
/**
|
|
2394
|
+
* Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored.
|
|
2395
|
+
*
|
|
2396
|
+
* @minItems 1
|
|
2397
|
+
* @maxItems 12
|
|
2398
|
+
*/
|
|
2399
|
+
weights?: [number] | [number, number] | [number, number, number] | [number, number, number, number] | [number, number, number, number, number] | [number, number, number, number, number, number] | [number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number, number, number];
|
|
2400
|
+
/**
|
|
2401
|
+
* Minimum readable text size in reference pixels at a 720-pixel canvas short edge. Default 16. Overflow is diagnosed when text cannot fit at this size.
|
|
2402
|
+
*/
|
|
2403
|
+
minFontSize?: number;
|
|
2404
|
+
/**
|
|
2405
|
+
* warn returns diagnostics for content that does not fit; error rejects layout. Content is never silently removed. Default warn.
|
|
2406
|
+
*/
|
|
2407
|
+
overflow?: ("warn" | "error");
|
|
2408
|
+
}
|
|
2365
2409
|
/**
|
|
2366
2410
|
* Slide-level design applied on top of the deck-wide design.
|
|
2367
2411
|
*/
|
|
@@ -2459,6 +2503,45 @@ interface Design1 {
|
|
|
2459
2503
|
listBullet?: ("character" | "image");
|
|
2460
2504
|
[k: string]: unknown;
|
|
2461
2505
|
}
|
|
2506
|
+
/**
|
|
2507
|
+
* Portable dynamic composition. Slide fields override the resolved layout. Nested groups arrange their children independently, inheriting only minFontSize and overflow. Explicit promoted regions retain their positions.
|
|
2508
|
+
*
|
|
2509
|
+
* This interface was referenced by `Presentation`'s JSON-Schema
|
|
2510
|
+
* via the `definition` "Composition".
|
|
2511
|
+
*/
|
|
2512
|
+
interface Composition1 {
|
|
2513
|
+
/**
|
|
2514
|
+
* auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track.
|
|
2515
|
+
*/
|
|
2516
|
+
mode?: ("auto" | "grid" | "row" | "column");
|
|
2517
|
+
/**
|
|
2518
|
+
* Column count for grid. In auto mode this caps the number of columns.
|
|
2519
|
+
*/
|
|
2520
|
+
columns?: number;
|
|
2521
|
+
/**
|
|
2522
|
+
* Space between cells as a fraction of the container short edge (canvas at slide root). Default 0.03333333333333333.
|
|
2523
|
+
*/
|
|
2524
|
+
gap?: number;
|
|
2525
|
+
/**
|
|
2526
|
+
* Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group.
|
|
2527
|
+
*/
|
|
2528
|
+
padding?: number;
|
|
2529
|
+
/**
|
|
2530
|
+
* Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored.
|
|
2531
|
+
*
|
|
2532
|
+
* @minItems 1
|
|
2533
|
+
* @maxItems 12
|
|
2534
|
+
*/
|
|
2535
|
+
weights?: [number] | [number, number] | [number, number, number] | [number, number, number, number] | [number, number, number, number, number] | [number, number, number, number, number, number] | [number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number, number, number];
|
|
2536
|
+
/**
|
|
2537
|
+
* Minimum readable text size in reference pixels at a 720-pixel canvas short edge. Default 16. Overflow is diagnosed when text cannot fit at this size.
|
|
2538
|
+
*/
|
|
2539
|
+
minFontSize?: number;
|
|
2540
|
+
/**
|
|
2541
|
+
* warn returns diagnostics for content that does not fit; error rejects layout. Content is never silently removed. Default warn.
|
|
2542
|
+
*/
|
|
2543
|
+
overflow?: ("warn" | "error");
|
|
2544
|
+
}
|
|
2462
2545
|
/**
|
|
2463
2546
|
* Optional reusable asset registry for images, data files, videos, documents, fonts, and other resources referenced elsewhere in the deck via 'asset:<id>' strings.
|
|
2464
2547
|
*/
|