@bendyline/squisq 2.10.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/{Doc-DTyeaFuW.d.ts → Doc-CRPQCkHn.d.ts} +34 -2
  2. package/dist/{ImageEditDoc-dFEclQ9l.d.ts → ImageEditDoc-MbvJM1HE.d.ts} +1 -1
  3. package/dist/{chunk-IO5XO6XH.js → chunk-64I44JAP.js} +1 -1
  4. package/dist/{chunk-XSW4QTMB.js → chunk-EH4S7HXE.js} +193 -3
  5. package/dist/{chunk-7YEZFHLS.js → chunk-O7HLQ22N.js} +11 -0
  6. package/dist/{chunk-NBKAXPSX.js → chunk-TMOHAFYE.js} +1 -0
  7. package/dist/{chunk-MIKKUKOD.js → chunk-UBFT2CDQ.js} +30 -15
  8. package/dist/{chunk-FCG3BIZN.js → chunk-UNVHAK3A.js} +5 -1
  9. package/dist/{chunk-NFHMHYUV.js → chunk-ZWID3HM5.js} +1 -1
  10. package/dist/{chunk-DRFJU4MK.js → chunk-ZYCSRDSX.js} +352 -2
  11. package/dist/doc/index.d.ts +123 -6
  12. package/dist/doc/index.js +12 -4
  13. package/dist/fence/index.d.ts +1 -1
  14. package/dist/generate/index.d.ts +1 -1
  15. package/dist/imageEdit/index.d.ts +3 -3
  16. package/dist/index.d.ts +7 -6
  17. package/dist/index.js +20 -8
  18. package/dist/jsonForm/index.d.ts +1 -1
  19. package/dist/markdown/index.js +3 -3
  20. package/dist/{materializePageSection-BRNIINlU.d.ts → materializePageSection-BeUPHeCl.d.ts} +1 -1
  21. package/dist/narration/index.d.ts +1 -1
  22. package/dist/narration/index.js +3 -3
  23. package/dist/schemas/index.d.ts +4 -4
  24. package/dist/storage/index.js +1 -1
  25. package/dist/table/index.d.ts +123 -0
  26. package/dist/table/index.js +298 -0
  27. package/dist/{themeLibrary-xaxN5UYu.d.ts → themeLibrary-BG3jr6mT.d.ts} +1 -1
  28. package/dist/transform/index.d.ts +2 -2
  29. package/dist/versions/index.d.ts +15 -1
  30. package/dist/versions/index.js +5 -1
  31. package/dist/viewState-lTZS-hP_.d.ts +91 -0
  32. package/package.json +6 -1
