@bendyline/squisq 2.11.20 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/{Doc-B6TYHYGc.d.ts → Doc-DIdmgDsV.d.ts} +22 -24
  2. package/dist/{ImageEditDoc-CN_3Ysj5.d.ts → ImageEditDoc-DXQMA6qH.d.ts} +1 -1
  3. package/dist/{annotationCoercion-BgL52343.d.ts → annotationCoercion-TxFucMtA.d.ts} +6 -15
  4. package/dist/{chunk-3XEABCT3.js → chunk-3H7SYCZS.js} +19 -0
  5. package/dist/{chunk-5F7AO4S5.js → chunk-3Z2NGHLI.js} +1 -1
  6. package/dist/{chunk-A5QJJZ5S.js → chunk-B3AFOXMA.js} +1 -1
  7. package/dist/{chunk-4KTLKEIY.js → chunk-FUBMT6SJ.js} +3 -3
  8. package/dist/{chunk-Y4OZ5DSG.js → chunk-H54A35NZ.js} +2 -2
  9. package/dist/{chunk-PFH3WV6J.js → chunk-I4L4GYDN.js} +1 -1
  10. package/dist/{chunk-QFC4JZZH.js → chunk-K2PZMWQ5.js} +38 -8
  11. package/dist/{chunk-4VOD55SX.js → chunk-M6YXFNGO.js} +37 -0
  12. package/dist/{chunk-7WN7DDMI.js → chunk-QHNO67JS.js} +1 -1
  13. package/dist/{chunk-KCD3SH5Z.js → chunk-RPPUCFRW.js} +65 -8
  14. package/dist/{chunk-K2Z7K65P.js → chunk-VTG7PNOL.js} +2 -2
  15. package/dist/{chunk-UWLEDXSU.js → chunk-W45PAVYE.js} +4359 -4111
  16. package/dist/{chunk-GB7OFYUK.js → chunk-WAX4QYHA.js} +6 -1
  17. package/dist/{chunk-PSC3KZEK.js → chunk-YA74HTAB.js} +1 -1
  18. package/dist/{chunk-WSFXV5BT.js → chunk-ZYWYSM6W.js} +105 -74
  19. package/dist/doc/index.d.ts +46 -29
  20. package/dist/doc/index.js +27 -11
  21. package/dist/fence/index.d.ts +2 -2
  22. package/dist/generate/index.d.ts +2 -2
  23. package/dist/imageEdit/index.d.ts +4 -4
  24. package/dist/imageEdit/index.js +2 -2
  25. package/dist/index.d.ts +7 -7
  26. package/dist/index.js +46 -16
  27. package/dist/jsonForm/index.d.ts +2 -2
  28. package/dist/jsonForm/index.js +4 -4
  29. package/dist/markdown/index.d.ts +3 -3
  30. package/dist/markdown/index.js +5 -5
  31. package/dist/{materializePageSection-IYXU3tDN.d.ts → materializePageSection-C33MgcDg.d.ts} +2 -2
  32. package/dist/mediaEdit/index.d.ts +3 -3
  33. package/dist/narration/index.d.ts +4 -18
  34. package/dist/narration/index.js +9 -9
  35. package/dist/recommend/index.d.ts +1 -1
  36. package/dist/recommend/index.js +2 -2
  37. package/dist/schemas/index.d.ts +5 -5
  38. package/dist/schemas/index.js +17 -3
  39. package/dist/{themeLibrary-_46saKYO.d.ts → themeLibrary-BaDfxgzt.d.ts} +1 -1
  40. package/dist/timing/index.d.ts +2 -2
  41. package/dist/transform/index.d.ts +4 -5
  42. package/dist/transform/index.js +9 -9
  43. package/dist/{types-C6VvDDL2.d.ts → types-BmEHcL3l.d.ts} +42 -1
  44. package/package.json +1 -1
  45. package/dist/{chunk-Q6ELOAOQ.js → chunk-NNJA7ICB.js} +17 -17
@@ -15,7 +15,10 @@ import {
15
15
  relativeLuminance,
16
16
  resolveFontFamily,
17
17
  withAlpha
18
- } from "./chunk-PFH3WV6J.js";
18
+ } from "./chunk-I4L4GYDN.js";
19
+ import {
20
+ parseBuildSpec
21
+ } from "./chunk-M6YXFNGO.js";
19
22
 
20
23
  // src/schemas/Doc.ts
