@bendyline/squisq 2.11.14 → 2.11.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 (34) hide show
  1. package/dist/{Doc-C-cv1g4G.d.ts → Doc-Bd2kdzuy.d.ts} +1 -1
  2. package/dist/{ImageEditDoc-3J4PRw8N.d.ts → ImageEditDoc-C3HOltpW.d.ts} +1 -1
  3. package/dist/{annotationCoercion-Ckqpu33y.d.ts → annotationCoercion-BgL52343.d.ts} +1 -1
  4. package/dist/{chunk-6H2HBBFC.js → chunk-5W7F46OO.js} +11 -6
  5. package/dist/{chunk-UVQPK6A3.js → chunk-ANH2OZ2M.js} +1 -1
  6. package/dist/{chunk-HUXK7EOT.js → chunk-GDHXT5Q7.js} +91 -2
  7. package/dist/{chunk-4P557IPH.js → chunk-IFJPPI63.js} +2 -2
  8. package/dist/{chunk-HHGVTXHR.js → chunk-IRVXZUVU.js} +2 -2
  9. package/dist/{chunk-GDF2FWL6.js → chunk-NC6LD6D3.js} +80 -11
  10. package/dist/{chunk-YPI2VJSB.js → chunk-WMXQDP2C.js} +18 -6
  11. package/dist/doc/index.d.ts +31 -8
  12. package/dist/doc/index.js +7 -4
  13. package/dist/fence/index.d.ts +2 -2
  14. package/dist/generate/index.d.ts +2 -2
  15. package/dist/imageEdit/index.d.ts +4 -4
  16. package/dist/index.d.ts +8 -8
  17. package/dist/index.js +12 -8
  18. package/dist/jsonForm/index.d.ts +2 -2
  19. package/dist/markdown/index.d.ts +3 -3
  20. package/dist/markdown/index.js +2 -2
  21. package/dist/{materializePageSection-Dmy_-AUQ.d.ts → materializePageSection-FRv9whYy.d.ts} +2 -2
  22. package/dist/mediaEdit/index.d.ts +3 -3
  23. package/dist/narration/index.d.ts +29 -9
  24. package/dist/narration/index.js +5 -3
  25. package/dist/recommend/index.d.ts +1 -1
  26. package/dist/schemas/index.d.ts +5 -5
  27. package/dist/{themeLibrary-CROfw3YK.d.ts → themeLibrary-BbF3EKWM.d.ts} +1 -1
  28. package/dist/timing/index.d.ts +2 -2
  29. package/dist/timing/index.js +1 -1
  30. package/dist/transform/index.d.ts +3 -3
  31. package/dist/transform/index.js +3 -3
  32. package/dist/{types-Be6sBUBx.d.ts → types-C6VvDDL2.d.ts} +5 -1
  33. package/package.json +1 -1
  34. /package/dist/{chunk-44BJ42GT.js → chunk-4OQFLZ6G.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { a3 as Transition, a5 as TransitionType, M as MarkdownBlockNode, r as MarkdownHeading } from './types-Be6sBUBx.js';
1
+ import { a3 as Transition, a5 as TransitionType, M as MarkdownBlockNode, r as MarkdownHeading } from './types-C6VvDDL2.js';
2
2
 
3
3
  /**
4
4
  * Media-edit recipes — the non-destructive edit list a media reference carries.
@@ -1,4 +1,4 @@
1
- import { a2 as ImageLayer, bu as TextLayer, bh as ShapeLayer, aX as PathLayer } from './Doc-C-cv1g4G.js';
1
+ import { a2 as ImageLayer, bu as TextLayer, bh as ShapeLayer, aX as PathLayer } from './Doc-Bd2kdzuy.js';
2
2
 
3
3
  /**
4
4
  * ImageEditDoc — JSON document describing a layered, editable image.
@@ -1,4 +1,4 @@
1
- import { ae as BlockConnection, a5 as TransitionType, a4 as TransitionDirection } from './types-Be6sBUBx.js';
1
+ import { ae as BlockConnection, a5 as TransitionType, a4 as TransitionDirection } from './types-C6VvDDL2.js';
2
2
 
3
3
  /**
4
4
  * Heading-attribute value coercion.
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  flattenRenderableBlocks,
3
3
  getBlockBodyText
4
- } from "./chunk-YPI2VJSB.js";
4
+ } from "./chunk-WMXQDP2C.js";
5
5
  import {
6
6
  estimateSpokenWordCount
7
7
  } from "./chunk-GHOPHGOK.js";
@@ -216,6 +216,14 @@ function wordIndexAtTime(words, tSec) {
216
216
  }
217
217
 
218
218
  // src/narration/sidecar.ts
219
+ function resolveNarrationTimingGenerator(options) {
220
+ const baseWpm = options?.generator?.baseWpm ?? options?.baseWpm;
221
+ return {
222
+ name: options?.generator?.name ?? "squisq-teleprompter",
223
+ method: options?.generator?.method ?? "dsp-align",
224
+ ...baseWpm !== void 0 ? { baseWpm } : {}
225
+ };
226
+ }
219
227
  function buildNarrationTimingJson(script, alignment, durationSec, options) {
220
228
  const bookmarks = alignment.words.map((word) => {
221
229
  const token = script.tokens[word.tokenIndex];
@@ -246,11 +254,7 @@ function buildNarrationTimingJson(script, alignment, durationSec, options) {
246
254
  // (JSON has no NaN) and be dropped on parse anyway — omitting it here
247
255
  // keeps the emitted sidecar honest rather than carrying a dead field.
248
256
  ...finiteNumber(options?.cameraOffsetSec) ? { cameraOffsetSec: options.cameraOffsetSec } : {},
249
- generator: {
250
- name: "squisq-teleprompter",
251
- method: "dsp-align",
252
- ...options?.baseWpm !== void 0 ? { baseWpm: options.baseWpm } : {}
253
- }
257
+ generator: resolveNarrationTimingGenerator(options)
254
258
  };
255
259
  }
256
260
  function finiteNonNegative(value) {
@@ -327,6 +331,7 @@ export {
327
331
  wordPosAtExpectedSyllables,
328
332
  wordIndexAtChar,
329
333
  wordIndexAtTime,
334
+ resolveNarrationTimingGenerator,
330
335
  buildNarrationTimingJson,
331
336
  parseNarrationTimingJson
332
337
  };
@@ -2,7 +2,7 @@ import {
2
2
  assertMarkdownDocumentWithinLimits,
3
3
  parseMarkdown,
4
4
  toMdast
5
- } from "./chunk-HUXK7EOT.js";
5
+ } from "./chunk-GDHXT5Q7.js";
6
6
  import {
7
7
  formatFrontmatterYaml,
8
8
  getChildren,
@@ -1181,6 +1181,95 @@ import remarkGfm from "remark-gfm";
1181
1181
  import remarkMath from "remark-math";
1182
1182
  import remarkDirective from "remark-directive";
1183
1183
  import remarkFrontmatter from "remark-frontmatter";
1184
+
1185
+ // src/markdown/dollarMath.ts
1186
+ var DOLLAR_SIGN = 36;
1187
+ var DIGIT_ZERO = 48;
1188
+ var DIGIT_NINE = 57;
1189
+ function isWhitespace(code) {
1190
+ if (code === null) return false;
1191
+ return code < 0 || /\s/u.test(String.fromCodePoint(code));
1192
+ }
1193
+ function isAsciiDigit(code) {
1194
+ return code !== null && code >= DIGIT_ZERO && code <= DIGIT_NINE;
1195
+ }
1196
+ var dollarMathSpan = {
1197
+ name: "squisqDollarMathSpan",
1198
+ partial: true,
1199
+ tokenize(effects, ok, nok) {
1200
+ let previousWasWhitespace = false;
1201
+ let closingRunLength = 0;
1202
+ return open;
1203
+ function open(code) {
1204
+ effects.enter("squisqDollarMathProbe");
1205
+ effects.consume(code);
1206
+ return afterOpen;
1207
+ }
1208
+ function afterOpen(code) {
1209
+ if (code === DOLLAR_SIGN) return succeed(code);
1210
+ if (code === null || isWhitespace(code)) return fail(code);
1211
+ return inside(code);
1212
+ }
1213
+ function inside(code) {
1214
+ if (code === null) return fail(code);
1215
+ if (code === DOLLAR_SIGN) {
1216
+ closingRunLength = 0;
1217
+ return closingRun(code);
1218
+ }
1219
+ previousWasWhitespace = isWhitespace(code);
1220
+ effects.consume(code);
1221
+ return inside;
1222
+ }
1223
+ function closingRun(code) {
1224
+ if (code === DOLLAR_SIGN) {
1225
+ closingRunLength++;
1226
+ effects.consume(code);
1227
+ return closingRun;
1228
+ }
1229
+ if (closingRunLength !== 1) {
1230
+ previousWasWhitespace = false;
1231
+ return inside(code);
1232
+ }
1233
+ if (previousWasWhitespace || isAsciiDigit(code)) return fail(code);
1234
+ return succeed(code);
1235
+ }
1236
+ function succeed(code) {
1237
+ effects.exit("squisqDollarMathProbe");
1238
+ return ok(code);
1239
+ }
1240
+ function fail(code) {
1241
+ effects.exit("squisqDollarMathProbe");
1242
+ return nok(code);
1243
+ }
1244
+ }
1245
+ };
1246
+ function previousIsNotUnescapedDollar(code) {
1247
+ return code !== DOLLAR_SIGN || this.events[this.events.length - 1]?.[1].type === "characterEscape";
1248
+ }
1249
+ var dollarTextGuard = {
1250
+ name: "squisqDollarTextGuard",
1251
+ add: "before",
1252
+ previous: previousIsNotUnescapedDollar,
1253
+ tokenize(effects, ok, nok) {
1254
+ return start;
1255
+ function start(code) {
1256
+ return effects.check(dollarMathSpan, nok, literalDollar)(code);
1257
+ }
1258
+ function literalDollar(code) {
1259
+ effects.enter("data");
1260
+ effects.consume(code);
1261
+ effects.exit("data");
1262
+ return ok;
1263
+ }
1264
+ }
1265
+ };
1266
+ function remarkDollarMathRules() {
1267
+ const data = this.data();
1268
+ const extensions = data.micromarkExtensions ?? (data.micromarkExtensions = []);
1269
+ extensions.push({ text: { [DOLLAR_SIGN]: dollarTextGuard } });
1270
+ }
1271
+
1272
+ // src/markdown/parse.ts
1184
1273
  var defaultProcessor;
1185
1274
  function parseMarkdown(markdown, options) {
1186
1275
  options?.signal?.throwIfAborted();
@@ -1189,7 +1278,7 @@ function parseMarkdown(markdown, options) {
1189
1278
  let processor;
1190
1279
  if (useDefaults) {
1191
1280
  if (!defaultProcessor) {
1192
- defaultProcessor = unified().use(remarkParse).use(remarkGfm).use(remarkMath).use(remarkDirective).use(remarkFrontmatter, ["yaml"]);
1281
+ defaultProcessor = unified().use(remarkParse).use(remarkGfm).use(remarkMath).use(remarkDollarMathRules).use(remarkDirective).use(remarkFrontmatter, ["yaml"]);
1193
1282
  }
1194
1283
  processor = defaultProcessor;
1195
1284
  } else {
@@ -1198,7 +1287,7 @@ function parseMarkdown(markdown, options) {
1198
1287
  processor = processor.use(remarkGfm);
1199
1288
  }
1200
1289
  if (options?.math !== false) {
1201
- processor = processor.use(remarkMath);
1290
+ processor = processor.use(remarkMath).use(remarkDollarMathRules);
1202
1291
  }
1203
1292
  if (options?.directive !== false) {
1204
1293
  processor = processor.use(remarkDirective);
@@ -8,7 +8,7 @@ import {
8
8
  deriveTemplateInputs,
9
9
  flattenRenderableBlocks,
10
10
  markdownToDoc
11
- } from "./chunk-YPI2VJSB.js";
11
+ } from "./chunk-WMXQDP2C.js";
12
12
  import {
13
13
  isAsciiDiagramFence,
14
14
  isAsciiTimelineFence,
@@ -20,7 +20,7 @@ import {
20
20
  } from "./chunk-PFH3WV6J.js";
21
21
  import {
22
22
  parseMarkdown
23
- } from "./chunk-HUXK7EOT.js";
23
+ } from "./chunk-GDHXT5Q7.js";
24
24
  import {
25
25
  isContainerTemplate
26
26
  } from "./chunk-TMOHAFYE.js";
@@ -7,10 +7,10 @@ import {
7
7
  buildNarrationScript,
8
8
  expectedSyllablesAt,
9
9
  wordPosAtExpectedSyllables
10
- } from "./chunk-6H2HBBFC.js";
10
+ } from "./chunk-5W7F46OO.js";
11
11
  import {
12
12
  flattenRenderableBlocks
13
- } from "./chunk-YPI2VJSB.js";
13
+ } from "./chunk-WMXQDP2C.js";
14
14
 
15
15
  // src/narration/types.ts
16
16
  var DEFAULT_FEATURE_CONFIG = Object.freeze({
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildNarrationScript,
3
3
  parseNarrationTimingJson
4
- } from "./chunk-6H2HBBFC.js";
4
+ } from "./chunk-5W7F46OO.js";
5
5
  import {
6
6
  SHAPE_NAMES,
7
7
  buildChartData,
@@ -32,7 +32,7 @@ import {
32
32
  templateRegistry,
33
33
  writeCustomTemplatesToFrontmatter,
34
34
  writeCustomThemesToFrontmatter
35
- } from "./chunk-YPI2VJSB.js";
35
+ } from "./chunk-WMXQDP2C.js";
36
36
  import {
37
37
  ASCII_TREE_VOCAB,
38
38
  ASCII_VOCAB,
@@ -82,7 +82,7 @@ import {
82
82
  } from "./chunk-L7QZORLB.js";
83
83
  import {
84
84
  parseMarkdown
85
- } from "./chunk-HUXK7EOT.js";
85
+ } from "./chunk-GDHXT5Q7.js";
86
86
  import {
87
87
  KNOWN_BLOCK_META_KEYS,
88
88
  TABLE_FED_TEMPLATES,
@@ -98,6 +98,9 @@ import {
98
98
  parseHtmlToNodes,
99
99
  readFrontmatterThemeId
100
100
  } from "./chunk-X7BNDUNI.js";
101
+ import {
102
+ buildCaptionTrack
103
+ } from "./chunk-4OQFLZ6G.js";
101
104
  import {
102
105
  estimateTimeFromText
103
106
  } from "./chunk-GHOPHGOK.js";
@@ -954,9 +957,11 @@ function blockToSlide(block, index, knownTemplates, documentTitle) {
954
957
  // authored rich elements (Mermaid fences today; other media can follow)
955
958
  // independently of the selected visual template.
956
959
  ...block.contents ? { contents: block.contents } : {},
957
- // Custom templates consume child blocks through tokens. Compact summaries
958
- // also retain the children owned by a diagram/drawing feature.
959
- ...block.children && (isCustomTemplate || block.summaryMode && isContainerTemplate(template)) ? { children: block.children } : {},
960
+ // Custom templates consume child blocks through tokens, and container
961
+ // templates (diagram, drawing, layout) draw their children as the canvas:
962
+ // without them a drawing renders as an empty frame in the slideshow,
963
+ // video export, and PPTX. They are never flattened into their own slides.
964
+ ...block.children && (isCustomTemplate || isContainerTemplate(template)) ? { children: block.children } : {},
960
965
  ...block.summaryMode && block.layers ? { layers: block.layers } : {},
961
966
  ...defaults,
962
967
  ...extraFields,
@@ -4297,6 +4302,34 @@ function mapRangesToPlayed(ranges, map2) {
4297
4302
  }
4298
4303
  return mapped;
4299
4304
  }
4305
+ function narrationCaptions(doc, clip, timing, timeMap, playedDuration) {
4306
+ if (timing.bookmarks.length === 0 || !(playedDuration > 0)) return null;
4307
+ const bookmarks = [];
4308
+ for (const bookmark of timing.bookmarks) {
4309
+ if (!timeMap) {
4310
+ if (bookmark.time <= playedDuration) bookmarks.push(bookmark);
4311
+ } else if (timeMap.sourceToPlayed(bookmark.time) !== null) {
4312
+ bookmarks.push({ ...bookmark, time: timeMap.snapSourceToPlayed(bookmark.time) });
4313
+ }
4314
+ }
4315
+ if (bookmarks.length === 0) return null;
4316
+ bookmarks.sort((a, b) => a.time - b.time);
4317
+ const track = buildCaptionTrack(
4318
+ [
4319
+ {
4320
+ segment: {
4321
+ src: clip.src,
4322
+ name: "narration",
4323
+ startTime: clip.startAt,
4324
+ duration: playedDuration
4325
+ },
4326
+ timing: { sourceText: timing.sourceText, bookmarks, duration: playedDuration }
4327
+ }
4328
+ ],
4329
+ doc.captions?.generatedAt ? { generatedAt: doc.captions.generatedAt } : {}
4330
+ );
4331
+ return track.phrases.length > 0 ? track : null;
4332
+ }
4300
4333
  function retimeBlocks(blocks, ctx) {
4301
4334
  return blocks.map((block) => {
4302
4335
  const range = ctx.ranges.get(block.id);
@@ -4353,10 +4386,12 @@ async function applyNarrationTiming(doc, container) {
4353
4386
  };
4354
4387
  const blocks = retimeBlocks(doc.blocks, ctx);
4355
4388
  const duration = Math.max(clip.startAt + playedDuration, ctx.cursor);
4389
+ const captions = narrationCaptions(doc, clip, timing, timeMap, playedDuration);
4356
4390
  const retimed = {
4357
4391
  ...doc,
4358
4392
  blocks,
4359
4393
  duration,
4394
+ ...captions ? { captions } : {},
4360
4395
  ...ctx.diagnostics.length > 0 ? { diagnostics: [...doc.diagnostics ?? [], ...ctx.diagnostics] } : {}
4361
4396
  };
4362
4397
  return { doc: retimed, applied: true, clipSrc: clip.src };
@@ -4813,6 +4848,10 @@ function collectKnownTemplates(doc, options) {
4813
4848
  function isDrawingBlock(block) {
4814
4849
  return resolveTemplateName(block.template ?? "") === "drawing";
4815
4850
  }
4851
+ function isLayoutBlock(block) {
4852
+ return resolveTemplateName(block.template ?? "") === "layout";
4853
+ }
4854
+ var LAYOUT_IMAGE_LAYERS = /* @__PURE__ */ new Set(["image", "img"]);
4816
4855
  function checkTemplate(block, parent, known, diagnostics) {
4817
4856
  const requested = block.sourceHeading?.templateAnnotation?.template ?? block.sourceAnnotation?.template;
4818
4857
  if (!requested) return;
@@ -4830,11 +4869,37 @@ function checkTemplate(block, parent, known, diagnostics) {
4830
4869
  });
4831
4870
  return;
4832
4871
  }