@@ -56,7 +56,7 @@ import {
56
56
  sanitizeUrl,
57
57
  splitKeyValueToken,
58
58
  tokenizeAttrTokens
59
- } from "./chunk-NBKAXPSX.js";
59
+ } from "./chunk-TMOHAFYE.js";
60
60
  import {
61
61
  extractPlainText,
62
62
  readFrontmatterThemeId,
@@ -6850,11 +6850,283 @@ function scatterChart(input, context) {
6850
6850
  return renderChart("scatter", input, context);
6851
6851
  }
6852
6852
 
6853
+ // src/doc/templates/transcriptBlock.ts
6854
+ function transcriptBlock(rawInput, context) {
6855
+ const input = {
6856
+ ...rawInput,
6857
+ speaker: rawInput.speaker ?? rawInput.title ?? "Speaker",
6858
+ text: rawInput.text ?? ""
6859
+ };
6860
+ const { theme } = context;
6861
+ const scheme = resolveColorScheme(context, input.colorScheme);
6862
+ const variant = input.variant ?? "speech";
6863
+ const side = input.side ?? "left";
6864
+ const handoff = typeof input.counterpartName === "string" && input.counterpartName.length > 0;
6865
+ const bodyFont = getThemeFont(context, "body");
6866
+ const monoFont = getThemeFont(context, "mono");
6867
+ const nameFontSize = themedFontSize(26, context, false);
6868
+ const textFontSize = themedFontSize(32, context, true);
6869
+ const metaFontSize = themedFontSize(22, context, false);
6870
+ const bubbleFill = variant === "thought" ? withAlpha(theme.colors.text, 0.05) : variant === "tool" ? withAlpha(scheme.accent, 0.12) : withAlpha(theme.colors.text, 0.08);
6871
+ const textColor = variant === "thought" ? theme.colors.textMuted : theme.colors.text;
6872
+ const layers = [createBackgroundLayer("bg", themedSurfaceGradient(context, 160))];
6873
+ if (handoff) {
6874
+ return [...layers, ...handoffLayers(input, context, scheme.accent, textColor, bubbleFill)];
6875
+ }
6876
+ const avatarX = side === "left" ? "12%" : "88%";
6877
+ const columnX = side === "left" ? "20%" : "18%";
6878
+ const bubbleWidthPct = 62;
6879
+ layers.push(
6880
+ ...avatarLayers("speaker", input.speaker, input.speakerImage, avatarX, "34%", context)
6881
+ );
6882
+ layers.push({
6883
+ type: "text",
6884
+ id: "speaker-name",
6885
+ content: {
6886
+ text: input.speaker + (variant === "thought" ? " \xB7 thinking" : ""),
6887
+ style: {
6888
+ fontSize: nameFontSize,
6889
+ fontFamily: bodyFont,
6890
+ fontWeight: "bold",
6891
+ color: theme.colors.textMuted,
6892
+ textAlign: side === "left" ? "left" : "right",
6893
+ shadow: shouldUseShadow(context)
6894
+ }
6895
+ },
6896
+ position: { x: columnX, y: "24%", width: `${bubbleWidthPct}%`, anchor: "top-left" },
6897
+ animation: { type: "fadeIn", duration: 0.4 }
6898
+ });
6899
+ const bubbleWidthPx = (bubbleWidthPct - 5) / 100 * context.viewport.width;
6900
+ const textHeightPct = Math.min(
6901
+ 46,
6902
+ estimateTextHeight(input.text, textFontSize, bubbleWidthPx, 1.35) / context.viewport.height * 100 + 8
6903
+ );
6904
+ layers.push({
6905
+ type: "shape",
6906
+ id: "bubble",
6907
+ content: {
6908
+ shape: "rect",
6909
+ fill: bubbleFill,
6910
+ borderRadius: 18,
6911
+ ...variant === "tool" ? { stroke: scheme.accent, strokeWidth: 2 } : {}
6912
+ },
6913
+ position: {
6914
+ x: columnX,
6915
+ y: "29%",
6916
+ width: `${bubbleWidthPct}%`,
6917
+ height: `${Math.max(16, textHeightPct)}%`,
6918
+ anchor: "top-left"
6919
+ },
6920
+ animation: { type: "fadeIn", duration: 0.4, delay: 0.1 }
6921
+ });
6922
+ if (variant === "tool" && input.toolName) {
6923
+ layers.push({
6924
+ type: "text",
6925
+ id: "tool-name",
6926
+ content: {
6927
+ text: input.toolName,
6928
+ style: {
6929
+ fontSize: themedFontSize(28, context, false),
6930
+ fontFamily: monoFont,
6931
+ fontWeight: "bold",
6932
+ color: scheme.accent
6933
+ }
6934
+ },
6935
+ position: { x: `${parseFloat(columnX) + 2}%`, y: "32%", anchor: "top-left" },
6936
+ animation: { type: "fadeIn", duration: 0.4, delay: 0.15 }
6937
+ });
6938
+ }
6939
+ layers.push({
6940
+ type: "text",
6941
+ id: "message",
6942
+ content: {
6943
+ text: input.text,
6944
+ style: {
6945
+ fontSize: textFontSize,
6946
+ fontFamily: variant === "tool" ? monoFont : bodyFont,
6947
+ fontStyle: variant === "thought" ? "italic" : "normal",
6948
+ color: textColor,
6949
+ lineHeight: 1.35,
6950
+ maxLines: 7
6951
+ }
6952
+ },
6953
+ position: {
6954
+ x: `${parseFloat(columnX) + 2}%`,
6955
+ y: variant === "tool" && input.toolName ? "38%" : "32.5%",
6956
+ width: `${bubbleWidthPct - 4}%`,
6957
+ anchor: "top-left"
6958
+ },
6959
+ animation: { type: "typewriter", duration: Math.min(2.5, 0.4 + input.text.length / 120) }
6960
+ });
6961
+ if (variant === "tool" && input.resultText) {
6962
+ layers.push({
6963
+ type: "text",
6964
+ id: "tool-result",
6965
+ content: {
6966
+ text: input.resultText,
6967
+ style: {
6968
+ fontSize: themedFontSize(26, context, false),
6969
+ fontFamily: monoFont,
6970
+ color: theme.colors.textMuted,
6971
+ lineHeight: 1.3,
6972
+ maxLines: 3
6973
+ }
6974
+ },
6975
+ position: { x: columnX, y: "78%", width: `${bubbleWidthPct}%`, anchor: "top-left" },
6976
+ animation: { type: "fadeIn", duration: 0.4, delay: 0.3 }
6977
+ });
6978
+ }
6979
+ if (input.meta) {
6980
+ layers.push({
6981
+ type: "text",
6982
+ id: "meta",
6983
+ content: {
6984
+ text: input.meta,
6985
+ style: { fontSize: metaFontSize, fontFamily: bodyFont, color: theme.colors.textMuted }
6986
+ },
6987
+ position: { x: "96%", y: "94%", anchor: "bottom-right" }
6988
+ });
6989
+ }
6990
+ return layers;
6991
+ }
6992
+ function handoffLayers(input, context, accent, textColor, bubbleFill) {
6993
+ const { theme } = context;
6994
+ const bodyFont = getThemeFont(context, "body");
6995
+ const nameFontSize = themedFontSize(28, context, false);
6996
+ const textFontSize = themedFontSize(32, context, true);
6997
+ const layers = [
6998
+ ...avatarLayers("speaker", input.speaker, input.speakerImage, "26%", "28%", context),
6999
+ ...avatarLayers(
7000
+ "counterpart",
7001
+ input.counterpartName ?? "",
7002
+ input.counterpartImage,
7003
+ "74%",
7004
+ "28%",
7005
+ context
7006
+ ),
7007
+ nameLayer("speaker-name", input.speaker, "26%", nameFontSize, bodyFont, theme.colors.textMuted),
7008
+ nameLayer(
7009
+ "counterpart-name",
7010
+ input.counterpartName ?? "",
7011
+ "74%",
7012
+ nameFontSize,
7013
+ bodyFont,
7014
+ theme.colors.textMuted
7015
+ ),
7016
+ {
7017
+ type: "path",
7018
+ id: "handoff-arrow",
7019
+ content: { d: "M 0 0 L 100 0", stroke: accent, strokeWidth: 4, endMarker: "arrow" },
7020
+ position: { x: "50%", y: "28%", width: "28%", height: "1%", anchor: "center" },
7021
+ animation: { type: "fadeIn", duration: 0.4, delay: 0.2 }
7022
+ }
7023
+ ];
7024
+ if (input.text.length > 0) {
7025
+ layers.push(
7026
+ {
7027
+ type: "shape",
7028
+ id: "bubble",
7029
+ content: { shape: "rect", fill: bubbleFill, borderRadius: 18 },
7030
+ position: { x: "50%", y: "66%", width: "66%", height: "32%", anchor: "center" },
7031
+ animation: { type: "fadeIn", duration: 0.4, delay: 0.3 }
7032
+ },
7033
+ {
7034
+ type: "text",
7035
+ id: "message",
7036
+ content: {
7037
+ text: input.text,
7038
+ style: {
7039
+ fontSize: textFontSize,
7040
+ fontFamily: bodyFont,
7041
+ color: textColor,
7042
+ textAlign: "center",
7043
+ lineHeight: 1.35,
7044
+ maxLines: 5
7045
+ }
7046
+ },
7047
+ position: { x: "50%", y: "66%", width: "60%", height: "26%", anchor: "center" },
7048
+ animation: { type: "typewriter", duration: 2, delay: 0.4 }
7049
+ }
7050
+ );
7051
+ }
7052
+ if (input.meta) {
7053
+ layers.push({
7054
+ type: "text",
7055
+ id: "meta",
7056
+ content: {
7057
+ text: input.meta,
7058
+ style: {
7059
+ fontSize: themedFontSize(22, context, false),
7060
+ fontFamily: bodyFont,
7061
+ color: theme.colors.textMuted
7062
+ }
7063
+ },
7064
+ position: { x: "96%", y: "94%", anchor: "bottom-right" }
7065
+ });
7066
+ }
7067
+ return layers;
7068
+ }
7069
+ function nameLayer(id, text, x, fontSize, fontFamily, color) {
7070
+ return {
7071
+ type: "text",
7072
+ id,
7073
+ content: {
7074
+ text,
7075
+ style: { fontSize, fontFamily, fontWeight: "bold", color, textAlign: "center" }
7076
+ },
7077
+ position: { x, y: "42%", anchor: "center" }
7078
+ };
7079
+ }
7080
+ function avatarLayers(idPrefix, name, imageSrc, x, y, context) {
7081
+ const { theme } = context;
7082
+ if (imageSrc) {
7083
+ return [
7084
+ {
7085
+ type: "image",
7086
+ id: `${idPrefix}-avatar`,
7087
+ content: { src: imageSrc, alt: name, fit: "contain" },
7088
+ position: { x, y, width: "9%", height: "16%", anchor: "center" }
7089
+ }
7090
+ ];
7091
+ }
7092
+ const initials = name.split(/\s+/).map((part) => part[0] ?? "").join("").slice(0, 2).toUpperCase();
7093
+ return [
7094
+ {
7095
+ type: "shape",
7096
+ id: `${idPrefix}-avatar-bg`,
7097
+ content: {
7098
+ shape: "circle",
7099
+ fill: withAlpha(theme.colors.text, 0.1),
7100
+ stroke: theme.colors.textMuted,
7101
+ strokeWidth: 2
7102
+ },
7103
+ position: { x, y, width: "9%", height: "16%", anchor: "center" }
7104
+ },
7105
+ {
7106
+ type: "text",
7107
+ id: `${idPrefix}-avatar-initials`,
7108
+ content: {
7109
+ text: initials || "?",
7110
+ style: {
7111
+ fontSize: themedFontSize(44, context, true),
7112
+ fontFamily: getThemeFont(context, "body"),
7113
+ fontWeight: "bold",
7114
+ color: theme.colors.text,
7115
+ textAlign: "center",
7116
+ verticalAlign: "middle"
7117
+ }
7118
+ },
7119
+ position: { x, y, width: "9%", height: "16%", anchor: "center" }
7120
+ }
7121
+ ];
7122
+ }
7123
+
6853
7124
  // src/doc/templates/registry.ts
6854
7125
  var templateRegistry = {
6855
7126
  title: titleBlock,
6856
7127
  sectionHeader,
6857
7128
  bigText,
7129
+ transcript: transcriptBlock,
6858
7130
  content: contentBlock,
6859
7131
  statHighlight,
6860
7132
  quote: quoteBlock,
@@ -7031,9 +7303,47 @@ function CHART_DESCRIPTORS(extra = []) {
7031
7303
  coerce: "stringList"
7032
7304
  },
7033
7305
  { key: "rows", description: "Table rows (supply via a data fence)" },
7306
+ ...DATA_SRC_DESCRIPTORS(),
7307
+ { key: "sheet", description: "Worksheet inside the src workbook (XLSX src only)" },
7308
+ {
7309
+ key: "anchor",
7310
+ description: "Top-left cell of the region inside the src workbook, e.g. 'B7'"
7311
+ },
7312
+ {
7313
+ key: "headerRow",
7314
+ description: "Whether row 1 of the source region is a header row",
7315
+ coerce: "boolean"
7316
+ },
7034
7317
  ...extra
7035
7318
  ];
7036
7319
  }