21
24
  function calculateDuration(audio) {
@@ -114,6 +117,8 @@ function validateBlocks(values, path, issues) {
114
117
  optionalFiniteNumber(block, "sourceCharOffset", `${blockPath}.sourceCharOffset`, issues, {
115
118
  min: 0
116
119
  });
120
+ if (block.build !== void 0 && !parseBuildSpec(block.build))
121
+ add(issues, `${blockPath}.build`, "must be a valid build specification", block.build);
117
122
  optionalString(block, "template", `${blockPath}.template`, issues);
118
123
  optionalString(block, "title", `${blockPath}.title`, issues);
119
124
  optionalBoolean(block, "autoTemplate", `${blockPath}.autoTemplate`, issues);
@@ -11,7 +11,7 @@ import {
11
11
  bytesToBase64,
12
12
  markerPath,
13
13
  shapePath
14
- } from "./chunk-4KTLKEIY.js";
14
+ } from "./chunk-FUBMT6SJ.js";
15
15
 
16
16
  // src/imageEdit/state.ts
17
17
  var IMAGE_EDIT_STATE_FILENAME = "state.json";
@@ -1,83 +1,23 @@
1
1
  import {
2
2
  videoEmbedFromIframe,
3
3
  videoEmbedIframeAttributes
4
- } from "./chunk-Q6ELOAOQ.js";
4
+ } from "./chunk-NNJA7ICB.js";
5
5
  import {
6
+ BUILD_EFFECTS,
7
+ BUILD_MODES,
8
+ BUILD_PREVIOUS,
6
9
  TRANSITION_DIRECTIONS,
7
10
  TRANSITION_TYPES,
8
11
  normalizeTransitionDirection,
9
12
  normalizeTransitionType
10
- } from "./chunk-4VOD55SX.js";
11
-
12
- // src/doc/templates/templateNames.ts
13
- var TEMPLATE_ALIASES = Object.freeze({
14
- titleBlock: "title",
15
- quoteBlock: "quote",
16
- mapBlock: "map",
17
- listBlock: "list",
18
- diagramBlock: "diagram",
19
- diagramNode: "diagram"
20
- });
21
- function resolveTemplateName(name) {
22
- return TEMPLATE_ALIASES[name] ?? name;
23
- }
24
- var TABLE_FED_TEMPLATES = /* @__PURE__ */ new Set([
25
- "dataTable",
26
- "barChart",
27
- "columnChart",
28
- "pieChart",
29
- "donutChart",
30
- "lineChart",
31
- "areaChart",
32
- "scatterChart"
33
- ]);
34
- var CONTAINER_TEMPLATES = /* @__PURE__ */ new Set(["diagram", "drawing", "layout"]);
35
- function isContainerTemplate(name) {
36
- return !!name && CONTAINER_TEMPLATES.has(resolveTemplateName(name));
37
- }
38
- var TEMPLATE_TOKEN_NAMES = /* @__PURE__ */ new Set([
39
- "title",
40
- "sectionHeader",
41
- "bigText",
42
- "transcript",
43
- "content",
44
- "statHighlight",
45
- "quote",
46
- "factCard",
47
- "twoColumn",
48
- "dateEvent",
49
- "imageWithCaption",
50
- "leftFeature",
51
- "rightFeature",
52
- "map",
53
- "fullBleedQuote",
54
- "list",
55
- "photoGrid",
56
- "definitionCard",
57
- "comparisonBar",
58
- "pullQuote",
59
- "videoWithCaption",
60
- "videoPullQuote",
61
- "dataTable",
62
- "barChart",
63
- "columnChart",
64
- "pieChart",
65
- "donutChart",
66
- "lineChart",
67
- "areaChart",
68
- "scatterChart",
69
- "diagram",
70
- "tree",
71
- "timeline",
72
- "layout",
73
- "drawing"
74
- ]);
75
- function isReservedAnnotationToken(token) {
76
- return TEMPLATE_TOKEN_NAMES.has(resolveTemplateName(token));
77
- }
13
+ } from "./chunk-M6YXFNGO.js";
78
14
 
79
15
  // src/markdown/annotationCoercion.ts
