@bendyline/squisq 2.13.14 → 2.13.16

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 (43) hide show
  1. package/dist/{Doc-BhvotZx_.d.ts → Doc-DLfTam0R.d.ts} +82 -6
  2. package/dist/{ImageEditDoc-D8hYio6b.d.ts → ImageEditDoc-DdSHb6sj.d.ts} +1 -1
  3. package/dist/{chunk-YQQWE4HG.js → chunk-33CAD575.js} +200 -262
  4. package/dist/{chunk-L7QZORLB.js → chunk-37RLFDIT.js} +11 -4
  5. package/dist/chunk-4R3YZTPX.js +42 -0
  6. package/dist/{chunk-DBVCSVNV.js → chunk-A4ZFYGU6.js} +13 -38
  7. package/dist/{chunk-CTT4XAGO.js → chunk-BG2OYBGC.js} +2534 -737
  8. package/dist/{chunk-2SRF5III.js → chunk-BVL3F64S.js} +1 -1
  9. package/dist/chunk-C7DKMO4H.js +88 -0
  10. package/dist/{chunk-SGNWO7OF.js → chunk-MA7XUCSQ.js} +517 -30
  11. package/dist/{chunk-JSGIWW35.js → chunk-MTIR5PWF.js} +1 -1
  12. package/dist/{chunk-C4SB3NN4.js → chunk-NBDF6SQ5.js} +22 -2
  13. package/dist/chunk-TOPEP5B7.js +515 -0
  14. package/dist/{chunk-OIQ2GO2O.js → chunk-TXN23SG2.js} +1 -1
  15. package/dist/{chunk-7MS26OXD.js → chunk-UDPPWYYM.js} +6 -0
  16. package/dist/{chunk-J2G6EOEJ.js → chunk-XY5Z23C4.js} +75 -16
  17. package/dist/{chunk-5DFFVW75.js → chunk-Z73DG6IL.js} +1 -1
  18. package/dist/doc/index.d.ts +412 -26
  19. package/dist/doc/index.js +66 -11
  20. package/dist/fence/index.d.ts +1 -1
  21. package/dist/generate/index.d.ts +1 -1
  22. package/dist/imageEdit/index.d.ts +3 -3
  23. package/dist/index.d.ts +9 -9
  24. package/dist/index.js +147 -29
  25. package/dist/jsonForm/index.d.ts +1 -1
  26. package/dist/jsonForm/index.js +5 -4
  27. package/dist/markdown/index.js +3 -3
  28. package/dist/{materializePageSection-CWxou4mX.d.ts → materializePageSection-HIoRYiZu.d.ts} +121 -8
  29. package/dist/mediaEdit/index.d.ts +154 -3
  30. package/dist/mediaEdit/index.js +241 -2
  31. package/dist/narration/index.d.ts +1 -1
  32. package/dist/narration/index.js +7 -5
  33. package/dist/recommend/index.d.ts +129 -2
  34. package/dist/recommend/index.js +13 -4
  35. package/dist/schemas/index.d.ts +26 -7
  36. package/dist/schemas/index.js +14 -8
  37. package/dist/{themeLibrary-BIYE6aLw.d.ts → themeLibrary-B2K-aAOy.d.ts} +1 -1
  38. package/dist/timing/index.d.ts +66 -2
  39. package/dist/timing/index.js +12 -0
  40. package/dist/transform/index.d.ts +173 -16
  41. package/dist/transform/index.js +58 -17
  42. package/package.json +1 -1
  43. package/dist/chunk-FCB6JLWB.js +0 -125
@@ -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, at as MediaCut, au as MediaEdits, 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-DLfTam0R.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-DLfTam0R.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-HIoRYiZu.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-HIoRYiZu.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-B2K-aAOy.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
  *
