@bendyline/squisq 2.13.0 → 2.13.1

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 (37) hide show
  1. package/dist/{Doc-czvrR7Oy.d.ts → Doc-C7iCmmmF.d.ts} +12 -0
  2. package/dist/{ImageEditDoc-BDkpwCMN.d.ts → ImageEditDoc-CxRHe41J.d.ts} +1 -1
  3. package/dist/{chunk-ECPR5JKY.js → chunk-2LTALYXX.js} +7 -7
  4. package/dist/{chunk-PVFDR3XT.js → chunk-3A6YM375.js} +1 -1
  5. package/dist/{chunk-4OQFLZ6G.js → chunk-5HWYSUXS.js} +20 -4
  6. package/dist/{chunk-E2NFHYCB.js → chunk-5SVFLLOD.js} +4 -1
  7. package/dist/{chunk-ILLLGZCE.js → chunk-7ZXCS3UU.js} +2 -2
  8. package/dist/{chunk-2DXLKKTS.js → chunk-DCO5GYVW.js} +5 -5
  9. package/dist/{chunk-GX3VSKYS.js → chunk-GLWQTZ4C.js} +1 -1
  10. package/dist/{chunk-MWSGNEH6.js → chunk-HE3HQZWU.js} +1 -0
  11. package/dist/{chunk-JDYWKGG7.js → chunk-HGCIIXHP.js} +1 -1
  12. package/dist/{chunk-FVFTJ64H.js → chunk-ITLJQG7Z.js} +3 -3
  13. package/dist/{chunk-Y3HL26X3.js → chunk-V4USYYYO.js} +1 -1
  14. package/dist/{chunk-HYJ63N6V.js → chunk-WNEH3BZP.js} +14 -0
  15. package/dist/doc/index.d.ts +5 -5
  16. package/dist/doc/index.js +8 -8
  17. package/dist/fence/index.d.ts +1 -1
  18. package/dist/generate/index.d.ts +1 -1
  19. package/dist/imageEdit/index.d.ts +3 -3
  20. package/dist/index.d.ts +4 -4
  21. package/dist/index.js +12 -12
  22. package/dist/jsonForm/index.d.ts +1 -1
  23. package/dist/jsonForm/index.js +3 -3
  24. package/dist/markdown/index.js +3 -3
  25. package/dist/{materializePageSection-mTAAHNlA.d.ts → materializePageSection-_5uQrEYP.d.ts} +1 -1
  26. package/dist/mediaEdit/index.d.ts +2 -2
  27. package/dist/narration/index.d.ts +1 -1
  28. package/dist/narration/index.js +5 -5
  29. package/dist/recommend/index.js +2 -2
  30. package/dist/schemas/index.d.ts +4 -4
  31. package/dist/schemas/index.js +2 -2
  32. package/dist/{themeLibrary-Bsn4YNuq.d.ts → themeLibrary-DsntZLoa.d.ts} +1 -1
  33. package/dist/timing/index.d.ts +7 -1
  34. package/dist/timing/index.js +1 -1
  35. package/dist/transform/index.d.ts +2 -2
  36. package/dist/transform/index.js +6 -6
  37. package/package.json +1 -1
@@ -1936,6 +1936,13 @@ interface ThemeTypography {
1936
1936
  titleLineHeight?: number;
1937
1937
  /** Default title font weight */
1938
1938
  titleWeight?: 'normal' | 'bold';
1939
+ /** Font family for social (burned-in, word-by-word) captions (default: titleFont) */
1940
+ captionFont?: FontFamily;
1941
+ /**
1942
+ * Letter case of social captions: `'upper'` (default) sets them in capitals;
1943
+ * `'as-written'` keeps the narration's own casing, so names keep their capitals.
1944
+ */
1945
+ captionCase?: 'upper' | 'as-written';
1939
1946
  }
1940
1947
  /**
1941
1948
  * Global visual-style knobs that templates consult.
@@ -3303,6 +3310,11 @@ interface CaptionWord {
3303
3310
  startTime: number;
3304
3311
  /** End time in seconds */
3305
3312
  endTime: number;
3313
+ /**
3314
+ * The narration text starts a new paragraph after this word, with no punctuation to
3315
+ * show it (a spoken title or heading): captions break here as at a sentence end.
3316
+ */
3317
+ paragraphEnd?: boolean;
3306
3318
  }