4872
+ if (parent && isLayoutBlock(parent)) {
4873
+ if (LAYOUT_IMAGE_LAYERS.has(requested.toLowerCase())) {
4874
+ if (!block.templateOverrides?.src) {
4875
+ diagnostics.push({
4876
+ severity: "warning",
4877
+ code: "layout-image-missing-src",
4878
+ message: `Layout image "${block.id}" has no src= \u2014 the layer will be skipped`,
4879
+ blockId: block.id,
4880
+ ...lineOf(block)
4881
+ });
4882
+ }
4883
+ return;
4884
+ }
4885
+ if (normalizeShapeKind(block.template ?? requested) || normalizeShapeKind(requested)) return;
4886
+ const suggestion2 = nearestName(requested, /* @__PURE__ */ new Set([...SHAPE_NAMES, "image"]), {
4887
+ map: resolveTemplateName
4888
+ });
4889
+ diagnostics.push({
4890
+ severity: "warning",
4891
+ code: "unknown-layer",
4892
+ message: `"${requested}" is not a layout layer \u2014 the child will be skipped. Layers are text, image, or a drawing shape` + (suggestion2 ? `. Did you mean "${suggestion2}"?` : ""),
4893
+ blockId: block.id,
4894
+ ...lineOf(block)
4895
+ });
4896
+ return;
4897
+ }
4833
4898
  if (isShapeName(requested)) {
4834
4899
  diagnostics.push({
4835
4900
  severity: "warning",
4836
4901
  code: "shape-outside-drawing",
4837
- message: `Shape "${requested}" is only recognized on a child heading of a {[drawing]} block`,
4902
+ message: `Shape "${requested}" is only recognized on a child heading of a {[drawing]} or {[layout]} block`,
4838
4903
  blockId: block.id,
4839
4904
  ...lineOf(block)
4840
4905
  });
@@ -4853,7 +4918,7 @@ function checkTemplate(block, parent, known, diagnostics) {
4853
4918
  function checkTemplateInputs(block, parent, customNames, diagnostics) {
4854
4919
  const requested = block.sourceHeading?.templateAnnotation?.template;
4855
4920
  if (!requested) return;
4856
- if (parent && isDrawingBlock(parent)) return;
4921
+ if (parent && (isDrawingBlock(parent) || isLayoutBlock(parent))) return;
4857
4922
  if (isShapeName(requested)) return;
4858
4923
  const canonical = resolveTemplateName(requested);
4859
4924
  if (customNames.has(requested) || customNames.has(canonical)) return;
@@ -4878,6 +4943,7 @@ function isInputSatisfiable(canonical, block, key) {
4878
4943
  return derived != null && key in derived;
4879
4944
  }
4880
4945
  var NUMERIC_SHAPE_KEYS = ["x", "y", "width", "height", "w", "h", "strokeWidth", "borderRadius"];
4946
+ var NUMERIC_LAYER_KEYS = [...NUMERIC_SHAPE_KEYS, "fontSize", "lineHeight", "padding"];
4881
4947
  function checkAttributeCoercion(block, parent, diagnostics) {
4882
4948
  const params = block.sourceHeading?.attributes?.params;
4883
4949
  if (params) {
@@ -4892,9 +4958,12 @@ function checkAttributeCoercion(block, parent, diagnostics) {
4892
4958
  });
4893
4959
  }
4894
4960
  }
4895
- if (parent && isDrawingBlock(parent) && isShapeName(block.template)) {
4961
+ const inDrawing = parent !== void 0 && isDrawingBlock(parent) && isShapeName(block.template);
4962
+ const inLayout = parent !== void 0 && isLayoutBlock(parent);
4963
+ if (inDrawing || inLayout) {
4896
4964
  const overrides = block.templateOverrides ?? {};
4897
- for (const key of NUMERIC_SHAPE_KEYS) {
4965
+ const label = inLayout ? "Layout layer" : "Drawing shape";
4966
+ for (const key of inLayout ? NUMERIC_LAYER_KEYS : NUMERIC_SHAPE_KEYS) {
4898
4967
  const raw = overrides[key];
4899
4968
  if (raw == null) continue;
4900
4969
  const value = raw.replace(/,\s*$/, "").trim();
@@ -4902,7 +4971,7 @@ function checkAttributeCoercion(block, parent, diagnostics) {
4902
4971
  diagnostics.push({
4903
4972
  severity: "warning",
4904
4973
  code: "invalid-attribute",
4905
- message: `Drawing shape "${block.id}": "${key}" is not a number (${JSON.stringify(raw)})`,
4974
+ message: `${label} "${block.id}": "${key}" is not a number (${JSON.stringify(raw)})`,
4906
4975
  blockId: block.id,
4907
4976
  ...lineOf(block)
4908
4977
  });
@@ -762,6 +762,11 @@ function mapAmbientMotion(motion, duration) {
762
762
  var ACCENT_STRIP_SIZE = 35;
763
763
  var STRIP_SIZE = ACCENT_STRIP_SIZE;
764
764
  var STRIP_SIZE_PCT = `${STRIP_SIZE}%`;
765
+ function accentForViewport(accent, viewport) {
766
+ if (!accent || accent.position === "bottom-strip") return accent;
767
+ if (getViewportOrientation(viewport) !== "portrait") return accent;
768
+ return { ...accent, position: "bottom-strip" };
769
+ }
765
770
  function getAccentLayout(position) {
766
771
  switch (position) {
767
772
  case "left-strip":
@@ -2301,8 +2306,9 @@ var STAT_LINE_HEIGHT = 1.1;
2301
2306
  var DESC_LINE_HEIGHT = 1.5;
2302
2307
  var DETAIL_LINE_HEIGHT = 1.4;
2303
2308
  function statHighlight(input, context) {
2304
- const { stat, colorScheme = "blue", accentImage } = input;
2309
+ const { stat, colorScheme = "blue" } = input;
2305
2310
  const { theme, viewport } = context;
2311
+ const accentImage = accentForViewport(input.accentImage, viewport);
2306
2312
  const colors = resolveColorScheme(context, colorScheme);
2307
2313
  const rawDescription = (input.description ?? "").trim();
2308
2314
  const description = rawDescription === stat.trim() ? "" : rawDescription;
@@ -2456,8 +2462,9 @@ var LOCKUP_CENTRE = 0.5;
2456
2462
  var BODY_FILL = 0.94;
2457
2463
  var MIN_DECO_PX = 90;
2458
2464
  function quoteBlock(input, context) {
2459
- const { title, quote, attribution, accentImage } = input;
2465
+ const { title, quote, attribution } = input;
2460
2466
  const { theme, viewport } = context;
2467
+ const accentImage = accentForViewport(input.accentImage, viewport);
2461
2468
  const H = viewport.height;
2462
2469
  const W = viewport.width;
2463
2470
  const pct = (px) => `${Number((px / H * 100).toFixed(3))}%`;
@@ -2647,10 +2654,11 @@ var FACT_LINE_HEIGHT = 1.3;
2647
2654
  var EXPLAIN_LINE_HEIGHT = 1.5;
2648
2655
  var SOURCE_LINE_HEIGHT = 1.4;
2649
2656
  function factCard(input, context) {
2650
- const { fact, accentImage } = input;
2657
+ const { fact } = input;
2651
2658
  const explanation = (input.explanation ?? "").trim();
2652
2659
  const source = (input.source ?? "").trim();
2653
2660
  const { theme, viewport } = context;
2661
+ const accentImage = accentForViewport(input.accentImage, viewport);
2654
2662
  const accentLayout = accentImage ? getAccentLayout(accentImage.position) : DEFAULT_LAYOUT;
2655
2663
  const factFontSize = themedFontSize(56, context, true);
2656
2664
  const explainFontSize = themedFontSize(34, context, false);
@@ -3023,8 +3031,9 @@ var BODY_SLACK = 0.05;
3023
3031
  var HERO_MAX_SHARE3 = 0.28;
3024
3032
  var BOX_SLACK_EM = 0.35;
3025
3033
  function dateEvent(input, context) {
3026
- const { date, description, footer, mood = "neutral", accentImage } = input;
3034
+ const { date, description, footer, mood = "neutral" } = input;
3027
3035
  const { theme, viewport } = context;
3036
+ const accentImage = accentForViewport(input.accentImage, viewport);
3028
3037
  const moodAccent = MOOD_ACCENTS[mood];
3029
3038
  const dateColor = relativeLuminance(theme.colors.background) > 0.5 ? oklchDarken(moodAccent, 0.25) : moodAccent;
3030
3039
  const accentLayout = accentImage ? getAccentLayout(accentImage.position) : DEFAULT_LAYOUT;
@@ -3764,7 +3773,8 @@ function measureListHeightPx(items, fontSize, geometry) {
3764
3773
  return heightPx;
3765
3774
  }
3766
3775
  function listBlock(input, context) {
3767
- const { title, accentImage } = input;
3776
+ const { title } = input;
3777
+ const accentImage = accentForViewport(input.accentImage, context.viewport);
3768
3778
  const items = Array.isArray(input.items) ? input.items : [];
3769
3779
  const ordered = input.ordered !== false;
3770
3780
  const richItems = extractRichListItems(context.block?.contents);
@@ -4070,8 +4080,9 @@ var BODY_SLACK2 = 0.05;
4070
4080
  var HERO_MAX_SHARE4 = 0.28;
4071
4081
  var BOX_SLACK_EM2 = 0.35;
4072
4082
  function definitionCard(input, context) {
4073
- const { term, definition, origin, colorScheme = "blue", accentImage } = input;
4083
+ const { term, definition, origin, colorScheme = "blue" } = input;
4074
4084
  const { theme, viewport } = context;
4085
+ const accentImage = accentForViewport(input.accentImage, viewport);
4075
4086
  const colors = resolveColorScheme(context, colorScheme);
4076
4087
  const accentLayout = accentImage ? getAccentLayout(accentImage.position) : DEFAULT_LAYOUT;
4077
4088
  const columnWidthPct = parseFloat(accentLayout.textWidth);
@@ -12403,6 +12414,7 @@ export {
12403
12414
  getTemplateHint,
12404
12415
  titleBlock,
12405
12416
  DEFAULT_LAYOUT,
12417
+ accentForViewport,
12406
12418
  getAccentLayout,
12407
12419
  createAccentLayers,
12408
12420
  adjustY,
@@ -1,12 +1,12 @@
1
- import { bq as TemplateBlock, br as TemplateContext, a6 as Layer, y as CustomTemplateDefinition, bt as TemplateRegistry, bw as Theme, b$ as ViewportConfig, a_ as PersistentLayerConfig, at as MotionSpec, R as DocBlock, c0 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, bZ 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-C-cv1g4G.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, c1 as ViewportPreset, c6 as createTemplateContext, cd as getLayoutHints, cg as getTwoColumnPositions, ch as getViewport, ci as getViewportOrientation, cm as isTemplateBlock, cs as scaledFontSize } from '../Doc-C-cv1g4G.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-Be6sBUBx.js';
4
- import { C as CoercedBlockMeta } from '../annotationCoercion-Ckqpu33y.js';
5
- import { c as PageSection } from '../materializePageSection-Dmy_-AUQ.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-Dmy_-AUQ.js';
1
+ import { bq as TemplateBlock, br as TemplateContext, a6 as Layer, y as CustomTemplateDefinition, bt as TemplateRegistry, bw as Theme, b$ as ViewportConfig, a_ as PersistentLayerConfig, at as MotionSpec, R as DocBlock, c0 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, bZ 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-Bd2kdzuy.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, c1 as ViewportPreset, c6 as createTemplateContext, cd as getLayoutHints, cg as getTwoColumnPositions, ch as getViewport, ci as getViewportOrientation, cm as isTemplateBlock, cs as scaledFontSize } from '../Doc-Bd2kdzuy.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-FRv9whYy.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-FRv9whYy.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-CROfw3YK.js';
9
+ export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-BbF3EKWM.js';
10
10
 
11
11
  /** Runtime registry composition for built-in and document-scoped templates. */
12
12
 
@@ -1644,6 +1644,11 @@ declare function computeLayoutLayers(children: readonly LayoutChildBlock[], _vie
1644
1644
  * - bottom-strip: 35% height horizontal strip at bottom, text area in upper 65%
1645
1645
  * - corner-inset: Small 25% corner image with gradient vignette
1646
1646
  *
1647
+ * Positions are authored once per block, but the block renders at whatever
1648
+ * viewport the player has. Templates pass the accent through
1649
+ * `accentForViewport` first: on a portrait frame the side strips and the
1650
+ * corner inset become the bottom strip (see that function for why).
1651
+ *
1647
1652
  * This is shared code used by both site and efb-app doc renderers.
1648
1653
  */
1649
1654
 
@@ -1665,6 +1670,18 @@ interface AccentLayout {
1665
1670
  * Default layout when no accent image is present.
1666
1671
  */
1667
1672
  declare const DEFAULT_LAYOUT: AccentLayout;
1673
+ /**
1674
+ * The accent as it should render on `viewport`.
1675
+ *
1676
+ * A side strip is 35% of the frame's width at full height: a usable panel on
1677
+ * a 16:9 frame (672×1080), a sliver on a 9:16 one (378×1920) that crops a
1678
+ * landscape photo to a fifth of its width and upscales it ~3×. The corner
1679
+ * inset turns just as tall and thin. On a portrait frame those positions
1680
+ * become the full-width bottom strip (1080×672 at 9:16), which has the
1681
+ * proportions of the photos accents carry. Landscape and square frames keep
1682
+ * the authored position.
1683
+ */
1684
+ declare function accentForViewport(accent: AccentImage | undefined, viewport: ViewportConfig): AccentImage | undefined;
1668
1685
  /**
1669
1686
  * Get layout adjustments based on accent position.
1670
1687
  */
@@ -3370,6 +3387,11 @@ declare function resolveAudioMapping(doc: Doc, container: ContentContainer): Pro
3370
3387
  * (a conflicting pin gets an `info` diagnostic); narration ranges win
3371
3388
  * over per-block audio-segment mapping and reading-time estimates.
3372
3389
  *
3390
+ * Captions: when the sidecar carries word timings (v3 bookmarks), the doc's
3391
+ * reading-time caption estimates are replaced by captions built from those
3392
+ * words, mapped through the clip's trim/cuts — so captions follow the voice
3393
+ * instead of drifting after re-timing. Without word timings they are kept.
3394
+ *
3373
3395
  * Contiguity: the block strip never opens a gap (or an overlap) around a
3374
3396
  * pin. When a pin moves a block's end away from the take's range
3375
3397
  * boundary, every later narration anchor ripples by the same delta —
@@ -3587,6 +3609,7 @@ declare function extractTableData(table: MarkdownTable): ExtractedTableData;
3587
3609
  *
3588
3610
  * - unknown template names (with a did-you-mean suggestion)
3589
3611
  * - unknown drawing shapes, and shape annotations used outside a `{[drawing]}`
3612
+ * or `{[layout]}`; unknown layout layers and layout images without `src=`
3590
3613
  * - `{[…]}` text that was not recognized as an annotation (bad quoting,
3591
3614
  * non-heading placement, unknown inline icon)
3592
3615
  * - malformed heading-attribute values (`x=abc`, bad `startTime`) and
@@ -4241,4 +4264,4 @@ declare function treeFromMarkdownList(list: MarkdownList): Tree;
4241
4264
  /** Find the first top-level markdown list in a block's body, if any. */
4242
4265
  declare function findFirstList(contents: MarkdownBlockNode[] | undefined): MarkdownList | undefined;
4243
4266
 
4244
- 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 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, 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, 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, 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 };
4267
+ 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 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, 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, 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 };
package/dist/doc/index.js CHANGED
@@ -74,8 +74,8 @@ import {
74
74
  validateMarkdownSource,
75
75
  wordRevealDelay,
76
76
  writeDashboardLayoutsToFrontmatter
77
- } from "../chunk-GDF2FWL6.js";
78
- import "../chunk-6H2HBBFC.js";
77
+ } from "../chunk-NC6LD6D3.js";
78
+ import "../chunk-5W7F46OO.js";
79
79
  import {
80
80
  ASCII_CHAR_H,
81
81
  ASCII_CHAR_W,
@@ -91,6 +91,7 @@ import {
91
91
  TEMPLATE_AUTHORING_METADATA,
92
92
  TEMPLATE_INPUT_DESCRIPTORS,
93
93
  TEMPLATE_METADATA,
94
+ accentForViewport,
94
95
  adjustY,
95
96
  applyRenderStyleToLayers,
96
97
  asciiCellToCanvas,
@@ -206,7 +207,7 @@ import {
206
207
  wrapWithPersistentLayers,
207
208
  writeCustomTemplatesToFrontmatter,
208
209
  writeCustomThemesToFrontmatter
209
- } from "../chunk-YPI2VJSB.js";
210
+ } from "../chunk-WMXQDP2C.js";
210
211
  import {
211
212
  ASCII_DIAGRAM_FENCE_LANGS,
212
213
  ASCII_TIMELINE_FENCE_LANGS,
@@ -263,7 +264,7 @@ import {
263
264
  } from "../chunk-PFH3WV6J.js";
264
265
  import "../chunk-JSGIWW35.js";
265
266
  import "../chunk-L7QZORLB.js";
266
- import "../chunk-HUXK7EOT.js";
267
+ import "../chunk-GDHXT5Q7.js";
267
268
  import {
268
269
  CONTAINER_TEMPLATES,
269
270
  TABLE_FED_TEMPLATES,
@@ -273,6 +274,7 @@ import {
273
274
  import "../chunk-X7BNDUNI.js";
274
275
  import "../chunk-7N4G32LG.js";
275
276
  import "../chunk-4VOD55SX.js";
277
+ import "../chunk-4OQFLZ6G.js";
276
278
  import "../chunk-GHOPHGOK.js";
277
279
  import "../chunk-XRW6P7IF.js";
278
280
  export {
@@ -316,6 +318,7 @@ export {
316
318
  TEMPLATE_METADATA,
317
319
  TREE_FENCE_LANGS,
318
320
  VIEWPORT_PRESETS,
321
+ accentForViewport,
319
322
  adjustY,
320
323
  anchorPoint,
321
324
  applyNarrationTiming,
@@ -1,5 +1,5 @@
1
- import { bw as Theme } from '../Doc-C-cv1g4G.js';
2
- import '../types-Be6sBUBx.js';
1
+ import { bw as Theme } from '../Doc-Bd2kdzuy.js';
2
+ import '../types-C6VvDDL2.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-C-cv1g4G.js';
4
- import '../types-Be6sBUBx.js';
3
+ import { r as ColorScheme, A as AccentImage, bq as TemplateBlock } from '../Doc-Bd2kdzuy.js';
4
+ import '../types-C6VvDDL2.js';
5
5
 
6
6
  /**
7
7
  * Template Mapper
@@ -1,9 +1,9 @@
1
- import { a as ImageEditDoc, b as ImageEditLayer } from '../ImageEditDoc-3J4PRw8N.js';
2
- export { E as EditorLayerMeta, I as ImageEditCanvas, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-3J4PRw8N.js';
1
+ import { a as ImageEditDoc, b as ImageEditLayer } from '../ImageEditDoc-C3HOltpW.js';
2
+ export { E as EditorLayerMeta, I as ImageEditCanvas, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-C3HOltpW.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-C-cv1g4G.js';
6
- import '../types-Be6sBUBx.js';
5
+ import '../Doc-Bd2kdzuy.js';
6
+ import '../types-C6VvDDL2.js';
7
7
 
8
8
  /**
9
9
  * Pure helpers for constructing and mutating {@link ImageEditDoc} values.
package/dist/index.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  export { B as BoundingBox, C as Coordinates } from './Types-sh2VRxfo.js';
2
- export { A as AccentImage, a as AccentPosition, b as AmbientGradientConfig, c as Animation, d as AnimationType, e as AreaChartInput, f as AudioBookmark, g as AudioSegment, h as AudioTimingData, i as AudioTrack, B as BarChartInput, j as BigTextInput, k as Block, l as BlockConnection, m as BorderStyle, C as CaptionPhrase, n as CaptionTrack, o as CaptionWord, p as ChartBaseFields, q as ChartTemplateInput, r as ColorScheme, s as ColumnChartInput, t as ComparisonBarInput, u as ContentBlockInput, v as CornerBrandingConfig, w as CountUpSpec, x as CreateTemplateContextOptions, y as CustomTemplateDefinition, z as CustomTemplateLayer, D as CustomTemplateValidationError, E as CustomTemplateValidationResult, F as DARK_SURFACE, G as DEFAULT_DOC_FONT, H as DEFAULT_TITLE_FONT, I as DataTableInput, J as DateEventInput, K as DeepPartial, L as DefinitionCardInput, M as DiagramBlockInput, N as DiagramEdgeAnchor, O as DiagramTemplateEdge, P as DiagramTemplateNode, Q as Doc, R as DocBlock, S as DocDiagnostic, T as DonutChartInput, U as DrawingBlockInput, V as FRONTMATTER_CUSTOM_TEMPLATES_KEY, W as FRONTMATTER_CUSTOM_THEMES_KEY, X as FRONTMATTER_MOTION_KEY, Y as FactCardInput, Z as FontFamily, _ as FontFamilyKind, $ as FullBleedQuoteInput, a0 as GradientBackgroundConfig, a1 as ImageBackgroundConfig, a2 as ImageLayer, a3 as ImageTreatment, a4 as ImageWithCaptionInput, a5 as LIGHT_SURFACE, a6 as Layer, a7 as LayerRepeat, a8 as LayoutHints, a9 as LeftFeatureInput, aa as LineChartInput, ab as LinearGradient, ac as ListBlockInput, ad as MOTION_PROFILES, ae as MapBlockInput, af as MapLayer, ag as MapMarker, ah as MapTileStyle, ai as MarkerStyle, aj as MediaClip, ak as MediaCrop, al as MediaCut, am as MediaEdits, an as MediaScheduleOptions, ao as MermaidLayer, ap as MotionEntrance, aq as MotionOrigin, ar as MotionProfile, as as MotionProfileName, at as MotionSpec, au as MotionState, av as PAGE_ACCENT_STRATEGIES, aw as PAGE_BACKGROUNDS, ax as PAGE_BACKGROUND_RHYTHMS, ay as PAGE_DESIGN_FAMILIES, az as PAGE_DIVIDERS, aA as PAGE_EMPHASES, aB as PAGE_EYEBROWS, aC as PAGE_HEADING_CASES, aD as PAGE_HEADING_SCALES, aE as PAGE_HEADING_UNDERLINES, aF as PAGE_HERO_STYLES, aG as PAGE_IMAGE_FRAMINGS, aH as PAGE_NUMERAL_STYLES, aI as PAGE_PATTERNS, aJ as PAGE_QUOTE_MARKS, aK as PAGE_SECTION_KINDS, aL as PAGE_SECTION_SPACINGS, aM as PAGE_SHADOWS, aN as PAGE_VARIANTS, aO as PageAccentRotation, aP as PageBackground, aQ as PageDesignFamily, aR as PageEmphasis, aS as PageHeadingTreatment, aT as PageSectionKind, aU as PageSectionOverride, aV as PageTokens, aW as PageVariant, aX as PathLayer, aY as PatternBackgroundConfig, aZ as PersistentLayer, a_ as PersistentLayerConfig, a$ as PersistentLayerTemplate, b0 as PersistentLayerTemplateConfig, b1 as PersistentLayerTemplateType, b2 as PhotoGridInput, b3 as PieChartInput, b4 as PipStyle, b5 as Position, b6 as ProgressIndicatorConfig, b7 as PromotedBodyAnnotation, b8 as PullQuoteInput, b9 as QuoteBlockInput, ba as RawLayersInput, bb as RenderStyle, bc as RightFeatureInput, bd as ScatterChartInput, be as ScheduledClip, bf as SectionHeaderInput, bg as ShapeFilter, bh as ShapeLayer, bi as ShapePattern, bj as SolidBackgroundConfig, bk as StartBlockConfig, bl as StatHighlightInput, bm as SurfaceScheme, bn as THEME_SCHEMA_VERSION, bo as TableLayer, bp as TableLayerStyle, bq as TemplateBlock, br as TemplateContext, bs as TemplateFunction, bt as TemplateRegistry, bu as TextLayer, bv as TextStyle, bw as Theme, bx as ThemeColorPalette, by as ThemeColorScheme, bz as ThemePageStyle, bA as ThemeRegistry, bB as ThemeSchemaVersion, bC as ThemeSeedColors, bD as ThemeStyle, bE as ThemeTypography, bF as TimelineBlockInput, bG as TimelineTemplateEvent, bH as TimelineTemplateLink, bI as TimelineTemplateTrack, bJ as TitleBlockInput, bK as TitleCaptionConfig, bL as TranscriptBlockInput, bM as TreeBlockInput, bN as TreeLayer, bO as TreeLayerItem, bP as TreeLayerStyle, bQ as TreeTemplateItem, bR as TwoColumnInput, bS as VIEWPORT_PRESETS, bT as VideoLayer, bU as VideoPipPosition, bV as VideoPipShape, bW as VideoPipSize, bX as VideoPlacement, bY as VideoPresentation, bZ as VideoPullQuoteInput, b_ as VideoWithCaptionInput, b$ as ViewportConfig, c0 as ViewportOrientation, c1 as ViewportPreset, c2 as VignetteConfig, c3 as applySurface, c4 as calculateDuration, c5 as calculateFontScale, c6 as createTemplateContext, c7 as createTheme, c8 as createThemeRegistry, c9 as getAspectRatioString, ca as getBlockAtTime, cb as getCaptionAtTime, cc as getDocPlaybackDuration, cd as getLayoutHints, ce as getSafeTextBounds, cf as getSegmentAtTime, cg as getTwoColumnPositions, ch as getViewport, ci as getViewportOrientation, cj as isCustomTemplateDefinition, ck as isMotionProfileName, cl as isPersistentLayerTemplate, cm as isTemplateBlock, cn as layoutScaledFontSize, co as readFrontmatterMotion, cp as resolveMediaSchedule, cq as resolveMotionForDoc, cr as resolveMotionProfile, cs as scaledFontSize, ct as scheduleMediaClip, cu as validateCustomTemplateDefinition } from './Doc-C-cv1g4G.js';
2
+ export { A as AccentImage, a as AccentPosition, b as AmbientGradientConfig, c as Animation, d as AnimationType, e as AreaChartInput, f as AudioBookmark, g as AudioSegment, h as AudioTimingData, i as AudioTrack, B as BarChartInput, j as BigTextInput, k as Block, l as BlockConnection, m as BorderStyle, C as CaptionPhrase, n as CaptionTrack, o as CaptionWord, p as ChartBaseFields, q as ChartTemplateInput, r as ColorScheme, s as ColumnChartInput, t as ComparisonBarInput, u as ContentBlockInput, v as CornerBrandingConfig, w as CountUpSpec, x as CreateTemplateContextOptions, y as CustomTemplateDefinition, z as CustomTemplateLayer, D as CustomTemplateValidationError, E as CustomTemplateValidationResult, F as DARK_SURFACE, G as DEFAULT_DOC_FONT, H as DEFAULT_TITLE_FONT, I as DataTableInput, J as DateEventInput, K as DeepPartial, L as DefinitionCardInput, M as DiagramBlockInput, N as DiagramEdgeAnchor, O as DiagramTemplateEdge, P as DiagramTemplateNode, Q as Doc, R as DocBlock, S as DocDiagnostic, T as DonutChartInput, U as DrawingBlockInput, V as FRONTMATTER_CUSTOM_TEMPLATES_KEY, W as FRONTMATTER_CUSTOM_THEMES_KEY, X as FRONTMATTER_MOTION_KEY, Y as FactCardInput, Z as FontFamily, _ as FontFamilyKind, $ as FullBleedQuoteInput, a0 as GradientBackgroundConfig, a1 as ImageBackgroundConfig, a2 as ImageLayer, a3 as ImageTreatment, a4 as ImageWithCaptionInput, a5 as LIGHT_SURFACE, a6 as Layer, a7 as LayerRepeat, a8 as LayoutHints, a9 as LeftFeatureInput, aa as LineChartInput, ab as LinearGradient, ac as ListBlockInput, ad as MOTION_PROFILES, ae as MapBlockInput, af as MapLayer, ag as MapMarker, ah as MapTileStyle, ai as MarkerStyle, aj as MediaClip, ak as MediaCrop, al as MediaCut, am as MediaEdits, an as MediaScheduleOptions, ao as MermaidLayer, ap as MotionEntrance, aq as MotionOrigin, ar as MotionProfile, as as MotionProfileName, at as MotionSpec, au as MotionState, av as PAGE_ACCENT_STRATEGIES, aw as PAGE_BACKGROUNDS, ax as PAGE_BACKGROUND_RHYTHMS, ay as PAGE_DESIGN_FAMILIES, az as PAGE_DIVIDERS, aA as PAGE_EMPHASES, aB as PAGE_EYEBROWS, aC as PAGE_HEADING_CASES, aD as PAGE_HEADING_SCALES, aE as PAGE_HEADING_UNDERLINES, aF as PAGE_HERO_STYLES, aG as PAGE_IMAGE_FRAMINGS, aH as PAGE_NUMERAL_STYLES, aI as PAGE_PATTERNS, aJ as PAGE_QUOTE_MARKS, aK as PAGE_SECTION_KINDS, aL as PAGE_SECTION_SPACINGS, aM as PAGE_SHADOWS, aN as PAGE_VARIANTS, aO as PageAccentRotation, aP as PageBackground, aQ as PageDesignFamily, aR as PageEmphasis, aS as PageHeadingTreatment, aT as PageSectionKind, aU as PageSectionOverride, aV as PageTokens, aW as PageVariant, aX as PathLayer, aY as PatternBackgroundConfig, aZ as PersistentLayer, a_ as PersistentLayerConfig, a$ as PersistentLayerTemplate, b0 as PersistentLayerTemplateConfig, b1 as PersistentLayerTemplateType, b2 as PhotoGridInput, b3 as PieChartInput, b4 as PipStyle, b5 as Position, b6 as ProgressIndicatorConfig, b7 as PromotedBodyAnnotation, b8 as PullQuoteInput, b9 as QuoteBlockInput, ba as RawLayersInput, bb as RenderStyle, bc as RightFeatureInput, bd as ScatterChartInput, be as ScheduledClip, bf as SectionHeaderInput, bg as ShapeFilter, bh as ShapeLayer, bi as ShapePattern, bj as SolidBackgroundConfig, bk as StartBlockConfig, bl as StatHighlightInput, bm as SurfaceScheme, bn as THEME_SCHEMA_VERSION, bo as TableLayer, bp as TableLayerStyle, bq as TemplateBlock, br as TemplateContext, bs as TemplateFunction, bt as TemplateRegistry, bu as TextLayer, bv as TextStyle, bw as Theme, bx as ThemeColorPalette, by as ThemeColorScheme, bz as ThemePageStyle, bA as ThemeRegistry, bB as ThemeSchemaVersion, bC as ThemeSeedColors, bD as ThemeStyle, bE as ThemeTypography, bF as TimelineBlockInput, bG as TimelineTemplateEvent, bH as TimelineTemplateLink, bI as TimelineTemplateTrack, bJ as TitleBlockInput, bK as TitleCaptionConfig, bL as TranscriptBlockInput, bM as TreeBlockInput, bN as TreeLayer, bO as TreeLayerItem, bP as TreeLayerStyle, bQ as TreeTemplateItem, bR as TwoColumnInput, bS as VIEWPORT_PRESETS, bT as VideoLayer, bU as VideoPipPosition, bV as VideoPipShape, bW as VideoPipSize, bX as VideoPlacement, bY as VideoPresentation, bZ as VideoPullQuoteInput, b_ as VideoWithCaptionInput, b$ as ViewportConfig, c0 as ViewportOrientation, c1 as ViewportPreset, c2 as VignetteConfig, c3 as applySurface, c4 as calculateDuration, c5 as calculateFontScale, c6 as createTemplateContext, c7 as createTheme, c8 as createThemeRegistry, c9 as getAspectRatioString, ca as getBlockAtTime, cb as getCaptionAtTime, cc as getDocPlaybackDuration, cd as getLayoutHints, ce as getSafeTextBounds, cf as getSegmentAtTime, cg as getTwoColumnPositions, ch as getViewport, ci as getViewportOrientation, cj as isCustomTemplateDefinition, ck as isMotionProfileName, cl as isPersistentLayerTemplate, cm as isTemplateBlock, cn as layoutScaledFontSize, co as readFrontmatterMotion, cp as resolveMediaSchedule, cq as resolveMotionForDoc, cr as resolveMotionProfile, cs as scaledFontSize, ct as scheduleMediaClip, cu as validateCustomTemplateDefinition } from './Doc-Bd2kdzuy.js';
3
3
  export { AVAILABLE_FONT_STACKS, CompileOptions, ContrastPreset, DocSchemaIssue, FONT_FALLBACKS, FontStack, MermaidThemeVariables, PipStyleVars, STARTER_THEME, ValidationError, ValidationResult, accentToColorScheme, assertDocSchema, assertTheme, buildGoogleFontsUrl, buildMermaidThemeVariables, compileTheme, contrastRatio, defaultPageStyle, deriveColorPalette, deriveScale, fontStack, getFontStack, guessFontFallback, hexHueDegrees, isHex, matchFontFamily, oklchDarken, oklchLighten, oklchSetChroma, parseTheme, pickContrastingText, pipStyleVars, relativeLuminance, resolveFontFamily, serializeTheme, validateDocSchema, validateTheme, withAlpha } from './schemas/index.js';
4
- export { D as DEFAULT_MARKDOWN_SAFETY_LIMITS, a as DEFAULT_TRANSITION_DURATION_SECONDS, H as HeadingAttributes, b as HeadingTemplateAnnotation, c as HtmlComment, d as HtmlElement, e as HtmlNode, f as HtmlText, M as MarkdownBlockNode, g as MarkdownBlockquote, h as MarkdownBreak, i as MarkdownCodeBlock, j as MarkdownContainerDirective, k as MarkdownDefinitionDescription, l as MarkdownDefinitionList, m as MarkdownDefinitionTerm, n as MarkdownDocument, o as MarkdownEmphasis, p as MarkdownFootnoteDefinition, q as MarkdownFootnoteReference, r as MarkdownHeading, s as MarkdownHtmlBlock, t as MarkdownImage, u as MarkdownImageReference, v as MarkdownInlineCode, w as MarkdownInlineHtml, x as MarkdownInlineIcon, y as MarkdownInlineMath, z as MarkdownInlineNode, A as MarkdownLeafDirective, B as MarkdownLimitError, C as MarkdownLink, E as MarkdownLinkDefinition, F as MarkdownLinkReference, G as MarkdownList, I as MarkdownListItem, J as MarkdownMathBlock, K as MarkdownMention, L as MarkdownNode, N as MarkdownParagraph, O as MarkdownPoint, P as MarkdownSafetyLimits, Q as MarkdownSourcePosition, R as MarkdownStrikethrough, S as MarkdownStrong, T as MarkdownSubscript, U as MarkdownSuperscript, V as MarkdownTable, W as MarkdownTableCell, X as MarkdownTableRow, Y as MarkdownText, Z as MarkdownTextDirective, _ as MarkdownThematicBreak, $ as ParseOptions, a0 as StringifyOptions, a1 as TRANSITION_DIRECTIONS, a2 as TRANSITION_TYPES, a3 as Transition, a4 as TransitionDirection, a5 as TransitionType, a6 as assertMarkdownDocumentWithinLimits, a7 as assertMarkdownSourceWithinLimits, a8 as isTransitionType, a9 as normalizeTransitionDirection, aa as normalizeTransitionType, ab as resolveBlockTransition, ac as resolveMarkdownSafetyLimits, ad as resolveTransitionDuration } from './types-Be6sBUBx.js';
5
- export { D as DEFAULT_THEME, a as DEFAULT_THEME_ID, T as THEMES, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from './themeLibrary-CROfw3YK.js';
4
+ export { D as DEFAULT_MARKDOWN_SAFETY_LIMITS, a as DEFAULT_TRANSITION_DURATION_SECONDS, H as HeadingAttributes, b as HeadingTemplateAnnotation, c as HtmlComment, d as HtmlElement, e as HtmlNode, f as HtmlText, M as MarkdownBlockNode, g as MarkdownBlockquote, h as MarkdownBreak, i as MarkdownCodeBlock, j as MarkdownContainerDirective, k as MarkdownDefinitionDescription, l as MarkdownDefinitionList, m as MarkdownDefinitionTerm, n as MarkdownDocument, o as MarkdownEmphasis, p as MarkdownFootnoteDefinition, q as MarkdownFootnoteReference, r as MarkdownHeading, s as MarkdownHtmlBlock, t as MarkdownImage, u as MarkdownImageReference, v as MarkdownInlineCode, w as MarkdownInlineHtml, x as MarkdownInlineIcon, y as MarkdownInlineMath, z as MarkdownInlineNode, A as MarkdownLeafDirective, B as MarkdownLimitError, C as MarkdownLink, E as MarkdownLinkDefinition, F as MarkdownLinkReference, G as MarkdownList, I as MarkdownListItem, J as MarkdownMathBlock, K as MarkdownMention, L as MarkdownNode, N as MarkdownParagraph, O as MarkdownPoint, P as MarkdownSafetyLimits, Q as MarkdownSourcePosition, R as MarkdownStrikethrough, S as MarkdownStrong, T as MarkdownSubscript, U as MarkdownSuperscript, V as MarkdownTable, W as MarkdownTableCell, X as MarkdownTableRow, Y as MarkdownText, Z as MarkdownTextDirective, _ as MarkdownThematicBreak, $ as ParseOptions, a0 as StringifyOptions, a1 as TRANSITION_DIRECTIONS, a2 as TRANSITION_TYPES, a3 as Transition, a4 as TransitionDirection, a5 as TransitionType, a6 as assertMarkdownDocumentWithinLimits, a7 as assertMarkdownSourceWithinLimits, a8 as isTransitionType, a9 as normalizeTransitionDirection, aa as normalizeTransitionType, ab as resolveBlockTransition, ac as resolveMarkdownSafetyLimits, ad as resolveTransitionDuration } from './types-C6VvDDL2.js';
5
+ export { D as DEFAULT_THEME, a as DEFAULT_THEME_ID, T as THEMES, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from './themeLibrary-BbF3EKWM.js';
6
6
  export { M as MediaEntry, a as MediaProvider } from './MediaProvider-wpSe21B3.js';
7
- export { E as EditorLayerMeta, I as ImageEditCanvas, a as ImageEditDoc, b as ImageEditLayer, c as ImageEditLayerKind, d as ImageEditMeta } from './ImageEditDoc-3J4PRw8N.js';
8
- export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, AccentLayout, AsciiDiagram, AsciiDiagramDetection, AsciiDiagramEdge, AsciiDiagramNode, AsciiTimeline, AsciiTimelineDetection, AsciiTimelineEvent, AsciiTimelineLink, AsciiTimelineMarker, AsciiTimelineSide, AsciiTimelineStats, AsciiTimelineStyle, AsciiTimelineTrack, AudioSegmentTiming, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BUILTIN_DASHBOARD_LAYOUTS, BlockLayerMaterialization, BlockMediaLayoutPolicy, BuildPreviewDocOptions, BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, ClipBox, ConnectorAnchor, ConnectorPort, ConnectorRouting, ConnectorSnapPoint, CoverBlockInput, CoverSlidePlayback, CoverSlideSettings, CoverSlideTemplate, 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, DashboardCell, DashboardCellChrome, DashboardCellDefinition, DashboardCellFrame, DashboardDiagnostic, DashboardLayoutDefinition, DashboardLayoutSummary, DashboardLayoutValidationError, DashboardLayoutValidationResult, DashboardMaterialization, DashboardRectPct, DashboardSettings, DashboardSettingsOverrides, DashboardStyleId, DashboardStyleSummary, DashboardTitle, DashboardTitleSlotDefinition, DashboardZoomCandidate, DashboardZoomLevel, DashboardZoomMode, DataFenceParseResult, DataSourceReadOptions, DataSourceReader, DataSourceStats, DataSourceTable, DeriveTemplateInputsOptions, DetectAsciiTimelineOptions, DiagramEdge, DiagramLabelFit, DiagramLayout, DiagramLayoutOptions, DiagramNodePosition, DrawingConnector, DrawingLayout, DrawingLayoutOptions, DrawingShape, DrawingShapeKind, EmbeddedVideo, ExpandDocBlocksOptions, ExtractedTableData, FRONTMATTER_DASHBOARD_LAYOUTS_KEY, FirstImage, Flashcard, FlashcardChoice, FlashcardDeck, FlashcardDiagnostic, FlashcardDiagnosticCode, FlashcardFace, FlashcardKind, FlashcardSourceMode, GEOMETRY_BOUND_TEMPLATES, InputCoercion, LayerMaterializationDiagnostic, LayerMaterializationFailureMode, LayerMaterializationSource, LayoutLayerDefaults, LayoutLayersResult, MAX_COVER_SLIDE_DURATION_SECONDS, MarkdownToDocOptions, MarkdownValidationResult, MaterializeBlockLayersOptions, MaterializeDashboardOptions, MaterializeFlashcardsOptions, NarrationResolution, NativeMediaLayout, NoMediaLayout, PAGE_BASE_CSS, PATH_SHAPE_KINDS, PageSectionContext, PageSectionDraft, ParsedStat, RenderAsciiDiagramOptions, RenderAsciiTimelineOptions, RenderTreeOptions, RepairResult, ResolveDataReferencesOptions, ResolvedDashboardCell, ResolvedDataReferences, ResolvedPageBlock, RichListItem, RuntimeTemplateRegistry, SHAPE_NAMES, SectionExtractor, SupplementalMediaLayoutVariant, SupplementalMediaShape, SupplementalMediaVariantMatrix, TABLE_FED_TEMPLATES, TEMPLATE_AUTHORING_METADATA, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, TemplateAuthoringMetadata, TemplateAuthoringRole, TemplateBodyPolicy, TemplateInputDescriptor, TemplateMediaOwnership, TemplateMetadata, TemplateParamFinding, Tree, TreeDetection, TreeItem, TreeNode, UnconsumedMediaBehavior, ValidateOptions, 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, 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, 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 } from './doc/index.js';
9
- export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, P as PageMedia, b as PageRichText, c as PageSection, 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-Dmy_-AUQ.js';
7
+ export { E as EditorLayerMeta, I as ImageEditCanvas, a as ImageEditDoc, b as ImageEditLayer, c as ImageEditLayerKind, d as ImageEditMeta } from './ImageEditDoc-C3HOltpW.js';
8
+ export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, AccentLayout, AsciiDiagram, AsciiDiagramDetection, AsciiDiagramEdge, AsciiDiagramNode, AsciiTimeline, AsciiTimelineDetection, AsciiTimelineEvent, AsciiTimelineLink, AsciiTimelineMarker, AsciiTimelineSide, AsciiTimelineStats, AsciiTimelineStyle, AsciiTimelineTrack, AudioSegmentTiming, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BUILTIN_DASHBOARD_LAYOUTS, BlockLayerMaterialization, BlockMediaLayoutPolicy, BuildPreviewDocOptions, BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, ClipBox, ConnectorAnchor, ConnectorPort, ConnectorRouting, ConnectorSnapPoint, CoverBlockInput, CoverSlidePlayback, CoverSlideSettings, CoverSlideTemplate, 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, DashboardCell, DashboardCellChrome, DashboardCellDefinition, DashboardCellFrame, DashboardDiagnostic, DashboardLayoutDefinition, DashboardLayoutSummary, DashboardLayoutValidationError, DashboardLayoutValidationResult, DashboardMaterialization, DashboardRectPct, DashboardSettings, DashboardSettingsOverrides, DashboardStyleId, DashboardStyleSummary, DashboardTitle, DashboardTitleSlotDefinition, DashboardZoomCandidate, DashboardZoomLevel, DashboardZoomMode, DataFenceParseResult, DataSourceReadOptions, DataSourceReader, DataSourceStats, DataSourceTable, DeriveTemplateInputsOptions, DetectAsciiTimelineOptions, DiagramEdge, DiagramLabelFit, DiagramLayout, DiagramLayoutOptions, DiagramNodePosition, DrawingConnector, DrawingLayout, DrawingLayoutOptions, DrawingShape, DrawingShapeKind, EmbeddedVideo, ExpandDocBlocksOptions, ExtractedTableData, FRONTMATTER_DASHBOARD_LAYOUTS_KEY, FirstImage, Flashcard, FlashcardChoice, FlashcardDeck, FlashcardDiagnostic, FlashcardDiagnosticCode, FlashcardFace, FlashcardKind, FlashcardSourceMode, GEOMETRY_BOUND_TEMPLATES, InputCoercion, LayerMaterializationDiagnostic, LayerMaterializationFailureMode, LayerMaterializationSource, LayoutLayerDefaults, LayoutLayersResult, MAX_COVER_SLIDE_DURATION_SECONDS, MarkdownToDocOptions, MarkdownValidationResult, MaterializeBlockLayersOptions, MaterializeDashboardOptions, MaterializeFlashcardsOptions, NarrationResolution, NativeMediaLayout, NoMediaLayout, PAGE_BASE_CSS, PATH_SHAPE_KINDS, PageSectionContext, PageSectionDraft, ParsedStat, RenderAsciiDiagramOptions, RenderAsciiTimelineOptions, RenderTreeOptions, RepairResult, ResolveDataReferencesOptions, ResolvedDashboardCell, ResolvedDataReferences, ResolvedPageBlock, RichListItem, RuntimeTemplateRegistry, SHAPE_NAMES, SectionExtractor, SupplementalMediaLayoutVariant, SupplementalMediaShape, SupplementalMediaVariantMatrix, TABLE_FED_TEMPLATES, TEMPLATE_AUTHORING_METADATA, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, TemplateAuthoringMetadata, TemplateAuthoringRole, TemplateBodyPolicy, TemplateInputDescriptor, TemplateMediaOwnership, TemplateMetadata, TemplateParamFinding, Tree, TreeDetection, TreeItem, TreeNode, UnconsumedMediaBehavior, ValidateOptions, 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, 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, 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 } from './doc/index.js';
9
+ export { M as MaterializePageSectionOptions, a as MaterializePageSectionsOptions, P as PageMedia, b as PageRichText, c as PageSection, 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-FRv9whYy.js';
10
10
  export { calculateBearing, decodeGeohash, destinationPoint, encodeGeohash, geohashOverlapsBounds, geohashToHierarchicalPath, getGeohash4Neighbors, getGeohashPath, getGeohashPrefix, getNeighbors, haversineDistance, interpolateGreatCircle, sampleGreatCircle } from './spatial/index.js';
11
11
  export { LocalForageAdapter, LocalForageAdapterOptions, LocalStorageAdapter, MemoryStorageAdapter, ScopedContentContainer, StorageAdapter, createMediaProviderFromContainer, scopeContainer } from './storage/index.js';
12
12
  export { C as ContentContainer, a as ContentEntry, M as MemoryContentContainer, f as findDocumentPath } from './ContentContainer-B2w9sUoL.js';
13
13
  export { DEFAULT_INTERACTIVE_RESOURCE_POLICY, DEFAULT_RESOURCE_MAX_BYTES, DEFAULT_RESOURCE_TIMEOUT_MS, DEFAULT_WRAP_WIDTH, DocfxMarkdownOptions, FetchResourceBytesOptions, FetchedResource, HtmlPolicy, LOCAL_ONLY_RESOURCE_POLICY, MARKDOWN_SOURCE_TRANSFORMS, MarkdownReferenceOptions, MarkdownSourceEdit, MarkdownSourceTransform, MarkdownSourceTransformId, MarkdownSourceTransformOptions, MarkdownSourceTransformResult, MarkdownWrapState, ResourcePolicy, ResourcePolicyError, SanitizeUrlOptions, TrailingAnnotationMatch, UrlKind, applyMarkdownSourceTransform, cleanupMarkdownSource, condenseMarkdownSource, countNodes, createDocument, detectMarkdownWrapState, extractPlainText, fetchResourceBytes, findNodesByType, formatBlockScalar, formatFrontmatterValue, formatFrontmatterYaml, fromMdast, getChildren, inferDocumentTitle, isResourceUrlAllowed, matchTrailingPandocAttr, matchTrailingTemplateAnnotation, needsQuoting, normalizeDocfxMarkdown, parseFrontmatter, parseHtmlToNodes, parseMarkdown, parsePandocAttrTokens, plainTextFromInlineHtml, quoteAttrValue, readFrontmatterThemeId, rewriteMarkdownReferences, sanitizeHtmlNodes, sanitizeUrl, serializePandocAttributes, setFrontmatterValues, splitFrontmatterBlock, splitKeyValueToken, stringifyHtmlNodes, stringifyMarkdown, toMdast, tokenizeAttrTokens, unquoteAttrValue, unwrapMarkdownSource, walkMarkdownTree, wrapMarkdownSource } from './markdown/index.js';
14
- export { B as BLOCK_META_KEY_DESCRIPTORS, a as BlockMetaKeyDescriptor, K as KNOWN_BLOCK_META_KEYS, b as KnownBlockMetaKey, p as parseTimeSeconds } from './annotationCoercion-Ckqpu33y.js';
14
+ export { B as BLOCK_META_KEY_DESCRIPTORS, a as BlockMetaKeyDescriptor, K as KNOWN_BLOCK_META_KEYS, b as KnownBlockMetaKey, p as parseTimeSeconds } from './annotationCoercion-BgL52343.js';
15
15
  export { BuildCaptionTrackOptions, CaptionSegmentSource, DEFAULT_WORDS_PER_SECOND, NarrationTimeEstimate, NarrationTimeOptions, ReadingTimeEstimate, ReadingTimeOptions, buildCaptionTrack, calculatePrefixDuration, countSpokenWords, estimateNarrationDuration, estimateNarrationTime, estimateReadingTime, estimateSpokenWordCount, estimateTimeFromText } from './timing/index.js';
16
16
  export { SeededRandom, hashString } from './random/index.js';
17
17
  export { C as ComparisonData, D as DateData, a as DefinitionData, E as ExtractedElement, 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';
@@ -24,7 +24,7 @@ export { AnimatedImageFormat, AnimatedImageInfo, IMAGE_EDIT_ASSETS_PREFIX, IMAGE
24
24
  export { I as ICONS, a as IconEntry, b as IconFamily, c as IconTextRun, h as hasIconMarker, i as iconClass, d as iconMarker, s as splitIconMarkers, e as stripIconMarkers } from './inlineIconMarker-CiE8Hlvz.js';
25
25
  export { IconSuggestion, canonicalIconToken, iconGlyph, looksLikeIconToken, resolveIcon, suggestIcons } from './icons/index.js';
26
26
  export { BlockContentProfile, RecommendationResult, profileBlockContents, recommendTemplatesForBlock } from './recommend/index.js';
27
- export { AdvanceCoverage, AlignConfig, AlignInput, BandpassState, BuildAdvanceTimingOptions, BuildNarrationTimingOptions, BuildScriptOptions, DEFAULT_ALIGN_CONFIG, DEFAULT_FEATURE_CONFIG, DEFAULT_NUCLEI_CONFIG, DEFAULT_PACING_CONFIG, DEFAULT_VAD_CONFIG, EMPTY_ADVANCE_LOG, FeatureConfig, FeatureState, FrameFeatures, NarrationAlignment, NarrationBlockRange, NarrationScript, NarrationSessionConfig, NarrationSessionState, NarrationTimingBlock, NarrationTimingJsonV3, NarrationTimingMethod, NarrationTrace, NucleiConfig, NucleiState, PacingConfig, PacingState, PacingTick, ScriptBlockRange, ScriptToken, SlideAdvance, SlideAdvanceLog, TraceSample, VadConfig, VadState, WordTiming, advanceCoverage, alignNarration, bandpassRun, buildAdvanceTimingJson, buildNarrationScript, buildNarrationTimingJson, createBandpass, createFeatureState, createNarrationSession, createNucleiState, createPacingState, createVadState, detectSyllableOnsets, downsampleTrace, estimateSyllables, expectedSyllablesAt, extractFrameFeatures, featureStep, narrationSessionStep, nucleiStep, pacingStep, parseNarrationTimingJson, reanchorPacing, reanchorSession, recordSlideShown, traceWordPosAt, vadStep, wordIndexAtChar, wordIndexAtTime, wordPosAtExpectedSyllables } from './narration/index.js';
27
+ export { AdvanceCoverage, AlignConfig, AlignInput, BandpassState, BuildAdvanceTimingOptions, BuildNarrationTimingOptions, BuildScriptOptions, DEFAULT_ALIGN_CONFIG, DEFAULT_FEATURE_CONFIG, DEFAULT_NUCLEI_CONFIG, DEFAULT_PACING_CONFIG, DEFAULT_VAD_CONFIG, EMPTY_ADVANCE_LOG, FeatureConfig, FeatureState, FrameFeatures, NarrationAlignment, NarrationBlockRange, NarrationScript, NarrationSessionConfig, NarrationSessionState, NarrationTimingBlock, NarrationTimingGenerator, NarrationTimingJsonV3, NarrationTimingMethod, NarrationTrace, NucleiConfig, NucleiState, PacingConfig, PacingState, PacingTick, ScriptBlockRange, ScriptToken, SlideAdvance, SlideAdvanceLog, TraceSample, VadConfig, VadState, WordTiming, advanceCoverage, alignNarration, bandpassRun, buildAdvanceTimingJson, buildNarrationScript, buildNarrationTimingJson, createBandpass, createFeatureState, createNarrationSession, createNucleiState, createPacingState, createVadState, detectSyllableOnsets, downsampleTrace, estimateSyllables, expectedSyllablesAt, extractFrameFeatures, featureStep, narrationSessionStep, nucleiStep, pacingStep, parseNarrationTimingJson, reanchorPacing, reanchorSession, recordSlideShown, resolveNarrationTimingGenerator, traceWordPosAt, vadStep, wordIndexAtChar, wordIndexAtTime, wordPosAtExpectedSyllables } from './narration/index.js';
28
28
  export { FenceRenderContext, FenceRenderer, FenceRendererMap, fenceRendererLangs } from './fence/index.js';
29
29
  export { P as PROOF_DIALECTS, a as ProofCategory, b as ProofDialect, c as ProofFinding, d as ProofRange, e as ProofSuggestion, f as ProofSuggestionKind } from './types-BQWu0gzi.js';
30
30
  export { BlankProtectedSpansOptions, BlankedText, DEFAULT_PROOF_SETTINGS, JoinedSegments, LINT_KIND_CATEGORIES, PROOF_FRONTMATTER_KEYS, PROOF_JOIN_SEPARATOR, ProofingSettings, SegmentSpan, blankProtectedSpans, buildJoinedText, categorizeLintKind, dropMaskedFindings, formatProofDictionary, mapJoinedSpanToSegment, parseProofDictionary, readProofingSettings, resolveProofDialect } from './proof/index.js';
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  recordSlideShown,
28
28
  traceWordPosAt,
29
29
  vadStep
30
- } from "./chunk-HHGVTXHR.js";
30
+ } from "./chunk-IRVXZUVU.js";
31
31
  import {
32
32
  fenceRendererLangs
33
33
  } from "./chunk-PGI7HSWE.js";
@@ -65,7 +65,7 @@ import {
65
65
  getTransformStyleSummaries,
66
66
  resolveTransformStyle,
67
67
  transformNarratedSegment
68
- } from "./chunk-4P557IPH.js";
68
+ } from "./chunk-IFJPPI63.js";
69
69
  import {
70
70
  extractContent,
71
71
  mapElementToBlock,
@@ -246,17 +246,18 @@ import {
246
246
  validateMarkdownSource,
247
247
  wordRevealDelay,
248
248
  writeDashboardLayoutsToFrontmatter
249
- } from "./chunk-GDF2FWL6.js";
249
+ } from "./chunk-NC6LD6D3.js";
250
250
  import {
251
251
  buildNarrationScript,
252
252
  buildNarrationTimingJson,
253
253
  estimateSyllables,
254
254
  expectedSyllablesAt,
255
255
  parseNarrationTimingJson,
256
+ resolveNarrationTimingGenerator,
256
257
  wordIndexAtChar,
257
258
  wordIndexAtTime,
258
259
  wordPosAtExpectedSyllables
259
- } from "./chunk-6H2HBBFC.js";
260
+ } from "./chunk-5W7F46OO.js";
260
261
  import {
261
262
  ASCII_CHAR_H,
262
263
  ASCII_CHAR_W,
@@ -272,6 +273,7 @@ import {
272
273
  TEMPLATE_AUTHORING_METADATA,
273
274
  TEMPLATE_INPUT_DESCRIPTORS,
274
275
  TEMPLATE_METADATA,
276
+ accentForViewport,
275
277
  adjustY,
276
278
  applyRenderStyleToLayers,
277
279
  asciiCellToCanvas,
@@ -387,7 +389,7 @@ import {
387
389
  wrapWithPersistentLayers,
388
390
  writeCustomTemplatesToFrontmatter,
389
391
  writeCustomThemesToFrontmatter
390
- } from "./chunk-YPI2VJSB.js";
392
+ } from "./chunk-WMXQDP2C.js";
391
393
  import {
392
394
  ASCII_DIAGRAM_FENCE_LANGS,
393
395
  ASCII_TIMELINE_FENCE_LANGS,
@@ -548,7 +550,7 @@ import {
548
550
  stringifyMarkdown,
549
551
  unwrapMarkdownSource,
550
552
  wrapMarkdownSource
551
- } from "./chunk-UVQPK6A3.js";
553
+ } from "./chunk-ANH2OZ2M.js";
552
554
  import {
553
555
  DEFAULT_MARKDOWN_SAFETY_LIMITS,
554
556
  MarkdownLimitError,
@@ -560,7 +562,7 @@ import {
560
562
  resolveMarkdownSafetyLimits,
561
563
  serializePandocAttributes,
562
564
  toMdast
563
- } from "./chunk-HUXK7EOT.js";
565
+ } from "./chunk-GDHXT5Q7.js";
564
566
  import {
565
567
  BLOCK_META_KEY_DESCRIPTORS,
566
568
  CONTAINER_TEMPLATES,
@@ -618,7 +620,7 @@ import {
618
620
  } from "./chunk-4VOD55SX.js";
619
621
  import {
620
622
  buildCaptionTrack
621
- } from "./chunk-44BJ42GT.js";
623
+ } from "./chunk-4OQFLZ6G.js";
622
624
  import {
623
625
  DEFAULT_WORDS_PER_SECOND,
624
626
  calculatePrefixDuration,
@@ -748,6 +750,7 @@ export {
748
750
  VERSIONS_PREFIX,
749
751
  VERSION_TIMESTAMP_PATTERN,
750
752
  VIEWPORT_PRESETS,
753
+ accentForViewport,
751
754
  accentToColorScheme,
752
755
  addLayer,
753
756
  adjustY,
@@ -1112,6 +1115,7 @@ export {
1112
1115
  resolveMediaSchedule,
1113
1116
  resolveMotionForDoc,
1114
1117
  resolveMotionProfile,
1118
+ resolveNarrationTimingGenerator,
1115
1119
  resolvePageBlock,
1116
1120
  resolvePageStyle,
1117
1121
  resolvePersistentLayers,
@@ -1,5 +1,5 @@
1
- import { bw as Theme, bm as SurfaceScheme } from '../Doc-C-cv1g4G.js';
2
- import '../types-Be6sBUBx.js';
1
+ import { bw as Theme, bm as SurfaceScheme } from '../Doc-Bd2kdzuy.js';
2
+ import '../types-C6VvDDL2.js';
3
3
 
4
4
  /**
5
5
  * JSON Form types — Squisq's hint vocabulary layered on JSON Schema.
@@ -1,6 +1,6 @@
1
- import { $ as ParseOptions, n as MarkdownDocument, a0 as StringifyOptions, H as HeadingAttributes, e as HtmlNode, L as MarkdownNode } from '../types-Be6sBUBx.js';
2
- export { D as DEFAULT_MARKDOWN_SAFETY_LIMITS, b as HeadingTemplateAnnotation, c as HtmlComment, d as HtmlElement, f as HtmlText, M as MarkdownBlockNode, g as MarkdownBlockquote, h as MarkdownBreak, i as MarkdownCodeBlock, j as MarkdownContainerDirective, k as MarkdownDefinitionDescription, l as MarkdownDefinitionList, m as MarkdownDefinitionTerm, o as MarkdownEmphasis, p as MarkdownFootnoteDefinition, q as MarkdownFootnoteReference, r as MarkdownHeading, s as MarkdownHtmlBlock, t as MarkdownImage, u as MarkdownImageReference, v as MarkdownInlineCode, w as MarkdownInlineHtml, x as MarkdownInlineIcon, y as MarkdownInlineMath, z as MarkdownInlineNode, A as MarkdownLeafDirective, B as MarkdownLimitError, C as MarkdownLink, E as MarkdownLinkDefinition, F as MarkdownLinkReference, G as MarkdownList, I as MarkdownListItem, J as MarkdownMathBlock, K as MarkdownMention, N as MarkdownParagraph, O as MarkdownPoint, P as MarkdownSafetyLimits, Q as MarkdownSourcePosition, R as MarkdownStrikethrough, S as MarkdownStrong, T as MarkdownSubscript, U as MarkdownSuperscript, V as MarkdownTable, W as MarkdownTableCell, X as MarkdownTableRow, Y as MarkdownText, Z as MarkdownTextDirective, _ as MarkdownThematicBreak, a6 as assertMarkdownDocumentWithinLimits, a7 as assertMarkdownSourceWithinLimits, ac as resolveMarkdownSafetyLimits } from '../types-Be6sBUBx.js';
3
- export { B as BLOCK_META_KEY_DESCRIPTORS, a as BlockMetaKeyDescriptor, K as KNOWN_BLOCK_META_KEYS, b as KnownBlockMetaKey, p as parseTimeSeconds } from '../annotationCoercion-Ckqpu33y.js';
1
+ import { $ as ParseOptions, n as MarkdownDocument, a0 as StringifyOptions, H as HeadingAttributes, e as HtmlNode, L as MarkdownNode } from '../types-C6VvDDL2.js';
2
+ export { D as DEFAULT_MARKDOWN_SAFETY_LIMITS, b as HeadingTemplateAnnotation, c as HtmlComment, d as HtmlElement, f as HtmlText, M as MarkdownBlockNode, g as MarkdownBlockquote, h as MarkdownBreak, i as MarkdownCodeBlock, j as MarkdownContainerDirective, k as MarkdownDefinitionDescription, l as MarkdownDefinitionList, m as MarkdownDefinitionTerm, o as MarkdownEmphasis, p as MarkdownFootnoteDefinition, q as MarkdownFootnoteReference, r as MarkdownHeading, s as MarkdownHtmlBlock, t as MarkdownImage, u as MarkdownImageReference, v as MarkdownInlineCode, w as MarkdownInlineHtml, x as MarkdownInlineIcon, y as MarkdownInlineMath, z as MarkdownInlineNode, A as MarkdownLeafDirective, B as MarkdownLimitError, C as MarkdownLink, E as MarkdownLinkDefinition, F as MarkdownLinkReference, G as MarkdownList, I as MarkdownListItem, J as MarkdownMathBlock, K as MarkdownMention, N as MarkdownParagraph, O as MarkdownPoint, P as MarkdownSafetyLimits, Q as MarkdownSourcePosition, R as MarkdownStrikethrough, S as MarkdownStrong, T as MarkdownSubscript, U as MarkdownSuperscript, V as MarkdownTable, W as MarkdownTableCell, X as MarkdownTableRow, Y as MarkdownText, Z as MarkdownTextDirective, _ as MarkdownThematicBreak, a6 as assertMarkdownDocumentWithinLimits, a7 as assertMarkdownSourceWithinLimits, ac as resolveMarkdownSafetyLimits } from '../types-C6VvDDL2.js';
3
+ export { B as BLOCK_META_KEY_DESCRIPTORS, a as BlockMetaKeyDescriptor, K as KNOWN_BLOCK_META_KEYS, b as KnownBlockMetaKey, p as parseTimeSeconds } from '../annotationCoercion-BgL52343.js';
4
4
 
5
5
  /**
6
6
  * Markdown → JSON Parser
@@ -17,7 +17,7 @@ import {
17
17
  stringifyMarkdown,
18
18
  unwrapMarkdownSource,
19
19
  wrapMarkdownSource
20
- } from "../chunk-UVQPK6A3.js";
20
+ } from "../chunk-ANH2OZ2M.js";
21
21
  import {
22
22
  DEFAULT_MARKDOWN_SAFETY_LIMITS,
23
23
  MarkdownLimitError,
@@ -29,7 +29,7 @@ import {
29
29
  resolveMarkdownSafetyLimits,
30
30
  serializePandocAttributes,
31
31
  toMdast
32
- } from "../chunk-HUXK7EOT.js";
32
+ } from "../chunk-GDHXT5Q7.js";
33
33
  import {
34
34
  BLOCK_META_KEY_DESCRIPTORS,
35
35
  KNOWN_BLOCK_META_KEYS,
@@ -1,5 +1,5 @@
1
- import { k as Block, aT as PageSectionKind, aR as PageEmphasis, by as ThemeColorScheme, aP as PageBackground, bw as Theme, b$ as ViewportConfig, y as CustomTemplateDefinition, aW as PageVariant, bk as StartBlockConfig, Q as Doc, bz as ThemePageStyle } from './Doc-C-cv1g4G.js';
2
- import { M as MarkdownBlockNode } from './types-Be6sBUBx.js';
1
+ import { k as Block, aT as PageSectionKind, aR as PageEmphasis, by as ThemeColorScheme, aP as PageBackground, bw as Theme, b$ as ViewportConfig, y as CustomTemplateDefinition, aW as PageVariant, bk as StartBlockConfig, Q as Doc, bz as ThemePageStyle } from './Doc-Bd2kdzuy.js';
2
+ import { M as MarkdownBlockNode } from './types-C6VvDDL2.js';
3
3
 
4
4
  /**
5
5
  * PageSection — the framework-agnostic block model for Page (linear) mode.
@@ -1,6 +1,6 @@
1
- import { al as MediaCut, Q as Doc, aj as MediaClip, cv as MediaFxOpId, cw as MediaFxChain } from '../Doc-C-cv1g4G.js';
2
- export { cx as MEDIA_EDIT_PARAMS, cy as MEDIA_FX_ORDER, cz as MEDIA_FX_SPECS, ak as MediaCrop, cA as MediaEditParamKey, cB as MediaEditParamValues, am as MediaEdits, cC as MediaFxOp, cD as formatMediaNumber, cE as hasRenderableFx, cF as mediaEditHtmlAttribute, cG as mediaEditValuesFromAttributes, cH as mediaEditValuesFromParams, cI as mediaRenderKey, cJ as normalizeMediaCrop, cK as normalizeMediaCuts, cL as parseMediaCrop, cM as parseMediaCuts, cN as parseMediaEdits, cO as parseMediaFx, cP as serializeMediaCrop, cQ as serializeMediaCuts, cR as serializeMediaEdits, cS as serializeMediaFx } from '../Doc-C-cv1g4G.js';
3
- import '../types-Be6sBUBx.js';
1
+ import { al as MediaCut, Q as Doc, aj as MediaClip, cv as MediaFxOpId, cw as MediaFxChain } from '../Doc-Bd2kdzuy.js';
2
+ export { cx as MEDIA_EDIT_PARAMS, cy as MEDIA_FX_ORDER, cz as MEDIA_FX_SPECS, ak as MediaCrop, cA as MediaEditParamKey, cB as MediaEditParamValues, am as MediaEdits, cC as MediaFxOp, cD as formatMediaNumber, cE as hasRenderableFx, cF as mediaEditHtmlAttribute, cG as mediaEditValuesFromAttributes, cH as mediaEditValuesFromParams, cI as mediaRenderKey, cJ as normalizeMediaCrop, cK as normalizeMediaCuts, cL as parseMediaCrop, cM as parseMediaCuts, cN as parseMediaEdits, cO as parseMediaFx, cP as serializeMediaCrop, cQ as serializeMediaCuts, cR as serializeMediaEdits, cS as serializeMediaFx } from '../Doc-Bd2kdzuy.js';
3
+ import '../types-C6VvDDL2.js';
4
4
 
5
5
  /**
6
6
  * Source time ↔ played time for a media clip with a trim window and cuts.
@@ -1,5 +1,5 @@
1
- import { Q as Doc, f as AudioBookmark } from '../Doc-C-cv1g4G.js';
2
- import '../types-Be6sBUBx.js';
1
+ import { Q as Doc, f as AudioBookmark } from '../Doc-Bd2kdzuy.js';
2
+ import '../types-C6VvDDL2.js';
3
3
 
4
4
  /**
5
5
  * Shared types + tuning configs for the narration engine.
@@ -616,11 +616,7 @@ interface NarrationTimingJsonV3 {
616
616
  */
617
617
  cameraOffsetSec?: number;
618
618
  /** Provenance of the timing data. */
619
- generator?: {
620
- name: string;
621
- method: NarrationTimingMethod;
622
- baseWpm?: number;
623
- };
619
+ generator?: NarrationTimingGenerator;
624
620
  }
625
621
  /**
626
622
  * How a sidecar's block ranges were produced.
@@ -629,12 +625,36 @@ interface NarrationTimingJsonV3 {
629
625
  * them from the take's audio against the expected script.
630
626
  * - `'presenter-advance'` — the presenter drove them directly, by advancing
631
627
  * slides in the recorder while the take rolled. Observed, not inferred.
628
+ * - `'tts'` — a host synthesized the narration (text-to-speech). Block and
629
+ * sentence boundaries are exact because each was synthesized separately;
630
+ * word times are interpolated.
632
631
  */
633
- type NarrationTimingMethod = 'dsp-align' | 'presenter-advance';
632
+ type NarrationTimingMethod = 'dsp-align' | 'presenter-advance' | 'tts';
633
+ /** Provenance recorded in a sidecar's `generator` field. */
634
+ interface NarrationTimingGenerator {
635
+ /** Producer id, e.g. `'squisq-teleprompter'` or a host's TTS engine name. */
636
+ name: string;
637
+ method: NarrationTimingMethod;
638
+ /** Speaking rate the take was paced at, when the producer has one. */
639
+ baseWpm?: number;
640
+ }
634
641
  interface BuildNarrationTimingOptions {
635
642
  cameraOffsetSec?: number;
643
+ /**
644
+ * Recorded as `generator.baseWpm`. A `generator` override's own `baseWpm`
645
+ * wins over this one.
646
+ */
636
647
  baseWpm?: number;
648
+ /**
649
+ * Who produced the timings. Defaults to the teleprompter's aligner
650
+ * (`{ name: 'squisq-teleprompter', method: 'dsp-align' }`); hosts that
651
+ * produce their own timings (TTS, say) name themselves here instead of
652
+ * post-editing the payload.
653
+ */
654
+ generator?: NarrationTimingGenerator;
637
655
  }
656
+ /** The `generator` block a sidecar records for these build options. */
657
+ declare function resolveNarrationTimingGenerator(options?: BuildNarrationTimingOptions): NarrationTimingGenerator;
638
658
  /** Build the v3 sidecar payload from a script + its alignment. Pure. */
639
659
  declare function buildNarrationTimingJson(script: NarrationScript, alignment: NarrationAlignment, durationSec: number, options?: BuildNarrationTimingOptions): NarrationTimingJsonV3;
640
660
  /**
@@ -741,4 +761,4 @@ interface AdvanceCoverage {
741
761
  /** Summarize an advance log against a doc. Pure; drives the review-panel warning. */
742
762
  declare function advanceCoverage(doc: Doc, advances: SlideAdvanceLog): AdvanceCoverage;
743
763
 
744
- export { type AdvanceCoverage, type AlignConfig, type AlignInput, type BandpassState, type BuildAdvanceTimingOptions, type BuildNarrationTimingOptions, type BuildScriptOptions, DEFAULT_ALIGN_CONFIG, DEFAULT_FEATURE_CONFIG, DEFAULT_NUCLEI_CONFIG, DEFAULT_PACING_CONFIG, DEFAULT_VAD_CONFIG, EMPTY_ADVANCE_LOG, type FeatureConfig, type FeatureState, type FrameFeatures, type NarrationAlignment, type NarrationBlockRange, type NarrationScript, type NarrationSessionConfig, type NarrationSessionState, type NarrationTimingBlock, type NarrationTimingJsonV3, type NarrationTimingMethod, type NarrationTrace, type NucleiConfig, type NucleiState, type PacingConfig, type PacingState, type PacingTick, type ScriptBlockRange, type ScriptToken, type SlideAdvance, type SlideAdvanceLog, type TraceSample, type VadConfig, type VadState, type WordTiming, advanceCoverage, alignNarration, bandpassRun, buildAdvanceTimingJson, buildNarrationScript, buildNarrationTimingJson, createBandpass, createFeatureState, createNarrationSession, createNucleiState, createPacingState, createVadState, detectSyllableOnsets, downsampleTrace, estimateSyllables, expectedSyllablesAt, extractFrameFeatures, featureStep, narrationSessionStep, nucleiStep, pacingStep, parseNarrationTimingJson, reanchorPacing, reanchorSession, recordSlideShown, traceWordPosAt, vadStep, wordIndexAtChar, wordIndexAtTime, wordPosAtExpectedSyllables };
764
+ export { type AdvanceCoverage, type AlignConfig, type AlignInput, type BandpassState, type BuildAdvanceTimingOptions, type BuildNarrationTimingOptions, type BuildScriptOptions, DEFAULT_ALIGN_CONFIG, DEFAULT_FEATURE_CONFIG, DEFAULT_NUCLEI_CONFIG, DEFAULT_PACING_CONFIG, DEFAULT_VAD_CONFIG, EMPTY_ADVANCE_LOG, type FeatureConfig, type FeatureState, type FrameFeatures, type NarrationAlignment, type NarrationBlockRange, type NarrationScript, type NarrationSessionConfig, type NarrationSessionState, type NarrationTimingBlock, type NarrationTimingGenerator, type NarrationTimingJsonV3, type NarrationTimingMethod, type NarrationTrace, type NucleiConfig, type NucleiState, type PacingConfig, type PacingState, type PacingTick, type ScriptBlockRange, type ScriptToken, type SlideAdvance, type SlideAdvanceLog, type TraceSample, type VadConfig, type VadState, type WordTiming, advanceCoverage, alignNarration, bandpassRun, buildAdvanceTimingJson, buildNarrationScript, buildNarrationTimingJson, createBandpass, createFeatureState, createNarrationSession, createNucleiState, createPacingState, createVadState, detectSyllableOnsets, downsampleTrace, estimateSyllables, expectedSyllablesAt, extractFrameFeatures, featureStep, narrationSessionStep, nucleiStep, pacingStep, parseNarrationTimingJson, reanchorPacing, reanchorSession, recordSlideShown, resolveNarrationTimingGenerator, traceWordPosAt, vadStep, wordIndexAtChar, wordIndexAtTime, wordPosAtExpectedSyllables };
@@ -27,7 +27,7 @@ import {
27
27
  recordSlideShown,
28
28
  traceWordPosAt,
29
29
  vadStep
30
- } from "../chunk-HHGVTXHR.js";
30
+ } from "../chunk-IRVXZUVU.js";
31
31
  import "../chunk-NEWNNLWN.js";
32
32
  import {
33
33
  buildNarrationScript,
@@ -35,11 +35,12 @@ import {
35
35
  estimateSyllables,
36
36
  expectedSyllablesAt,
37
37
  parseNarrationTimingJson,
38
+ resolveNarrationTimingGenerator,
38
39
  wordIndexAtChar,
39
40
  wordIndexAtTime,
40
41
  wordPosAtExpectedSyllables
41
- } from "../chunk-6H2HBBFC.js";
42
- import "../chunk-YPI2VJSB.js";
42
+ } from "../chunk-5W7F46OO.js";
43
+ import "../chunk-WMXQDP2C.js";
43
44
  import "../chunk-C3NAY5YP.js";
44
45
  import "../chunk-PUS54YU6.js";
45
46
  import "../chunk-PFH3WV6J.js";
@@ -81,6 +82,7 @@ export {
81
82
  reanchorPacing,
82
83
  reanchorSession,
83
84
  recordSlideShown,
85
+ resolveNarrationTimingGenerator,
84
86
  traceWordPosAt,
85
87
  vadStep,
86
88
  wordIndexAtChar,
@@ -1,4 +1,4 @@
1
- import { M as MarkdownBlockNode } from '../types-Be6sBUBx.js';
1
+ import { M as MarkdownBlockNode } from '../types-C6VvDDL2.js';
2
2
 
3
3
  /**
4
4
  * Block template recommendations.
@@ -1,10 +1,10 @@
1
1
  export { B as BoundingBox, C as Coordinates } from '../Types-sh2VRxfo.js';
2
- import { Q as Doc, bw as Theme, bz as ThemePageStyle, by as ThemeColorScheme, K as DeepPartial, bC as ThemeSeedColors, bx as ThemeColorPalette, _ as FontFamilyKind, Z as FontFamily } from '../Doc-C-cv1g4G.js';
3
- export { A as AccentImage, a as AccentPosition, b as AmbientGradientConfig, c as Animation, d as AnimationType, e as AreaChartInput, f as AudioBookmark, g as AudioSegment, h as AudioTimingData, i as AudioTrack, B as BarChartInput, j as BigTextInput, k as Block, l as BlockConnection, m as BorderStyle, C as CaptionPhrase, n as CaptionTrack, o as CaptionWord, p as ChartBaseFields, q as ChartTemplateInput, r as ColorScheme, s as ColumnChartInput, t as ComparisonBarInput, u as ContentBlockInput, v as CornerBrandingConfig, w as CountUpSpec, x as CreateTemplateContextOptions, y as CustomTemplateDefinition, z as CustomTemplateLayer, D as CustomTemplateValidationError, E as CustomTemplateValidationResult, F as DARK_SURFACE, G as DEFAULT_DOC_FONT, H as DEFAULT_TITLE_FONT, I as DataTableInput, J as DateEventInput, L as DefinitionCardInput, M as DiagramBlockInput, N as DiagramEdgeAnchor, O as DiagramTemplateEdge, P as DiagramTemplateNode, R as DocBlock, S as DocDiagnostic, T as DonutChartInput, U as DrawingBlockInput, V as FRONTMATTER_CUSTOM_TEMPLATES_KEY, W as FRONTMATTER_CUSTOM_THEMES_KEY, X as FRONTMATTER_MOTION_KEY, Y as FactCardInput, $ as FullBleedQuoteInput, a0 as GradientBackgroundConfig, a1 as ImageBackgroundConfig, a2 as ImageLayer, a3 as ImageTreatment, a4 as ImageWithCaptionInput, a5 as LIGHT_SURFACE, a6 as Layer, a7 as LayerRepeat, a8 as LayoutHints, a9 as LeftFeatureInput, aa as LineChartInput, ab as LinearGradient, ac as ListBlockInput, ad as MOTION_PROFILES, ae as MapBlockInput, af as MapLayer, ag as MapMarker, ah as MapTileStyle, ai as MarkerStyle, aj as MediaClip, ak as MediaCrop, al as MediaCut, am as MediaEdits, an as MediaScheduleOptions, ao as MermaidLayer, ap as MotionEntrance, aq as MotionOrigin, ar as MotionProfile, as as MotionProfileName, at as MotionSpec, au as MotionState, av as PAGE_ACCENT_STRATEGIES, aw as PAGE_BACKGROUNDS, ax as PAGE_BACKGROUND_RHYTHMS, ay as PAGE_DESIGN_FAMILIES, az as PAGE_DIVIDERS, aA as PAGE_EMPHASES, aB as PAGE_EYEBROWS, aC as PAGE_HEADING_CASES, aD as PAGE_HEADING_SCALES, aE as PAGE_HEADING_UNDERLINES, aF as PAGE_HERO_STYLES, aG as PAGE_IMAGE_FRAMINGS, aH as PAGE_NUMERAL_STYLES, aI as PAGE_PATTERNS, aJ as PAGE_QUOTE_MARKS, aK as PAGE_SECTION_KINDS, aL as PAGE_SECTION_SPACINGS, aM as PAGE_SHADOWS, aN as PAGE_VARIANTS, aO as PageAccentRotation, aP as PageBackground, aQ as PageDesignFamily, aR as PageEmphasis, aS as PageHeadingTreatment, aT as PageSectionKind, aU as PageSectionOverride, aV as PageTokens, aW as PageVariant, aX as PathLayer, aY as PatternBackgroundConfig, aZ as PersistentLayer, a_ as PersistentLayerConfig, a$ as PersistentLayerTemplate, b0 as PersistentLayerTemplateConfig, b1 as PersistentLayerTemplateType, b2 as PhotoGridInput, b3 as PieChartInput, b4 as PipStyle, b5 as Position, b6 as ProgressIndicatorConfig, b7 as PromotedBodyAnnotation, b8 as PullQuoteInput, b9 as QuoteBlockInput, ba as RawLayersInput, bb as RenderStyle, bc as RightFeatureInput, bd as ScatterChartInput, be as ScheduledClip, bf as SectionHeaderInput, bg as ShapeFilter, bh as ShapeLayer, bi as ShapePattern, bj as SolidBackgroundConfig, bk as StartBlockConfig, bl as StatHighlightInput, bm as SurfaceScheme, bn as THEME_SCHEMA_VERSION, bo as TableLayer, bp as TableLayerStyle, bq as TemplateBlock, br as TemplateContext, bs as TemplateFunction, bt as TemplateRegistry, bu as TextLayer, bv as TextStyle, bA as ThemeRegistry, bB as ThemeSchemaVersion, bD as ThemeStyle, bE as ThemeTypography, bF as TimelineBlockInput, bG as TimelineTemplateEvent, bH as TimelineTemplateLink, bI as TimelineTemplateTrack, bJ as TitleBlockInput, bK as TitleCaptionConfig, bL as TranscriptBlockInput, bM as TreeBlockInput, bN as TreeLayer, bO as TreeLayerItem, bP as TreeLayerStyle, bQ as TreeTemplateItem, bR as TwoColumnInput, bS as VIEWPORT_PRESETS, bT as VideoLayer, bU as VideoPipPosition, bV as VideoPipShape, bW as VideoPipSize, bX as VideoPlacement, bY as VideoPresentation, bZ as VideoPullQuoteInput, b_ as VideoWithCaptionInput, b$ as ViewportConfig, c0 as ViewportOrientation, c1 as ViewportPreset, c2 as VignetteConfig, c3 as applySurface, c4 as calculateDuration, c5 as calculateFontScale, c6 as createTemplateContext, c7 as createTheme, c8 as createThemeRegistry, c9 as getAspectRatioString, ca as getBlockAtTime, cb as getCaptionAtTime, cc as getDocPlaybackDuration, cd as getLayoutHints, ce as getSafeTextBounds, cf as getSegmentAtTime, cg as getTwoColumnPositions, ch as getViewport, ci as getViewportOrientation, cj as isCustomTemplateDefinition, ck as isMotionProfileName, cl as isPersistentLayerTemplate, cm as isTemplateBlock, cn as layoutScaledFontSize, co as readFrontmatterMotion, cp as resolveMediaSchedule, cq as resolveMotionForDoc, cr as resolveMotionProfile, cs as scaledFontSize, ct as scheduleMediaClip, cu as validateCustomTemplateDefinition } from '../Doc-C-cv1g4G.js';
4
- export { a as DEFAULT_TRANSITION_DURATION_SECONDS, a1 as TRANSITION_DIRECTIONS, a2 as TRANSITION_TYPES, a3 as Transition, a4 as TransitionDirection, a5 as TransitionType, a8 as isTransitionType, a9 as normalizeTransitionDirection, aa as normalizeTransitionType, ab as resolveBlockTransition, ad as resolveTransitionDuration } from '../types-Be6sBUBx.js';
5
- export { D as DEFAULT_THEME, a as DEFAULT_THEME_ID, T as THEMES, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-CROfw3YK.js';
2
+ import { Q as Doc, bw as Theme, bz as ThemePageStyle, by as ThemeColorScheme, K as DeepPartial, bC as ThemeSeedColors, bx as ThemeColorPalette, _ as FontFamilyKind, Z as FontFamily } from '../Doc-Bd2kdzuy.js';
3
+ export { A as AccentImage, a as AccentPosition, b as AmbientGradientConfig, c as Animation, d as AnimationType, e as AreaChartInput, f as AudioBookmark, g as AudioSegment, h as AudioTimingData, i as AudioTrack, B as BarChartInput, j as BigTextInput, k as Block, l as BlockConnection, m as BorderStyle, C as CaptionPhrase, n as CaptionTrack, o as CaptionWord, p as ChartBaseFields, q as ChartTemplateInput, r as ColorScheme, s as ColumnChartInput, t as ComparisonBarInput, u as ContentBlockInput, v as CornerBrandingConfig, w as CountUpSpec, x as CreateTemplateContextOptions, y as CustomTemplateDefinition, z as CustomTemplateLayer, D as CustomTemplateValidationError, E as CustomTemplateValidationResult, F as DARK_SURFACE, G as DEFAULT_DOC_FONT, H as DEFAULT_TITLE_FONT, I as DataTableInput, J as DateEventInput, L as DefinitionCardInput, M as DiagramBlockInput, N as DiagramEdgeAnchor, O as DiagramTemplateEdge, P as DiagramTemplateNode, R as DocBlock, S as DocDiagnostic, T as DonutChartInput, U as DrawingBlockInput, V as FRONTMATTER_CUSTOM_TEMPLATES_KEY, W as FRONTMATTER_CUSTOM_THEMES_KEY, X as FRONTMATTER_MOTION_KEY, Y as FactCardInput, $ as FullBleedQuoteInput, a0 as GradientBackgroundConfig, a1 as ImageBackgroundConfig, a2 as ImageLayer, a3 as ImageTreatment, a4 as ImageWithCaptionInput, a5 as LIGHT_SURFACE, a6 as Layer, a7 as LayerRepeat, a8 as LayoutHints, a9 as LeftFeatureInput, aa as LineChartInput, ab as LinearGradient, ac as ListBlockInput, ad as MOTION_PROFILES, ae as MapBlockInput, af as MapLayer, ag as MapMarker, ah as MapTileStyle, ai as MarkerStyle, aj as MediaClip, ak as MediaCrop, al as MediaCut, am as MediaEdits, an as MediaScheduleOptions, ao as MermaidLayer, ap as MotionEntrance, aq as MotionOrigin, ar as MotionProfile, as as MotionProfileName, at as MotionSpec, au as MotionState, av as PAGE_ACCENT_STRATEGIES, aw as PAGE_BACKGROUNDS, ax as PAGE_BACKGROUND_RHYTHMS, ay as PAGE_DESIGN_FAMILIES, az as PAGE_DIVIDERS, aA as PAGE_EMPHASES, aB as PAGE_EYEBROWS, aC as PAGE_HEADING_CASES, aD as PAGE_HEADING_SCALES, aE as PAGE_HEADING_UNDERLINES, aF as PAGE_HERO_STYLES, aG as PAGE_IMAGE_FRAMINGS, aH as PAGE_NUMERAL_STYLES, aI as PAGE_PATTERNS, aJ as PAGE_QUOTE_MARKS, aK as PAGE_SECTION_KINDS, aL as PAGE_SECTION_SPACINGS, aM as PAGE_SHADOWS, aN as PAGE_VARIANTS, aO as PageAccentRotation, aP as PageBackground, aQ as PageDesignFamily, aR as PageEmphasis, aS as PageHeadingTreatment, aT as PageSectionKind, aU as PageSectionOverride, aV as PageTokens, aW as PageVariant, aX as PathLayer, aY as PatternBackgroundConfig, aZ as PersistentLayer, a_ as PersistentLayerConfig, a$ as PersistentLayerTemplate, b0 as PersistentLayerTemplateConfig, b1 as PersistentLayerTemplateType, b2 as PhotoGridInput, b3 as PieChartInput, b4 as PipStyle, b5 as Position, b6 as ProgressIndicatorConfig, b7 as PromotedBodyAnnotation, b8 as PullQuoteInput, b9 as QuoteBlockInput, ba as RawLayersInput, bb as RenderStyle, bc as RightFeatureInput, bd as ScatterChartInput, be as ScheduledClip, bf as SectionHeaderInput, bg as ShapeFilter, bh as ShapeLayer, bi as ShapePattern, bj as SolidBackgroundConfig, bk as StartBlockConfig, bl as StatHighlightInput, bm as SurfaceScheme, bn as THEME_SCHEMA_VERSION, bo as TableLayer, bp as TableLayerStyle, bq as TemplateBlock, br as TemplateContext, bs as TemplateFunction, bt as TemplateRegistry, bu as TextLayer, bv as TextStyle, bA as ThemeRegistry, bB as ThemeSchemaVersion, bD as ThemeStyle, bE as ThemeTypography, bF as TimelineBlockInput, bG as TimelineTemplateEvent, bH as TimelineTemplateLink, bI as TimelineTemplateTrack, bJ as TitleBlockInput, bK as TitleCaptionConfig, bL as TranscriptBlockInput, bM as TreeBlockInput, bN as TreeLayer, bO as TreeLayerItem, bP as TreeLayerStyle, bQ as TreeTemplateItem, bR as TwoColumnInput, bS as VIEWPORT_PRESETS, bT as VideoLayer, bU as VideoPipPosition, bV as VideoPipShape, bW as VideoPipSize, bX as VideoPlacement, bY as VideoPresentation, bZ as VideoPullQuoteInput, b_ as VideoWithCaptionInput, b$ as ViewportConfig, c0 as ViewportOrientation, c1 as ViewportPreset, c2 as VignetteConfig, c3 as applySurface, c4 as calculateDuration, c5 as calculateFontScale, c6 as createTemplateContext, c7 as createTheme, c8 as createThemeRegistry, c9 as getAspectRatioString, ca as getBlockAtTime, cb as getCaptionAtTime, cc as getDocPlaybackDuration, cd as getLayoutHints, ce as getSafeTextBounds, cf as getSegmentAtTime, cg as getTwoColumnPositions, ch as getViewport, ci as getViewportOrientation, cj as isCustomTemplateDefinition, ck as isMotionProfileName, cl as isPersistentLayerTemplate, cm as isTemplateBlock, cn as layoutScaledFontSize, co as readFrontmatterMotion, cp as resolveMediaSchedule, cq as resolveMotionForDoc, cr as resolveMotionProfile, cs as scaledFontSize, ct as scheduleMediaClip, cu as validateCustomTemplateDefinition } from '../Doc-Bd2kdzuy.js';
4
+ export { a as DEFAULT_TRANSITION_DURATION_SECONDS, a1 as TRANSITION_DIRECTIONS, a2 as TRANSITION_TYPES, a3 as Transition, a4 as TransitionDirection, a5 as TransitionType, a8 as isTransitionType, a9 as normalizeTransitionDirection, aa as normalizeTransitionType, ab as resolveBlockTransition, ad as resolveTransitionDuration } from '../types-C6VvDDL2.js';
5
+ export { D as DEFAULT_THEME, a as DEFAULT_THEME_ID, T as THEMES, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-BbF3EKWM.js';
6
6
  export { M as MediaEntry, a as MediaProvider } from '../MediaProvider-wpSe21B3.js';
7
- export { E as EditorLayerMeta, I as ImageEditCanvas, a as ImageEditDoc, b as ImageEditLayer, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-3J4PRw8N.js';
7
+ export { E as EditorLayerMeta, I as ImageEditCanvas, a as ImageEditDoc, b as ImageEditLayer, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-C3HOltpW.js';
8
8
 
9
9
  /**
10
10
  * Runtime validation for the canonical {@link Doc} JSON shape.
@@ -1,4 +1,4 @@
1
- import { bw as Theme, bA as ThemeRegistry } from './Doc-C-cv1g4G.js';
1
+ import { bw as Theme, bA as ThemeRegistry } from './Doc-Bd2kdzuy.js';
2
2
 
3
3
  /**
4
4
  * Built-in Theme Library
@@ -1,5 +1,5 @@
1
- import { g as AudioSegment, h as AudioTimingData, n as CaptionTrack } from '../Doc-C-cv1g4G.js';
2
- import '../types-Be6sBUBx.js';
1
+ import { g as AudioSegment, h as AudioTimingData, n as CaptionTrack } from '../Doc-Bd2kdzuy.js';
2
+ import '../types-C6VvDDL2.js';
3
3
 
4
4
  /**
5
5
  * Narration timing estimation.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildCaptionTrack
3
- } from "../chunk-44BJ42GT.js";
3
+ } from "../chunk-4OQFLZ6G.js";
4
4
  import {
5
5
  DEFAULT_WORDS_PER_SECOND,
6
6
  calculatePrefixDuration,
@@ -1,7 +1,7 @@
1
- import { Q as Doc, r as ColorScheme, k as Block, bq as TemplateBlock } from '../Doc-C-cv1g4G.js';
2
- import { i as PageTransformHints } from '../materializePageSection-Dmy_-AUQ.js';
1
+ import { Q as Doc, r as ColorScheme, k as Block, bq as TemplateBlock } from '../Doc-Bd2kdzuy.js';
2
+ import { i as PageTransformHints } from '../materializePageSection-FRv9whYy.js';
3
3
  import { d as ExtractionType, E as ExtractedElement, b as ExtractionOptions } from '../contentExtractor-BNfVJV2U.js';
4
- import '../types-Be6sBUBx.js';
4
+ import '../types-C6VvDDL2.js';
5
5
 
6
6
  /** Identifier for a built-in or caller-registered transform style. */
7
7
  type TransformStyleId = string;
@@ -9,14 +9,14 @@ import {
9
9
  getTransformStyleSummaries,
10
10
  resolveTransformStyle,
11
11
  transformNarratedSegment
12
- } from "../chunk-4P557IPH.js";
12
+ } from "../chunk-IFJPPI63.js";
13
13
  import "../chunk-SVN7T6BK.js";
14
- import "../chunk-YPI2VJSB.js";
14
+ import "../chunk-WMXQDP2C.js";
15
15
  import "../chunk-C3NAY5YP.js";
16
16
  import "../chunk-PUS54YU6.js";
17
17
  import "../chunk-PFH3WV6J.js";
18
18
  import "../chunk-L7QZORLB.js";
19
- import "../chunk-HUXK7EOT.js";
19
+ import "../chunk-GDHXT5Q7.js";
20
20
  import "../chunk-TMOHAFYE.js";
21
21
  import "../chunk-X7BNDUNI.js";
22
22
  import "../chunk-7N4G32LG.js";
@@ -652,7 +652,11 @@ interface ParseOptions {
652
652
  signal?: AbortSignal;
653
653
  /** Enable GFM extensions (tables, strikethrough, task lists, autolinks, footnotes). Default: true */
654
654
  gfm?: boolean;
655
- /** Enable math extensions ($...$ and $$...$$). Default: true */
655
+ /**
656
+ * Enable math extensions ($...$ and $$...$$). Default: true.
657
+ * Single-dollar math follows Pandoc's flanking rules, so prose prices such
658
+ * as `$45 … $350` stay text.
659
+ */
656
660
  math?: boolean;
657
661
  /** Enable directive extensions (:::container, ::leaf, :text). Default: true */
658
662
  directive?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/squisq",
3
- "version": "2.11.14",
3
+ "version": "2.11.16",
4
4
  "description": "Headless utilities for doc/block rendering, spatial math, Markdown, and storage",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
File without changes