@@ -2475,6 +2745,10 @@ interface EmbeddedVideo {
2475
2745
  /** Source-media in/out points carried by inline video data attributes. */
2476
2746
  clipStart?: number;
2477
2747
  clipEnd?: number;
2748
+ /** Source ranges the clip's edit recipe removes (`data-squisq-video-cuts`). */
2749
+ cuts?: MediaCut[];
2750
+ /** The clip's whole edit recipe (`data-squisq-video-*`), when it has one. */
2751
+ edits?: MediaEdits;
2478
2752
  }
2479
2753
  /** A hosted video (YouTube, Vimeo, …) a block body stands for. */
2480
2754
  interface HostedVideo {
@@ -2499,12 +2773,22 @@ declare function extractHostedVideos(contents: readonly MarkdownBlockNode[] | un
2499
2773
  * captions and reading time must not speak diagram source or SVG markup.
2500
2774
  */
2501
2775
  declare function isPictureFence(node: MarkdownNode): boolean;
2776
+ /**
2777
+ * A fence the author tagged ```diagram, ```tree or ```timeline whose art
2778
+ * parses: `appendRichContentLayers` draws it as its own picture beside the
2779
+ * block's words. Its source is box-drawing and marker art (`● Start {#start}
2780
+ * ─────●`), so as prose it would print on the slide next to the picture it
2781
+ * became and be read aloud by narration. An untagged fence stays code; one
2782
+ * whose art does not parse stays visible rather than disappearing.
2783
+ */
2784
+ declare function isSpatialPictureFence(node: MarkdownNode): boolean;
2502
2785
  /**
2503
2786
  * Body nodes that render as their own visual layer rather than as prose: a
2504
- * picture fence ({@link isPictureFence}), a hosted-video paragraph and a
2505
- * standalone `<video>` (players, via `appendRichContentLayers`). Repeating
2506
- * them as body text would print the diagram source, the video's link or its
2507
- * raw tag under the very thing they became.
2787
+ * picture fence ({@link isPictureFence}), a tagged diagram, tree or timeline
2788
+ * ({@link isSpatialPictureFence}), a hosted-video paragraph and a standalone
2789
+ * `<video>` (players, via `appendRichContentLayers`). Repeating them as body
2790
+ * text would print the diagram source, the video's link or its raw tag under
2791
+ * the very thing they became.
2508
2792
  */
2509
2793
  declare function isMaterializedMediaNode(node: MarkdownBlockNode): boolean;
2510
2794
  /**
@@ -2518,6 +2802,13 @@ declare function isPictureParagraph(node: MarkdownBlockNode): boolean;
2518
2802
  declare function extractBodyPlainText(contents?: MarkdownBlockNode[]): string;
2519
2803
  /** Extract list items as plain text. */
2520
2804
  declare function extractListItems(contents?: MarkdownBlockNode[]): string[];
2805
+ /**
2806
+ * List items as the ideas of a concept block. An item with sub-items reads as
2807
+ * `Label: detail`: its own words are the label and its sub-items the detail
2808
+ * ("Discover" over "Interview customers; Review existing data"), so a nested
2809
+ * list draws as labelled ideas instead of one run-on line.
2810
+ */
2811
+ declare function extractConceptItems(contents?: MarkdownBlockNode[]): string[];
2521
2812
  /** One authored Markdown list item with both plain and rich projections. */
2522
2813
  interface RichListItem {
2523
2814
  text: string;
@@ -2572,8 +2863,22 @@ declare function extractTableFromContents(contents?: MarkdownBlockNode[]): {
2572
2863
  rows: string[][];
2573
2864
  align?: (('left' | 'right' | 'center') | null)[];
2574
2865
  } | null;
2575
- /** First blockquote's plain text, or ''. */
2866
+ /**
2867
+ * First blockquote's plain text, or ''. Its paragraphs are joined by a
2868
+ * space: read straight off the tree they ran together ("…moved on.— Ada").
2869
+ */
2576
2870
  declare function extractBlockquoteText(contents?: MarkdownBlockNode[]): string;
2871
+ /**
2872
+ * The first blockquote as what was said and who said it. Markdown has no
2873
+ * syntax for an attribution, so authors write the convention: a last line (or
2874
+ * the end of the last line) that opens with a dash. Read as part of the
2875
+ * quote, it was set in the quote's own type and then repeated beneath it by
2876
+ * a template's `attribution`.
2877
+ */
2878
+ declare function extractBlockquote(contents?: MarkdownBlockNode[]): {
2879
+ text: string;
2880
+ attribution?: string;
2881
+ };
2577
2882
  interface DeriveTemplateInputsOptions {
2578
2883
  /**
2579
2884
  * Return visible placeholder values instead of `null` when an essential
@@ -2618,6 +2923,63 @@ declare function deriveTemplateInputs(templateName: string, headingText: string,
2618
2923
  */
2619
2924
  declare function coverRepeatsLeadingBlock(doc: Doc): boolean;
2620
2925
 
2926
+ /**
2927
+ * A block's video sets the floor on its length.
2928
+ *
2929
+ * `markdownToDoc` estimates a block's duration from its text. That is right
2930
+ * for prose and wrong for a slide that is a short caption over a clip: a
2931
+ * heading, a line of text and a 1:40 screen recording read in three seconds,
2932
+ * so the slide advanced — and its video, whose out-point is the block's end,
2933
+ * stopped — three seconds in. A video plays to its own length, so the block's
2934
+ * duration is at least the longest video it plays, measured from the block's
2935
+ * start (a `startAt` delay counts) through the clip's played length (trim
2936
+ * window minus cuts).
2937
+ *
2938
+ * ## Which videos count
2939
+ *
2940
+ * - Video in the block's body: a `<video>` tag, or a markdown link/image to a
2941
+ * video file (what {@link extractEmbeddedVideos} finds).
2942
+ * - Video clips anchored to the block (`block.media`) that stop at its end —
2943
+ * not `spillover` clips (they run past the block on purpose) and not
2944
+ * unlocked clips (`lockToBlock: false`; those are document-timed).
2945
+ *
2946
+ * Audio does not count: a block over a long music bed should not hold for the
2947
+ * whole track.
2948
+ *
2949
+ * ## Where a video's length comes from
2950
+ *
2951
+ * An authored out-point (`data-squisq-video-clip-end` / `clipEnd=`) is enough
2952
+ * on its own. Otherwise the length is the media file's, which the pure model
2953
+ * cannot read: hosts that can (a browser decoding the file's metadata) pass a
2954
+ * {@link VideoDurationLookup}. Without either, the video sets no floor and the
2955
+ * block keeps its text estimate.
2956
+ *
2957
+ * ## Precedence
2958
+ *
2959
+ * An author-pinned `duration=` wins outright. Recorded narration
2960
+ * (`applyNarrationTiming`, run later by `resolveAudioMapping`) overwrites the
2961
+ * blocks it times. Below both, a block lasts the longer of its reading time and
2962
+ * its video.
2963
+ */
2964
+
2965
+ /**
2966
+ * A media file's own length in seconds, keyed by the `src` the document
2967
+ * names it with. Return undefined when the length is not known (yet).
2968
+ */
2969
+ type VideoDurationLookup = (src: string) => number | undefined;
2970
+ /**
2971
+ * The shortest duration that lets every video in `block` play to its end, or
2972
+ * null when the block plays no video of known length. Ignores the block's own
2973
+ * duration and any pin — callers decide whether the floor applies.
2974
+ */
2975
+ declare function blockVideoLength(block: Block, lookup?: VideoDurationLookup): number | null;
2976
+ /**
2977
+ * The video sources in `doc` whose length only the media file can tell — those
2978
+ * with no authored out-point — in document order, without duplicates. A host
2979
+ * measures these and passes the results to `applyVideoDurations`.
2980
+ */
2981
+ declare function collectVideoDurationSources(doc: Doc): string[];
2982
+
2621
2983
  /**
2622
2984
  * Markdown → Doc Conversion
2623
2985
  *
@@ -2685,8 +3047,15 @@ interface MarkdownToDocOptions {
2685
3047
  * instead of the structural `defaultTemplate`. Explicit `{[template]}`
2686
3048
  * annotations always win. Authors can also disable per document with
2687
3049
  * frontmatter `squisq-auto-templates: false`.
3050
+ *
3051
+ * A list is drawn as what it is a picture of when its shape is clear
3052
+ * (`classifyListShape`): a numbered list as a `process`, dated items as a
3053
+ * timeline, `Label: detail` items as `cards`, figures as `stats`, and a
3054
+ * heading that says so as a `cycle`, `layers`, a `pyramid`, a `funnel`, a
3055
+ * `hub`, a `venn` or a `matrix`. `'structural'` (frontmatter
3056
+ * `squisq-auto-templates: structural`) keeps every list a plain `list`.
2688
3057
  */
2689
- autoTemplates?: boolean;
3058
+ autoTemplates?: boolean | 'structural';
2690
3059
  }
2691
3060
  /**
2692
3061
  * Public accessor for {@link pinnedMeta}: the timing/meta values an author
@@ -2697,6 +3066,23 @@ interface MarkdownToDocOptions {
2697
3066
  */
2698
3067
  declare function getPinnedBlockMeta(block: Block): CoercedBlockMeta;
2699
3068
  declare function markdownToDoc(markdownDoc: MarkdownDocument, options?: MarkdownToDocOptions): Doc;
3069
+ /**
3070
+ * Hold each block open for the videos it plays, using media lengths the pure
3071
+ * conversion could not know (see `doc/videoTiming.ts`). `markdownToDoc`
3072
+ * already floors blocks with an authored out-point; this adds the files'
3073
+ * own lengths — typically measured in a browser — and re-lays the timeline
3074
+ * (start times, caption phrases, document-timed videos, `doc.duration`)
3075
+ * exactly as conversion does.
3076
+ *
3077
+ * Run it on `markdownToDoc` output, BEFORE `resolveAudioMapping`: recorded
3078
+ * narration then re-times the blocks it covers and keeps precedence, and the
3079
+ * re-layout here cannot disturb it. A block with a pinned `duration=` keeps it.
3080
+ *
3081
+ * Pure: returns `doc` itself when no block needs to grow (so memoized
3082
+ * consumers see no change), otherwise a new Doc whose block tree is copied —
3083
+ * the input is never mutated.
3084
+ */
3085
+ declare function applyVideoDurations(doc: Doc, lookup: VideoDurationLookup): Doc;
2700
3086
  /**
2701
3087
  * Flatten a nested block tree into a depth-first ordered array.
2702
3088
  * Useful for calculating sequential timing or iterating all blocks.
@@ -4852,4 +5238,4 @@ declare function treeFromMarkdownList(list: MarkdownList): Tree;
4852
5238
  /** Find the first top-level markdown list in a block's body, if any. */
4853
5239
  declare function findFirstList(contents: MarkdownBlockNode[] | undefined): MarkdownList | undefined;
4854
5240
 
4855
- 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, coverRepeatsLeadingBlock, 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 };
5241
+ 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, type VideoDurationLookup, ViewportConfig, ViewportOrientation, accentForViewport, adjustY, anchorPoint, applyNarrationTiming, applyRenderStyleToLayers, applyVideoDurations, arrangeAsciiDiagram, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, authoringTricks, autoTemplatePreservesContent, bigText, blockBuildSteps, blockVideoLength, bottomFeature, buildChartData, buildCursorAtTime, buildDashboardCellChrome, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, buildSourceText, buildTargetState, canvasToAsciiCell, cardsBlock, chooseDashboardLayout, clipEndpoints, clipPoint, coerceTemplateParams, collectVideoDurationSources, 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, isSpatialPictureFence, 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 };