3307
3319
  /**
3308
3320
  * A single caption phrase to display during playback.
@@ -1,4 +1,4 @@
1
- import { a2 as ImageLayer, bw as TextLayer, bh as ShapeLayer, aX as PathLayer } from './Doc-czvrR7Oy.js';
1
+ import { a2 as ImageLayer, bw as TextLayer, bh as ShapeLayer, aX as PathLayer } from './Doc-C7iCmmmF.js';
2
2
 
3
3
  /**
4
4
  * ImageEditDoc — JSON document describing a layered, editable image.
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-FTN6SGW5.js";
4
4
  import {
5
5
  applySavedPresentation
6
- } from "./chunk-2DXLKKTS.js";
6
+ } from "./chunk-DCO5GYVW.js";
7
7
  import {
8
8
  SHAPE_NAMES,
9
9
  buildChartData,
@@ -32,7 +32,7 @@ import {
32
32
  templateRegistry,
33
33
  writeCustomTemplatesToFrontmatter,
34
34
  writeCustomThemesToFrontmatter
35
- } from "./chunk-FVFTJ64H.js";
35
+ } from "./chunk-ITLJQG7Z.js";
36
36
  import {
37
37
  ASCII_TREE_VOCAB,
38
38
  ASCII_VOCAB,
@@ -54,7 +54,7 @@ import {
54
54
  toCells,
55
55
  toGrid,
56
56
  traceBoxes
57
- } from "./chunk-JDYWKGG7.js";
57
+ } from "./chunk-HGCIIXHP.js";
58
58
  import {
59
59
  iconMarker
60
60
  } from "./chunk-7ZAAICW4.js";
@@ -78,7 +78,7 @@ import {
78
78
  resolveFontFamily,
79
79
  resolveTheme,
80
80
  withAlpha
81
- } from "./chunk-HYJ63N6V.js";
81
+ } from "./chunk-WNEH3BZP.js";
82
82
  import {
83
83
  createMediaTimeMap
84
84
  } from "./chunk-JSGIWW35.js";
@@ -87,7 +87,7 @@ import {
87
87
  } from "./chunk-L7QZORLB.js";
88
88
  import {
89
89
  parseMarkdown
90
- } from "./chunk-PVFDR3XT.js";
90
+ } from "./chunk-3A6YM375.js";
91
91
  import {
92
92
  TABLE_FED_TEMPLATES,
93
93
  TEMPLATE_ALIASES,
@@ -105,14 +105,14 @@ import {
105
105
  parseHtmlToNodes,
106
106
  parseVideoEmbedUrl,
107
107
  readFrontmatterThemeId
108
- } from "./chunk-MWSGNEH6.js";
108
+ } from "./chunk-HE3HQZWU.js";
109
109
  import {
110
110
  BUILD_PARAM_KEYS,
111
111
  buildSpecParams
112
112
  } from "./chunk-P53Z4RYC.js";
113
113
  import {
114
114
  buildCaptionTrack
115
- } from "./chunk-4OQFLZ6G.js";
115
+ } from "./chunk-5HWYSUXS.js";
116
116
  import {
117
117
  estimateTimeFromText
118
118
  } from "./chunk-GHOPHGOK.js";
@@ -11,7 +11,7 @@ import {
11
11
  parseFrontmatter,
12
12
  parseHtmlToNodes,
13
13
  sanitizeUrl
14
- } from "./chunk-MWSGNEH6.js";
14
+ } from "./chunk-HE3HQZWU.js";
15
15
  import {
16
16
  resolveIcon
17
17
  } from "./chunk-CZ7AUSLI.js";
@@ -8,6 +8,20 @@ var DEFAULT_TARGET_WORDS = 10;
8
8
  var DEFAULT_MIN_DURATION = 1.5;
9
9
  var DEFAULT_MAX_DURATION = 6;
10
10
  var DEFAULT_WORDS_PER_SECOND = 2.5;
11
+ var CLOSING_MARKS = /^[.,;:!?…"'”’»)\]]+/;
12
+ var OPENING_MARKS = /[“"‘'«([]+$/;
13
+ function writtenWord(sourceText, bookmark, fragment) {
14
+ const at = bookmark.charOffset;
15
+ if (!sourceText || !(at >= 0)) return { text: fragment, paragraphEnd: false };
16
+ if (sourceText.slice(at, at + fragment.length).toLowerCase() !== fragment.toLowerCase()) {
17
+ return { text: fragment, paragraphEnd: false };
18
+ }
19
+ const end = at + fragment.length;
20
+ const before = OPENING_MARKS.exec(sourceText.slice(Math.max(0, at - 3), at))?.[0] ?? "";
21
+ const after = CLOSING_MARKS.exec(sourceText.slice(end, end + 4))?.[0] ?? "";
22
+ const paragraphEnd = /^[^\S\n]*\n/.test(sourceText.slice(end + after.length));
23
+ return { text: before + fragment + after, paragraphEnd };
24
+ }
11
25
  function phrasesFromTiming(source, segmentIndex, targetWords) {
12
26
  const { segment, timing } = source;
13
27
  if (!timing || timing.bookmarks.length === 0) return [];
@@ -17,8 +31,9 @@ function phrasesFromTiming(source, segmentIndex, targetWords) {
17
31
  let phraseText = "";
18
32
  for (let index = 0; index < timing.bookmarks.length; index += 1) {
19
33
  const bookmark = timing.bookmarks[index];
20
- const text = bookmark.textFragment?.trim() ?? "";
21
- if (!text) continue;
34
+ const fragment = bookmark.textFragment?.trim() ?? "";
35
+ if (!fragment) continue;
36
+ const { text, paragraphEnd } = writtenWord(timing.sourceText, bookmark, fragment);
22
37
  const next = timing.bookmarks[index + 1];
23
38
  const startTime = Math.min(
24
39
  segmentEnd,
@@ -31,11 +46,12 @@ function phrasesFromTiming(source, segmentIndex, targetWords) {
31
46
  const word = {
32
47
  text,
33
48
  startTime,
34
- endTime
49
+ endTime,
50
+ ...paragraphEnd ? { paragraphEnd: true } : {}
35
51
  };
36
52
  words.push(word);
37
53
  phraseText += `${phraseText ? " " : ""}${text}`;
38
- const flush = /[.!?]$/.test(text) && words.length >= 4 || /[,;:]$/.test(text) && words.length >= targetWords - 2 || words.length >= targetWords + 3 || index === timing.bookmarks.length - 1;
54
+ const flush = paragraphEnd || /[.!?]$/.test(text) && words.length >= 4 || /[,;:]$/.test(text) && words.length >= targetWords - 2 || words.length >= targetWords + 3 || index === timing.bookmarks.length - 1;
39
55
  if (flush) {
40
56
  phrases.push({
41
57
  text: phraseText,
@@ -15,7 +15,7 @@ import {
15
15
  relativeLuminance,
16
16
  resolveFontFamily,
17
17
  withAlpha
18
- } from "./chunk-HYJ63N6V.js";
18
+ } from "./chunk-WNEH3BZP.js";
19
19
  import {
20
20
  SVG_ISLAND_LIMITS,
21
21
  parseBuildSpec
@@ -598,6 +598,9 @@ function compileTheme(partial, opts = {}) {
598
598
  if (partialTypography.monoFont !== void 0) {
599
599
  merged.typography.monoFont = partialTypography.monoFont;
600
600
  }
601
+ if (partialTypography.captionFont !== void 0) {
602
+ merged.typography.captionFont = partialTypography.captionFont;
603
+ }
601
604
  }
602
605
  if (partial.colorSchemes !== void 0) {
603
606
  merged.colorSchemes = partial.colorSchemes;
@@ -3,14 +3,14 @@ import {
3
3
  parseMarkdown,
4
4
  remarkWikiLinks,
5
5
  toMdast
6
- } from "./chunk-PVFDR3XT.js";
6
+ } from "./chunk-3A6YM375.js";
7
7
  import {
8
8
  formatFrontmatterYaml,
9
9
  getChildren,
10
10
  splitFrontmatterBlock,
11
11
  stringifyHtmlNodes,
12
12
  walkMarkdownTree
13
- } from "./chunk-MWSGNEH6.js";
13
+ } from "./chunk-HE3HQZWU.js";
14
14
 
15
15
  // src/markdown/stringify.ts
16
16
  import { unified } from "unified";
@@ -4,7 +4,7 @@ import {
4
4
  flattenRenderableBlocks,
5
5
  getPinnedBlockMeta,
6
6
  markdownToDoc
7
- } from "./chunk-FVFTJ64H.js";
7
+ } from "./chunk-ITLJQG7Z.js";
8
8
  import {
9
9
  deriveTemplateInputs,
10
10
  extractImages,
@@ -12,7 +12,7 @@ import {
12
12
  isAsciiTimelineFence,
13
13
  isPictureFence,
14
14
  isTreeFence
15
- } from "./chunk-JDYWKGG7.js";
15
+ } from "./chunk-HGCIIXHP.js";
16
16
  import {
17
17
  extractContent,
18
18
  mapElementToBlock,
@@ -21,10 +21,10 @@ import {
21
21
  import {
22
22
  cloneAndFreezeData,
23
23
  isTemplateBlock
24
- } from "./chunk-HYJ63N6V.js";
24
+ } from "./chunk-WNEH3BZP.js";
25
25
  import {
26
26
  parseMarkdown
27
- } from "./chunk-PVFDR3XT.js";
27
+ } from "./chunk-3A6YM375.js";
28
28
  import {
29
29
  isContainerTemplate
30
30
  } from "./chunk-Y25EJEZN.js";
@@ -32,7 +32,7 @@ import {
32
32
  extractPlainText,
33
33
  getChildren,
34
34
  stringifyHtmlNodes
35
- } from "./chunk-MWSGNEH6.js";
35
+ } from "./chunk-HE3HQZWU.js";
36
36
  import {
37
37
  parseBuildSpec
38
38
  } from "./chunk-P53Z4RYC.js";
@@ -2,7 +2,7 @@ import {
2
2
  DEFAULT_THEME,
3
3
  applySurface,
4
4
  resolveFontFamily
5
- } from "./chunk-HYJ63N6V.js";
5
+ } from "./chunk-WNEH3BZP.js";
6
6
 
7
7
  // src/jsonForm/chooseControl.ts
8
8
  var ENUM_SEGMENTED_LIMIT = 4;
@@ -176,6 +176,7 @@ function extractPlainText(node) {
176
176
  if ("value" in node && typeof node.value === "string") {
177
177
  return node.value;
178
178
  }
179
+ if (node.type === "break") return "\n";
179
180
  const children = getChildren(node);
180
181
  const separator = node.type === "list" || node.type === "listItem" || node.type === "table" ? "\n" : node.type === "tableRow" ? " " : "";
181
182
  return children.map(extractPlainText).join(separator);
@@ -8,7 +8,7 @@ import {
8
8
  parseTimeSeconds,
9
9
  sanitizeUrl,
10
10
  walkMarkdownTree
11
- } from "./chunk-MWSGNEH6.js";
11
+ } from "./chunk-HE3HQZWU.js";
12
12
 
13
13
  // src/doc/asciiDiagram/chars.ts
14
14
  function toCells(s) {
@@ -27,7 +27,7 @@ import {
27
27
  profileBlockContents,
28
28
  renderMarkdownBlocksHtml,
29
29
  treeToTemplateData
30
- } from "./chunk-JDYWKGG7.js";
30
+ } from "./chunk-HGCIIXHP.js";
31
31
  import {
32
32
  anchorPoint,
33
33
  base64ToUtf8,
@@ -57,7 +57,7 @@ import {
57
57
  validateCustomTemplateDefinition,
58
58
  validateTheme,
59
59
  withAlpha
60
- } from "./chunk-HYJ63N6V.js";
60
+ } from "./chunk-WNEH3BZP.js";
61
61
  import {
62
62
  mediaEditValuesFromAttributes,
63
63
  mediaEditValuesFromParams,
@@ -84,7 +84,7 @@ import {
84
84
  parseVideoEmbedUrl,
85
85
  readFrontmatterThemeId,
86
86
  walkMarkdownTree
87
- } from "./chunk-MWSGNEH6.js";
87
+ } from "./chunk-HE3HQZWU.js";
88
88
  import {
89
89
  resolveBlockTransition
90
90
  } from "./chunk-P53Z4RYC.js";
@@ -8,7 +8,7 @@ import {
8
8
  expectedSyllablesAt,
9
9
  flattenRenderableBlocks,
10
10
  wordPosAtExpectedSyllables
11
- } from "./chunk-FVFTJ64H.js";
11
+ } from "./chunk-ITLJQG7Z.js";
12
12
 
13
13
  // src/narration/types.ts
14
14
  var DEFAULT_FEATURE_CONFIG = Object.freeze({
@@ -1042,6 +1042,10 @@ var V = class {
1042
1042
  this.fontFamily(`${path}.bodyFont`, v.bodyFont);
1043
1043
  this.fontFamily(`${path}.titleFont`, v.titleFont);
1044
1044
  if (v.monoFont !== void 0) this.fontFamily(`${path}.monoFont`, v.monoFont);
1045
+ if (v.captionFont !== void 0) this.fontFamily(`${path}.captionFont`, v.captionFont);
1046
+ if (v.captionCase !== void 0 && v.captionCase !== "upper" && v.captionCase !== "as-written") {
1047
+ this.err(`${path}.captionCase`, 'expected "upper" or "as-written"');
1048
+ }
1045
1049
  for (const k of ["titleScale", "bodyScale", "lineHeight", "titleLineHeight"]) {
1046
1050
  if (v[k] !== void 0 && !this.isNumber(v[k])) {
1047
1051
  this.err(`${path}.${k}`, `expected number, got ${typeof v[k]}`);
@@ -2636,6 +2640,8 @@ var warm_earth_default = {
2636
2640
  typography: {
2637
2641
  bodyFont: { stackId: "pt-serif" },
2638
2642
  titleFont: { stackId: "pt-serif" },
2643
+ captionFont: { stackId: "pt-sans" },
2644
+ captionCase: "as-written",
2639
2645
  titleWeight: "bold",
2640
2646
  lineHeight: 1.6
2641
2647
  },
@@ -2924,6 +2930,14 @@ var AVAILABLE_FONT_STACKS = [
2924
2930
  kind: "sans",
2925
2931
  googleFontFamily: "DM Sans"
2926
2932
  },
2933
+ {
2934
+ // PT Serif's companion sans (same designers, shared proportions); also a macOS system font.
2935
+ id: "pt-sans",
2936
+ label: "PT Sans",
2937
+ family: '"PT Sans", "Helvetica Neue", Arial, sans-serif',
2938
+ kind: "sans",
2939
+ googleFontFamily: "PT Sans"
2940
+ },
2927
2941
  {
2928
2942
  id: "oswald",
2929
2943
  label: "Oswald",
@@ -1,12 +1,12 @@
1
- import { a6 as Layer, k as Block, Q as Doc, br as TemplateBlock, bs as TemplateContext, y as CustomTemplateDefinition, bu as TemplateRegistry, bA as Theme, c4 as ViewportConfig, a_ as PersistentLayerConfig, at as MotionSpec, R as DocBlock, c5 as ViewportOrientation, aZ as PersistentLayer, bN as TitleBlockInput, bf as SectionHeaderInput, j as BigTextInput, u as ContentBlockInput, bl as StatHighlightInput, b9 as QuoteBlockInput, Y as FactCardInput, bV 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, c3 as VideoWithCaptionInput, c2 as VideoPullQuoteInput, I as DataTableInput, M as DiagramBlockInput, bQ as TreeBlockInput, bJ as TimelineBlockInput, U as DrawingBlockInput, ai as MarkerStyle, A as AccentImage, a3 as ImageTreatment, a as AccentPosition, c as Animation, d as AnimationType, au as MotionState, ar as MotionProfile, bC as ThemeColorScheme, w as CountUpSpec, bE as ThemeRegistry, aR as PageEmphasis, bD as ThemePageStyle, S as DocDiagnostic, P as DiagramTemplateNode, O as DiagramTemplateEdge, bM as TimelineTemplateTrack, bL as TimelineTemplateLink } from '../Doc-czvrR7Oy.js';
2
- export { V as FRONTMATTER_CUSTOM_TEMPLATES_KEY, W as FRONTMATTER_CUSTOM_THEMES_KEY, a8 as LayoutHints, bb as RenderStyle, bB as ThemeColorPalette, bH as ThemeStyle, bI as ThemeTypography, bW as VIEWPORT_PRESETS, c6 as ViewportPreset, cb as createTemplateContext, ci as getLayoutHints, cl as getTwoColumnPositions, cm as getViewport, cn as getViewportOrientation, cr as isTemplateBlock, cx as scaledFontSize } from '../Doc-czvrR7Oy.js';
1
+ import { a6 as Layer, k as Block, Q as Doc, br as TemplateBlock, bs as TemplateContext, y as CustomTemplateDefinition, bu as TemplateRegistry, bA as Theme, c4 as ViewportConfig, a_ as PersistentLayerConfig, at as MotionSpec, R as DocBlock, c5 as ViewportOrientation, aZ as PersistentLayer, bN as TitleBlockInput, bf as SectionHeaderInput, j as BigTextInput, u as ContentBlockInput, bl as StatHighlightInput, b9 as QuoteBlockInput, Y as FactCardInput, bV 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, c3 as VideoWithCaptionInput, c2 as VideoPullQuoteInput, I as DataTableInput, M as DiagramBlockInput, bQ as TreeBlockInput, bJ as TimelineBlockInput, U as DrawingBlockInput, ai as MarkerStyle, A as AccentImage, a3 as ImageTreatment, a as AccentPosition, c as Animation, d as AnimationType, au as MotionState, ar as MotionProfile, bC as ThemeColorScheme, w as CountUpSpec, bE as ThemeRegistry, aR as PageEmphasis, bD as ThemePageStyle, S as DocDiagnostic, P as DiagramTemplateNode, O as DiagramTemplateEdge, bM as TimelineTemplateTrack, bL as TimelineTemplateLink } from '../Doc-C7iCmmmF.js';
2
+ export { V as FRONTMATTER_CUSTOM_TEMPLATES_KEY, W as FRONTMATTER_CUSTOM_THEMES_KEY, a8 as LayoutHints, bb as RenderStyle, bB as ThemeColorPalette, bH as ThemeStyle, bI as ThemeTypography, bW as VIEWPORT_PRESETS, c6 as ViewportPreset, cb as createTemplateContext, ci as getLayoutHints, cl as getTwoColumnPositions, cm as getViewport, cn as getViewportOrientation, cr as isTemplateBlock, cx as scaledFontSize } from '../Doc-C7iCmmmF.js';
3
3
  import { g as BuildStep, M as MarkdownBlockNode, S as MarkdownListItem, f as BuildSpec, e as BuildCursor, h as BuildTiming, V as MarkdownNode, ae as TransitionType, ad as TransitionDirection, z as MarkdownHeading, v as MarkdownDocument, a2 as MarkdownTable, q as MarkdownCodeBlock, R as MarkdownList } from '../types-Zk8qYuaT.js';
4
4
  import { C as CoercedBlockMeta } from '../annotationCoercion-hTvELpIN.js';
5
- import { c as PageSection } from '../materializePageSection-mTAAHNlA.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-mTAAHNlA.js';
5
+ import { c as PageSection } from '../materializePageSection-_5uQrEYP.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-_5uQrEYP.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-Bsn4YNuq.js';
9
+ export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-DsntZLoa.js';
10
10
 
11
11
  /** Pure build planning and evaluation, shared by interactive slides and frame export. */
