@bendyline/squisq 2.13.13 → 2.13.15

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.
Files changed (35) hide show
  1. package/dist/{Doc-BhvotZx_.d.ts → Doc-C_Sh49ot.d.ts} +59 -6
  2. package/dist/{ImageEditDoc-D8hYio6b.d.ts → ImageEditDoc-Sqw3Tw-R.d.ts} +1 -1
  3. package/dist/{chunk-OIQ2GO2O.js → chunk-2CB37BOU.js} +1 -1
  4. package/dist/{chunk-CTT4XAGO.js → chunk-4HQ7QZKB.js} +2289 -630
  5. package/dist/chunk-C7DKMO4H.js +88 -0
  6. package/dist/{chunk-C4SB3NN4.js → chunk-DDJHIZED.js} +1 -1
  7. package/dist/{chunk-TCGGJUKC.js → chunk-FYP7GNER.js} +93 -15
  8. package/dist/chunk-N3FQSUVT.js +515 -0
  9. package/dist/{chunk-SGNWO7OF.js → chunk-OFE5RZWW.js} +490 -24
  10. package/dist/{chunk-YQQWE4HG.js → chunk-OJCAKUHW.js} +192 -260
  11. package/dist/{chunk-7MS26OXD.js → chunk-UDPPWYYM.js} +6 -0
  12. package/dist/{chunk-5DFFVW75.js → chunk-Y34KYMAS.js} +1 -1
  13. package/dist/doc/index.d.ts +337 -22
  14. package/dist/doc/index.js +56 -8
  15. package/dist/fence/index.d.ts +1 -1
  16. package/dist/generate/index.d.ts +1 -1
  17. package/dist/imageEdit/index.d.ts +3 -3
  18. package/dist/index.d.ts +8 -8
  19. package/dist/index.js +127 -21
  20. package/dist/jsonForm/index.d.ts +1 -1
  21. package/dist/markdown/index.js +3 -3
  22. package/dist/{materializePageSection-CWxou4mX.d.ts → materializePageSection-Dmf-rf1b.d.ts} +121 -8
  23. package/dist/mediaEdit/index.d.ts +2 -2
  24. package/dist/narration/index.d.ts +1 -1
  25. package/dist/narration/index.js +4 -4
  26. package/dist/recommend/index.d.ts +129 -2
  27. package/dist/recommend/index.js +11 -3
  28. package/dist/schemas/index.d.ts +4 -4
  29. package/dist/{themeLibrary-BIYE6aLw.d.ts → themeLibrary-B4VLovhW.d.ts} +1 -1
  30. package/dist/timing/index.d.ts +66 -2
  31. package/dist/timing/index.js +12 -0
  32. package/dist/transform/index.d.ts +173 -16
  33. package/dist/transform/index.js +55 -16
  34. package/package.json +1 -1
  35. package/dist/chunk-FCB6JLWB.js +0 -125