7320
+ function DATA_SRC_DESCRIPTORS() {
7321
+ return [
7322
+ {
7323
+ key: "src",
7324
+ description: "Container path to a sidecar data file (.csv/.tsv/.xlsx/.parquet) supplying the table"
7325
+ },
7326
+ {
7327
+ key: "previewRows",
7328
+ description: "Max data rows resolved from src for the bounded preview",
7329
+ coerce: "number"
7330
+ },
7331
+ // Written by `resolveDataReferences` onto templateData (totalRows/totalCols/
7332
+ // previewRows/truncated) — declared so resolved docs don't lint as unknown.
7333
+ { key: "srcStats", description: "Preview stats recorded by data-reference resolution" },
7334
+ // Non-destructive view state over the src data (see @bendyline/squisq/table
7335
+ // for the grammar) — applied by the readers before windowing, so previews
7336
+ // and exports show the author's curated view.
7337
+ {
7338
+ key: "sort",
7339
+ description: "Sort order over src data: 'Col:desc,Other' (quote names containing , or :)"
7340
+ },
7341
+ {
7342
+ key: "filter",
7343
+ description: "Row filter over src data: 'Col=value;Other>=10' (ops = != > < >= <= ~ !~; AND only)"
7344
+ }
7345
+ ];
7346
+ }
7037
7347
  var STACKED_DESCRIPTOR = {
7038
7348
  key: "stacked",
7039
7349
  description: "Stack series instead of grouping them side by side",
@@ -7076,6 +7386,23 @@ var TEMPLATE_INPUT_DESCRIPTORS = {
7076
7386
  { key: "ambientMotion", description: "Slow zoom/pan effect", values: AMBIENT_MOTION_VALUES }
7077
7387
  ],
7078
7388
  content: [{ key: "title", description: "Heading shown above the complete body" }],
7389
+ transcript: [
7390
+ { key: "speaker", description: "Speaker display name" },
7391
+ { key: "speakerImage", description: "Avatar image path (missing \u2192 initials medallion)" },
7392
+ { key: "side", description: "Speaker column side", values: ["left", "right"] },
7393
+ { key: "variant", description: "Beat kind", values: ["speech", "thought", "tool"] },
7394
+ { key: "text", description: "The message body" },
7395
+ { key: "toolName", description: "Tool variant: invoked tool name (mono chip)" },
7396
+ { key: "resultText", description: "Tool variant: bounded result line" },
7397
+ { key: "counterpartName", description: "Handoff form: receiving speaker name" },
7398
+ { key: "counterpartImage", description: "Handoff form: receiving speaker avatar path" },
7399
+ { key: "meta", description: "Muted corner line (timestamp, step)" },
7400
+ {
7401
+ key: "colorScheme",
7402
+ description: "Accent scheme (tool chip, handoff arrow)",
7403
+ valueHint: COLOR_SCHEME_HINT
7404
+ }
7405
+ ],
7079
7406
  statHighlight: [
7080
7407
  { key: "stat", description: 'The statistic (e.g. "89%", "2x")' },
7081
7408
  { key: "description", description: "What the stat means" },
@@ -7182,7 +7509,11 @@ var TEMPLATE_INPUT_DESCRIPTORS = {
7182
7509
  description: "Whether row 1 of the source region is a header row",
7183
7510
  coerce: "boolean"
7184
7511
  },
7185
- { key: "titleAnchor", description: "Cell this heading text was absorbed from" }
7512
+ { key: "titleAnchor", description: "Cell this heading text was absorbed from" },
7513
+ // Sidecar data source (see DATA_SRC_DESCRIPTORS): `src` points at a
7514
+ // container data file; `sheet`/`anchor`/`headerRow` above double as the
7515
+ // in-workbook address when src names an .xlsx.
7516
+ ...DATA_SRC_DESCRIPTORS()
7186
7517
  ],
7187
7518
  barChart: CHART_DESCRIPTORS([STACKED_DESCRIPTOR]),
7188
7519
  columnChart: CHART_DESCRIPTORS([STACKED_DESCRIPTOR]),
@@ -7518,6 +7849,15 @@ var BLOCK_MEDIA_LAYOUT_POLICIES = {
7518
7849
  unconsumedMedia: "reserve-when-no-native-media",
7519
7850
  variants: TITLE_VARIANTS
7520
7851
  },
7852
+ transcript: {
7853
+ summary: "Speaker avatars are native media (initials medallions when absent); other media stays supplemental.",
7854
+ noMedia: "template-without-optional-media",
7855
+ ownership: "optional-native",
7856
+ nativeLayout: "accent-strip-or-inset",
7857
+ additionalMediaLayout: "overlay-inset",
7858
+ unconsumedMedia: "reserve-when-no-native-media",
7859
+ variants: TEXT_VARIANTS
7860
+ },
7521
7861
  content: {
7522
7862
  summary: "Preserves the complete heading and body; supplemental media receives a companion field.",
7523
7863
  noMedia: "template-default",
@@ -8663,6 +9003,10 @@ var TEMPLATE_METADATA = {
8663
9003
  label: "Big Text",
8664
9004
  description: "Gigantic uppercase display text \u2014 thumbnail-style \u2014 on a theme surface or over an image with a contrast bloom."
8665
9005
  },
9006
+ transcript: {
9007
+ label: "Transcript",
9008
+ description: "A conversational beat: speaker avatar and message bubble, with thought, tool, and two-speaker handoff variants."
9009
+ },
8666
9010
  content: {
8667
9011
  label: "Content",
8668
9012
  description: "Shows a heading and the complete body in a loss-averse content-first layout."
@@ -8815,6 +9159,12 @@ var TEMPLATE_AUTHORING_METADATA = {
8815
9159
  safeForContentFirst: true,
8816
9160
  placement: "heading"
8817
9161
  },
9162
+ transcript: {
9163
+ role: "content",
9164
+ bodyPolicy: "structured",
9165
+ safeForContentFirst: false,
9166
+ placement: "heading"
9167
+ },
8818
9168
  statHighlight: {
8819
9169
  role: "highlight",
8820
9170
  bodyPolicy: "derived",
@@ -1,11 +1,12 @@
1
- import { bb as TemplateBlock, bc as TemplateContext, a3 as Layer, w as CustomTemplateDefinition, be as TemplateRegistry, bh as Theme, bL as ViewportConfig, aL as PersistentLayerConfig, P as DocBlock, bM as ViewportOrientation, aK as PersistentLayer, bu as TitleBlockInput, b0 as SectionHeaderInput, j as BigTextInput, u as ContentBlockInput, b6 as StatHighlightInput, aW as QuoteBlockInput, V as FactCardInput, bB as TwoColumnInput, H as DateEventInput, a1 as ImageWithCaptionInput, a6 as LeftFeatureInput, aZ as RightFeatureInput, aa as MapBlockInput, b5 as StartBlockConfig, Y as FullBleedQuoteInput, a9 as ListBlockInput, aP as PhotoGridInput, J as DefinitionCardInput, t as ComparisonBarInput, aV as PullQuoteInput, bK as VideoWithCaptionInput, bJ as VideoPullQuoteInput, G as DataTableInput, K as DiagramBlockInput, bw as TreeBlockInput, bq as TimelineBlockInput, k as Block, S as DrawingBlockInput, ae as MarkerStyle, A as AccentImage, a0 as ImageTreatment, a as AccentPosition, c as Animation, d as AnimationType, bj as ThemeColorScheme, O as Doc, bl as ThemeRegistry, aD as PageEmphasis, bk as ThemePageStyle, Q as DocDiagnostic, N as DiagramTemplateNode, M as DiagramTemplateEdge, bt as TimelineTemplateTrack, bs as TimelineTemplateLink } from '../Doc-DTyeaFuW.js';
2
- export { T as FRONTMATTER_CUSTOM_TEMPLATES_KEY, U as FRONTMATTER_CUSTOM_THEMES_KEY, a5 as LayoutHints, aY as RenderStyle, bi as ThemeColorPalette, bo as ThemeStyle, bp as ThemeTypography, bC as VIEWPORT_PRESETS, bN as ViewportPreset, bS as createTemplateContext, bZ as getLayoutHints, c0 as getTwoColumnPositions, c1 as getViewport, c2 as getViewportOrientation, c5 as isTemplateBlock, c8 as scaledFontSize } from '../Doc-DTyeaFuW.js';
1
+ import { bb as TemplateBlock, bc as TemplateContext, a3 as Layer, w as CustomTemplateDefinition, be as TemplateRegistry, bh as Theme, bM as ViewportConfig, aL as PersistentLayerConfig, P as DocBlock, bN as ViewportOrientation, aK as PersistentLayer, bu as TitleBlockInput, b0 as SectionHeaderInput, j as BigTextInput, u as ContentBlockInput, b6 as StatHighlightInput, aW as QuoteBlockInput, V as FactCardInput, bC as TwoColumnInput, H as DateEventInput, a1 as ImageWithCaptionInput, a6 as LeftFeatureInput, aZ as RightFeatureInput, aa as MapBlockInput, b5 as StartBlockConfig, Y as FullBleedQuoteInput, a9 as ListBlockInput, aP as PhotoGridInput, J as DefinitionCardInput, t as ComparisonBarInput, aV as PullQuoteInput, bL as VideoWithCaptionInput, bK as VideoPullQuoteInput, G as DataTableInput, K as DiagramBlockInput, bx as TreeBlockInput, bq as TimelineBlockInput, k as Block, S as DrawingBlockInput, ae as MarkerStyle, A as AccentImage, a0 as ImageTreatment, a as AccentPosition, c as Animation, d as AnimationType, bj as ThemeColorScheme, O as Doc, bl as ThemeRegistry, aD as PageEmphasis, bk as ThemePageStyle, Q as DocDiagnostic, N as DiagramTemplateNode, M as DiagramTemplateEdge, bt as TimelineTemplateTrack, bs as TimelineTemplateLink } from '../Doc-CRPQCkHn.js';
2
+ export { T as FRONTMATTER_CUSTOM_TEMPLATES_KEY, U as FRONTMATTER_CUSTOM_THEMES_KEY, a5 as LayoutHints, aY as RenderStyle, bi as ThemeColorPalette, bo as ThemeStyle, bp as ThemeTypography, bD as VIEWPORT_PRESETS, bO as ViewportPreset, bT as createTemplateContext, b_ as getLayoutHints, c1 as getTwoColumnPositions, c2 as getViewport, c3 as getViewportOrientation, c6 as isTemplateBlock, c9 as scaledFontSize } from '../Doc-CRPQCkHn.js';
3
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
4
  import { C as CoercedBlockMeta } from '../annotationCoercion-Ckqpu33y.js';
5
- import { c as PageSection } from '../materializePageSection-BRNIINlU.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-BRNIINlU.js';
5
+ import { c as PageSection } from '../materializePageSection-BeUPHeCl.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-BeUPHeCl.js';
7
7
  import { C as ContentContainer } from '../ContentContainer-B2w9sUoL.js';
8
- export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-xaxN5UYu.js';
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-BG3jr6mT.js';
9
10
 
10
11
  /** Runtime registry composition for built-in and document-scoped templates. */
11
12
 
@@ -149,6 +150,12 @@ declare const TEMPLATE_AUTHORING_METADATA: {
149
150
  readonly safeForContentFirst: true;
150
151
  readonly placement: "heading";
151
152
  };
153
+ readonly transcript: {
154
+ readonly role: "content";
155
+ readonly bodyPolicy: "structured";
156
+ readonly safeForContentFirst: false;
157
+ readonly placement: "heading";
158
+ };
152
159
  readonly statHighlight: {
153
160
  readonly role: "highlight";
154
161
  readonly bodyPolicy: "derived";
@@ -403,6 +410,15 @@ declare const BLOCK_MEDIA_LAYOUT_POLICIES: {
403
410
  readonly unconsumedMedia: "reserve-when-no-native-media";
404
411
  readonly variants: SupplementalMediaVariantMatrix;
405
412
  };
413
+ readonly transcript: {
414
+ readonly summary: "Speaker avatars are native media (initials medallions when absent); other media stays supplemental.";
415
+ readonly noMedia: "template-without-optional-media";
416
+ readonly ownership: "optional-native";
417
+ readonly nativeLayout: "accent-strip-or-inset";
418
+ readonly additionalMediaLayout: "overlay-inset";
419
+ readonly unconsumedMedia: "reserve-when-no-native-media";
420
+ readonly variants: SupplementalMediaVariantMatrix;
421
+ };
406
422
  readonly content: {
407
423
  readonly summary: "Preserves the complete heading and body; supplemental media receives a companion field.";
408
424
  readonly noMedia: "template-default";
@@ -3164,6 +3180,107 @@ interface NarrationResolution {
3164
3180
  */
3165
3181
  declare function applyNarrationTiming(doc: Doc, container: ContentContainer): Promise<NarrationResolution>;
3166
3182
 
3183
+ /** File extensions (lowercase, no dot) recognized as sidecar data files. */
3184
+ declare const DATA_FILE_EXTENSIONS: readonly ["csv", "tsv", "xlsx", "parquet"];
3185
+ /**
3186
+ * True when `path` is a relative container path ending in a data extension.
3187
+ * Absolute/protocol URLs are never data sidecar references.
3188
+ */
3189
+ declare function isDataFilePath(path: string): boolean;
3190
+ /**
3191
+ * The sidecar directory for a document's data files:
3192
+ * `<docbasename>_files/data/`. One helper owns the convention so importers,
3193
+ * the editor's drop pipeline, and hosts agree on where data lives.
3194
+ */
3195
+ declare function dataSidecarPrefix(docBasename: string): string;
3196
+ /** A bounded window of tabular data read from a sidecar file. */
3197
+ interface DataSourceTable {
3198
+ headers: string[];
3199
+ /** Preview window of data rows, cells stringified for display. */
3200
+ rows: string[][];
3201
+ align?: ('left' | 'center' | 'right' | null)[];
3202
+ /**
3203
+ * Full data-row count in the source AFTER any view-state filter (not just
3204
+ * the preview window). With no filter this is the raw row count.
3205
+ */
3206
+ totalRows: number;
3207
+ totalCols: number;
3208
+ /** Raw row count before filtering, when a filter was applied. */
3209
+ unfilteredTotalRows?: number;
3210
+ /** Problems parsing/applying `sort`/`filter` (see `@bendyline/squisq/table`). */
3211
+ viewIssues?: ViewIssue[];
3212
+ }
3213
+ interface DataSourceReadOptions {
3214
+ /** Worksheet name (workbook sources only). */
3215
+ sheet?: string;
3216
+ /** Top-left cell of the region, e.g. `'B7'` (workbook sources only). */
3217
+ anchor?: string;
3218
+ /** Whether row 1 of the source is a header row. Default true. */
3219
+ headerRow?: boolean;
3220
+ /** Maximum data rows to return in `rows`. */
3221
+ maxRows: number;
3222
+ /**
3223
+ * Raw view-state params (`{[dataTable … sort=… filter=…]}`). Readers parse
3224
+ * them against their REAL headers and apply `applyTableViewState` on the
3225
+ * full body BEFORE windowing to `maxRows` — the resolver cannot do it, the
3226
+ * rows are already gone by then. Problems surface via
3227
+ * `DataSourceTable.viewIssues`, never a throw.
3228
+ */
3229
+ sort?: string;
3230
+ filter?: string;
3231
+ }
3232
+ /**
3233
+ * Decodes one family of data files. `extensions` are lowercase without the
3234
+ * dot (`['csv', 'tsv']`). `read` may throw — the resolver converts failures
3235
+ * into diagnostics rather than propagating them.
3236
+ */
3237
+ interface DataSourceReader {
3238
+ extensions: readonly string[];
3239
+ read(data: ArrayBuffer, opts: DataSourceReadOptions): Promise<DataSourceTable>;
3240
+ }
3241
+ interface ResolveDataReferencesOptions {
3242
+ readers: readonly DataSourceReader[];
3243
+ /** Preview window size when a block has no `previewRows` param. Default 50. */
3244
+ maxPreviewRows?: number;
3245
+ /**
3246
+ * Caller-owned memo of reader reads, keyed by src + read options. A
3247
+ * reader read is a FULL-body parse (view state applies before
3248
+ * windowing), and the editor's projection path re-resolves on every
3249
+ * debounce — for a 20 MB sidecar that cost per keystroke is not
3250
+ * acceptable. The CALLER owns invalidation: clear or replace the map
3251
+ * when the underlying bytes may have changed (the editor scopes its
3252
+ * cache to the container and clears it on every mediaRevision bump).
3253
+ */
3254
+ tableCache?: Map<string, Promise<DataSourceTable>>;
3255
+ }
3256
+ interface ResolvedDataReferences {
3257
+ /** The doc with previews filled in — the SAME object when nothing changed. */
3258
+ doc: Doc;
3259
+ diagnostics: DocDiagnostic[];
3260
+ }
3261
+ /** Stats recorded on `templateData.srcStats` alongside the preview rows. */
3262
+ interface DataSourceStats {
3263
+ /** Data rows after any view-state filter. */
3264
+ totalRows: number;
3265
+ totalCols: number;
3266
+ previewRows: number;
3267
+ truncated: boolean;
3268
+ /** Raw source rows before filtering, when a filter was applied. */
3269
+ unfilteredTotalRows?: number;
3270
+ }
3271
+ /**
3272
+ * Resolve every `src`-referenced table/chart block against the container.
3273
+ *
3274
+ * - Author data wins: blocks that already carry `headers`/`rows` (data fence,
3275
+ * `{[…]}` params) are left untouched.
3276
+ * - Failures never throw: a missing file, unknown extension, or reader error
3277
+ * becomes a diagnostic and the block is left as-is — its body link still
3278
+ * renders in every projection.
3279
+ * - Identity short-circuit: when no block changed, the input doc object is
3280
+ * returned unchanged.
3281
+ */
3282
+ declare function resolveDataReferences(doc: Doc, container: ContentContainer, options: ResolveDataReferencesOptions): Promise<ResolvedDataReferences>;
3283
+
3167
3284
  /**
3168
3285
  * Structured template data from markdown body content.
3169
3286
  *
@@ -3911,4 +4028,4 @@ declare function treeFromMarkdownList(list: MarkdownList): Tree;
3911
4028
  /** Find the first top-level markdown list in a block's body, if any. */
3912
4029
  declare function findFirstList(contents: MarkdownBlockNode[] | undefined): MarkdownList | undefined;
3913
4030
 
3914
- 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, DEFAULT_COVER_SLIDE_SETTINGS, DEFAULT_DASHBOARD_SETTINGS, DEFAULT_DASHBOARD_STYLE, DEFAULT_LAYOUT, 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 DeriveTemplateInputsOptions, type DetectAsciiTimelineOptions, type DiagramEdge, type DiagramLabelFit, type DiagramLayout, type DiagramLayoutOptions, type DiagramNodePosition, DocBlock, type DrawingConnector, type DrawingLayout, type DrawingLayoutOptions, type DrawingShape, type DrawingShapeKind, type EmbeddedVideo, type ExpandDocBlocksOptions, type ExtractedTableData, FRONTMATTER_DASHBOARD_LAYOUTS_KEY, type FirstImage, type Flashcard, type FlashcardChoice, type FlashcardDeck, type FlashcardDiagnostic, type FlashcardDiagnosticCode, type FlashcardFace, type FlashcardKind, type FlashcardSourceMode, type 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, PersistentLayerConfig, type RenderAsciiDiagramOptions, type RenderAsciiTimelineOptions, type RenderTreeOptions, type RepairResult, type ResolvedDashboardCell, 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, coverBlock, createAccentLayers, cssFilterForTreatment, dashboardCanvasFill, dashboardCellAccent, 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, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDashboardLayoutSummaries, getDefaultAnimation, getDefaultAnimationDuration, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, hasTemplate, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layoutBlock, layoutCapacity, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, listDashboardLayouts, mapBlock, markdownBlockSeparatorLines, markdownToDoc, markerPath, materializeBlockLayers, materializeDashboard, materializeFlashcards, nearestSnapPoint, normalizeDashboardZoom, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, parseTree, parseWrappedFlowTimeline, parseYamlSubset, photoGrid, pullQuote, quoteBlock, readCustomTemplatesFromFrontmatter, readCustomThemesFromFrontmatter, readDashboardLayoutsFromFrontmatter, renderAsciiDiagram, renderAsciiTimeline, renderMarkdownBlocksHtml, renderTree, repairAsciiDiagram, replaceDataFence, resolveAudioMapping, resolveColorScheme, resolveCoverSlideSettings, resolveDashboardLayoutDefinition, resolveDashboardSettings, resolveDashboardStyleId, resolveDashboardZooms, 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, transposeCells, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateDashboardLayoutDefinition, validateMarkdownDoc, validateMarkdownSource, videoPullQuote, videoWithCaption, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter, writeDashboardLayoutsToFrontmatter };
4031
+ 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, DIAGRAM_LABEL_HORIZONTAL_PADDING, DIAGRAM_LABEL_LINE_HEIGHT, DIAGRAM_LABEL_MIN_FONT_SIZE, DIAGRAM_LABEL_VERTICAL_PADDING, type DashboardCell, type DashboardCellChrome, type DashboardCellDefinition, type DashboardCellFrame, type DashboardDiagnostic, type DashboardLayoutDefinition, type DashboardLayoutSummary, type DashboardLayoutValidationError, type DashboardLayoutValidationResult, type DashboardMaterialization, type DashboardRectPct, type DashboardSettings, type DashboardSettingsOverrides, type DashboardStyleId, type DashboardStyleSummary, type DashboardTitle, type DashboardTitleSlotDefinition, type DashboardZoomCandidate, type DashboardZoomLevel, type DashboardZoomMode, type DataFenceParseResult, type DataSourceReadOptions, type DataSourceReader, type DataSourceStats, type DataSourceTable, type DeriveTemplateInputsOptions, type DetectAsciiTimelineOptions, type DiagramEdge, type DiagramLabelFit, type DiagramLayout, type DiagramLayoutOptions, type DiagramNodePosition, DocBlock, type DrawingConnector, type DrawingLayout, type DrawingLayoutOptions, type DrawingShape, type DrawingShapeKind, type EmbeddedVideo, type ExpandDocBlocksOptions, type ExtractedTableData, FRONTMATTER_DASHBOARD_LAYOUTS_KEY, type FirstImage, type Flashcard, type FlashcardChoice, type FlashcardDeck, type FlashcardDiagnostic, type FlashcardDiagnosticCode, type FlashcardFace, type FlashcardKind, type FlashcardSourceMode, type 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, 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, 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, fullBleedQuote, getAccentLayout, getAnimationProgress, getAnimationStyle, getAvailableTemplates, getBlockBodyText, getBlockDepth, getBlockMediaLayoutPolicy, getDashboardLayoutSummaries, getDefaultAnimation, getDefaultAnimationDuration, getOverlayOpacity, getPersistentLayersFromTheme, getPinnedBlockMeta, getTemplateHint, getThemeFont, getTransitionClass, hasTemplate, imageWithCaption, isAsciiDiagramFence, isAsciiTimelineFence, isContainerTemplate, isDataFence, isDataFilePath, isEligibleAsciiFenceLang, isEligibleAsciiTimelineFenceLang, isEligibleTreeFenceLang, isExplicitDiagramLang, isExplicitTimelineLang, isExplicitTreeLang, isRepairableDiagram, isShapeName, isTemplatedPageBlock, isTreeFence, isWrappedFlowTimelineSource, layoutBlock, layoutCapacity, leftFeature, lineStyleDasharray, lintTemplateParams, listBlock, listDashboardLayouts, mapBlock, markdownBlockSeparatorLines, markdownToDoc, markerPath, materializeBlockLayers, materializeDashboard, materializeFlashcards, nearestSnapPoint, normalizeDashboardZoom, normalizeShapeKind, pageStyleDataAttributes, parseAsciiDiagram, parseAsciiTimeline, parseAsciiTimelineWithStats, parseDataFence, 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, transposeCells, treeBlock, treeFromMarkdownList, treeFromTemplateData, treeToTemplateData, twoColumn, validateDashboardLayoutDefinition, validateMarkdownDoc, validateMarkdownSource, videoPullQuote, videoWithCaption, wrapWithPersistentLayers, writeCustomTemplatesToFrontmatter, writeCustomThemesToFrontmatter, writeDashboardLayoutsToFrontmatter };