12
12
 
package/dist/doc/index.js CHANGED
@@ -75,9 +75,9 @@ import {
75
75
  validateMarkdownSource,
76
76
  wordRevealDelay,
77
77
  writeDashboardLayoutsToFrontmatter
78
- } from "../chunk-ECPR5JKY.js";
78
+ } from "../chunk-2LTALYXX.js";
79
79
  import "../chunk-FTN6SGW5.js";
80
- import "../chunk-2DXLKKTS.js";
80
+ import "../chunk-DCO5GYVW.js";
81
81
  import {
82
82
  BASE_INPUT_DESCRIPTORS,
83
83
  BLOCK_MEDIA_LAYOUT_POLICIES,
@@ -191,7 +191,7 @@ import {
191
191
  wrapWithPersistentLayers,
192
192
  writeCustomTemplatesToFrontmatter,
193
193
  writeCustomThemesToFrontmatter
194
- } from "../chunk-FVFTJ64H.js";
194
+ } from "../chunk-ITLJQG7Z.js";
195
195
  import {
196
196
  ASCII_CHAR_H,
197
197
  ASCII_CHAR_W,
@@ -243,7 +243,7 @@ import {
243
243
  treeFromMarkdownList,
244
244
  treeFromTemplateData,
245
245
  treeToTemplateData
246
- } from "../chunk-JDYWKGG7.js";
246
+ } from "../chunk-HGCIIXHP.js";
247
247
  import "../chunk-SVN7T6BK.js";