80
16
  var KNOWN_BLOCK_META_KEYS = {
17
+ build: "build",
18
+ buildEffect: "buildEffect",
19
+ buildDuration: "time",
20
+ buildPrevious: "buildPrevious",
81
21
  x: "number",
82
22
  y: "number",
83
23
  startTime: "time",
@@ -88,6 +28,18 @@ var KNOWN_BLOCK_META_KEYS = {
88
28
  transitionDirection: "transitionDirection"
89
29
  };
90
30
  var BLOCK_META_KEY_DESCRIPTORS = [
31
+ { key: "build", description: "Progressive reveal grouping", values: BUILD_MODES },
32
+ { key: "buildEffect", description: "Build entrance effect", values: BUILD_EFFECTS },
33
+ {
34
+ key: "buildDuration",
35
+ description: "Build entrance duration",
36
+ valueHint: "seconds \u2014 e.g. 0.4, 400ms"
37
+ },
38
+ {
39
+ key: "buildPrevious",
40
+ description: "Appearance of previous build steps",
41
+ values: BUILD_PREVIOUS
42
+ },
91
43
  {
92
44
  key: "transition",
93
45
  description: "Block-to-block transition effect",
@@ -133,6 +85,7 @@ function coerceAnnotationValues(params) {
133
85
  const blockMeta = {};
134
86
  const metadata = {};
135
87
  const warnings = [];
88
+ const build = {};
136
89
  let transitionType = null;
137
90
  let transitionDuration;
138
91
  let transitionDirection;
@@ -153,11 +106,21 @@ function coerceAnnotationValues(params) {
153
106
  const s = parseTimeSeconds(raw);
154
107
  if (s == null) {
155
108
  warnings.push(`Invalid time for "${key}": ${JSON.stringify(raw)}`);
109
+ } else if (key === "buildDuration") {
110
+ if (s < 0) warnings.push("Build duration must be non-negative.");
111
+ else build.duration = s;
156
112
  } else if (key === "transitionDuration") {
157
113
  transitionDuration = s;
158
114
  } else {
159
115
  blockMeta[key] = s;
160
116
  }
117
+ } else if (kind === "build" || kind === "buildEffect" || kind === "buildPrevious") {
118
+ const values = kind === "build" ? BUILD_MODES : kind === "buildEffect" ? BUILD_EFFECTS : BUILD_PREVIOUS;
119
+ if (!values.includes(raw))
120
+ warnings.push(`Invalid value for "${key}": ${JSON.stringify(raw)}`);
121
+ else if (kind === "build") build.mode = raw;
122
+ else if (kind === "buildEffect") build.effect = raw;
123
+ else build.previous = raw;
161
124
  } else if (kind === "connectionList") {
162
125
  const { list, warning } = parseConnectionList(raw);
163
126
  if (warning) warnings.push(`"${key}": ${warning}`);
@@ -178,6 +141,7 @@ function coerceAnnotationValues(params) {
178
141
  }
179
142
  }
180
143
  }
144
+ if (build.mode) blockMeta.build = { ...build, mode: build.mode };
181
145
  if (transitionType) {
182
146
  blockMeta.transition = {
183
147
  type: transitionType,
@@ -250,6 +214,73 @@ function parseConnectionList(raw) {
250
214
  };
251
215
  }
252
216
 
217
+ // src/doc/templates/templateNames.ts
218
+ var TEMPLATE_ALIASES = Object.freeze({
219
+ titleBlock: "title",
220
+ quoteBlock: "quote",
221
+ mapBlock: "map",
222
+ listBlock: "list",
223
+ diagramBlock: "diagram",
224
+ diagramNode: "diagram"
225
+ });
226
+ function resolveTemplateName(name) {
227
+ return TEMPLATE_ALIASES[name] ?? name;
228
+ }
229
+ var TABLE_FED_TEMPLATES = /* @__PURE__ */ new Set([
230
+ "dataTable",
231
+ "barChart",
232
+ "columnChart",
233
+ "pieChart",
234
+ "donutChart",
235
+ "lineChart",
236
+ "areaChart",
237
+ "scatterChart"
238
+ ]);
239
+ var CONTAINER_TEMPLATES = /* @__PURE__ */ new Set(["diagram", "drawing", "layout"]);
240
+ function isContainerTemplate(name) {
241
+ return !!name && CONTAINER_TEMPLATES.has(resolveTemplateName(name));
242
+ }
243
+ var TEMPLATE_TOKEN_NAMES = /* @__PURE__ */ new Set([
244
+ "title",
245
+ "sectionHeader",
246
+ "bigText",
247
+ "transcript",
248
+ "content",
249
+ "statHighlight",
250
+ "quote",
251
+ "factCard",
252
+ "twoColumn",
253
+ "dateEvent",
254
+ "imageWithCaption",
255
+ "leftFeature",
256
+ "rightFeature",
257
+ "map",
258
+ "fullBleedQuote",
259
+ "list",
260
+ "photoGrid",
261
+ "definitionCard",
262
+ "comparisonBar",
263
+ "pullQuote",
264
+ "videoWithCaption",
265
+ "videoPullQuote",
266
+ "dataTable",
267
+ "barChart",
268
+ "columnChart",
269
+ "pieChart",
270
+ "donutChart",
271
+ "lineChart",
272
+ "areaChart",
273
+ "scatterChart",
274
+ "diagram",
275
+ "tree",
276
+ "timeline",
277
+ "layout",
278
+ "drawing"
279
+ ]);
280
+ function isReservedAnnotationToken(token) {
281
+ return TEMPLATE_TOKEN_NAMES.has(resolveTemplateName(token));
282
+ }
283
+
253
284
  // src/markdown/sanitize.ts
254
285
  var SAFE_LINK_SCHEMES = /* @__PURE__ */ new Set(["http", "https", "mailto", "tel"]);
255
286
  var SAFE_MEDIA_SCHEMES = /* @__PURE__ */ new Set(["http", "https", "blob"]);
@@ -602,17 +633,17 @@ function serializeAnnotation(template, params) {
602
633
  }
603
634
 
604
635
  export {
636
+ KNOWN_BLOCK_META_KEYS,
637
+ BLOCK_META_KEY_DESCRIPTORS,
638
+ coerceAnnotationValues,
639
+ parseNumber,
640
+ parseTimeSeconds,
605
641
  TEMPLATE_ALIASES,
606
642
  resolveTemplateName,
607
643
  TABLE_FED_TEMPLATES,
608
644
  CONTAINER_TEMPLATES,
609
645
  isContainerTemplate,
610
646
  isReservedAnnotationToken,
611
- KNOWN_BLOCK_META_KEYS,
612
- BLOCK_META_KEY_DESCRIPTORS,
613
- coerceAnnotationValues,
614
- parseNumber,
615
- parseTimeSeconds,
616
647
  sanitizeUrl,
617
648
  sanitizeHtmlNodes,
618
649
  matchTrailingTemplateAnnotation,
@@ -1,12 +1,45 @@
1
- import { bq as TemplateBlock, br as TemplateContext, a6 as Layer, y as CustomTemplateDefinition, bt as TemplateRegistry, bw as Theme, c0 as ViewportConfig, a_ as PersistentLayerConfig, at as MotionSpec, R as DocBlock, c1 as ViewportOrientation, aZ as PersistentLayer, bJ as TitleBlockInput, bf as SectionHeaderInput, j as BigTextInput, u as ContentBlockInput, bl as StatHighlightInput, b9 as QuoteBlockInput, Y as FactCardInput, bR as TwoColumnInput, J as DateEventInput, a4 as ImageWithCaptionInput, a9 as LeftFeatureInput, bc as RightFeatureInput, ae as MapBlockInput, bk as StartBlockConfig, $ as FullBleedQuoteInput, ac as ListBlockInput, b2 as PhotoGridInput, L as DefinitionCardInput, t as ComparisonBarInput, b8 as PullQuoteInput, b$ as VideoWithCaptionInput, b_ as VideoPullQuoteInput, I as DataTableInput, M as DiagramBlockInput, bM as TreeBlockInput, bF as TimelineBlockInput, k as Block, U as DrawingBlockInput, ai as MarkerStyle, A as AccentImage, a3 as ImageTreatment, a as AccentPosition, c as Animation, d as AnimationType, au as MotionState, ar as MotionProfile, by as ThemeColorScheme, w as CountUpSpec, Q as Doc, bA as ThemeRegistry, aR as PageEmphasis, bz as ThemePageStyle, S as DocDiagnostic, P as DiagramTemplateNode, O as DiagramTemplateEdge, bI as TimelineTemplateTrack, bH as TimelineTemplateLink } from '../Doc-B6TYHYGc.js';
2
- export { V as FRONTMATTER_CUSTOM_TEMPLATES_KEY, W as FRONTMATTER_CUSTOM_THEMES_KEY, a8 as LayoutHints, bb as RenderStyle, bx as ThemeColorPalette, bD as ThemeStyle, bE as ThemeTypography, bS as VIEWPORT_PRESETS, c2 as ViewportPreset, c7 as createTemplateContext, ce as getLayoutHints, ch as getTwoColumnPositions, ci as getViewport, cj as getViewportOrientation, cn as isTemplateBlock, ct as scaledFontSize } from '../Doc-B6TYHYGc.js';
3
- import { L as MarkdownNode, a5 as TransitionType, a4 as TransitionDirection, M as MarkdownBlockNode, r as MarkdownHeading, n as MarkdownDocument, V as MarkdownTable, i as MarkdownCodeBlock, G as MarkdownList } from '../types-C6VvDDL2.js';
4
- import { C as CoercedBlockMeta } from '../annotationCoercion-BgL52343.js';
5
- import { c as PageSection } from '../materializePageSection-IYXU3tDN.js';
6
- export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, P as PageMedia, b as PageRichText, d as PageSectionDiagnostic, e as PageSectionItem, f as PageSectionMaterialization, g as PageSectionSource, h as PageSpatialKind, i as PageTransformHints, m as materializePageSection, j as materializePageSections, r as resolvePageStyle } from '../materializePageSection-IYXU3tDN.js';
1
+ import { a6 as Layer, k as Block, Q as Doc, bq as TemplateBlock, br as TemplateContext, y as CustomTemplateDefinition, bt as TemplateRegistry, bw as Theme, c0 as ViewportConfig, a_ as PersistentLayerConfig, at as MotionSpec, R as DocBlock, c1 as ViewportOrientation, aZ as PersistentLayer, bJ as TitleBlockInput, bf as SectionHeaderInput, j as BigTextInput, u as ContentBlockInput, bl as StatHighlightInput, b9 as QuoteBlockInput, Y as FactCardInput, bR as TwoColumnInput, J as DateEventInput, a4 as ImageWithCaptionInput, a9 as LeftFeatureInput, bc as RightFeatureInput, ae as MapBlockInput, bk as StartBlockConfig, $ as FullBleedQuoteInput, ac as ListBlockInput, b2 as PhotoGridInput, L as DefinitionCardInput, t as ComparisonBarInput, b8 as PullQuoteInput, b$ as VideoWithCaptionInput, b_ as VideoPullQuoteInput, I as DataTableInput, M as DiagramBlockInput, bM as TreeBlockInput, bF as TimelineBlockInput, U as DrawingBlockInput, ai as MarkerStyle, A as AccentImage, a3 as ImageTreatment, a as AccentPosition, c as Animation, d as AnimationType, au as MotionState, ar as MotionProfile, by as ThemeColorScheme, w as CountUpSpec, bA as ThemeRegistry, aR as PageEmphasis, bz as ThemePageStyle, S as DocDiagnostic, P as DiagramTemplateNode, O as DiagramTemplateEdge, bI as TimelineTemplateTrack, bH as TimelineTemplateLink } from '../Doc-DIdmgDsV.js';
2
+ export { V as FRONTMATTER_CUSTOM_TEMPLATES_KEY, W as FRONTMATTER_CUSTOM_THEMES_KEY, a8 as LayoutHints, bb as RenderStyle, bx as ThemeColorPalette, bD as ThemeStyle, bE as ThemeTypography, bS as VIEWPORT_PRESETS, c2 as ViewportPreset, c7 as createTemplateContext, ce as getLayoutHints, ch as getTwoColumnPositions, ci as getViewport, cj as getViewportOrientation, cn as isTemplateBlock, ct as scaledFontSize } from '../Doc-DIdmgDsV.js';
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-BmEHcL3l.js';
4
+ import { C as CoercedBlockMeta } from '../annotationCoercion-TxFucMtA.js';
5
+ import { c as PageSection } from '../materializePageSection-C33MgcDg.js';
6
+ export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, P as PageMedia, b as PageRichText, d as PageSectionDiagnostic, e as PageSectionItem, f as PageSectionMaterialization, g as PageSectionSource, h as PageSpatialKind, i as PageTransformHints, m as materializePageSection, j as materializePageSections, r as resolvePageStyle } from '../materializePageSection-C33MgcDg.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-_46saKYO.js';
9
+ export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-BaDfxgzt.js';
10
+
11
+ /** Pure build planning and evaluation, shared by interactive slides and frame export. */
12
+
13
+ interface ContentBuildPlan {
14
+ steps: BuildStep[];
15
+ /** List items target their own content, never their descendant list container. */
16
+ targets: Map<MarkdownBlockNode | MarkdownListItem, number>;
17
+ }
18
+ declare function planContentBuilds(nodes: readonly MarkdownBlockNode[], spec?: BuildSpec): ContentBuildPlan;
19
+ /** All targets in a block share one step index space. */
20
+ declare function blockBuildSteps(block: {
21
+ layers?: Layer[];
22
+ build?: BuildSpec;
23
+ }): BuildStep[];
24
+ declare function buildSourceText(steps: readonly BuildStep[]): string;
25
+ interface BuildTimeline {
26
+ starts: number[];
27
+ entrance: number;
28
+ /** A host can surface this without dropping content or extending pinned audio. */
29
+ compressed: boolean;
30
+ }
31
+ declare function resolveBuildTimeline(steps: readonly BuildStep[], spec: BuildSpec, duration: number, timing?: BuildTiming): BuildTimeline;
32
+ declare function buildCursorAtTime(timeline: BuildTimeline, time: number): BuildCursor;
33
+ declare function buildTargetState(index: number, steps: readonly BuildStep[], cursor: BuildCursor, spec: BuildSpec, motion?: boolean): {
34
+ hidden: boolean;
35
+ opacity: number;
36
+ x: number;
37
+ y: number;
38
+ };
39
+ /** Explicit authored times are never rewritten by this projection. */
40
+ declare function hasBlockBuilds(block: Pick<Block, 'build'>): boolean;
41
+ /** Align exact source passages only. Summaries without exact anchors use estimates. */
42
+ declare function resolveDocBuildTiming(doc: Doc, blocks: Block[]): Block[];
10
43
 
11
44
  /** Runtime registry composition for built-in and document-scoped templates. */
12
45
 
@@ -40,6 +73,10 @@ declare function buildRegistry(custom?: readonly CustomTemplateDefinition[]): Ru
40
73
  type LayerMaterializationFailureMode = 'fallback' | 'empty';
41
74
  /** A structured, inspectable explanation for a template render failure. */
42
75
  type LayerMaterializationDiagnostic = {
76
+ code: 'unsupported-build';
77
+ template: string;
78
+ message: string;
79
+ } | {
43
80
  code: 'unknown-template';
44
81
  template: string;
45
82
  message: string;
@@ -2084,26 +2121,6 @@ interface DiagramLabelFit {
2084
2121
  */
2085
2122
  declare function fitDiagramLabel(text: string, boxWidth: number, boxHeight: number, preferredFontSize: number): DiagramLabelFit;
2086
2123
 
2087
- /**
2088
- * Template input derivation — build a template's required inputs from a
2089
- * block's heading + markdown body.
2090
- *
2091
- * Used by:
2092
- * - `markdownToDoc`'s content-aware auto template picking, so an
2093
- * auto-picked `quote`/`statHighlight`/`leftFeature` block carries the
2094
- * inputs its template needs through every render path (player, linear
2095
- * view, exports).
2096
- * - `LinearDocView` / editor previews, to render annotated blocks whose
2097
- * authors didn't spell out every template param.
2098
- *
2099
- * Two modes:
2100
- * - strict (default): returns `null` when an essential input can't be
2101
- * derived (no image for a feature block, no table for dataTable…) —
2102
- * auto-picking uses this to fall back to the structural default.
2103
- * - placeholders: returns visible placeholder values instead of failing —
2104
- * preview surfaces use this so a half-authored block still renders.
2105
- */
2106
-
2107
2124
  /** First image discovered in a block's body, with explicit dimensions when present. */
2108
2125
  interface FirstImage {
2109
2126
  src: string;
@@ -2165,7 +2182,7 @@ interface RichListItem {
2165
2182
  * layer renderer sanitizes this projection again, but generated HTML should
2166
2183
  * still be safe before it reaches that boundary.
2167
2184
  */
2168
- declare function renderMarkdownBlocksHtml(nodes: readonly MarkdownBlockNode[]): string;
2185
+ declare function renderMarkdownBlocksHtml(nodes: readonly MarkdownBlockNode[], builds?: ContentBuildPlan): string;
2169
2186
  /**
2170
2187
  * Number of newline characters to retain in a plain-text projection between
2171
2188
  * two Markdown blocks. A normal block boundary gets the usual two newlines;
@@ -4285,4 +4302,4 @@ declare function treeFromMarkdownList(list: MarkdownList): Tree;
4285
4302
  /** Find the first top-level markdown list in a block's body, if any. */
4286
4303
  declare function findFirstList(contents: MarkdownBlockNode[] | undefined): MarkdownList | undefined;
4287
4304
 
4288
- export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, type AccentLayout, 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, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BUILTIN_DASHBOARD_LAYOUTS, type BlockLayerMaterialization, type BlockMediaLayoutPolicy, type BuildPreviewDocOptions, type BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, type ClipBox, type ConnectorAnchor, type ConnectorPort, type ConnectorRouting, type ConnectorSnapPoint, 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, GEOMETRY_BOUND_TEMPLATES, 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, PageSection, type PageSectionContext, type PageSectionDraft, type ParsedStat, PersistentLayerConfig, 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_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, type TemplateAuthoringMetadata, type TemplateAuthoringRole, TemplateBlock, type TemplateBodyPolicy, TemplateContext, 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, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, autoTemplatePreservesContent, bigText, buildDashboardCellChrome, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, canvasToAsciiCell, chooseDashboardLayout, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, composeDashboardLayers, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, countUpSpecFor, coverBlock, createAccentLayers, cssFilterForTreatment, dashboardCanvasFill, dashboardCellAccent, dataSidecarPrefix, dataTable, dateEvent, definitionCard, deriveTemplateInputs, desiredCellZoom, detectAsciiDiagram, detectAsciiTimeline, 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, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDashboardLayoutSummaries, getDefaultAnimation, getDefaultAnimationDuration, getMotionProfile, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, hasTemplate, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isDataFilePath, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isGeometryBoundTemplate, isMaterializedMediaNode, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layoutBlock, layoutCapacity, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, listDashboardLayouts, mapBlock, markdownBlockSeparatorLines, markdownToDoc, markerPath, materializeBlockLayers, materializeDashboard, materializeFlashcards, motionDelay, motionEntrance, motionStateTransform, nearestSnapPoint, normalizeDashboardZoom, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, parseStatNumber, parseTree, parseWrappedFlowTimeline, parseYamlSubset, photoGrid, pullQuote, quoteBlock, readCustomTemplatesFromFrontmatter, readCustomThemesFromFrontmatter, readDashboardLayoutsFromFrontmatter, renderAsciiDiagram, renderAsciiTimeline, renderMarkdownBlocksHtml, renderTree, repairAsciiDiagram, replaceDataFence, resolveAudioMapping, resolveColorScheme, resolveCoverSlideSettings, resolveDashboardLayoutDefinition, resolveDashboardSettings, resolveDashboardStyleId, resolveDashboardZooms, resolveDataReferences, resolveFlashcardMarker, resolveLayoutCells, resolvePageBlock, resolvePersistentLayers, resolveTemplateName, resolveThemeForDoc, rightFeature, scaleAnimationDuration, scoreTextSimilarity, sectionExtractors, sectionHeader, shapePath, shouldUseShadow, snapEndpoints, snapPoints, statHighlight, stripBlockBackdropLayer, stripsBlockBackdrop, templateRegistry, themeWantsAmbientMotion, themedEntrance, themedFontSize, themedImageTreatment, themedScrim, themedSurfaceGradient, timelineBlock, titleBlock, transformOriginFor, transposeCells, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateDashboardLayoutDefinition, validateMarkdownDoc, validateMarkdownSource, videoPullQuote, videoWithCaption, wordRevealDelay, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter, writeDashboardLayoutsToFrontmatter };
4305
+ export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, type AccentLayout, 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, 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 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, GEOMETRY_BOUND_TEMPLATES, 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, PageSection, type PageSectionContext, type PageSectionDraft, type ParsedStat, PersistentLayerConfig, 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_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, type TemplateAuthoringMetadata, type TemplateAuthoringRole, TemplateBlock, type TemplateBodyPolicy, TemplateContext, 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, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, autoTemplatePreservesContent, bigText, blockBuildSteps, buildCursorAtTime, buildDashboardCellChrome, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, buildSourceText, buildTargetState, canvasToAsciiCell, chooseDashboardLayout, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, composeDashboardLayers, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, countUpSpecFor, coverBlock, createAccentLayers, cssFilterForTreatment, dashboardCanvasFill, dashboardCellAccent, dataSidecarPrefix, dataTable, dateEvent, definitionCard, deriveTemplateInputs, desiredCellZoom, detectAsciiDiagram, detectAsciiTimeline, 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, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDashboardLayoutSummaries, getDefaultAnimation, getDefaultAnimationDuration, getMotionProfile, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, hasBlockBuilds, hasTemplate, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isDataFilePath, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isGeometryBoundTemplate, isMaterializedMediaNode, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layoutBlock, layoutCapacity, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, listDashboardLayouts, mapBlock, markdownBlockSeparatorLines, markdownToDoc, markerPath, materializeBlockLayers, materializeDashboard, materializeFlashcards, motionDelay, motionEntrance, motionStateTransform, nearestSnapPoint, normalizeDashboardZoom, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, parseStatNumber, parseTree, parseWrappedFlowTimeline, parseYamlSubset, photoGrid, planContentBuilds, 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, statHighlight, stripBlockBackdropLayer, stripsBlockBackdrop, templateRegistry, themeWantsAmbientMotion, themedEntrance, themedFontSize, themedImageTreatment, themedScrim, themedSurfaceGradient, timelineBlock, titleBlock, transformOriginFor, transposeCells, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateDashboardLayoutDefinition, validateMarkdownDoc, validateMarkdownSource, videoPullQuote, videoWithCaption, wordRevealDelay, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter, writeDashboardLayoutsToFrontmatter };
package/dist/doc/index.js CHANGED
@@ -74,9 +74,9 @@ import {
74
74
  validateMarkdownSource,
75
75
  wordRevealDelay,
76
76
  writeDashboardLayoutsToFrontmatter
77
- } from "../chunk-KCD3SH5Z.js";
78
- import "../chunk-3XEABCT3.js";
79
- import "../chunk-QFC4JZZH.js";
77
+ } from "../chunk-RPPUCFRW.js";
78
+ import "../chunk-3H7SYCZS.js";
79
+ import "../chunk-K2PZMWQ5.js";
80
80
  import {
81
81
  ASCII_CHAR_H,
82
82
  ASCII_CHAR_W,
@@ -102,7 +102,11 @@ import {
102
102
  asciiTimelineToTemplateData,
103
103
  autoTemplatePreservesContent,
104
104
  bigText,
105
+ blockBuildSteps,
106
+ buildCursorAtTime,
105
107
  buildRegistry,
108
+ buildSourceText,
109
+ buildTargetState,
106
110
  canvasToAsciiCell,
107
111
  coerceTemplateParams,
108
112
  comparisonBar,
@@ -157,6 +161,7 @@ import {
157
161
  getPinnedBlockMeta,
158
162
  getTemplateHint,
159
163
  getThemeFont,
164
+ hasBlockBuilds,
160
165
  hasTemplate,
161
166
  imageWithCaption,
162
167
  isDataFence,
@@ -178,13 +183,16 @@ import {
178
183
  parseStatNumber,
179
184
  parseYamlSubset,
180
185
  photoGrid,
186
+ planContentBuilds,
181
187
  pullQuote,
182
188
  quoteBlock,
183
189
  readCustomTemplatesFromFrontmatter,
184
190
  readCustomThemesFromFrontmatter,
185
191
  renderMarkdownBlocksHtml,
186
192
  replaceDataFence,
193
+ resolveBuildTimeline,
187
194
  resolveColorScheme,
195
+ resolveDocBuildTiming,
188
196
  resolvePersistentLayers,
189
197
  rightFeature,
190
198
  scaleAnimationDuration,
@@ -210,7 +218,7 @@ import {
210
218
  wrapWithPersistentLayers,
211
219
  writeCustomTemplatesToFrontmatter,
212
220
  writeCustomThemesToFrontmatter
213
- } from "../chunk-UWLEDXSU.js";
221
+ } from "../chunk-W45PAVYE.js";
214
222
  import {
215
223
  ASCII_DIAGRAM_FENCE_LANGS,
216
224
  ASCII_TIMELINE_FENCE_LANGS,
@@ -233,7 +241,7 @@ import {
233
241
  parseAsciiTimelineWithStats,
234
242
  parseTree,
235
243
  parseWrappedFlowTimeline
236
- } from "../chunk-A5QJJZ5S.js";
244
+ } from "../chunk-B3AFOXMA.js";
237
245
  import "../chunk-SVN7T6BK.js";
238
246
  import {
239
247
  PATH_SHAPE_KINDS,
@@ -247,7 +255,7 @@ import {
247
255
  shapePath,
248
256
  snapEndpoints,
249
257
  snapPoints
250
- } from "../chunk-4KTLKEIY.js";
258
+ } from "../chunk-FUBMT6SJ.js";
251
259
  import "../chunk-7ZAAICW4.js";
252
260
  import "../chunk-2SRF5III.js";
253
261
  import {
@@ -265,19 +273,19 @@ import {
265
273
  isTemplateBlock,
266
274
  resolveTheme,
267
275
  scaledFontSize2 as scaledFontSize
268
- } from "../chunk-PFH3WV6J.js";
276
+ } from "../chunk-I4L4GYDN.js";
269
277
  import "../chunk-JSGIWW35.js";
270
278
  import "../chunk-L7QZORLB.js";
271
- import "../chunk-Y4OZ5DSG.js";
279
+ import "../chunk-H54A35NZ.js";
272
280
  import {
273
281
  CONTAINER_TEMPLATES,
274
282
  TABLE_FED_TEMPLATES,
275
283
  isContainerTemplate,
276
284
  resolveTemplateName
277
- } from "../chunk-WSFXV5BT.js";
278
- import "../chunk-Q6ELOAOQ.js";
285
+ } from "../chunk-ZYWYSM6W.js";
286
+ import "../chunk-NNJA7ICB.js";
279
287
  import "../chunk-CZ7AUSLI.js";
280
- import "../chunk-4VOD55SX.js";
288
+ import "../chunk-M6YXFNGO.js";
281
289
  import "../chunk-4OQFLZ6G.js";
282
290
  import "../chunk-GHOPHGOK.js";
283
291
  import "../chunk-XRW6P7IF.js";
@@ -334,11 +342,15 @@ export {
334
342
  asciiTimelineToTemplateData,
335
343
  autoTemplatePreservesContent,
336
344
  bigText,
345
+ blockBuildSteps,
346
+ buildCursorAtTime,
337
347
  buildDashboardCellChrome,
338
348
  buildPageCss,
339
349
  buildPageCssVars,
340
350
  buildPreviewDoc,
341
351
  buildRegistry,
352
+ buildSourceText,
353
+ buildTargetState,
342
354
  canvasToAsciiCell,
343
355
  chooseDashboardLayout,
344
356
  clipEndpoints,
@@ -420,6 +432,7 @@ export {
420
432
  getTwoColumnPositions,
421
433
  getViewport,
422
434
  getViewportOrientation,
435
+ hasBlockBuilds,
423
436
  hasTemplate,
424
437
  imageWithCaption,
425
438
  isAsciiDiagramFence,
@@ -473,6 +486,7 @@ export {
473
486
  parseWrappedFlowTimeline,
474
487
  parseYamlSubset,
475
488
  photoGrid,
489
+ planContentBuilds,
476
490
  pullQuote,
477
491
  quoteBlock,
478
492
  readCustomTemplatesFromFrontmatter,
@@ -485,6 +499,7 @@ export {
485
499
  repairAsciiDiagram,
486
500
  replaceDataFence,
487
501
  resolveAudioMapping,
502
+ resolveBuildTimeline,
488
503
  resolveColorScheme,
489
504
  resolveCoverSlideSettings,
490
505
  resolveDashboardLayoutDefinition,
@@ -492,6 +507,7 @@ export {
492
507
  resolveDashboardStyleId,
493
508
  resolveDashboardZooms,
494
509
  resolveDataReferences,
510
+ resolveDocBuildTiming,
495
511
  resolveFlashcardMarker,
496
512
  resolveLayoutCells,
497
513
  resolvePageBlock,
@@ -1,5 +1,5 @@
1
- import { bw as Theme } from '../Doc-B6TYHYGc.js';
2
- import '../types-C6VvDDL2.js';
1
+ import { bw as Theme } from '../Doc-DIdmgDsV.js';
2
+ import '../types-BmEHcL3l.js';
3
3
 
4
4
  /**
5
5
  * Host-pluggable fence renderers — the contract shared by the read path
@@ -1,7 +1,7 @@
1
1
  import { E as ExtractedElement } from '../contentExtractor-BNfVJV2U.js';
2
2
  export { C as ComparisonData, D as DateData, a as DefinitionData, b as ExtractionOptions, c as ExtractionResult, d as ExtractionType, F as FactData, I as ImpactLineData, L as ListData, Q as QuoteData, S as StatData, e as extractContent, s as stripMarkdown } from '../contentExtractor-BNfVJV2U.js';
3
- import { r as ColorScheme, A as AccentImage, bq as TemplateBlock } from '../Doc-B6TYHYGc.js';
4
- import '../types-C6VvDDL2.js';
3
+ import { r as ColorScheme, A as AccentImage, bq as TemplateBlock } from '../Doc-DIdmgDsV.js';
4
+ import '../types-BmEHcL3l.js';
5
5
 
6
6
  /**
7
7
  * Template Mapper
@@ -1,9 +1,9 @@
1
- import { a as ImageEditDoc, b as ImageEditLayer } from '../ImageEditDoc-CN_3Ysj5.js';
2
- export { E as EditorLayerMeta, I as ImageEditCanvas, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-CN_3Ysj5.js';
1
+ import { a as ImageEditDoc, b as ImageEditLayer } from '../ImageEditDoc-DXQMA6qH.js';
2
+ export { E as EditorLayerMeta, I as ImageEditCanvas, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-DXQMA6qH.js';
3
3
  import { C as ContentContainer } from '../ContentContainer-B2w9sUoL.js';
4
4
  import { V as Version, C as CoalesceOptions, P as PrunePolicy } from '../types-8QjefM9J.js';
5
- import '../Doc-B6TYHYGc.js';
6
- import '../types-C6VvDDL2.js';
5
+ import '../Doc-DIdmgDsV.js';
6
+ import '../types-BmEHcL3l.js';
7
7
 
8
8
  /**
9
9
  * Pure helpers for constructing and mutating {@link ImageEditDoc} values.
@@ -26,9 +26,9 @@ import {
26
26
  touch,
27
27
  updateLayer,
28
28
  writeImageEditDoc
29
- } from "../chunk-PSC3KZEK.js";
29
+ } from "../chunk-YA74HTAB.js";
30
30
  import "../chunk-OPO5K4DZ.js";
31
- import "../chunk-4KTLKEIY.js";
31
+ import "../chunk-FUBMT6SJ.js";
32
32
  export {
33
33
  IMAGE_EDIT_ASSETS_PREFIX,
34
34
  IMAGE_EDIT_DEFAULT_BASENAME,