@@ -48,6 +48,12 @@ var TEMPLATE_TOKEN_NAMES = /* @__PURE__ */ new Set([
48
48
  "process",
49
49
  "cycle",
50
50
  "layers",
51
+ "stats",
52
+ "pyramid",
53
+ "funnel",
54
+ "hub",
55
+ "venn",
56
+ "matrix",
51
57
  "photoGrid",
52
58
  "definitionCard",
53
59
  "comparisonBar",
@@ -3,7 +3,7 @@ import {
3
3
  parseMarkdown,
4
4
  remarkWikiLinks,
5
5
  toMdast
6
- } from "./chunk-C4SB3NN4.js";
6
+ } from "./chunk-DDJHIZED.js";
7
7
  import {
8
8
  formatFrontmatterYaml,
9
9
  getChildren,
@@ -1,12 +1,12 @@
1
- import { a9 as Layer, k as Block, T as Doc, by as TemplateBlock, bz as TemplateContext, D as CustomTemplateDefinition, bB as TemplateRegistry, bH as Theme, cc as ViewportConfig, b3 as PersistentLayerConfig, ay as MotionSpec, U as DocBlock, cd as ViewportOrientation, b2 as PersistentLayer, bU as TitleBlockInput, bm as SectionHeaderInput, j as BigTextInput, w as ContentBlockInput, bs as StatHighlightInput, bg as QuoteBlockInput, $ as FactCardInput, c1 as TwoColumnInput, M as DateEventInput, a7 as ImageWithCaptionInput, ad as LeftFeatureInput, bj as RightFeatureInput, n as BottomFeatureInput, ar as MediaOnlyInput, bW as TopFeatureInput, ai as MapBlockInput, br as StartBlockConfig, a2 as FullBleedQuoteInput, ag as ListBlockInput, q as CardsBlockInput, H as CycleBlockInput, ab as LayersBlockInput, bc as ProcessBlockInput, b7 as PhotoGridInput, O as DefinitionCardInput, v as ComparisonBarInput, bf as PullQuoteInput, cb as VideoWithCaptionInput, ca as VideoPullQuoteInput, L as DataTableInput, P as DiagramBlockInput, bY as TreeBlockInput, bQ as TimelineBlockInput, X as DrawingBlockInput, am as MarkerStyle, A as AccentImage, a6 as ImageTreatment, a as AccentPosition, c as Animation, d as AnimationType, az as MotionState, aw as MotionProfile, bJ as ThemeColorScheme, y as CountUpSpec, bL as ThemeRegistry, aW as PageEmphasis, bK as ThemePageStyle, V as DocDiagnostic, be as PromotedBodyAnnotation, S as DiagramTemplateNode, R as DiagramTemplateEdge, bT as TimelineTemplateTrack, bS as TimelineTemplateLink } from '../Doc-BhvotZx_.js';
2
- export { Y as FRONTMATTER_CUSTOM_TEMPLATES_KEY, Z as FRONTMATTER_CUSTOM_THEMES_KEY, ac as LayoutHints, bi as RenderStyle, bI as ThemeColorPalette, bO as ThemeStyle, bP as ThemeTypography, c2 as VIEWPORT_PRESETS, ce as ViewportPreset, cj as createTemplateContext, cq as getLayoutHints, ct as getTwoColumnPositions, cu as getViewport, cv as getViewportOrientation, cz as isTemplateBlock, cF as scaledFontSize } from '../Doc-BhvotZx_.js';
1
+ import { ac as Layer, k as Block, U as Doc, bE as TemplateBlock, bF as TemplateContext, D as CustomTemplateDefinition, bH as TemplateRegistry, bN as Theme, cj as ViewportConfig, b7 as PersistentLayerConfig, aC as MotionSpec, V as DocBlock, ck as ViewportOrientation, b6 as PersistentLayer, b_ as TitleBlockInput, br as SectionHeaderInput, j as BigTextInput, w as ContentBlockInput, bx as StatHighlightInput, bl as QuoteBlockInput, a0 as FactCardInput, c7 as TwoColumnInput, M as DateEventInput, aa as ImageWithCaptionInput, ag as LeftFeatureInput, bo as RightFeatureInput, n as BottomFeatureInput, av as MediaOnlyInput, c0 as TopFeatureInput, al as MapBlockInput, bw as StartBlockConfig, a3 as FullBleedQuoteInput, aj as ListBlockInput, q as CardsBlockInput, H as CycleBlockInput, ae as LayersBlockInput, bg as ProcessBlockInput, a4 as FunnelBlockInput, a6 as HubBlockInput, aq as MatrixBlockInput, bk as PyramidBlockInput, by as StatsBlockInput, c9 as VennBlockInput, bb as PhotoGridInput, O as DefinitionCardInput, v as ComparisonBarInput, bj as PullQuoteInput, ci as VideoWithCaptionInput, ch as VideoPullQuoteInput, L as DataTableInput, P as DiagramBlockInput, c2 as TreeBlockInput, bW as TimelineBlockInput, Y as DrawingBlockInput, ap as MarkerStyle, A as AccentImage, a9 as ImageTreatment, a as AccentPosition, c as Animation, d as AnimationType, aD as MotionState, aA as MotionProfile, bP as ThemeColorScheme, y as CountUpSpec, bR as ThemeRegistry, a_ as PageEmphasis, bQ as ThemePageStyle, W as DocDiagnostic, bi as PromotedBodyAnnotation, S as DiagramTemplateNode, R as DiagramTemplateEdge, bZ as TimelineTemplateTrack, bY as TimelineTemplateLink } from '../Doc-C_Sh49ot.js';
2
+ export { Z as FRONTMATTER_CUSTOM_TEMPLATES_KEY, _ as FRONTMATTER_CUSTOM_THEMES_KEY, af as LayoutHints, bn as RenderStyle, bO as ThemeColorPalette, bU as ThemeStyle, bV as ThemeTypography, c8 as VIEWPORT_PRESETS, cl as ViewportPreset, cq as createTemplateContext, cx as getLayoutHints, cA as getTwoColumnPositions, cB as getViewport, cC as getViewportOrientation, cG as isTemplateBlock, cM as scaledFontSize } from '../Doc-C_Sh49ot.js';
3
3
  import { g as BuildStep, M as MarkdownBlockNode, S as MarkdownListItem, f as BuildSpec, e as BuildCursor, h as BuildTiming, V as MarkdownNode, ae as TransitionType, ad as TransitionDirection, z as MarkdownHeading, v as MarkdownDocument, a2 as MarkdownTable, q as MarkdownCodeBlock, R as MarkdownList } from '../types-Zk8qYuaT.js';
4
4
  import { C as CoercedBlockMeta } from '../annotationCoercion-hTvELpIN.js';
5
- import { o as PresentationLayout, f as PageSection } from '../materializePageSection-CWxou4mX.js';
6
- export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, d as PageMedia, e as PageRichText, g as PageSectionDiagnostic, h as PageSectionItem, i as PageSectionMaterialization, j as PageSectionSource, k as PageSpatialKind, l as PageTransformHints, q as materializePageSection, r as materializePageSections, v as resolvePageStyle } from '../materializePageSection-CWxou4mX.js';
5
+ import { w as PresentationLayout, g as ConceptTemplateName, m as PageSection } from '../materializePageSection-Dmf-rf1b.js';
6
+ export { C as CONCEPT_MAX_DRAWN, a as CONCEPT_SPECS, c as ConceptDowngrade, d as ConceptItemsOptions, e as ConceptSpec, f as ConceptSpecInput, M as MaterializePageSectionOptions, h as MaterializePageSectionsOptions, k as PageMedia, l as PageRichText, n as PageSectionDiagnostic, o as PageSectionItem, p as PageSectionMaterialization, q as PageSectionSource, r as PageSpatialKind, s as PageTransformHints, y as conceptDowngrade, z as conceptDrawsAs, B as conceptItemCount, D as conceptItemsProblem, F as materializePageSection, G as materializePageSections, O as resolvePageStyle } from '../materializePageSection-Dmf-rf1b.js';
7
7
  import { C as ContentContainer } from '../ContentContainer-B2w9sUoL.js';
8
8
  import { V as ViewIssue } from '../viewState-lTZS-hP_.js';
9
- export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-BIYE6aLw.js';
9
+ export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-B4VLovhW.js';
10
10
 
11
11
  /** Pure build planning and evaluation, shared by interactive slides and frame export. */
12
12
 
@@ -78,6 +78,10 @@ type LayerMaterializationDiagnostic = {
78
78
  code: 'unsupported-build';
79
79
  template: string;
80
80
  message: string;
81
+ } | {
82
+ code: 'template-drew-nothing';
83
+ template: string;
84
+ message: string;
81
85
  } | {
82
86
  code: 'unknown-template';
83
87
  template: string;
@@ -318,6 +322,42 @@ declare const TEMPLATE_AUTHORING_METADATA: {
318
322
  readonly safeForContentFirst: false;
319
323
  readonly placement: "heading";
320
324
  };
325
+ readonly stats: {
326
+ readonly role: "highlight";
327
+ readonly bodyPolicy: "derived";
328
+ readonly safeForContentFirst: false;
329
+ readonly placement: "heading";
330
+ };
331
+ readonly pyramid: {
332
+ readonly role: "content";
333
+ readonly bodyPolicy: "derived";
334
+ readonly safeForContentFirst: false;
335
+ readonly placement: "heading";
336
+ };
337
+ readonly funnel: {
338
+ readonly role: "content";
339
+ readonly bodyPolicy: "derived";
340
+ readonly safeForContentFirst: false;
341
+ readonly placement: "heading";
342
+ };
343
+ readonly hub: {
344
+ readonly role: "content";
345
+ readonly bodyPolicy: "derived";
346
+ readonly safeForContentFirst: false;
347
+ readonly placement: "heading";
348
+ };
349
+ readonly venn: {
350
+ readonly role: "comparison";
351
+ readonly bodyPolicy: "derived";
352
+ readonly safeForContentFirst: false;
353
+ readonly placement: "heading";
354
+ };
355
+ readonly matrix: {
356
+ readonly role: "comparison";
357
+ readonly bodyPolicy: "derived";
358
+ readonly safeForContentFirst: false;
359
+ readonly placement: "heading";
360
+ };
321
361
  readonly photoGrid: {
322
362
  readonly role: "media";
323
363
  readonly bodyPolicy: "structured";
@@ -475,7 +515,7 @@ interface TemplateGuide {
475
515
  use?: string;
476
516
  }
477
517
  /** The templates this guide describes for block-writing authors. */
478
- type GuidedTemplate = 'imageWithCaption' | 'pullQuote' | 'fullBleedQuote' | 'factCard' | 'dateEvent' | 'statHighlight' | 'comparisonBar' | 'columnChart' | 'barChart' | 'pieChart' | 'timeline' | 'diagram' | 'list' | 'photoGrid' | 'map' | 'sectionHeader' | 'cards' | 'process' | 'cycle' | 'layers';
518
+ type GuidedTemplate = 'imageWithCaption' | 'pullQuote' | 'fullBleedQuote' | 'factCard' | 'dateEvent' | 'statHighlight' | 'comparisonBar' | 'columnChart' | 'barChart' | 'pieChart' | 'timeline' | 'diagram' | 'list' | 'photoGrid' | 'map' | 'sectionHeader' | 'cards' | 'process' | 'cycle' | 'layers' | 'stats' | 'pyramid' | 'funnel' | 'hub' | 'venn' | 'matrix';
479
519
  declare const TEMPLATE_GUIDES: Readonly<Record<GuidedTemplate, TemplateGuide>>;
480
520
  /** How a product names things in its prompts. */
481
521
  interface GuideWording {
@@ -504,6 +544,15 @@ declare function templateCatalog(entries: readonly TemplateCatalogEntry[], wordi
504
544
  * up to four points and pick the layout. Rendered as `"layout" (guide)`.
505
545
  */
506
546
  declare const PRESENTATION_LAYOUT_GUIDE: Readonly<Record<PresentationLayout, string>>;
547
+ /**
548
+ * What to call each presentation layout in a picker, and one line on what it
549
+ * shows. Hosts that let a person choose a slide's layout render these rather
550
+ * than keeping their own copy, so a layout added here is named everywhere.
551
+ */
552
+ declare const PRESENTATION_LAYOUT_LABELS: Readonly<Record<PresentationLayout, {
553
+ label: string;
554
+ description: string;
555
+ }>>;
507
556
  /** A piece of craft an author can reuse. */
508
557
  interface AuthoringTrick {
509
558
  /** Stable id, for a product that picks tricks by name. */
@@ -515,6 +564,11 @@ interface AuthoringTrick {
515
564
  * or applies there at all.
516
565
  */
517
566
  summary?: string;
567
+ /**
568
+ * The advice for an author that only chooses each slide's layout, planning
569
+ * the whole deck before its slides are worded.
570
+ */
571
+ storyboard?: string;
518
572
  /** Templates (or presentation layouts) it concerns; omitted when it concerns every slide. */
519
573
  templates?: readonly string[];
520
574
  }
@@ -524,14 +578,17 @@ interface AuthoringTrickOptions {
524
578
  templates?: readonly string[];
525
579
  /** Only these tricks, in this order. */
526
580
  ids?: readonly string[];
527
- /** Which text to render: for block authors (default) or summary authors. */
528
- surface?: 'blocks' | 'summary';
581
+ /**
582
+ * Which text to render: for block authors (default), for summary authors,
583
+ * or for an author storyboarding a deck's layouts.
584
+ */
585
+ surface?: 'blocks' | 'summary' | 'storyboard';
529
586
  wording?: GuideWording;
530
587
  }
531
588
  /**
532
589
  * The tricks a prompt should carry, rendered. With `templates`, a trick is
533
- * kept when it concerns every slide or one of those templates; summary
534
- * authors get only tricks written for them.
590
+ * kept when it concerns every slide or one of those templates; summary and
591
+ * storyboard authors get only tricks written for them.
535
592
  */
536
593
  declare function authoringTricks(options?: AuthoringTrickOptions): string[];
537
594
 
@@ -775,6 +832,48 @@ declare const BLOCK_MEDIA_LAYOUT_POLICIES: {
775
832
  readonly unconsumedMedia: "reserved-slot";
776
833
  readonly variants: SupplementalMediaVariantMatrix;
777
834
  };
835
+ readonly stats: {
836
+ readonly summary: "Key figures by default; supplemental media is paired with the figures.";
837
+ readonly noMedia: "template-default";
838
+ readonly ownership: "supplemental";
839
+ readonly unconsumedMedia: "reserved-slot";
840
+ readonly variants: SupplementalMediaVariantMatrix;
841
+ };
842
+ readonly pyramid: {
843
+ readonly summary: "A drawn pyramid by default; supplemental media is paired with the tiers.";
844
+ readonly noMedia: "template-default";
845
+ readonly ownership: "supplemental";
846
+ readonly unconsumedMedia: "reserved-slot";
847
+ readonly variants: SupplementalMediaVariantMatrix;
848
+ };
849
+ readonly funnel: {
850
+ readonly summary: "A drawn funnel by default; supplemental media is paired with the stages.";
851
+ readonly noMedia: "template-default";
852
+ readonly ownership: "supplemental";
853
+ readonly unconsumedMedia: "reserved-slot";
854
+ readonly variants: SupplementalMediaVariantMatrix;
855
+ };
856
+ readonly hub: {
857
+ readonly summary: "A drawn hub and spokes by default; supplemental media is paired with the ideas.";
858
+ readonly noMedia: "template-default";
859
+ readonly ownership: "supplemental";
860
+ readonly unconsumedMedia: "reserved-slot";
861
+ readonly variants: SupplementalMediaVariantMatrix;
862
+ };
863
+ readonly venn: {
864
+ readonly summary: "Drawn overlapping circles by default; supplemental media is paired with the sets.";
865
+ readonly noMedia: "template-default";
866
+ readonly ownership: "supplemental";
867
+ readonly unconsumedMedia: "reserved-slot";
868
+ readonly variants: SupplementalMediaVariantMatrix;
869
+ };
870
+ readonly matrix: {
871
+ readonly summary: "A two-by-two grid by default; supplemental media is paired with the grid.";
872
+ readonly noMedia: "template-default";
873
+ readonly ownership: "supplemental";
874
+ readonly unconsumedMedia: "reserved-slot";
875
+ readonly variants: SupplementalMediaVariantMatrix;
876
+ };
778
877
  readonly photoGrid: {
779
878
  readonly summary: "Requires a primary image collection and owns the complete tiled media field.";
780
879
  readonly noMedia: "unsupported";
@@ -1420,7 +1519,69 @@ declare function fullBleedQuote(input: FullBleedQuoteInput, context: TemplateCon
1420
1519
  declare function listBlock(input: ListBlockInput, context: TemplateContext): Layer[];
1421
1520
 
1422
1521
  /**
1423
- * Concept templates — `cards`, `process` and `cycle`.
1522
+ * Concept items — how the text of one idea is read.
1523
+ *
1524
+ * Every concept template (`cards`, `process`, `cycle`, `layers`, `stats`,
1525
+ * `pyramid`, `funnel`, `hub`, `venn`, `matrix`) takes its ideas as plain
1526
+ * strings, so a Markdown list, an AI author and a host's own script all feed
1527
+ * them the same way. This module is the one place those strings are parsed:
1528
+ * `Label: detail` for an idea, `Figure: what it measures` for a key number,
1529
+ * and the item of a Venn diagram that names what its sets share.
1530
+ *
1531
+ * Pure text in, plain data out: the templates draw from it, and
1532
+ * `conceptBuildStepTexts` names build steps from it, so the two agree.
1533
+ *
1534
+ * Related: `conceptBlocks.ts`, `conceptShapes.ts`, `recommend/listShape.ts`.
1535
+ */
1536
+ /** One idea: an optional bold label and the words beneath it. */
1537
+ interface ConceptItem {
1538
+ label: string;
1539
+ detail: string;
1540
+ }
1541
+ /** Split `Label: detail` or `Label — detail`; anything else is all detail. */
1542
+ declare function splitConceptItem(text: string): ConceptItem;
1543
+ /** One key number: the figure, and the words that say what it measures. */
1544
+ interface StatItem {
1545
+ /** The figure as written ("57 million", "95%", "$3.2B"); empty when the item has none. */
1546
+ figure: string;
1547
+ caption: string;
1548
+ }
1549
+ /** Whether `text` is nothing but a figure and, at most, a short unit ("2,400 km"). */
1550
+ declare function isFigureText(text: string): boolean;
1551
+ /**
1552
+ * Read one item of a `stats` block. The figure may be the label
1553
+ * ("57 million: deaths prevented"), the detail ("Coverage: 95%") or the
1554
+ * item's opening words ("57 million deaths prevented"); an item without a
1555
+ * figure is all caption.
1556
+ */
1557
+ declare function splitStatItem(text: string): StatItem;
1558
+ /** The item that names what a Venn diagram's sets share, or -1. */
1559
+ declare function vennOverlapIndex(items: readonly ConceptItem[]): number;
1560
+ /** A matrix read from its four items: what its axes measure, and the items in reading order. */
1561
+ interface MatrixReading {
1562
+ /** What grows from left to right. */
1563
+ xAxis: string;
1564
+ /** What grows from bottom to top. */
1565
+ yAxis: string;
1566
+ /** The items top left, top right, bottom left, bottom right. */
1567
+ items: string[];
1568
+ /** Whether the items had to be moved to sit where their own words put them. */
1569
+ reordered: boolean;
1570
+ }
1571
+ /**
1572
+ * Read a matrix's axes out of its own items. Four ideas that each say where
1573
+ * they stand on the same two measures ("Quick wins: low effort, high impact")
1574
+ * name the axes themselves, and say which panel each belongs in: low on the
1575
+ * horizontal axis is left, high on the vertical axis is top. The items are
1576
+ * returned in that order, so a panel is never drawn where its words say it
1577
+ * is not. `undefined` when the items do not place themselves: other than
1578
+ * four, no two shared measures, or two items claiming the same corner.
1579
+ */
1580
+ declare function readMatrixItems(items: readonly string[]): MatrixReading | undefined;
1581
+
1582
+ /**
1583
+ * Concept templates — `cards`, `process`, `cycle` and `layers`, and the kit
1584
+ * (lockup, type ramp, motion) the later ones in `conceptShapes.ts` share.
1424
1585
  *
1425
1586
  * Three ways to show a handful of related ideas as a picture of how they
1426
1587
  * relate rather than as a list: side-by-side cards for parallel ideas, a
@@ -1436,19 +1597,12 @@ declare function listBlock(input: ListBlockInput, context: TemplateContext): Lay
1436
1597
  * one at a time, and a dynamic deck times them to the narration.
1437
1598
  */
1438
1599
 
1439
- /** One idea: an optional bold label and the words beneath it. */
1440
- interface ConceptItem {
1441
- label: string;
1442
- detail: string;
1443
- }
1444
- /** Split `Label: detail` or `Label — detail`; anything else is all detail. */
1445
- declare function splitConceptItem(text: string): ConceptItem;
1446
1600
  /**
1447
1601
  * The build steps a concept block's items become, named as `blockBuildSteps`
1448
1602
  * names them from the layers (a stage's number, then its label and detail),
1449
1603
  * so a caller can time the reveals before the block is drawn.
1450
1604
  */
1451
- declare function conceptBuildStepTexts(template: 'cards' | 'process' | 'cycle' | 'layers', items: readonly string[]): string[];
1605
+ declare function conceptBuildStepTexts(template: ConceptTemplateName, items: readonly string[]): string[];
1452
1606
  /**
1453
1607
  * Parallel ideas as a row of cards (a 2×2 or 2×3 grid when there are many or
1454
1608
  * they run long; one column in portrait). A single unlabelled idea sets as a
@@ -1476,6 +1630,122 @@ declare function cycleBlock(input: CycleBlockInput, context: TemplateContext): L
1476
1630
  */
1477
1631
  declare function layersBlock(input: LayersBlockInput, context: TemplateContext): Layer[];
1478
1632
 
1633
+ /**
1634
+ * Concept templates — `stats`, `pyramid`, `funnel`, `hub`, `venn` and `matrix`.
1635
+ *
1636
+ * More ways to draw how a handful of ideas relate, beside the four in
1637
+ * `conceptBlocks.ts`: key numbers set side by side, a hierarchy stacked as a
1638
+ * pyramid, stages that narrow as a funnel, ideas around the one thing they
1639
+ * share, two sets and their overlap, and four ideas placed on two axes.
1640
+ *
1641
+ * They are built from the same kit as `cards`, `process`, `cycle` and
1642
+ * `layers` — the headline lockup, the type ramp, the entrances — so a deck
1643
+ * that mixes all ten reads as one design. Each item is still plain text,
1644
+ * `Label: detail`, and still one build step.
1645
+ *
1646
+ * A template that cannot draw its picture from what it was given (a matrix
1647
+ * without four ideas, a Venn diagram without two sets, key numbers without a
1648
+ * figure) draws the same ideas as cards rather than a broken diagram.
1649
+ *
1650
+ * Related: `conceptBlocks.ts` (the kit), `conceptItems.ts` (how items are
1651
+ * read), `recommend/listShape.ts` (which template a list suggests).
1652
+ */
1653
+
1654
+ /**
1655
+ * Key numbers side by side: each figure large in the accent (counting up
1656
+ * where the theme's motion counts), the word that scales it beneath
1657
+ * ("million"), then what it measures. Up to four sit in a row, five or six
1658
+ * three to a row; a portrait frame stacks them.
1659
+ */
1660
+ declare function statsBlock(input: StatsBlockInput, context: TemplateContext): Layer[];
1661
+ /** A hierarchy as a pyramid: the apex first, the base last. */
1662
+ declare function pyramidBlock(input: PyramidBlockInput, context: TemplateContext): Layer[];
1663
+ /** Stages that narrow as a funnel: the widest first, the outcome last. */
1664
+ declare function funnelBlock(input: FunnelBlockInput, context: TemplateContext): Layer[];
1665
+ /**
1666
+ * Ideas around the one thing they share: a hub (its `center` words inside
1667
+ * it), a spoke out to each idea, and the idea's words at the end of its
1668
+ * spoke. The ideas read down the left of the hub, then down the right; a
1669
+ * portrait frame fans them all out to the right of it.
1670
+ */
1671
+ declare function hubBlock(input: HubBlockInput, context: TemplateContext): Layer[];
1672
+ /**
1673
+ * Two sets as overlapping circles: each set's label inside its own side, its
1674
+ * detail beside it, and what the two share (an item labelled `Both:` or
1675
+ * `Shared:`) beneath, tied to the overlap. A portrait frame lists the three
1676
+ * under the circles.
1677
+ */
1678
+ declare function vennBlock(input: VennBlockInput, context: TemplateContext): Layer[];
1679
+ /**
1680
+ * Four ideas on two axes: a 2×2 of panels in reading order (top left, top
1681
+ * right, bottom left, bottom right), with an arrow up the side for `yAxis`
1682
+ * and one along the foot for `xAxis`.
1683
+ */
1684
+ declare function matrixBlock(input: MatrixBlockInput, context: TemplateContext): Layer[];
1685
+
1686
+ /**
1687
+ * Markdown shape guide — how a Markdown author gets each drawing.
1688
+ *
1689
+ * An author who writes template blocks is told the fields (`TEMPLATE_GUIDES`);
1690
+ * one who fills a headline and points is told the layouts
1691
+ * (`PRESENTATION_LAYOUT_GUIDE`). A third kind of author writes plain Markdown
1692
+ * and lets `markdownToDoc` choose: an agent drafting a deck for a converter,
1693
+ * or a person who never learns an annotation. What they need to know is what
1694
+ * in a heading and a list makes Squisq draw a picture, and that is what this
1695
+ * module says:
1696
+ *
1697
+ * - {@link MARKDOWN_SHAPE_EXAMPLES}: one worked example per drawing, with the
1698
+ * cue that produces it. The tests run every example through
1699
+ * `classifyListShape`, so the guide cannot promise a drawing the classifier
1700
+ * does not make.
1701
+ * - {@link markdownShapeGuide}: the lines a prompt or a tool description
1702
+ * carries.
1703
+ * - {@link markdownShapeExample}: a template's example as Markdown, for a
1704
+ * catalog entry or a "describe this template" answer.
1705
+ *
1706
+ * Related: `recommend/listShape.ts` (the classifier), `conceptSpecs.ts` (what
1707
+ * each template takes), `authoringGuide.ts` (the other two author surfaces).
1708
+ */
1709
+
1710
+ interface MarkdownShapeExample {
1711
+ /** The template the example is drawn with. */
1712
+ template: ConceptTemplateName;
1713
+ /** What in the Markdown makes it so, as a guide line opens. */
1714
+ cue: string;
1715
+ /** What is drawn, as the guide line closes. */
1716
+ drawn: string;
1717
+ /** The same rule in a few words, for a one-paragraph summary: `[cue, drawn]`. */
1718
+ brief: readonly [cue: string, drawn: string];
1719
+ heading: string;
1720
+ items: readonly string[];
1721
+ /** Written as a numbered list. */
1722
+ ordered?: boolean;
1723
+ /** Annotation inputs the picture is better with; the list alone already draws. */
1724
+ inputs?: Readonly<Record<string, string>>;
1725
+ }
1726
+ declare const MARKDOWN_SHAPE_EXAMPLES: readonly MarkdownShapeExample[];
1727
+ /**
1728
+ * A template's worked example as Markdown: an annotated heading over the list
1729
+ * it draws. Annotated, so it reads as "this is how you ask for it" and keeps
1730
+ * working when the heading is changed to one that no longer names the shape.
1731
+ * `headingLevel` sets the heading's depth (2 by default; a host that makes a
1732
+ * slide of every level-one heading asks for 1).
1733
+ */
1734
+ declare function markdownShapeExample(template: ConceptTemplateName, options?: {
1735
+ headingLevel?: number;
1736
+ }): string;
1737
+ /**
1738
+ * What a Markdown author is told about drawings, as prompt lines: the rule,
1739
+ * what decides each picture, how to choose one outright, and what stops a
1740
+ * list being drawn.
1741
+ */
1742
+ declare function markdownShapeGuide(): string[];
1743
+ /**
1744
+ * The same guide as one paragraph, for where a prompt has a sentence or two
1745
+ * to spend (a tool's instructions, a starter prompt).
1746
+ */
1747
+ declare function markdownShapeSummary(): string;
1748
+
1479
1749
  /**
1480
1750
  * Photo Grid Template
1481
1751
  *
@@ -2518,6 +2788,13 @@ declare function isPictureParagraph(node: MarkdownBlockNode): boolean;
2518
2788
  declare function extractBodyPlainText(contents?: MarkdownBlockNode[]): string;
2519
2789
  /** Extract list items as plain text. */
2520
2790
  declare function extractListItems(contents?: MarkdownBlockNode[]): string[];
2791
+ /**
2792
+ * List items as the ideas of a concept block. An item with sub-items reads as
2793
+ * `Label: detail`: its own words are the label and its sub-items the detail
2794
+ * ("Discover" over "Interview customers; Review existing data"), so a nested
2795
+ * list draws as labelled ideas instead of one run-on line.
2796
+ */
2797
+ declare function extractConceptItems(contents?: MarkdownBlockNode[]): string[];
2521
2798
  /** One authored Markdown list item with both plain and rich projections. */
2522
2799
  interface RichListItem {
2523
2800
  text: string;
@@ -2572,8 +2849,22 @@ declare function extractTableFromContents(contents?: MarkdownBlockNode[]): {
2572
2849
  rows: string[][];
2573
2850
  align?: (('left' | 'right' | 'center') | null)[];
2574
2851
  } | null;
2575
- /** First blockquote's plain text, or ''. */
2852
+ /**
2853
+ * First blockquote's plain text, or ''. Its paragraphs are joined by a
2854
+ * space: read straight off the tree they ran together ("…moved on.— Ada").
2855
+ */
2576
2856
  declare function extractBlockquoteText(contents?: MarkdownBlockNode[]): string;
2857
+ /**
2858
+ * The first blockquote as what was said and who said it. Markdown has no
2859
+ * syntax for an attribution, so authors write the convention: a last line (or
2860
+ * the end of the last line) that opens with a dash. Read as part of the
2861
+ * quote, it was set in the quote's own type and then repeated beneath it by
2862
+ * a template's `attribution`.
2863
+ */
2864
+ declare function extractBlockquote(contents?: MarkdownBlockNode[]): {
2865
+ text: string;
2866
+ attribution?: string;
2867
+ };
2577
2868
  interface DeriveTemplateInputsOptions {
2578
2869
  /**
2579
2870
  * Return visible placeholder values instead of `null` when an essential
@@ -2601,6 +2892,23 @@ declare function autoTemplatePreservesContent(templateName: string, contents: Ma
2601
2892
  */
2602
2893
  declare function deriveTemplateInputs(templateName: string, headingText: string, contents: MarkdownBlockNode[] | undefined, options?: DeriveTemplateInputsOptions): Record<string, unknown> | null;
2603
2894
 
2895
+ /**
2896
+ * When a document's cover is its first slide.
2897
+ *
2898
+ * The automatic cover takes its title from the document's first heading and
2899
+ * its subtitle from the paragraph beneath it. When that heading holds nothing
2900
+ * else and its author chose no template for it, a deck opened on the cover and
2901
+ * then showed the same words again, small, as slide one. Players and the video
2902
+ * exporter show the cover as that slide instead of before it.
2903
+ */
2904
+
2905
+ /**
2906
+ * Whether `doc`'s cover only repeats its leading block: the block's heading is
2907
+ * the cover's title, it has no authored template, and its only content is the
2908
+ * paragraph the cover shows as its subtitle (or nothing).
2909
+ */
2910
+ declare function coverRepeatsLeadingBlock(doc: Doc): boolean;
2911
+
2604
2912
  /**
2605
2913
  * Markdown → Doc Conversion
2606
2914
  *
@@ -2668,8 +2976,15 @@ interface MarkdownToDocOptions {
2668
2976
  * instead of the structural `defaultTemplate`. Explicit `{[template]}`
2669
2977
  * annotations always win. Authors can also disable per document with
2670
2978
  * frontmatter `squisq-auto-templates: false`.
2979
+ *
2980
+ * A list is drawn as what it is a picture of when its shape is clear
2981
+ * (`classifyListShape`): a numbered list as a `process`, dated items as a
2982
+ * timeline, `Label: detail` items as `cards`, figures as `stats`, and a
2983
+ * heading that says so as a `cycle`, `layers`, a `pyramid`, a `funnel`, a
2984
+ * `hub`, a `venn` or a `matrix`. `'structural'` (frontmatter
2985
+ * `squisq-auto-templates: structural`) keeps every list a plain `list`.
2671
2986
  */
2672
- autoTemplates?: boolean;
2987
+ autoTemplates?: boolean | 'structural';
2673
2988
  }
2674
2989
  /**
2675
2990
  * Public accessor for {@link pinnedMeta}: the timing/meta values an author
@@ -4835,4 +5150,4 @@ declare function treeFromMarkdownList(list: MarkdownList): Tree;
4835
5150
  /** Find the first top-level markdown list in a block's body, if any. */
4836
5151
  declare function findFirstList(contents: MarkdownBlockNode[] | undefined): MarkdownList | undefined;
4837
5152
 
4838
- export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, AUTHORING_TRICKS, type AccentLayout, type ArrangeAsciiDiagramOptions, type AsciiDiagram, type AsciiDiagramDetection, type AsciiDiagramEdge, type AsciiDiagramNode, type AsciiTimeline, type AsciiTimelineDetection, type AsciiTimelineEvent, type AsciiTimelineLink, type AsciiTimelineMarker, type AsciiTimelineSide, type AsciiTimelineStats, type AsciiTimelineStyle, type AsciiTimelineTrack, type AudioSegmentTiming, type AuthoringTrick, type AuthoringTrickOptions, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BUILTIN_DASHBOARD_LAYOUTS, type BlockLayerMaterialization, type BlockMediaLayoutPolicy, type BuildPreviewDocOptions, type BuildTimeline, type BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, type ChartData, type ChartTableData, type ClipBox, type ConnectorAnchor, type ConnectorPort, type ConnectorRouting, type ConnectorSnapPoint, type ContentBuildPlan, type CoverBlockInput, type CoverSlidePlayback, type CoverSlideSettings, type CoverSlideTemplate, type CoverSlideTemplateOption, DASHBOARD_AUTO_LAYOUT_ID, DASHBOARD_FRONTMATTER_KEYS, DASHBOARD_STYLES, DASHBOARD_STYLE_IDS, DASHBOARD_ZOOM_LEVELS, DATA_FILE_EXTENSIONS, DEFAULT_COVER_SLIDE_SETTINGS, DEFAULT_DASHBOARD_SETTINGS, DEFAULT_DASHBOARD_STYLE, DEFAULT_LAYOUT, DEFAULT_WORD_STAGGER, DIAGRAM_LABEL_HORIZONTAL_PADDING, DIAGRAM_LABEL_LINE_HEIGHT, DIAGRAM_LABEL_MIN_FONT_SIZE, DIAGRAM_LABEL_VERTICAL_PADDING, type DashboardCell, type DashboardCellChrome, type DashboardCellDefinition, type DashboardCellFrame, type DashboardDiagnostic, type DashboardLayoutDefinition, type DashboardLayoutSummary, type DashboardLayoutValidationError, type DashboardLayoutValidationResult, type DashboardMaterialization, type DashboardRectPct, type DashboardSettings, type DashboardSettingsOverrides, type DashboardStyleId, type DashboardStyleSummary, type DashboardTitle, type DashboardTitleSlotDefinition, type DashboardZoomCandidate, type DashboardZoomLevel, type DashboardZoomMode, type DataFenceParseResult, type DataSourceReadOptions, type DataSourceReader, type DataSourceStats, type DataSourceTable, type DeriveTemplateInputsOptions, type DetectAsciiTimelineOptions, type DiagramEdge, type DiagramLabelFit, type DiagramLayout, type DiagramLayoutOptions, type DiagramNodePosition, DocBlock, type DrawingConnector, type DrawingLayout, type DrawingLayoutOptions, type DrawingShape, type DrawingShapeKind, type EmbeddedVideo, type ExpandDocBlocksOptions, type ExtractedTableData, FRONTMATTER_DASHBOARD_LAYOUTS_KEY, type FirstImage, type Flashcard, type FlashcardChoice, type FlashcardDeck, type FlashcardDiagnostic, type FlashcardDiagnosticCode, type FlashcardFace, type FlashcardKind, type FlashcardSourceMode, type FrostedBigTextLayout, GEOMETRY_BOUND_TEMPLATES, type GuideWording, type GuidedTemplate, type HostedVideo, type InputCoercion, type LayerMaterializationDiagnostic, type LayerMaterializationFailureMode, type LayerMaterializationSource, type LayoutLayerDefaults, type LayoutLayersResult, MAX_COVER_SLIDE_DURATION_SECONDS, type MarkdownToDocOptions, type MarkdownValidationResult, type MaterializeBlockLayersOptions, type MaterializeDashboardOptions, type MaterializeFlashcardsOptions, type NarrationResolution, type NativeMediaLayout, type NoMediaLayout, PAGE_BASE_CSS, PATH_SHAPE_KINDS, PRESENTATION_LAYOUT_GUIDE, PageSection, type PageSectionContext, type PageSectionDraft, type ParsedAnnotation, type ParsedStat, PersistentLayerConfig, type PromotableDetection, type RenderAsciiDiagramOptions, type RenderAsciiTimelineOptions, type RenderTreeOptions, type RepairResult, type ResolveDataReferencesOptions, type ResolvedDashboardCell, type ResolvedDataReferences, type ResolvedPageBlock, type RichListItem, type RuntimeTemplateRegistry, SHAPE_NAMES, type SectionExtractor, type SupplementalMediaLayoutVariant, type SupplementalMediaShape, type SupplementalMediaVariantMatrix, TABLE_FED_TEMPLATES, TEMPLATE_AUTHORING_METADATA, TEMPLATE_GUIDES, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, type TemplateAuthoringMetadata, type TemplateAuthoringRole, TemplateBlock, type TemplateBodyPolicy, type TemplateCatalogEntry, TemplateContext, type TemplateGuide, type TemplateInputDescriptor, type TemplateMediaOwnership, type TemplateMetadata, type TemplateParamFinding, Theme, ThemeColorScheme, type Tree, type TreeDetection, type TreeItem, type TreeNode, type UnconsumedMediaBehavior, type ValidateOptions, ViewportConfig, ViewportOrientation, accentForViewport, adjustY, anchorPoint, applyNarrationTiming, applyRenderStyleToLayers, arrangeAsciiDiagram, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, authoringTricks, autoTemplatePreservesContent, bigText, blockBuildSteps, bottomFeature, buildChartData, buildCursorAtTime, buildDashboardCellChrome, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, buildSourceText, buildTargetState, canvasToAsciiCell, cardsBlock, chooseDashboardLayout, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, composeDashboardLayers, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, conceptBuildStepTexts, connectorPath, contentBlock, countBlocks, countUpSpecFor, coverBlock, createAccentLayers, cssFilterForTreatment, cycleBlock, dashboardCanvasFill, dashboardCellAccent, dataSidecarPrefix, dataTable, dateEvent, definitionCard, deriveTemplateInputs, desiredCellZoom, detectAsciiDiagram, detectAsciiTimeline, detectPromotableBodyAnnotation, detectTree, diagramBlock, docToMarkdown, documentTitleFromFileName, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquoteText, extractBodyPlainText, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractHostedVideos, extractImages, extractListItems, extractRichListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, fitBigTextSize, fitDiagramLabel, flattenBlocks, flattenRenderableBlocks, formatCountUp, formatCountValue, frostedBigTextLayout, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDashboardLayoutSummaries, getDefaultAnimation, getDefaultAnimationDuration, getMotionProfile, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, guideText, hasBlockBuilds, hasTemplate, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isDataFilePath, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isGeometryBoundTemplate, isMaterializedMediaNode, isMediaAnnotationName, isPictureFence, isPictureParagraph, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layersBlock, layoutBlock, layoutCapacity, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, listDashboardLayouts, mapBlock, markdownBlockSeparatorLines, markdownToDoc, markerPath, materializeBlockLayers, materializeDashboard, materializeFlashcards, mediaOnly, motionDelay, motionEntrance, motionStateTransform, nearestSnapPoint, normalizeChartTable, normalizeDashboardZoom, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, parseStandaloneAnnotation, parseStatNumber, parseTree, parseWrappedFlowTimeline, parseYamlSubset, photoGrid, planContentBuilds, previewBlockTemplate, processBlock, pullQuote, quoteBlock, readCustomTemplatesFromFrontmatter, readCustomThemesFromFrontmatter, readDashboardLayoutsFromFrontmatter, renderAsciiDiagram, renderAsciiTimeline, renderMarkdownBlocksHtml, renderTree, repairAsciiDiagram, replaceDataFence, resolveAudioMapping, resolveBuildTimeline, resolveColorScheme, resolveCoverSlideSettings, resolveDashboardLayoutDefinition, resolveDashboardSettings, resolveDashboardStyleId, resolveDashboardZooms, resolveDataReferences, resolveDocBuildTiming, resolveFlashcardMarker, resolveLayoutCells, resolvePageBlock, resolvePersistentLayers, resolveTemplateName, resolveThemeForDoc, rightFeature, scaleAnimationDuration, scoreTextSimilarity, sectionExtractors, sectionHeader, shapePath, shouldUseShadow, snapEndpoints, snapPoints, splitConceptItem, statHighlight, stripBlockBackdropLayer, stripsBlockBackdrop, templateCatalog, templateRegistry, themeWantsAmbientMotion, themedEntrance, themedFontSize, themedImageTreatment, themedScrim, themedSurfaceGradient, timelineBlock, titleBlock, topFeature, transformOriginFor, transposeCells, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateDashboardLayoutDefinition, validateMarkdownDoc, validateMarkdownSource, videoPullQuote, videoWithCaption, wordRevealDelay, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter, writeDashboardLayoutsToFrontmatter };
5153
+ export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, AUTHORING_TRICKS, type AccentLayout, type ArrangeAsciiDiagramOptions, type AsciiDiagram, type AsciiDiagramDetection, type AsciiDiagramEdge, type AsciiDiagramNode, type AsciiTimeline, type AsciiTimelineDetection, type AsciiTimelineEvent, type AsciiTimelineLink, type AsciiTimelineMarker, type AsciiTimelineSide, type AsciiTimelineStats, type AsciiTimelineStyle, type AsciiTimelineTrack, type AudioSegmentTiming, type AuthoringTrick, type AuthoringTrickOptions, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BUILTIN_DASHBOARD_LAYOUTS, type BlockLayerMaterialization, type BlockMediaLayoutPolicy, type BuildPreviewDocOptions, type BuildTimeline, type BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, type ChartData, type ChartTableData, type ClipBox, type ConceptItem, ConceptTemplateName, type ConnectorAnchor, type ConnectorPort, type ConnectorRouting, type ConnectorSnapPoint, type ContentBuildPlan, type CoverBlockInput, type CoverSlidePlayback, type CoverSlideSettings, type CoverSlideTemplate, type CoverSlideTemplateOption, DASHBOARD_AUTO_LAYOUT_ID, DASHBOARD_FRONTMATTER_KEYS, DASHBOARD_STYLES, DASHBOARD_STYLE_IDS, DASHBOARD_ZOOM_LEVELS, DATA_FILE_EXTENSIONS, DEFAULT_COVER_SLIDE_SETTINGS, DEFAULT_DASHBOARD_SETTINGS, DEFAULT_DASHBOARD_STYLE, DEFAULT_LAYOUT, DEFAULT_WORD_STAGGER, DIAGRAM_LABEL_HORIZONTAL_PADDING, DIAGRAM_LABEL_LINE_HEIGHT, DIAGRAM_LABEL_MIN_FONT_SIZE, DIAGRAM_LABEL_VERTICAL_PADDING, type DashboardCell, type DashboardCellChrome, type DashboardCellDefinition, type DashboardCellFrame, type DashboardDiagnostic, type DashboardLayoutDefinition, type DashboardLayoutSummary, type DashboardLayoutValidationError, type DashboardLayoutValidationResult, type DashboardMaterialization, type DashboardRectPct, type DashboardSettings, type DashboardSettingsOverrides, type DashboardStyleId, type DashboardStyleSummary, type DashboardTitle, type DashboardTitleSlotDefinition, type DashboardZoomCandidate, type DashboardZoomLevel, type DashboardZoomMode, type DataFenceParseResult, type DataSourceReadOptions, type DataSourceReader, type DataSourceStats, type DataSourceTable, type DeriveTemplateInputsOptions, type DetectAsciiTimelineOptions, type DiagramEdge, type DiagramLabelFit, type DiagramLayout, type DiagramLayoutOptions, type DiagramNodePosition, DocBlock, type DrawingConnector, type DrawingLayout, type DrawingLayoutOptions, type DrawingShape, type DrawingShapeKind, type EmbeddedVideo, type ExpandDocBlocksOptions, type ExtractedTableData, FRONTMATTER_DASHBOARD_LAYOUTS_KEY, type FirstImage, type Flashcard, type FlashcardChoice, type FlashcardDeck, type FlashcardDiagnostic, type FlashcardDiagnosticCode, type FlashcardFace, type FlashcardKind, type FlashcardSourceMode, type FrostedBigTextLayout, GEOMETRY_BOUND_TEMPLATES, type GuideWording, type GuidedTemplate, type HostedVideo, type InputCoercion, type LayerMaterializationDiagnostic, type LayerMaterializationFailureMode, type LayerMaterializationSource, type LayoutLayerDefaults, type LayoutLayersResult, MARKDOWN_SHAPE_EXAMPLES, MAX_COVER_SLIDE_DURATION_SECONDS, type MarkdownShapeExample, type MarkdownToDocOptions, type MarkdownValidationResult, type MaterializeBlockLayersOptions, type MaterializeDashboardOptions, type MaterializeFlashcardsOptions, type MatrixReading, type NarrationResolution, type NativeMediaLayout, type NoMediaLayout, PAGE_BASE_CSS, PATH_SHAPE_KINDS, PRESENTATION_LAYOUT_GUIDE, PRESENTATION_LAYOUT_LABELS, PageSection, type PageSectionContext, type PageSectionDraft, type ParsedAnnotation, type ParsedStat, PersistentLayerConfig, type PromotableDetection, type RenderAsciiDiagramOptions, type RenderAsciiTimelineOptions, type RenderTreeOptions, type RepairResult, type ResolveDataReferencesOptions, type ResolvedDashboardCell, type ResolvedDataReferences, type ResolvedPageBlock, type RichListItem, type RuntimeTemplateRegistry, SHAPE_NAMES, type SectionExtractor, type StatItem, type SupplementalMediaLayoutVariant, type SupplementalMediaShape, type SupplementalMediaVariantMatrix, TABLE_FED_TEMPLATES, TEMPLATE_AUTHORING_METADATA, TEMPLATE_GUIDES, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, type TemplateAuthoringMetadata, type TemplateAuthoringRole, TemplateBlock, type TemplateBodyPolicy, type TemplateCatalogEntry, TemplateContext, type TemplateGuide, type TemplateInputDescriptor, type TemplateMediaOwnership, type TemplateMetadata, type TemplateParamFinding, Theme, ThemeColorScheme, type Tree, type TreeDetection, type TreeItem, type TreeNode, type UnconsumedMediaBehavior, type ValidateOptions, ViewportConfig, ViewportOrientation, accentForViewport, adjustY, anchorPoint, applyNarrationTiming, applyRenderStyleToLayers, arrangeAsciiDiagram, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, authoringTricks, autoTemplatePreservesContent, bigText, blockBuildSteps, bottomFeature, buildChartData, buildCursorAtTime, buildDashboardCellChrome, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, buildSourceText, buildTargetState, canvasToAsciiCell, cardsBlock, chooseDashboardLayout, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, composeDashboardLayers, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, conceptBuildStepTexts, connectorPath, contentBlock, countBlocks, countUpSpecFor, coverBlock, coverRepeatsLeadingBlock, createAccentLayers, cssFilterForTreatment, cycleBlock, dashboardCanvasFill, dashboardCellAccent, dataSidecarPrefix, dataTable, dateEvent, definitionCard, deriveTemplateInputs, desiredCellZoom, detectAsciiDiagram, detectAsciiTimeline, detectPromotableBodyAnnotation, detectTree, diagramBlock, docToMarkdown, documentTitleFromFileName, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquote, extractBlockquoteText, extractBodyPlainText, extractConceptItems, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractHostedVideos, extractImages, extractListItems, extractRichListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, fitBigTextSize, fitDiagramLabel, flattenBlocks, flattenRenderableBlocks, formatCountUp, formatCountValue, frostedBigTextLayout, fullBleedQuote, funnelBlock, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDashboardLayoutSummaries, getDefaultAnimation, getDefaultAnimationDuration, getMotionProfile, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, guideText, hasBlockBuilds, hasTemplate, hubBlock, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isDataFilePath, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isFigureText, isGeometryBoundTemplate, isMaterializedMediaNode, isMediaAnnotationName, isPictureFence, isPictureParagraph, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layersBlock, layoutBlock, layoutCapacity, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, listDashboardLayouts, mapBlock, markdownBlockSeparatorLines, markdownShapeExample, markdownShapeGuide, markdownShapeSummary, markdownToDoc, markerPath, materializeBlockLayers, materializeDashboard, materializeFlashcards, matrixBlock, mediaOnly, motionDelay, motionEntrance, motionStateTransform, nearestSnapPoint, normalizeChartTable, normalizeDashboardZoom, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, parseStandaloneAnnotation, parseStatNumber, parseTree, parseWrappedFlowTimeline, parseYamlSubset, photoGrid, planContentBuilds, previewBlockTemplate, processBlock, pullQuote, pyramidBlock, quoteBlock, readCustomTemplatesFromFrontmatter, readCustomThemesFromFrontmatter, readDashboardLayoutsFromFrontmatter, readMatrixItems, renderAsciiDiagram, renderAsciiTimeline, renderMarkdownBlocksHtml, renderTree, repairAsciiDiagram, replaceDataFence, resolveAudioMapping, resolveBuildTimeline, resolveColorScheme, resolveCoverSlideSettings, resolveDashboardLayoutDefinition, resolveDashboardSettings, resolveDashboardStyleId, resolveDashboardZooms, resolveDataReferences, resolveDocBuildTiming, resolveFlashcardMarker, resolveLayoutCells, resolvePageBlock, resolvePersistentLayers, resolveTemplateName, resolveThemeForDoc, rightFeature, scaleAnimationDuration, scoreTextSimilarity, sectionExtractors, sectionHeader, shapePath, shouldUseShadow, snapEndpoints, snapPoints, splitConceptItem, splitStatItem, statHighlight, statsBlock, stripBlockBackdropLayer, stripsBlockBackdrop, templateCatalog, templateRegistry, themeWantsAmbientMotion, themedEntrance, themedFontSize, themedImageTreatment, themedScrim, themedSurfaceGradient, timelineBlock, titleBlock, topFeature, transformOriginFor, transposeCells, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateDashboardLayoutDefinition, validateMarkdownDoc, validateMarkdownSource, vennBlock, vennOverlapIndex, videoPullQuote, videoWithCaption, wordRevealDelay, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter, writeDashboardLayoutsToFrontmatter };