248
248
  import {
249
249
  PATH_SHAPE_KINDS,
@@ -275,20 +275,20 @@ import {
275
275
  isTemplateBlock,
276
276
  resolveTheme,
277
277
  scaledFontSize2 as scaledFontSize
278
- } from "../chunk-HYJ63N6V.js";
278
+ } from "../chunk-WNEH3BZP.js";
279
279
  import "../chunk-JSGIWW35.js";
280
280
  import "../chunk-L7QZORLB.js";
281
- import "../chunk-PVFDR3XT.js";
281
+ import "../chunk-3A6YM375.js";
282
282
  import {
283
283
  CONTAINER_TEMPLATES,
284
284
  TABLE_FED_TEMPLATES,
285
285
  isContainerTemplate,
286
286
  resolveTemplateName
287
287
  } from "../chunk-Y25EJEZN.js";
288
- import "../chunk-MWSGNEH6.js";
288
+ import "../chunk-HE3HQZWU.js";
289
289
  import "../chunk-CZ7AUSLI.js";
290
290
  import "../chunk-P53Z4RYC.js";
291
- import "../chunk-4OQFLZ6G.js";
291
+ import "../chunk-5HWYSUXS.js";
292
292
  import "../chunk-GHOPHGOK.js";
293
293
  import "../chunk-XRW6P7IF.js";
