@bendyline/squisq 1.5.0 → 1.5.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 +14 -1
- package/dist/{ContentContainer-DNx460y8.d.ts → ContentContainer-BXUlIf18.d.ts} +6 -2
- package/dist/{Doc-BsMkmzH8.d.ts → Doc-BBVGq1_9.d.ts} +94 -15
- package/dist/{ImageEditDoc-DvoeHMP9.d.ts → ImageEditDoc-FuyGtt6o.d.ts} +1 -1
- package/dist/{chunk-4ZFRZBU2.js → chunk-5TYS5V3G.js} +866 -192
- package/dist/chunk-5TYS5V3G.js.map +1 -0
- package/dist/{chunk-7MQGNR76.js → chunk-A4O7GIWE.js} +2 -27
- package/dist/chunk-A4O7GIWE.js.map +1 -0
- package/dist/{chunk-OH43RPTP.js → chunk-BEQODJWV.js} +20 -3
- package/dist/chunk-BEQODJWV.js.map +1 -0
- package/dist/chunk-ET53IIEP.js +1 -0
- package/dist/chunk-ET53IIEP.js.map +1 -0
- package/dist/{chunk-KZNXZ5SM.js → chunk-GPLTCSXO.js} +18 -7
- package/dist/chunk-GPLTCSXO.js.map +1 -0
- package/dist/{chunk-OKJOQXK4.js → chunk-HWVFJAAH.js} +38 -2
- package/dist/chunk-HWVFJAAH.js.map +1 -0
- package/dist/{chunk-2TMAWB4Y.js → chunk-IMSCRLLV.js} +1 -1
- package/dist/chunk-IMSCRLLV.js.map +1 -0
- package/dist/{chunk-4AKUQPEE.js → chunk-KKNUBQ6Y.js} +1 -1
- package/dist/chunk-KKNUBQ6Y.js.map +1 -0
- package/dist/{chunk-TVSGLUID.js → chunk-LDQ2HJIX.js} +3 -3
- package/dist/{chunk-RUDYOTA6.js → chunk-LTN6I7QW.js} +56 -1
- package/dist/chunk-LTN6I7QW.js.map +1 -0
- package/dist/{chunk-2OIBZYKP.js → chunk-P3K7NLHF.js} +2 -2
- package/dist/{chunk-K32VJONL.js → chunk-T5UK6YOB.js} +41 -2
- package/dist/chunk-T5UK6YOB.js.map +1 -0
- package/dist/{chunk-FR2RBTKO.js → chunk-TQWLI6S2.js} +93 -27
- package/dist/chunk-TQWLI6S2.js.map +1 -0
- package/dist/{chunk-LRCV7N7F.js → chunk-UY7KGQ5R.js} +2 -2
- package/dist/{chunk-3E5F2XMR.js → chunk-VWUFZ6ZG.js} +29 -2
- package/dist/chunk-VWUFZ6ZG.js.map +1 -0
- package/dist/doc/index.d.ts +4 -4
- package/dist/doc/index.js +24 -9
- package/dist/generate/index.d.ts +2 -80
- package/dist/generate/index.js +2 -7
- package/dist/imageEdit/index.d.ts +4 -4
- package/dist/imageEdit/index.js +2 -2
- package/dist/index.d.ts +8 -8
- package/dist/index.js +41 -26
- package/dist/jsonForm/index.d.ts +42 -1
- package/dist/jsonForm/index.js +9 -1
- package/dist/markdown/index.d.ts +18 -2
- package/dist/markdown/index.js +5 -3
- package/dist/recommend/index.js +2 -2
- package/dist/schemas/index.d.ts +4 -4
- package/dist/schemas/index.js +3 -5
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.js +1 -1
- package/dist/story/index.d.ts +151 -13
- package/dist/story/index.js +24 -9
- package/dist/{themeLibrary-DQQKuRMx.d.ts → themeLibrary-CehcJhzz.d.ts} +1 -1
- package/dist/timing/index.js +3 -5
- package/dist/transform/index.d.ts +2 -2
- package/dist/transform/index.js +3 -3
- package/dist/versions/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/__tests__/contentExtractor.test.ts +60 -0
- package/src/__tests__/coverBlock.test.ts +79 -3
- package/src/__tests__/customTemplateSample.test.ts +63 -2
- package/src/__tests__/customTemplatesFrontmatter.test.ts +31 -0
- package/src/__tests__/customThemesFrontmatter.test.ts +27 -0
- package/src/__tests__/inputDescriptors.test.ts +162 -0
- package/src/__tests__/jsonForm.tokens.test.ts +84 -0
- package/src/__tests__/markdown.test.ts +64 -0
- package/src/__tests__/markdownSanitize.test.ts +15 -0
- package/src/__tests__/markdownToDoc.test.ts +173 -2
- package/src/__tests__/mediaAnnotations.test.ts +27 -0
- package/src/__tests__/shapeGeometry.test.ts +37 -0
- package/src/__tests__/structuredData.test.ts +73 -3
- package/src/__tests__/templateMetadata.test.ts +11 -1
- package/src/__tests__/templates.test.ts +112 -0
- package/src/__tests__/validateDoc.test.ts +160 -0
- package/src/doc/annotationBlocks.ts +117 -0
- package/src/doc/customTemplatesFrontmatter.ts +7 -1
- package/src/doc/customThemesFrontmatter.ts +6 -1
- package/src/doc/docToMarkdown.ts +78 -29
- package/src/doc/getLayers.ts +11 -2
- package/src/doc/index.ts +12 -0
- package/src/doc/markdownToDoc.ts +80 -3
- package/src/doc/mediaAnnotations.ts +15 -33
- package/src/doc/standaloneAnnotation.ts +58 -0
- package/src/doc/structuredData.ts +92 -21
- package/src/doc/templates/__tests__/customTemplate.test.ts +21 -2
- package/src/doc/templates/comparisonBar.ts +8 -1
- package/src/doc/templates/coverBlock.ts +78 -15
- package/src/doc/templates/customTemplate.ts +10 -4
- package/src/doc/templates/diagramBlock.ts +2 -2
- package/src/doc/templates/drawingBlock.ts +2 -2
- package/src/doc/templates/factCard.ts +4 -2
- package/src/doc/templates/imageWithCaption.ts +10 -8
- package/src/doc/templates/index.ts +12 -2
- package/src/doc/templates/inputDescriptors.ts +432 -0
- package/src/doc/templates/photoGrid.ts +16 -39
- package/src/doc/templates/tokens/__tests__/resolveTokens.test.ts +267 -1
- package/src/doc/templates/tokens/resolveTokens.ts +0 -0
- package/src/doc/templates/videoWithCaption.ts +15 -14
- package/src/doc/utils/nearest.ts +59 -0
- package/src/doc/utils/shapeGeometry.ts +90 -2
- package/src/doc/validate.ts +153 -54
- package/src/generate/contentExtractor.ts +148 -35
- package/src/generate/index.ts +0 -3
- package/src/jsonForm/index.ts +2 -0
- package/src/jsonForm/tokens.ts +78 -0
- package/src/markdown/annotationCoercion.ts +1 -1
- package/src/markdown/attrTokens.ts +19 -0
- package/src/markdown/convert.ts +11 -1
- package/src/markdown/index.ts +2 -1
- package/src/markdown/sanitize.ts +22 -2
- package/src/markdown/stringify.ts +12 -3
- package/src/markdown/utils.ts +62 -1
- package/src/schemas/CustomTemplates.ts +56 -4
- package/src/schemas/Doc.ts +39 -41
- package/src/schemas/themeCompile.ts +1 -1
- package/src/storage/ContentContainer.ts +6 -2
- package/src/transform/types.ts +1 -1
- package/dist/chunk-2TMAWB4Y.js.map +0 -1
- package/dist/chunk-3E5F2XMR.js.map +0 -1
- package/dist/chunk-4AKUQPEE.js.map +0 -1
- package/dist/chunk-4X3JQXNM.js +0 -35
- package/dist/chunk-4X3JQXNM.js.map +0 -1
- package/dist/chunk-4ZFRZBU2.js.map +0 -1
- package/dist/chunk-7MQGNR76.js.map +0 -1
- package/dist/chunk-FBKP5CAO.js +0 -145
- package/dist/chunk-FBKP5CAO.js.map +0 -1
- package/dist/chunk-FR2RBTKO.js.map +0 -1
- package/dist/chunk-K32VJONL.js.map +0 -1
- package/dist/chunk-KZNXZ5SM.js.map +0 -1
- package/dist/chunk-OH43RPTP.js.map +0 -1
- package/dist/chunk-OKJOQXK4.js.map +0 -1
- package/dist/chunk-RUDYOTA6.js.map +0 -1
- package/src/__tests__/slideshowGenerator.test.ts +0 -128
- package/src/generate/slideshowGenerator.ts +0 -280
- /package/dist/{chunk-TVSGLUID.js.map → chunk-LDQ2HJIX.js.map} +0 -0
- /package/dist/{chunk-2OIBZYKP.js.map → chunk-P3K7NLHF.js.map} +0 -0
- /package/dist/{chunk-LRCV7N7F.js.map → chunk-UY7KGQ5R.js.map} +0 -0
package/README.md
CHANGED
|
@@ -18,11 +18,24 @@ npm install @bendyline/squisq
|
|
|
18
18
|
| Module | Description |
|
|
19
19
|
| ------------ | -------------------------------------------------------------------------------- |
|
|
20
20
|
| **schemas** | Type definitions — `Doc`, `BlockTemplate`, `Viewport`, `Theme`, `LayoutStrategy` |
|
|
21
|
-
| **doc** | Template registry,
|
|
21
|
+
| **doc** | Template registry, 23 block templates, animation/theme utilities |
|
|
22
22
|
| **markdown** | Markdown parsing, stringifying, AST types (`MarkdownDocument`), tree utilities |
|
|
23
23
|
| **spatial** | Haversine distance, Geohash encode/decode |
|
|
24
24
|
| **storage** | `StorageAdapter` interface, Memory + LocalStorage + LocalForage adapters |
|
|
25
25
|
|
|
26
|
+
## New in this release
|
|
27
|
+
|
|
28
|
+
The Squiggly Square markdown standard (see [`docs/SquigglySquare.md`](../../docs/SquigglySquare.md)) gained several authoring capabilities:
|
|
29
|
+
|
|
30
|
+
- **[Standalone annotations](../../docs/SquigglySquare.md#standalone-annotations)** — a top-level paragraph that is exactly `{[templateName …]}` becomes a heading-less template block; the body that follows it is its contents.
|
|
31
|
+
- **[Inline attribute coercion](../../docs/SquigglySquare.md#inline-attribute-coercion)** — `{[map center="47.6,-122.3" zoom=9]}` and `{[twoColumn left="Espresso|Bold"]}` now render without a data fence (typed via `TEMPLATE_INPUT_DESCRIPTORS`).
|
|
32
|
+
- **[Validation additions](../../docs/SquigglySquare.md#validation)** — new `unknown-input` / `invalid-input-value` / `missing-input` warnings plus `possible-data-fence` / `conflicting-annotation-key` info diagnostics (a new `info` severity).
|
|
33
|
+
- **[YAML data fences](../../docs/SquigglySquare.md#structured-data-fences)** now accept one level of nested mappings (a `map` `center` can be pure YAML).
|
|
34
|
+
- **[Multi-line frontmatter](../../docs/SquigglySquare.md#multi-line-frontmatter)** — `squisq-custom-templates` / `squisq-custom-themes` can be authored as pretty JSON via YAML literal block scalars (`key: |-`).
|
|
35
|
+
- **Custom-template tokens v2** (see [`docs/SquigglySquare.md`](../../docs/SquigglySquare.md), "Registering custom templates") — `{attr:key}`, pipe defaults on every token, and per-layer `repeat` with `{item}` / `{index}` tokens.
|
|
36
|
+
|
|
37
|
+
New `@bendyline/squisq/doc` exports powering the above: `coerceTemplateParams`, `lintTemplateParams`, `TEMPLATE_INPUT_DESCRIPTORS`, and `replaceDataFence`.
|
|
38
|
+
|
|
26
39
|
## Subpath Imports
|
|
27
40
|
|
|
28
41
|
Import only what you need:
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* Paths are forward-slash separated strings relative to the container root
|
|
10
10
|
* (e.g., 'images/hero.jpg', 'index.md'). No leading slash.
|
|
11
11
|
*
|
|
12
|
-
* Implementations:
|
|
12
|
+
* Implementations (in core):
|
|
13
13
|
* - MemoryContentContainer — in-memory Map (for zip import, tests, transient use)
|
|
14
|
-
* -
|
|
14
|
+
* - ScopedContentContainer — a prefix-scoped view onto a parent container
|
|
15
15
|
*/
|
|
16
16
|
/**
|
|
17
17
|
* Metadata about a file in a ContentContainer.
|
|
@@ -39,6 +39,10 @@ interface ContentContainer {
|
|
|
39
39
|
removeFile(path: string): Promise<void>;
|
|
40
40
|
/**
|
|
41
41
|
* List files in the container.
|
|
42
|
+
*
|
|
43
|
+
* Returns file **entries** (`ContentEntry[]` with `.path`/`.mimeType`/`.size`),
|
|
44
|
+
* NOT bare path strings — despite the name. Read `entry.path` for the path;
|
|
45
|
+
* calling string methods (e.g. `.startsWith`) directly on an entry will throw.
|
|
42
46
|
* @param prefix — Optional path prefix to filter by (e.g., 'images/')
|
|
43
47
|
*/
|
|
44
48
|
listFiles(prefix?: string): Promise<ContentEntry[]>;
|
|
@@ -1266,6 +1266,47 @@ declare function lookupRegisteredTheme(id: string | undefined): Theme | undefine
|
|
|
1266
1266
|
* ratio to mount with, and the thumbnail renderer which viewBox to use.
|
|
1267
1267
|
*/
|
|
1268
1268
|
|
|
1269
|
+
/**
|
|
1270
|
+
* Iteration directive for a custom-template layer.
|
|
1271
|
+
*
|
|
1272
|
+
* A layer that carries a `repeat` is cloned once per item of a source
|
|
1273
|
+
* collection at render time (see `resolveTokens`). The clones are laid
|
|
1274
|
+
* out in a row or column, offset from the base position by the layer's
|
|
1275
|
+
* own width/height plus `gap`, and each clone resolves per-item tokens
|
|
1276
|
+
* (`{item}`, `{item:src}`, `{item:label}`, `{index}`) against its item.
|
|
1277
|
+
*/
|
|
1278
|
+
interface LayerRepeat {
|
|
1279
|
+
/**
|
|
1280
|
+
* Which of the source Block's collections to iterate:
|
|
1281
|
+
* - `images` — every image in the block body (alt + url)
|
|
1282
|
+
* - `children` — child block titles
|
|
1283
|
+
* - `listItems` — top-level list-item text in the block body
|
|
1284
|
+
*/
|
|
1285
|
+
source: 'images' | 'children' | 'listItems';
|
|
1286
|
+
/**
|
|
1287
|
+
* Layout axis for the clones. `column` (default) stacks them
|
|
1288
|
+
* vertically (offsets `position.y`); `row` lays them out horizontally
|
|
1289
|
+
* (offsets `position.x`).
|
|
1290
|
+
*/
|
|
1291
|
+
direction?: 'row' | 'column';
|
|
1292
|
+
/**
|
|
1293
|
+
* Extra spacing added between consecutive clones, in the same unit as
|
|
1294
|
+
* the layer's `width`/`height`. Defaults to 24.
|
|
1295
|
+
*/
|
|
1296
|
+
gap?: number;
|
|
1297
|
+
/** Cap on the number of clones rendered (omit for "all items"). */
|
|
1298
|
+
max?: number;
|
|
1299
|
+
}
|
|
1300
|
+
/**
|
|
1301
|
+
* A custom-template layer: a normal render `Layer` that may additionally
|
|
1302
|
+
* carry a `repeat` directive. This is a strict superset of the core
|
|
1303
|
+
* `Layer` type used only inside `CustomTemplateDefinition.layers`; the
|
|
1304
|
+
* resolver strips `repeat` before emitting the final `Layer[]`, so the
|
|
1305
|
+
* core `Layer` type is never widened.
|
|
1306
|
+
*/
|
|
1307
|
+
type CustomTemplateLayer = Layer & {
|
|
1308
|
+
repeat?: LayerRepeat;
|
|
1309
|
+
};
|
|
1269
1310
|
/**
|
|
1270
1311
|
* A single user-defined template. Stored in `Doc.customTemplates`
|
|
1271
1312
|
* (frontmatter-backed) or in the user's local library.
|
|
@@ -1297,12 +1338,20 @@ interface CustomTemplateDefinition {
|
|
|
1297
1338
|
* `position.width` / `position.height` should be a `%`-string at
|
|
1298
1339
|
* save time (the designer's normalizePositions step enforces this).
|
|
1299
1340
|
*
|
|
1300
|
-
* Tokens supported
|
|
1341
|
+
* Tokens supported (grammar v2):
|
|
1301
1342
|
* - TextLayer.content.text — `{title}`, `{content}`, `{children}`,
|
|
1302
|
-
* `{image:N}` (
|
|
1303
|
-
*
|
|
1343
|
+
* `{image:N}` (Nth image's alt text), `{attr:key}` (block
|
|
1344
|
+
* attribute), plus a pipe default on any token
|
|
1345
|
+
* (`{attr:subtitle|Untitled}`).
|
|
1346
|
+
* - ImageLayer.content.src — `{image:N}` (the URL) and `{attr:key}`,
|
|
1347
|
+
* with pipe defaults (`{image:1|fallback.jpg}`).
|
|
1348
|
+
* - Inside a layer with `repeat`, per-item tokens: `{item}`,
|
|
1349
|
+
* `{item:src}`, `{item:label}`, `{index}` (1-based).
|
|
1350
|
+
*
|
|
1351
|
+
* A layer may carry a `repeat` directive (see {@link LayerRepeat}) to
|
|
1352
|
+
* be cloned once per item of a source collection.
|
|
1304
1353
|
*/
|
|
1305
|
-
layers:
|
|
1354
|
+
layers: CustomTemplateLayer[];
|
|
1306
1355
|
}
|
|
1307
1356
|
/**
|
|
1308
1357
|
* Tag value for the YAML frontmatter key that carries inlined custom
|
|
@@ -1354,8 +1403,9 @@ interface StartBlockConfig {
|
|
|
1354
1403
|
interface DocDiagnostic {
|
|
1355
1404
|
/** `error` = the author's intent could not be honored (e.g. unparseable
|
|
1356
1405
|
* data fence); `warning` = something looks wrong but rendering proceeds
|
|
1357
|
-
* with a fallback (e.g. unknown template name)
|
|
1358
|
-
|
|
1406
|
+
* with a fallback (e.g. unknown template name); `info` = nothing is
|
|
1407
|
+
* broken, but the author may want to know (e.g. a redundant annotation). */
|
|
1408
|
+
severity: 'error' | 'warning' | 'info';
|
|
1359
1409
|
/** Stable machine-readable code (e.g. `unknown-template`, `duplicate-id`,
|
|
1360
1410
|
* `unresolved-connection`, `data-fence-parse`, `missing-asset`). */
|
|
1361
1411
|
code: string;
|
|
@@ -1412,9 +1462,9 @@ interface Doc {
|
|
|
1412
1462
|
*
|
|
1413
1463
|
* Populated from the markdown frontmatter key
|
|
1414
1464
|
* `squisq-custom-templates`. The template-expansion pipeline
|
|
1415
|
-
* (`expandDocBlocks`) merges these into
|
|
1416
|
-
* blocks, so a heading annotated
|
|
1417
|
-
* doc-defined template named `myhero`.
|
|
1465
|
+
* (`expandDocBlocks` in `doc/templates/index.ts`) merges these into
|
|
1466
|
+
* the registry before walking blocks, so a heading annotated
|
|
1467
|
+
* `{[myhero]}` resolves against a doc-defined template named `myhero`.
|
|
1418
1468
|
*
|
|
1419
1469
|
* Library templates (stored in localStorage on the editor side) are
|
|
1420
1470
|
* NOT auto-loaded here — applying a library template to a block
|
|
@@ -1458,6 +1508,16 @@ interface Doc {
|
|
|
1458
1508
|
* - `sourceHeading` references the original MarkdownHeading node
|
|
1459
1509
|
* - `contents` holds the body markdown between this heading and the next
|
|
1460
1510
|
* - `children` holds sub-heading blocks (e.g., H2s under an H1)
|
|
1511
|
+
*
|
|
1512
|
+
* Four adjacent fields carry template information — do not confuse them:
|
|
1513
|
+
* - `template` — the *resolved* template id this block renders with.
|
|
1514
|
+
* - `templateOverrides` — raw `{[…]}` inline params (always strings).
|
|
1515
|
+
* - `templateData` — structured inputs from a data fence / GFM table
|
|
1516
|
+
* (parsed types, not strings).
|
|
1517
|
+
* - `sourceAnnotation.template` — the raw *requested* template name for a
|
|
1518
|
+
* standalone-annotation block (before alias resolution).
|
|
1519
|
+
* Merge order at render time: template defaults → `templateData` →
|
|
1520
|
+
* `templateOverrides`.
|
|
1461
1521
|
*/
|
|
1462
1522
|
interface Block {
|
|
1463
1523
|
/** Unique identifier for this block.
|
|
@@ -1482,7 +1542,7 @@ interface Block {
|
|
|
1482
1542
|
layers?: Layer[];
|
|
1483
1543
|
/** Entry transition from previous block */
|
|
1484
1544
|
transition?: Transition;
|
|
1485
|
-
/**
|
|
1545
|
+
/** Resolved template id this block renders with (see the quartet note above). */
|
|
1486
1546
|
template?: string;
|
|
1487
1547
|
/**
|
|
1488
1548
|
* True when `template` was chosen by content-aware auto-picking
|
|
@@ -1491,6 +1551,29 @@ interface Block {
|
|
|
1491
1551
|
* annotations, keeping the markdown round-trip lossless.
|
|
1492
1552
|
*/
|
|
1493
1553
|
autoTemplate?: boolean;
|
|
1554
|
+
/**
|
|
1555
|
+
* True when this block was produced from a *standalone* `{[templateName …]}`
|
|
1556
|
+
* annotation paragraph in another block's body (rather than from a heading).
|
|
1557
|
+
* Such blocks have no `sourceHeading`; `docToMarkdown` re-emits their
|
|
1558
|
+
* annotation as a synthesized paragraph before their `contents` so the
|
|
1559
|
+
* markdown round-trips. See `annotationBlocks.ts`.
|
|
1560
|
+
*
|
|
1561
|
+
* Presence-marker: only ever `true` (never `false`). Test with
|
|
1562
|
+
* `block.standaloneAnnotation` presence, not as a boolean toggle.
|
|
1563
|
+
*/
|
|
1564
|
+
standaloneAnnotation?: true;
|
|
1565
|
+
/**
|
|
1566
|
+
* The annotation a standalone block was built from — the raw (un-resolved)
|
|
1567
|
+
* template name and its params, in author order. Round-tripped by
|
|
1568
|
+
* `docToMarkdown` (via `serializeAnnotation`) and read by validation as the
|
|
1569
|
+
* raw requested template name (symmetric with
|
|
1570
|
+
* `sourceHeading.templateAnnotation`). Present only when
|
|
1571
|
+
* `standaloneAnnotation` is true.
|
|
1572
|
+
*/
|
|
1573
|
+
sourceAnnotation?: {
|
|
1574
|
+
template?: string;
|
|
1575
|
+
params?: Record<string, string>;
|
|
1576
|
+
};
|
|
1494
1577
|
/**
|
|
1495
1578
|
* Display title for template rendering.
|
|
1496
1579
|
* Extracted from the sourceHeading when the block is created by markdownToDoc().
|
|
@@ -2090,9 +2173,5 @@ declare function getBlockAtTime(blocks: Block[], time: number): Block | null;
|
|
|
2090
2173
|
* Find the caption phrase that should be displayed at a given time.
|
|
2091
2174
|
*/
|
|
2092
2175
|
declare function getCaptionAtTime(captions: CaptionTrack | undefined, time: number): CaptionPhrase | null;
|
|
2093
|
-
/**
|
|
2094
|
-
* Validate a Doc for completeness.
|
|
2095
|
-
*/
|
|
2096
|
-
declare function validateDoc(script: Doc): string[];
|
|
2097
2176
|
|
|
2098
|
-
export { type
|
|
2177
|
+
export { type MapTileStyle as $, type AccentImage as A, type Block as B, type CaptionPhrase as C, DARK_SURFACE as D, type DocDiagnostic as E, type DrawingBlockInput as F, FRONTMATTER_CUSTOM_TEMPLATES_KEY as G, FRONTMATTER_CUSTOM_THEMES_KEY as H, type FactCardInput as I, type FontFamily as J, type FontFamilyKind as K, type FullBleedQuoteInput as L, type GradientBackgroundConfig as M, type ImageBackgroundConfig as N, type ImageLayer as O, type ImageTreatment as P, type ImageWithCaptionInput as Q, LIGHT_SURFACE as R, type Layer as S, type LayerRepeat as T, type LayoutHints as U, type LeftFeatureInput as V, type LinearGradient as W, type ListBlockInput as X, type MapBlockInput as Y, type MapLayer as Z, type MapMarker as _, type AccentPosition as a, getRegisteredThemes as a$, type MarkerStyle as a0, type MediaClip as a1, type PathLayer as a2, type PatternBackgroundConfig as a3, type PersistentLayer as a4, type PersistentLayerConfig as a5, type PersistentLayerTemplate as a6, type PersistentLayerTemplateConfig as a7, type PersistentLayerTemplateType as a8, type PhotoGridInput as a9, type ThemeColorPalette as aA, type ThemeColorScheme as aB, type ThemeSchemaVersion as aC, type ThemeSeedColors as aD, type ThemeStyle as aE, type ThemeTypography as aF, type TitleBlockInput as aG, type TitleCaptionConfig as aH, type TwoColumnInput as aI, VIEWPORT_PRESETS as aJ, type VideoLayer as aK, type VideoPullQuoteInput as aL, type VideoWithCaptionInput as aM, type ViewportConfig as aN, type ViewportOrientation as aO, type ViewportPreset as aP, type VignetteConfig as aQ, applySurface as aR, calculateDuration as aS, calculateFontScale as aT, createTemplateContext as aU, createTheme as aV, getAspectRatioString as aW, getBlockAtTime as aX, getCaptionAtTime as aY, getDocPlaybackDuration as aZ, getLayoutHints as a_, type Position as aa, type ProgressIndicatorConfig as ab, type PullQuoteInput as ac, type QuoteBlockInput as ad, type RawLayersInput as ae, type RenderStyle as af, type RightFeatureInput as ag, type ScheduledClip as ah, type SectionHeaderInput as ai, type ShapeFilter as aj, type ShapeLayer as ak, type ShapePattern as al, type SolidBackgroundConfig as am, type StartBlockConfig as an, type StatHighlightInput as ao, type SurfaceScheme as ap, THEME_SCHEMA_VERSION as aq, type TableLayer as ar, type TableLayerStyle as as, type TemplateBlock as at, type TemplateContext as au, type TemplateFunction as av, type TemplateRegistry as aw, type TextLayer as ax, type TextStyle as ay, type Theme as az, type AmbientGradientConfig as b, getSafeTextBounds as b0, getSegmentAtTime as b1, getTwoColumnPositions as b2, getViewport as b3, getViewportOrientation as b4, isPersistentLayerTemplate as b5, isTemplateBlock as b6, scaledFontSize$1 as b7, lookupRegisteredTheme as b8, registerTheme as b9, resolveMediaSchedule as ba, scaledFontSize as bb, unregisterTheme as bc, type Animation as c, type AnimationType as d, type AudioBookmark as e, type AudioSegment as f, type AudioTimingData as g, type AudioTrack as h, type BlockConnection as i, type BorderStyle as j, type CaptionTrack as k, type CaptionWord as l, type ColorScheme as m, type ComparisonBarInput as n, type CornerBrandingConfig as o, type CustomTemplateDefinition as p, type CustomTemplateLayer as q, DEFAULT_DOC_FONT as r, DEFAULT_TITLE_FONT as s, type DataTableInput as t, type DateEventInput as u, type DeepPartial as v, type DefinitionCardInput as w, type DiagramBlockInput as x, type Doc as y, type DocBlock as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { O as ImageLayer, ax as TextLayer, ak as ShapeLayer, a2 as PathLayer } from './Doc-BBVGq1_9.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* ImageEditDoc — JSON document describing a layered, editable image.
|