294
294
  export {
@@ -1,4 +1,4 @@
1
- import { bA as Theme } from '../Doc-czvrR7Oy.js';
1
+ import { bA as Theme } from '../Doc-C7iCmmmF.js';
2
2
  import '../types-Zk8qYuaT.js';
3
3
 
4
4
  /**
@@ -1,6 +1,6 @@
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, br as TemplateBlock } from '../Doc-czvrR7Oy.js';
3
+ import { r as ColorScheme, A as AccentImage, br as TemplateBlock } from '../Doc-C7iCmmmF.js';
4
4
  import '../types-Zk8qYuaT.js';
5
5
 
6
6
  /**
@@ -1,8 +1,8 @@
1
- import { a as ImageEditDoc, b as ImageEditLayer } from '../ImageEditDoc-BDkpwCMN.js';
2
- export { E as EditorLayerMeta, I as ImageEditCanvas, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-BDkpwCMN.js';
1
+ import { a as ImageEditDoc, b as ImageEditLayer } from '../ImageEditDoc-CxRHe41J.js';
2
+ export { E as EditorLayerMeta, I as ImageEditCanvas, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-CxRHe41J.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-czvrR7Oy.js';
5
+ import '../Doc-C7iCmmmF.js';
6
6
  import '../types-Zk8qYuaT.js';
7
7
 
8
8
  /**
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  export { B as BUILD_EFFECTS, a as BUILD_MODES, b as BUILD_PARAM_KEYS, c as BUILD_PREVIOUS, d as BuildAdvance, e as BuildCursor, f as BuildSpec, g as BuildStep, h as BuildTiming, D as DEFAULT_MARKDOWN_SAFETY_LIMITS, i as DEFAULT_TRANSITION_DURATION_SECONDS, H as HeadingAttributes, j as HeadingTemplateAnnotation, k as HtmlComment, l as HtmlElement, m as HtmlNode, n as HtmlText, M as MarkdownBlockNode, o as MarkdownBlockquote, p as MarkdownBreak, q as MarkdownCodeBlock, r as MarkdownContainerDirective, s as MarkdownDefinitionDescription, t as MarkdownDefinitionList, u as MarkdownDefinitionTerm, v as MarkdownDocument, w as MarkdownEmphasis, x as MarkdownFootnoteDefinition, y as MarkdownFootnoteReference, z as MarkdownHeading, A as MarkdownHtmlBlock, C as MarkdownImage, E as MarkdownImageReference, F as MarkdownInlineCode, G as MarkdownInlineHtml, I as MarkdownInlineIcon, J as MarkdownInlineMath, K as MarkdownInlineNode, L as MarkdownLeafDirective, N as MarkdownLimitError, O as MarkdownLink, P as MarkdownLinkDefinition, Q as MarkdownLinkReference, R as MarkdownList, S as MarkdownListItem, T as MarkdownMathBlock, U as MarkdownMention, V as MarkdownNode, W as MarkdownParagraph, X as MarkdownPoint, Y as MarkdownSafetyLimits, Z as MarkdownSourcePosition, _ as MarkdownStrikethrough, $ as MarkdownStrong, a0 as MarkdownSubscript, a1 as MarkdownSuperscript, a2 as MarkdownTable, a3 as MarkdownTableCell, a4 as MarkdownTableRow, a5 as MarkdownText, a6 as MarkdownTextDirective, a7 as MarkdownThematicBreak, a8 as ParseOptions, a9 as StringifyOptions, aa as TRANSITION_DIRECTIONS, ab as TRANSITION_TYPES, ac as Transition, ad as TransitionDirection, ae as TransitionType, af as assertMarkdownDocumentWithinLimits, ag as assertMarkdownSourceWithinLimits, ah as buildSpecParams, ai as isTransitionType, aj as normalizeTransitionDirection, ak as normalizeTransitionType, al as parseBuildSpec, am as recordBuildAdvance, an as resolveBlockTransition, ao as resolveMarkdownSafetyLimits, ap as resolveTransitionDuration } from './types-Zk8qYuaT.js';
2
2
  export { B as BoundingBox, C as Coordinates } from './Types-sh2VRxfo.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, 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 SvgLayer, bo as THEME_SCHEMA_VERSION, bp as TableLayer, bq as TableLayerStyle, br as TemplateBlock, bs as TemplateContext, bt as TemplateFunction, bu as TemplateRegistry, bv as TextFlow, bw as TextLayer, bx as TextParagraph, by as TextParagraphList, bz as TextStyle, bA as Theme, bB as ThemeColorPalette, bC as ThemeColorScheme, bD as ThemePageStyle, bE as ThemeRegistry, bF as ThemeSchemaVersion, bG as ThemeSeedColors, bH as ThemeStyle, bI as ThemeTypography, bJ as TimelineBlockInput, bK as TimelineTemplateEvent, bL as TimelineTemplateLink, bM as TimelineTemplateTrack, bN as TitleBlockInput, bO as TitleCaptionConfig, bP as TranscriptBlockInput, bQ as TreeBlockInput, bR as TreeLayer, bS as TreeLayerItem, bT as TreeLayerStyle, bU as TreeTemplateItem, bV as TwoColumnInput, bW as VIEWPORT_PRESETS, bX as VideoEmbedLayer, bY as VideoLayer, bZ as VideoPipPosition, b_ as VideoPipShape, b$ as VideoPipSize, c0 as VideoPlacement, c1 as VideoPresentation, c2 as VideoPullQuoteInput, c3 as VideoWithCaptionInput, c4 as ViewportConfig, c5 as ViewportOrientation, c6 as ViewportPreset, c7 as VignetteConfig, c8 as applySurface, c9 as calculateDuration, ca as calculateFontScale, cb as createTemplateContext, cc as createTheme, cd as createThemeRegistry, ce as getAspectRatioString, cf as getBlockAtTime, cg as getCaptionAtTime, ch as getDocPlaybackDuration, ci as getLayoutHints, cj as getSafeTextBounds, ck as getSegmentAtTime, cl as getTwoColumnPositions, cm as getViewport, cn as getViewportOrientation, co as isCustomTemplateDefinition, cp as isMotionProfileName, cq as isPersistentLayerTemplate, cr as isTemplateBlock, cs as layoutScaledFontSize, ct as readFrontmatterMotion, cu as resolveMediaSchedule, cv as resolveMotionForDoc, cw as resolveMotionProfile, cx as scaledFontSize, cy as scheduleMediaClip, cz as validateCustomTemplateDefinition } from './Doc-czvrR7Oy.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, 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 SvgLayer, bo as THEME_SCHEMA_VERSION, bp as TableLayer, bq as TableLayerStyle, br as TemplateBlock, bs as TemplateContext, bt as TemplateFunction, bu as TemplateRegistry, bv as TextFlow, bw as TextLayer, bx as TextParagraph, by as TextParagraphList, bz as TextStyle, bA as Theme, bB as ThemeColorPalette, bC as ThemeColorScheme, bD as ThemePageStyle, bE as ThemeRegistry, bF as ThemeSchemaVersion, bG as ThemeSeedColors, bH as ThemeStyle, bI as ThemeTypography, bJ as TimelineBlockInput, bK as TimelineTemplateEvent, bL as TimelineTemplateLink, bM as TimelineTemplateTrack, bN as TitleBlockInput, bO as TitleCaptionConfig, bP as TranscriptBlockInput, bQ as TreeBlockInput, bR as TreeLayer, bS as TreeLayerItem, bT as TreeLayerStyle, bU as TreeTemplateItem, bV as TwoColumnInput, bW as VIEWPORT_PRESETS, bX as VideoEmbedLayer, bY as VideoLayer, bZ as VideoPipPosition, b_ as VideoPipShape, b$ as VideoPipSize, c0 as VideoPlacement, c1 as VideoPresentation, c2 as VideoPullQuoteInput, c3 as VideoWithCaptionInput, c4 as ViewportConfig, c5 as ViewportOrientation, c6 as ViewportPreset, c7 as VignetteConfig, c8 as applySurface, c9 as calculateDuration, ca as calculateFontScale, cb as createTemplateContext, cc as createTheme, cd as createThemeRegistry, ce as getAspectRatioString, cf as getBlockAtTime, cg as getCaptionAtTime, ch as getDocPlaybackDuration, ci as getLayoutHints, cj as getSafeTextBounds, ck as getSegmentAtTime, cl as getTwoColumnPositions, cm as getViewport, cn as getViewportOrientation, co as isCustomTemplateDefinition, cp as isMotionProfileName, cq as isPersistentLayerTemplate, cr as isTemplateBlock, cs as layoutScaledFontSize, ct as readFrontmatterMotion, cu as resolveMediaSchedule, cv as resolveMotionForDoc, cw as resolveMotionProfile, cx as scaledFontSize, cy as scheduleMediaClip, cz as validateCustomTemplateDefinition } from './Doc-C7iCmmmF.js';
4
4
  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';
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-Bsn4YNuq.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-DsntZLoa.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-BDkpwCMN.js';
7
+ export { E as EditorLayerMeta, I as ImageEditCanvas, a as ImageEditDoc, b as ImageEditLayer, c as ImageEditLayerKind, d as ImageEditMeta } from './ImageEditDoc-CxRHe41J.js';
8
8
  export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, AccentLayout, ArrangeAsciiDiagramOptions, 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, BuildTimeline, BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, ClipBox, ConnectorAnchor, ConnectorPort, ConnectorRouting, ConnectorSnapPoint, ContentBuildPlan, 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, HostedVideo, 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, arrangeAsciiDiagram, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, autoTemplatePreservesContent, bigText, blockBuildSteps, buildCursorAtTime, buildDashboardCellChrome, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, buildSourceText, buildTargetState, canvasToAsciiCell, chooseDashboardLayout, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, composeDashboardLayers, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, countUpSpecFor, coverBlock, createAccentLayers, cssFilterForTreatment, dashboardCanvasFill, dashboardCellAccent, dataSidecarPrefix, dataTable, dateEvent, definitionCard, deriveTemplateInputs, desiredCellZoom, detectAsciiDiagram, detectAsciiTimeline, detectTree, diagramBlock, docToMarkdown, documentTitleFromFileName, drawingBlock, expandCoverBlock, expandDocBlocks, expandPersistentLayers, extractBlockquoteText, extractBodyPlainText, extractEmbeddedVideos, extractFirstEmbeddedVideo, extractFirstImage, extractHostedVideos, extractImages, extractListItems, extractRichListItems, extractTableData, extractTableFromContents, factCard, fallbackBlockLayers, findFirstList, findFirstTable, fitBigTextSize, fitDiagramLabel, flattenBlocks, flattenRenderableBlocks, formatCountUp, formatCountValue, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDashboardLayoutSummaries, getDefaultAnimation, getDefaultAnimationDuration, getMotionProfile, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, hasBlockBuilds, hasTemplate, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isDataFilePath, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isGeometryBoundTemplate, isMaterializedMediaNode, isPictureFence, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layoutBlock, layoutCapacity, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, listDashboardLayouts, mapBlock, markdownBlockSeparatorLines, markdownToDoc, markerPath, materializeBlockLayers, materializeDashboard, materializeFlashcards, motionDelay, motionEntrance, motionStateTransform, nearestSnapPoint, normalizeDashboardZoom, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, parseStatNumber, parseTree, parseWrappedFlowTimeline, parseYamlSubset, photoGrid, planContentBuilds, pullQuote, quoteBlock, readCustomTemplatesFromFrontmatter, readCustomThemesFromFrontmatter, readDashboardLayoutsFromFrontmatter, renderAsciiDiagram, renderAsciiTimeline, renderMarkdownBlocksHtml, renderTree, repairAsciiDiagram, replaceDataFence, resolveAudioMapping, resolveBuildTimeline, resolveColorScheme, resolveCoverSlideSettings, resolveDashboardLayoutDefinition, resolveDashboardSettings, resolveDashboardStyleId, resolveDashboardZooms, resolveDataReferences, resolveDocBuildTiming, resolveFlashcardMarker, resolveLayoutCells, resolvePageBlock, resolvePersistentLayers, resolveTemplateName, resolveThemeForDoc, rightFeature, scaleAnimationDuration, scoreTextSimilarity, sectionExtractors, sectionHeader, shapePath, shouldUseShadow, snapEndpoints, snapPoints, statHighlight, stripBlockBackdropLayer, stripsBlockBackdrop, templateRegistry, themeWantsAmbientMotion, themedEntrance, themedFontSize, themedImageTreatment, themedScrim, themedSurfaceGradient, timelineBlock, titleBlock, transformOriginFor, transposeCells, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateDashboardLayoutDefinition, validateMarkdownDoc, validateMarkdownSource, videoPullQuote, videoWithCaption, wordRevealDelay, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter, writeDashboardLayoutsToFrontmatter } 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-mTAAHNlA.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-_5uQrEYP.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';
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  recordSlideShown,
28
28
  traceWordPosAt,
29
29
  vadStep
30
- } from "./chunk-Y3HL26X3.js";
30
+ } from "./chunk-V4USYYYO.js";
31
31
  import {
32
32
  fenceRendererLangs
33
33
  } from "./chunk-PGI7HSWE.js";
@@ -86,7 +86,7 @@ import {
86
86
  resolveRef,
87
87
  setByPointer,
88
88
  toPointer
89
- } from "./chunk-GX3VSKYS.js";
89
+ } from "./chunk-GLWQTZ4C.js";
90
90
  import {
91
91
  IMAGE_EDIT_ASSETS_PREFIX,
92
92
  IMAGE_EDIT_DEFAULT_BASENAME,
@@ -137,7 +137,7 @@ import {
137
137
  pipStyleVars,
138
138
  serializeTheme,
139
139
  validateDocSchema
140
- } from "./chunk-E2NFHYCB.js";
140
+ } from "./chunk-5SVFLLOD.js";
141
141
  import {
142
142
  calculateBearing,
143
143
  decodeGeohash,
@@ -230,7 +230,7 @@ import {
230
230
  validateMarkdownSource,
231
231
  wordRevealDelay,
232
232
  writeDashboardLayoutsToFrontmatter
233
- } from "./chunk-ECPR5JKY.js";
233
+ } from "./chunk-2LTALYXX.js";
234
234
  import {
235
235
  buildNarrationTimingJson,
236
236
  parseNarrationTimingJson,
@@ -262,7 +262,7 @@ import {
262
262
  serializePresentationPlan,
263
263
  transformNarratedSegment,
264
264
  usesDynamicPresentation
265
- } from "./chunk-2DXLKKTS.js";
265
+ } from "./chunk-DCO5GYVW.js";
266
266
  import {
267
267
  BASE_INPUT_DESCRIPTORS,
268
268
  BLOCK_MEDIA_LAYOUT_POLICIES,
@@ -382,7 +382,7 @@ import {
382
382
  wrapWithPersistentLayers,
383
383
  writeCustomTemplatesToFrontmatter,
384
384
  writeCustomThemesToFrontmatter
385
- } from "./chunk-FVFTJ64H.js";
385
+ } from "./chunk-ITLJQG7Z.js";
386
386
  import {
387
387
  ASCII_CHAR_H,
388
388
  ASCII_CHAR_W,
@@ -436,7 +436,7 @@ import {
436
436
  treeFromMarkdownList,
437
437
  treeFromTemplateData,
438
438
  treeToTemplateData
439
- } from "./chunk-JDYWKGG7.js";
439
+ } from "./chunk-HGCIIXHP.js";
440
440
  import {
441
441
  extractContent,
442
442
  mapElementToBlock,
@@ -545,7 +545,7 @@ import {
545
545
  validateCustomTemplateDefinition,
546
546
  validateTheme,
547
547
  withAlpha
548
- } from "./chunk-HYJ63N6V.js";
548
+ } from "./chunk-WNEH3BZP.js";
549
549
  import "./chunk-JSGIWW35.js";
550
550
  import "./chunk-L7QZORLB.js";
551
551
  import {
@@ -577,7 +577,7 @@ import {
577
577
  stringifyMarkdown,
578
578
  unwrapMarkdownSource,
579
579
  wrapMarkdownSource
580
- } from "./chunk-ILLLGZCE.js";
580
+ } from "./chunk-7ZXCS3UU.js";
581
581
  import {
582
582
  DEFAULT_MARKDOWN_SAFETY_LIMITS,
583
583
  MarkdownLimitError,
@@ -592,7 +592,7 @@ import {
592
592
  serializePandocAttributes,
593
593
  toMdast,
594
594
  wikiLinkPath
595
- } from "./chunk-PVFDR3XT.js";
595
+ } from "./chunk-3A6YM375.js";
596
596
  import {
597
597
  CONTAINER_TEMPLATES,
598
598
  TABLE_FED_TEMPLATES,
@@ -647,7 +647,7 @@ import {
647
647
  videoEmbedFromIframe,
648
648
  videoEmbedIframeAttributes,
649
649
  walkMarkdownTree
650
- } from "./chunk-MWSGNEH6.js";
650
+ } from "./chunk-HE3HQZWU.js";
651
651
  import {
652
652
  ICONS,
653
653
  canonicalIconToken,
@@ -676,7 +676,7 @@ import {
676
676
  } from "./chunk-P53Z4RYC.js";
677
677
  import {
678
678
  buildCaptionTrack
679
- } from "./chunk-4OQFLZ6G.js";
679
+ } from "./chunk-5HWYSUXS.js";
680
680
  import {
681
681
  DEFAULT_WORDS_PER_SECOND,
682
682
  calculatePrefixDuration,
@@ -1,4 +1,4 @@
1
- import { bA as Theme, bm as SurfaceScheme } from '../Doc-czvrR7Oy.js';
1
+ import { bA as Theme, bm as SurfaceScheme } from '../Doc-C7iCmmmF.js';
2
2
  import '../types-Zk8qYuaT.js';
3
3
 
4
4
  /**
@@ -15,10 +15,10 @@ import {
15
15
  resolveRef,
16
16
  setByPointer,
17
17
  toPointer
18
- } from "../chunk-GX3VSKYS.js";
19
- import "../chunk-E2NFHYCB.js";
18
+ } from "../chunk-GLWQTZ4C.js";
19
+ import "../chunk-5SVFLLOD.js";
20
20
  import "../chunk-2SRF5III.js";
21
- import "../chunk-HYJ63N6V.js";
21
+ import "../chunk-WNEH3BZP.js";
22
22
  import "../chunk-JSGIWW35.js";
23
23
  import "../chunk-L7QZORLB.js";
24
24
  import "../chunk-P53Z4RYC.js";
@@ -17,7 +17,7 @@ import {
17
17
  stringifyMarkdown,
18
18
  unwrapMarkdownSource,
19
19
  wrapMarkdownSource
20
- } from "../chunk-ILLLGZCE.js";
20
+ } from "../chunk-7ZXCS3UU.js";
21
21
  import {
22
22
  DEFAULT_MARKDOWN_SAFETY_LIMITS,
23
23
  MarkdownLimitError,
@@ -32,7 +32,7 @@ import {
32
32
  serializePandocAttributes,
33
33
  toMdast,
34
34
  wikiLinkPath
35
- } from "../chunk-PVFDR3XT.js";
35
+ } from "../chunk-3A6YM375.js";
36
36
  import {
37
37
  matchTrailingPandocAttr,
38
38
  matchTrailingTemplateAnnotation,
@@ -83,7 +83,7 @@ import {
83
83
  videoEmbedFromIframe,
84
84
  videoEmbedIframeAttributes,
85
85
  walkMarkdownTree
86
- } from "../chunk-MWSGNEH6.js";
86
+ } from "../chunk-HE3HQZWU.js";
87
87
  import "../chunk-CZ7AUSLI.js";
88
88
  import {
89
89
  SVG_ISLAND_LIMITS
@@ -1,4 +1,4 @@
1
- import { k as Block, aT as PageSectionKind, aR as PageEmphasis, bC as ThemeColorScheme, aP as PageBackground, bA as Theme, c4 as ViewportConfig, y as CustomTemplateDefinition, aW as PageVariant, bk as StartBlockConfig, Q as Doc, bD as ThemePageStyle } from './Doc-czvrR7Oy.js';
1
+ import { k as Block, aT as PageSectionKind, aR as PageEmphasis, bC as ThemeColorScheme, aP as PageBackground, bA as Theme, c4 as ViewportConfig, y as CustomTemplateDefinition, aW as PageVariant, bk as StartBlockConfig, Q as Doc, bD as ThemePageStyle } from './Doc-C7iCmmmF.js';
2
2
  import { M as MarkdownBlockNode } from './types-Zk8qYuaT.js';
3
3
 
4
4
  /**
@@ -1,5 +1,5 @@
1
- import { al as MediaCut, Q as Doc, aj as MediaClip, cA as MediaFxOpId, cB as MediaFxChain } from '../Doc-czvrR7Oy.js';
2
- export { cC as MEDIA_EDIT_PARAMS, cD as MEDIA_FX_ORDER, cE as MEDIA_FX_SPECS, ak as MediaCrop, cF as MediaEditParamKey, cG as MediaEditParamValues, am as MediaEdits, cH as MediaFxOp, cI as formatMediaNumber, cJ as hasRenderableFx, cK as mediaEditHtmlAttribute, cL as mediaEditValuesFromAttributes, cM as mediaEditValuesFromParams, cN as mediaRenderKey, cO as normalizeMediaCrop, cP as normalizeMediaCuts, cQ as parseMediaCrop, cR as parseMediaCuts, cS as parseMediaEdits, cT as parseMediaFx, cU as serializeMediaCrop, cV as serializeMediaCuts, cW as serializeMediaEdits, cX as serializeMediaFx } from '../Doc-czvrR7Oy.js';
1
+ import { al as MediaCut, Q as Doc, aj as MediaClip, cA as MediaFxOpId, cB as MediaFxChain } from '../Doc-C7iCmmmF.js';
2
+ export { cC as MEDIA_EDIT_PARAMS, cD as MEDIA_FX_ORDER, cE as MEDIA_FX_SPECS, ak as MediaCrop, cF as MediaEditParamKey, cG as MediaEditParamValues, am as MediaEdits, cH as MediaFxOp, cI as formatMediaNumber, cJ as hasRenderableFx, cK as mediaEditHtmlAttribute, cL as mediaEditValuesFromAttributes, cM as mediaEditValuesFromParams, cN as mediaRenderKey, cO as normalizeMediaCrop, cP as normalizeMediaCuts, cQ as parseMediaCrop, cR as parseMediaCuts, cS as parseMediaEdits, cT as parseMediaFx, cU as serializeMediaCrop, cV as serializeMediaCuts, cW as serializeMediaEdits, cX as serializeMediaFx } from '../Doc-C7iCmmmF.js';
3
3
  import '../types-Zk8qYuaT.js';
4
4
 
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { Q as Doc, f as AudioBookmark } from '../Doc-czvrR7Oy.js';
1
+ import { Q as Doc, f as AudioBookmark } from '../Doc-C7iCmmmF.js';
2
2
  import { d as BuildAdvance } from '../types-Zk8qYuaT.js';
3
3
 
4
4
  /**
@@ -27,7 +27,7 @@ import {
27
27
  recordSlideShown,
28
28
  traceWordPosAt,
29
29
  vadStep
30
- } from "../chunk-Y3HL26X3.js";
30
+ } from "../chunk-V4USYYYO.js";
31
31
  import "../chunk-NEWNNLWN.js";
32
32
  import {
33
33
  buildNarrationTimingJson,
@@ -41,13 +41,13 @@ import {
41
41
  wordIndexAtChar,
42
42
  wordIndexAtTime,
43
43
  wordPosAtExpectedSyllables
44
- } from "../chunk-FVFTJ64H.js";
45
- import "../chunk-JDYWKGG7.js";
44
+ } from "../chunk-ITLJQG7Z.js";
45
+ import "../chunk-HGCIIXHP.js";
46
46
  import "../chunk-FUBMT6SJ.js";
47
- import "../chunk-HYJ63N6V.js";
47
+ import "../chunk-WNEH3BZP.js";
48
48
  import "../chunk-L7QZORLB.js";
49
49
  import "../chunk-Y25EJEZN.js";
50
- import "../chunk-MWSGNEH6.js";
50
+ import "../chunk-HE3HQZWU.js";
51
51
  import "../chunk-P53Z4RYC.js";
52
52
  import "../chunk-GHOPHGOK.js";
53
53
  import "../chunk-XRW6P7IF.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  profileBlockContents,
3
3
  recommendTemplatesForBlock
4
- } from "../chunk-JDYWKGG7.js";
5
- import "../chunk-MWSGNEH6.js";
4
+ } from "../chunk-HGCIIXHP.js";
5
+ import "../chunk-HE3HQZWU.js";
6
6
  import "../chunk-P53Z4RYC.js";
7
7
  export {
8
8
  profileBlockContents,
@@ -1,10 +1,10 @@
1
1
  export { B as BUILD_EFFECTS, a as BUILD_MODES, b as BUILD_PARAM_KEYS, c as BUILD_PREVIOUS, d as BuildAdvance, e as BuildCursor, f as BuildSpec, g as BuildStep, h as BuildTiming, i as DEFAULT_TRANSITION_DURATION_SECONDS, aa as TRANSITION_DIRECTIONS, ab as TRANSITION_TYPES, ac as Transition, ad as TransitionDirection, ae as TransitionType, ah as buildSpecParams, ai as isTransitionType, aj as normalizeTransitionDirection, ak as normalizeTransitionType, al as parseBuildSpec, am as recordBuildAdvance, an as resolveBlockTransition, ap as resolveTransitionDuration } from '../types-Zk8qYuaT.js';
2
2
  export { B as BoundingBox, C as Coordinates } from '../Types-sh2VRxfo.js';
3
- import { Q as Doc, bA as Theme, bD as ThemePageStyle, bC as ThemeColorScheme, K as DeepPartial, bG as ThemeSeedColors, bB as ThemeColorPalette, _ as FontFamilyKind, Z as FontFamily } from '../Doc-czvrR7Oy.js';
4
- 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 SvgLayer, bo as THEME_SCHEMA_VERSION, bp as TableLayer, bq as TableLayerStyle, br as TemplateBlock, bs as TemplateContext, bt as TemplateFunction, bu as TemplateRegistry, bv as TextFlow, bw as TextLayer, bx as TextParagraph, by as TextParagraphList, bz as TextStyle, bE as ThemeRegistry, bF as ThemeSchemaVersion, bH as ThemeStyle, bI as ThemeTypography, bJ as TimelineBlockInput, bK as TimelineTemplateEvent, bL as TimelineTemplateLink, bM as TimelineTemplateTrack, bN as TitleBlockInput, bO as TitleCaptionConfig, bP as TranscriptBlockInput, bQ as TreeBlockInput, bR as TreeLayer, bS as TreeLayerItem, bT as TreeLayerStyle, bU as TreeTemplateItem, bV as TwoColumnInput, bW as VIEWPORT_PRESETS, bX as VideoEmbedLayer, bY as VideoLayer, bZ as VideoPipPosition, b_ as VideoPipShape, b$ as VideoPipSize, c0 as VideoPlacement, c1 as VideoPresentation, c2 as VideoPullQuoteInput, c3 as VideoWithCaptionInput, c4 as ViewportConfig, c5 as ViewportOrientation, c6 as ViewportPreset, c7 as VignetteConfig, c8 as applySurface, c9 as calculateDuration, ca as calculateFontScale, cb as createTemplateContext, cc as createTheme, cd as createThemeRegistry, ce as getAspectRatioString, cf as getBlockAtTime, cg as getCaptionAtTime, ch as getDocPlaybackDuration, ci as getLayoutHints, cj as getSafeTextBounds, ck as getSegmentAtTime, cl as getTwoColumnPositions, cm as getViewport, cn as getViewportOrientation, co as isCustomTemplateDefinition, cp as isMotionProfileName, cq as isPersistentLayerTemplate, cr as isTemplateBlock, cs as layoutScaledFontSize, ct as readFrontmatterMotion, cu as resolveMediaSchedule, cv as resolveMotionForDoc, cw as resolveMotionProfile, cx as scaledFontSize, cy as scheduleMediaClip, cz as validateCustomTemplateDefinition } from '../Doc-czvrR7Oy.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-Bsn4YNuq.js';
3
+ import { Q as Doc, bA as Theme, bD as ThemePageStyle, bC as ThemeColorScheme, K as DeepPartial, bG as ThemeSeedColors, bB as ThemeColorPalette, _ as FontFamilyKind, Z as FontFamily } from '../Doc-C7iCmmmF.js';
4
+ 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 SvgLayer, bo as THEME_SCHEMA_VERSION, bp as TableLayer, bq as TableLayerStyle, br as TemplateBlock, bs as TemplateContext, bt as TemplateFunction, bu as TemplateRegistry, bv as TextFlow, bw as TextLayer, bx as TextParagraph, by as TextParagraphList, bz as TextStyle, bE as ThemeRegistry, bF as ThemeSchemaVersion, bH as ThemeStyle, bI as ThemeTypography, bJ as TimelineBlockInput, bK as TimelineTemplateEvent, bL as TimelineTemplateLink, bM as TimelineTemplateTrack, bN as TitleBlockInput, bO as TitleCaptionConfig, bP as TranscriptBlockInput, bQ as TreeBlockInput, bR as TreeLayer, bS as TreeLayerItem, bT as TreeLayerStyle, bU as TreeTemplateItem, bV as TwoColumnInput, bW as VIEWPORT_PRESETS, bX as VideoEmbedLayer, bY as VideoLayer, bZ as VideoPipPosition, b_ as VideoPipShape, b$ as VideoPipSize, c0 as VideoPlacement, c1 as VideoPresentation, c2 as VideoPullQuoteInput, c3 as VideoWithCaptionInput, c4 as ViewportConfig, c5 as ViewportOrientation, c6 as ViewportPreset, c7 as VignetteConfig, c8 as applySurface, c9 as calculateDuration, ca as calculateFontScale, cb as createTemplateContext, cc as createTheme, cd as createThemeRegistry, ce as getAspectRatioString, cf as getBlockAtTime, cg as getCaptionAtTime, ch as getDocPlaybackDuration, ci as getLayoutHints, cj as getSafeTextBounds, ck as getSegmentAtTime, cl as getTwoColumnPositions, cm as getViewport, cn as getViewportOrientation, co as isCustomTemplateDefinition, cp as isMotionProfileName, cq as isPersistentLayerTemplate, cr as isTemplateBlock, cs as layoutScaledFontSize, ct as readFrontmatterMotion, cu as resolveMediaSchedule, cv as resolveMotionForDoc, cw as resolveMotionProfile, cx as scaledFontSize, cy as scheduleMediaClip, cz as validateCustomTemplateDefinition } from '../Doc-C7iCmmmF.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-DsntZLoa.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-BDkpwCMN.js';
7
+ export { E as EditorLayerMeta, I as ImageEditCanvas, a as ImageEditDoc, b as ImageEditLayer, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-CxRHe41J.js';
8
8
 
9
9
  /**
10
10
  * Runtime validation for the canonical {@link Doc} JSON shape.
@@ -13,7 +13,7 @@ import {
13
13
  pipStyleVars,
14
14
  serializeTheme,
15
15
  validateDocSchema
16
- } from "../chunk-E2NFHYCB.js";
16
+ } from "../chunk-5SVFLLOD.js";
17
17
  import {
18
18
  defaultPageStyle,
19
19
  getDocPlaybackDuration,
@@ -97,7 +97,7 @@ import {
97
97
  validateCustomTemplateDefinition,
98
98
  validateTheme,
99
99
  withAlpha
100
- } from "../chunk-HYJ63N6V.js";
100
+ } from "../chunk-WNEH3BZP.js";
101
101
  import "../chunk-JSGIWW35.js";
102
102
  import "../chunk-L7QZORLB.js";
103
103
  import {
@@ -1,4 +1,4 @@
1
- import { bA as Theme, bE as ThemeRegistry } from './Doc-czvrR7Oy.js';
1
+ import { bA as Theme, bE as ThemeRegistry } from './Doc-C7iCmmmF.js';
2
2
 
3
3
  /**
4
4
  * Built-in Theme Library
@@ -1,4 +1,4 @@
1
- import { g as AudioSegment, h as AudioTimingData, n as CaptionTrack } from '../Doc-czvrR7Oy.js';
1
+ import { g as AudioSegment, h as AudioTimingData, n as CaptionTrack } from '../Doc-C7iCmmmF.js';
2
2
  import '../types-Zk8qYuaT.js';
3
3
 
4
4
  /**
@@ -114,6 +114,12 @@ declare function estimateNarrationTime(text: string, options?: NarrationTimeOpti
114
114
  * Converts narration segment text and optional word/bookmark timing into the
115
115
  * canonical Doc CaptionTrack. Hosts retain responsibility for mapping their
116
116
  * domain model and timing sidecars into CaptionSegmentSource records.
117
+ *
118
+ * Bookmark words keep the punctuation around them in the narration text: TTS
119
+ * engines such as Azure report bare fragments ("breath"), so the closing and
120
+ * opening marks ("breath.", "“Eternity") are recovered from `sourceText` at the
121
+ * bookmark's offset. That keeps sentence ends visible in mixed-case captions
122
+ * and lets phrases break at them.
117
123
  */
118
124
 
119
125
  interface CaptionSegmentSource {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildCaptionTrack
3
- } from "../chunk-4OQFLZ6G.js";
3
+ } from "../chunk-5HWYSUXS.js";
4
4
  import {
5
5
  DEFAULT_WORDS_PER_SECOND,
6
6
  calculatePrefixDuration,
@@ -1,5 +1,5 @@
1
- import { Q as Doc, r as ColorScheme, k as Block, br as TemplateBlock } from '../Doc-czvrR7Oy.js';
2
- import { i as PageTransformHints } from '../materializePageSection-mTAAHNlA.js';
1
+ import { Q as Doc, r as ColorScheme, k as Block, br as TemplateBlock } from '../Doc-C7iCmmmF.js';
2
+ import { i as PageTransformHints } from '../materializePageSection-_5uQrEYP.js';
3
3
  import { d as ExtractionType, E as ExtractedElement, b as ExtractionOptions } from '../contentExtractor-BNfVJV2U.js';
4
4
  import { f as BuildSpec } from '../types-Zk8qYuaT.js';
5
5
 
@@ -24,16 +24,16 @@ import {
24
24
  serializePresentationPlan,
25
25
  transformNarratedSegment,
26
26
  usesDynamicPresentation
27
- } from "../chunk-2DXLKKTS.js";
28
- import "../chunk-FVFTJ64H.js";
29
- import "../chunk-JDYWKGG7.js";
27
+ } from "../chunk-DCO5GYVW.js";
28
+ import "../chunk-ITLJQG7Z.js";
29
+ import "../chunk-HGCIIXHP.js";
30
30
  import "../chunk-SVN7T6BK.js";
31
31
  import "../chunk-FUBMT6SJ.js";
32
- import "../chunk-HYJ63N6V.js";
32
+ import "../chunk-WNEH3BZP.js";
33
33
  import "../chunk-L7QZORLB.js";
34
- import "../chunk-PVFDR3XT.js";
34
+ import "../chunk-3A6YM375.js";
35
35
  import "../chunk-Y25EJEZN.js";
36
- import "../chunk-MWSGNEH6.js";
36
+ import "../chunk-HE3HQZWU.js";
37
37
  import "../chunk-CZ7AUSLI.js";
38
38
  import "../chunk-P53Z4RYC.js";
39
39
  import "../chunk-GHOPHGOK.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/squisq",
3
- "version": "2.13.0",
3
+ "version": "2.13.1",
4
4
  "description": "Headless utilities for doc/block rendering, spatial math, Markdown, and storage",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",