@bendyline/squisq 2.11.7 → 2.11.8

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 (38) hide show
  1. package/dist/{Doc-BkxT7G80.d.ts → Doc-CynsGqL4.d.ts} +208 -1
  2. package/dist/{ImageEditDoc-C8ZB54Vv.d.ts → ImageEditDoc-BVZe_5y4.d.ts} +1 -1
  3. package/dist/{chunk-SKKBRLLM.js → chunk-5FBI3ZW4.js} +7 -42
  4. package/dist/{chunk-YGGYYBJS.js → chunk-JJO6JFNZ.js} +1 -1
  5. package/dist/{chunk-SOIV7KDO.js → chunk-JM2QARY2.js} +42 -10
  6. package/dist/chunk-JSGIWW35.js +70 -0
  7. package/dist/{chunk-IYZTF4VO.js → chunk-KFZOCWPK.js} +2 -2
  8. package/dist/chunk-L7QZORLB.js +230 -0
  9. package/dist/chunk-NEWNNLWN.js +64 -0
  10. package/dist/{chunk-6ECMNUIP.js → chunk-OU5FYBOB.js} +170 -4
  11. package/dist/{chunk-3YNFMFNK.js → chunk-RMCUZDW5.js} +17 -8
  12. package/dist/{chunk-XJXBI3N5.js → chunk-XZVBR5BP.js} +1 -1
  13. package/dist/{chunk-GAZKTT4R.js → chunk-YNO6JV36.js} +96 -33
  14. package/dist/{chunk-EF353KGH.js → chunk-ZEONJCP3.js} +1 -1
  15. package/dist/doc/index.d.ts +5 -5
  16. package/dist/doc/index.js +22 -20
  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 +47 -4
  20. package/dist/imageEdit/index.js +5 -1
  21. package/dist/index.d.ts +5 -5
  22. package/dist/index.js +48 -39
  23. package/dist/jsonForm/index.d.ts +1 -1
  24. package/dist/jsonForm/index.js +4 -2
  25. package/dist/markdown/index.js +3 -3
  26. package/dist/{materializePageSection-Dp2aHFbc.d.ts → materializePageSection-CAJoa8fh.d.ts} +1 -1
  27. package/dist/mediaEdit/index.d.ts +467 -0
  28. package/dist/mediaEdit/index.js +990 -0
  29. package/dist/narration/index.d.ts +20 -12
  30. package/dist/narration/index.js +6 -4
  31. package/dist/schemas/index.d.ts +4 -4
  32. package/dist/schemas/index.js +7 -3
  33. package/dist/{themeLibrary-BbSjnGmd.d.ts → themeLibrary-z7t3x5CU.d.ts} +1 -1
  34. package/dist/timing/index.d.ts +1 -1
  35. package/dist/transform/index.d.ts +2 -2
  36. package/dist/transform/index.js +6 -5
  37. package/package.json +6 -1
  38. package/dist/{chunk-CW24CH7I.js → chunk-HUXK7EOT.js} +3 -3
@@ -1,3 +1,7 @@
1
+ import {
2
+ createMediaTimeMap
3
+ } from "./chunk-JSGIWW35.js";
4
+
1
5
  // src/schemas/Media.ts
2
6
  function flatten(blocks, out = []) {
3
7
  for (const b of blocks) {
@@ -6,17 +10,104 @@ function flatten(blocks, out = []) {
6
10
  }
7
11
  return out;
8
12
  }
13
+ function clipTimeMap(clip, sourceDuration) {
14
+ return createMediaTimeMap({
15
+ clipStart: clip.clipStart,
16
+ clipEnd: clip.clipEnd,
17
+ cuts: clip.edits?.cuts,
18
+ sourceDuration
19
+ });
20
+ }
9
21
  function clipLength(clip) {
10
22
  if (clip.clipEnd == null) return null;
11
- return Math.max(0, clip.clipEnd - (clip.clipStart ?? 0));
23
+ if (!clip.edits?.cuts?.length) return Math.max(0, clip.clipEnd - (clip.clipStart ?? 0));
24
+ return clipTimeMap(clip).playedDuration;
12
25
  }
13
26
  function intrinsicPlayedLength(clip, opts) {
14
27
  if (clip.clipEnd != null || clip.lockToBlock === true) return null;
15
28
  const intrinsic = opts?.intrinsicDuration?.(clip);
16
29
  if (intrinsic == null || !Number.isFinite(intrinsic) || intrinsic <= 0) return null;
17
- const played = intrinsic - (clip.clipStart ?? 0);
30
+ const played = clip.edits?.cuts?.length ? clipTimeMap(clip, intrinsic).playedDuration : intrinsic - (clip.clipStart ?? 0);
18
31
  return played > 0 ? played : null;
19
32
  }
33
+ function emitClip(out, clip, start, end, anchor, blockId, opts) {
34
+ const edits = clip.edits;
35
+ const processed = edits?.fx ? opts?.processedAudio?.(clip) : void 0;
36
+ const base = {
37
+ src: clip.src,
38
+ kind: clip.kind,
39
+ ...clip.placement ? { placement: clip.placement } : {},
40
+ ...clip.pipSize ? { pipSize: clip.pipSize } : {},
41
+ ...clip.pipShape ? { pipShape: clip.pipShape } : {},
42
+ ...clip.pipPosition ? { pipPosition: clip.pipPosition } : {},
43
+ ...clip.lockToBlock != null ? { lockToBlock: clip.lockToBlock } : {},
44
+ anchor,
45
+ ...blockId !== void 0 ? { blockId } : {},
46
+ ...clip.sourceLine != null ? { sourceLine: clip.sourceLine } : {},
47
+ ...edits?.gain != null ? { gain: edits.gain } : {},
48
+ ...clip.kind === "video" && edits?.crop ? { crop: edits.crop } : {}
49
+ };
50
+ if (processed && clip.kind === "audio") {
51
+ base.src = processed;
52
+ base.originalSrc = clip.src;
53
+ }
54
+ if (processed && clip.kind === "video") base.audioMuted = true;
55
+ const safeEnd = Math.max(start, end);
56
+ const pieces = [];
57
+ if (!edits?.cuts?.length) {
58
+ pieces.push({ absoluteStart: start, absoluteEnd: safeEnd, sourceIn: clip.clipStart ?? 0 });
59
+ } else {
60
+ let offset = 0;
61
+ for (const range of clipTimeMap(clip).keptRanges()) {
62
+ const segStart = start + offset;
63
+ if (segStart >= safeEnd) break;
64
+ const segEnd = Math.min(safeEnd, segStart + (range.end - range.start));
65
+ pieces.push({ absoluteStart: segStart, absoluteEnd: segEnd, sourceIn: range.start });
66
+ offset += range.end - range.start;
67
+ }
68
+ if (pieces.length === 0) {
69
+ pieces.push({ absoluteStart: start, absoluteEnd: start, sourceIn: clip.clipStart ?? 0 });
70
+ }
71
+ }
72
+ const count = pieces.length;
73
+ pieces.forEach((piece, index) => {
74
+ const entry = {
75
+ ...base,
76
+ id: count > 1 ? `${clip.id}#${index}` : clip.id,
77
+ ...piece,
78
+ ...index === 0 && edits?.fadeIn ? { fadeIn: edits.fadeIn } : {},
79
+ ...index === count - 1 && edits?.fadeOut ? { fadeOut: edits.fadeOut } : {},
80
+ ...count > 1 ? { segment: { groupId: clip.id, index, count } } : {}
81
+ };
82
+ out.push(entry);
83
+ if (processed && clip.kind === "video") out.push(companionAudio(entry, clip, processed));
84
+ });
85
+ }
86
+ function scheduleMediaClip(clip, start, end, anchor, blockId, opts) {
87
+ const out = [];
88
+ emitClip(out, clip, start, end, anchor, blockId, opts);
89
+ return out;
90
+ }
91
+ function companionAudio(entry, clip, processed) {
92
+ const companion = {
93
+ ...entry,
94
+ id: `${entry.id}~audio`,
95
+ kind: "audio",
96
+ src: processed,
97
+ originalSrc: clip.src,
98
+ derivedFrom: clip.id
99
+ };
100
+ delete companion.crop;
101
+ delete companion.audioMuted;
102
+ delete companion.placement;
103
+ delete companion.pipSize;
104
+ delete companion.pipShape;
105
+ delete companion.pipPosition;
106
+ if (entry.segment) {
107
+ companion.segment = { ...entry.segment, groupId: `${clip.id}~audio` };
108
+ }
109
+ return companion;
110
+ }
20
111
  function baseTimelineEnd(doc) {
21
112
  const blockEnd = flatten(doc.blocks).reduce(
22
113
  (max, b) => Math.max(max, b.startTime + b.duration),
@@ -40,22 +131,7 @@ function resolveMediaSchedule(doc, opts) {
40
131
  }
41
132
  const natLen = intrinsicPlayedLength(clip, opts);
42
133
  if (natLen != null) end = Math.min(end, start + natLen);
43
- out.push({
44
- id: clip.id,
45
- src: clip.src,
46
- kind: clip.kind,
47
- ...clip.placement ? { placement: clip.placement } : {},
48
- ...clip.pipSize ? { pipSize: clip.pipSize } : {},
49
- ...clip.pipShape ? { pipShape: clip.pipShape } : {},
50
- ...clip.pipPosition ? { pipPosition: clip.pipPosition } : {},
51
- ...clip.lockToBlock != null ? { lockToBlock: clip.lockToBlock } : {},
52
- absoluteStart: start,
53
- absoluteEnd: Math.max(start, end),
54
- sourceIn: clip.clipStart ?? 0,
55
- anchor: "block",
56
- blockId: block.id,
57
- ...clip.sourceLine != null ? { sourceLine: clip.sourceLine } : {}
58
- });
134
+ emitClip(out, clip, start, end, "block", block.id, opts);
59
135
  }
60
136
  }
61
137
  for (const clip of doc.documentMedia ?? []) {
@@ -64,21 +140,7 @@ function resolveMediaSchedule(doc, opts) {
64
140
  let end = len != null ? start + len : docEnd;
65
141
  const natLen = intrinsicPlayedLength(clip, opts);
66
142
  if (natLen != null) end = Math.min(end, start + natLen);
67
- out.push({
68
- id: clip.id,
69
- src: clip.src,
70
- kind: clip.kind,
71
- ...clip.placement ? { placement: clip.placement } : {},
72
- ...clip.pipSize ? { pipSize: clip.pipSize } : {},
73
- ...clip.pipShape ? { pipShape: clip.pipShape } : {},
74
- ...clip.pipPosition ? { pipPosition: clip.pipPosition } : {},
75
- ...clip.lockToBlock != null ? { lockToBlock: clip.lockToBlock } : {},
76
- absoluteStart: start,
77
- absoluteEnd: Math.max(start, end),
78
- sourceIn: clip.clipStart ?? 0,
79
- anchor: "document",
80
- ...clip.sourceLine != null ? { sourceLine: clip.sourceLine } : {}
81
- });
143
+ emitClip(out, clip, start, end, "document", void 0, opts);
82
144
  }
83
145
  return out;
84
146
  }
@@ -232,6 +294,7 @@ function defaultPageStyle(theme) {
232
294
  }
233
295
 
234
296
  export {
297
+ scheduleMediaClip,
235
298
  resolveMediaSchedule,
236
299
  getDocPlaybackDuration,
237
300
  defaultPageStyle
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  flattenRenderableBlocks,
3
3
  getBlockBodyText
4
- } from "./chunk-3YNFMFNK.js";
4
+ } from "./chunk-RMCUZDW5.js";
5
5
  import {
6
6
  estimateSpokenWordCount
7
7
  } from "./chunk-GHOPHGOK.js";
@@ -1,12 +1,12 @@
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-BkxT7G80.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-BkxT7G80.js';
1
+ import { be as TemplateBlock, bf as TemplateContext, a3 as Layer, w as CustomTemplateDefinition, bh as TemplateRegistry, bk as Theme, bP as ViewportConfig, aO as PersistentLayerConfig, P as DocBlock, bQ as ViewportOrientation, aN as PersistentLayer, bx as TitleBlockInput, b3 as SectionHeaderInput, j as BigTextInput, u as ContentBlockInput, b9 as StatHighlightInput, aZ as QuoteBlockInput, V as FactCardInput, bF as TwoColumnInput, H as DateEventInput, a1 as ImageWithCaptionInput, a6 as LeftFeatureInput, b0 as RightFeatureInput, aa as MapBlockInput, b8 as StartBlockConfig, Y as FullBleedQuoteInput, a9 as ListBlockInput, aS as PhotoGridInput, J as DefinitionCardInput, t as ComparisonBarInput, aY as PullQuoteInput, bO as VideoWithCaptionInput, bN as VideoPullQuoteInput, G as DataTableInput, K as DiagramBlockInput, bA as TreeBlockInput, bt 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, bm as ThemeColorScheme, O as Doc, bo as ThemeRegistry, aG as PageEmphasis, bn as ThemePageStyle, Q as DocDiagnostic, N as DiagramTemplateNode, M as DiagramTemplateEdge, bw as TimelineTemplateTrack, bv as TimelineTemplateLink } from '../Doc-CynsGqL4.js';
2
+ export { T as FRONTMATTER_CUSTOM_TEMPLATES_KEY, U as FRONTMATTER_CUSTOM_THEMES_KEY, a5 as LayoutHints, a$ as RenderStyle, bl as ThemeColorPalette, br as ThemeStyle, bs as ThemeTypography, bG as VIEWPORT_PRESETS, bR as ViewportPreset, bW as createTemplateContext, c1 as getLayoutHints, c4 as getTwoColumnPositions, c5 as getViewport, c6 as getViewportOrientation, c9 as isTemplateBlock, cc as scaledFontSize } from '../Doc-CynsGqL4.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-Dp2aHFbc.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-Dp2aHFbc.js';
5
+ import { c as PageSection } from '../materializePageSection-CAJoa8fh.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-CAJoa8fh.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-BbSjnGmd.js';
9
+ export { D as DEFAULT_THEME, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from '../themeLibrary-z7t3x5CU.js';
10
10
 
11
11
  /** Runtime registry composition for built-in and document-scoped templates. */
12
12
 
package/dist/doc/index.js CHANGED
@@ -70,8 +70,8 @@ import {
70
70
  validateMarkdownDoc,
71
71
  validateMarkdownSource,
72
72
  writeDashboardLayoutsToFrontmatter
73
- } from "../chunk-SOIV7KDO.js";
74
- import "../chunk-EF353KGH.js";
73
+ } from "../chunk-JM2QARY2.js";
74
+ import "../chunk-ZEONJCP3.js";
75
75
  import {
76
76
  ASCII_CHAR_H,
77
77
  ASCII_CHAR_W,
@@ -193,21 +193,7 @@ import {
193
193
  wrapWithPersistentLayers,
194
194
  writeCustomTemplatesToFrontmatter,
195
195
  writeCustomThemesToFrontmatter
196
- } from "../chunk-3YNFMFNK.js";
197
- import {
198
- PATH_SHAPE_KINDS,
199
- anchorPoint,
200
- clipEndpoints,
201
- clipPoint,
202
- connectorPath,
203
- lineStyleDasharray,
204
- markerPath,
205
- nearestSnapPoint,
206
- shapePath,
207
- snapEndpoints,
208
- snapPoints
209
- } from "../chunk-PUS54YU6.js";
210
- import "../chunk-7ZAAICW4.js";
196
+ } from "../chunk-RMCUZDW5.js";
211
197
  import {
212
198
  ASCII_DIAGRAM_FENCE_LANGS,
213
199
  ASCII_TIMELINE_FENCE_LANGS,
@@ -231,7 +217,21 @@ import {
231
217
  parseTree,
232
218
  parseWrappedFlowTimeline
233
219
  } from "../chunk-C3NAY5YP.js";
234
- import "../chunk-GAZKTT4R.js";
220
+ import {
221
+ PATH_SHAPE_KINDS,
222
+ anchorPoint,
223
+ clipEndpoints,
224
+ clipPoint,
225
+ connectorPath,
226
+ lineStyleDasharray,
227
+ markerPath,
228
+ nearestSnapPoint,
229
+ shapePath,
230
+ snapEndpoints,
231
+ snapPoints
232
+ } from "../chunk-PUS54YU6.js";
233
+ import "../chunk-7ZAAICW4.js";
234
+ import "../chunk-YNO6JV36.js";
235
235
  import {
236
236
  DEFAULT_THEME,
237
237
  FRONTMATTER_CUSTOM_TEMPLATES_KEY,
@@ -248,15 +248,17 @@ import {
248
248
  resolveTheme,
249
249
  scaledFontSize2 as scaledFontSize
250
250
  } from "../chunk-Y4D6TDZT.js";
251
- import "../chunk-CW24CH7I.js";
251
+ import "../chunk-JSGIWW35.js";
252
+ import "../chunk-L7QZORLB.js";
253
+ import "../chunk-HUXK7EOT.js";
252
254
  import {
253
255
  CONTAINER_TEMPLATES,
254
256
  TABLE_FED_TEMPLATES,
255
257
  isContainerTemplate,
256
258
  resolveTemplateName
257
259
  } from "../chunk-TMOHAFYE.js";
258
- import "../chunk-7N4G32LG.js";
259
260
  import "../chunk-X7BNDUNI.js";
261
+ import "../chunk-7N4G32LG.js";
260
262
  import "../chunk-4VOD55SX.js";
261
263
  import "../chunk-GHOPHGOK.js";
262
264
  import "../chunk-XRW6P7IF.js";
@@ -1,4 +1,4 @@
1
- import { bh as Theme } from '../Doc-BkxT7G80.js';
1
+ import { bk as Theme } from '../Doc-CynsGqL4.js';
2
2
  import '../types-Be6sBUBx.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, bb as TemplateBlock } from '../Doc-BkxT7G80.js';
3
+ import { r as ColorScheme, A as AccentImage, be as TemplateBlock } from '../Doc-CynsGqL4.js';
4
4
  import '../types-Be6sBUBx.js';
5
5
 
6
6
  /**
@@ -1,8 +1,8 @@
1
- import { a as ImageEditDoc, b as ImageEditLayer } from '../ImageEditDoc-C8ZB54Vv.js';
2
- export { E as EditorLayerMeta, I as ImageEditCanvas, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-C8ZB54Vv.js';
1
+ import { a as ImageEditDoc, b as ImageEditLayer } from '../ImageEditDoc-BVZe_5y4.js';
2
+ export { E as EditorLayerMeta, I as ImageEditCanvas, c as ImageEditLayerKind, d as ImageEditMeta } from '../ImageEditDoc-BVZe_5y4.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-BkxT7G80.js';
5
+ import '../Doc-CynsGqL4.js';
6
6
  import '../types-Be6sBUBx.js';
7
7
 
8
8
  /**
@@ -253,4 +253,47 @@ declare function exportImageEditDoc(doc: ImageEditDoc, container: ContentContain
253
253
  */
254
254
  declare function buildSvgString(doc: ImageEditDoc, container: ContentContainer): Promise<string>;
255
255
 
256
- export { IMAGE_EDIT_ASSETS_PREFIX, IMAGE_EDIT_DEFAULT_BASENAME, IMAGE_EDIT_STATE_FILENAME, IMAGE_EDIT_VERSIONS_PREFIX, ImageEditDoc, type ImageEditExportFormat, type ImageEditExportOptions, ImageEditLayer, ImageEditVersionManager, type ImageEditVersionManagerOptions, type RevertImageEditFailureReason, type RevertImageEditOptions, type RevertImageEditResult, type SaveImageEditVersionOptions, type SaveImageEditVersionResult, addLayer, buildImageEditVersionPath, buildSvgString, coalesceImageEditVersions, createEmptyImageEditDoc, exportImageEditDoc, listImageEditVersions, parseImageEditVersionPath, pruneImageEditVersions, readImageEditDoc, readImageEditVersion, readImageEditVersionText, removeLayer, reorderLayer, revertToImageEditVersion, saveImageEditVersion, setCanvas, touch, updateLayer, writeImageEditDoc };
256
+ /**
257
+ * Animated-image inspection.
258
+ *
259
+ * Reads the container structure of a GIF, PNG (APNG) or WebP byte stream and
260
+ * reports whether it animates, how many frames it has, how long one pass
261
+ * takes, and how many passes the file asks for. It lets a renderer decide
262
+ * whether an image deserves playback controls, and lets the image editor
263
+ * refuse to flatten an animation into a still.
264
+ *
265
+ * Structure only: no pixel data is decoded. GIF image data is skipped by
266
+ * sub-block length and PNG/WebP chunks by their size fields, so a scan is
267
+ * linear in the number of blocks. Truncated or malformed input never throws;
268
+ * the scan stops and reports what it read.
269
+ */
270
+ type AnimatedImageFormat = 'gif' | 'png' | 'webp';
271
+ interface AnimatedImageInfo {
272
+ format: AnimatedImageFormat;
273
+ /** True when the image has more than one frame to play. */
274
+ animated: boolean;
275
+ /** Frames in one pass. 1 for a still image. */
276
+ frameCount: number;
277
+ /**
278
+ * Length of one pass in milliseconds, timed the way browsers play it: a
279
+ * frame delay of 10 ms or less plays at 100 ms. 0 for a still image.
280
+ */
281
+ durationMs: number;
282
+ /** Passes the file asks for; 0 means it loops forever. 1 for a still image. */
283
+ playCount: number;
284
+ }
285
+ /**
286
+ * Inspect an image's bytes. Returns `null` when the bytes are not a GIF, PNG
287
+ * or WebP (a JPEG, for instance, can never animate).
288
+ */
289
+ declare function inspectAnimatedImage(input: Uint8Array | ArrayBuffer): AnimatedImageInfo | null;
290
+ /**
291
+ * Whether a path, URL or MIME type names a format that can animate, i.e.
292
+ * whether reading its bytes is worthwhile. PNG is deliberately excluded: APNG
293
+ * is rare and nearly every screenshot is a PNG, so sniffing them all would
294
+ * cost far more than it finds. A caller already holding a PNG's bytes can
295
+ * still pass them to {@link inspectAnimatedImage}.
296
+ */
297
+ declare function mayBeAnimatedImage(srcOrMime: string): boolean;
298
+
299
+ export { type AnimatedImageFormat, type AnimatedImageInfo, IMAGE_EDIT_ASSETS_PREFIX, IMAGE_EDIT_DEFAULT_BASENAME, IMAGE_EDIT_STATE_FILENAME, IMAGE_EDIT_VERSIONS_PREFIX, ImageEditDoc, type ImageEditExportFormat, type ImageEditExportOptions, ImageEditLayer, ImageEditVersionManager, type ImageEditVersionManagerOptions, type RevertImageEditFailureReason, type RevertImageEditOptions, type RevertImageEditResult, type SaveImageEditVersionOptions, type SaveImageEditVersionResult, addLayer, buildImageEditVersionPath, buildSvgString, coalesceImageEditVersions, createEmptyImageEditDoc, exportImageEditDoc, inspectAnimatedImage, listImageEditVersions, mayBeAnimatedImage, parseImageEditVersionPath, pruneImageEditVersions, readImageEditDoc, readImageEditVersion, readImageEditVersionText, removeLayer, reorderLayer, revertToImageEditVersion, saveImageEditVersion, setCanvas, touch, updateLayer, writeImageEditDoc };
@@ -10,7 +10,9 @@ import {
10
10
  coalesceImageEditVersions,
11
11
  createEmptyImageEditDoc,
12
12
  exportImageEditDoc,
13
+ inspectAnimatedImage,
13
14
  listImageEditVersions,
15
+ mayBeAnimatedImage,
14
16
  parseImageEditVersionPath,
15
17
  pruneImageEditVersions,
16
18
  readImageEditDoc,
@@ -24,7 +26,7 @@ import {
24
26
  touch,
25
27
  updateLayer,
26
28
  writeImageEditDoc
27
- } from "../chunk-6ECMNUIP.js";
29
+ } from "../chunk-OU5FYBOB.js";
28
30
  import "../chunk-OPO5K4DZ.js";
29
31
  import "../chunk-PUS54YU6.js";
30
32
  export {
@@ -39,7 +41,9 @@ export {
39
41
  coalesceImageEditVersions,
40
42
  createEmptyImageEditDoc,
41
43
  exportImageEditDoc,
44
+ inspectAnimatedImage,
42
45
  listImageEditVersions,
46
+ mayBeAnimatedImage,
43
47
  parseImageEditVersionPath,
44
48
  pruneImageEditVersions,
45
49
  readImageEditDoc,
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  export { B as BoundingBox, C as Coordinates } from './Types-sh2VRxfo.js';
2
- export { A as AccentImage, a as AccentPosition, b as AmbientGradientConfig, c as Animation, d as AnimationType, e as AreaChartInput, f as AudioBookmark, g as AudioSegment, h as AudioTimingData, i as AudioTrack, B as BarChartInput, j as BigTextInput, k as Block, l as BlockConnection, m as BorderStyle, C as CaptionPhrase, n as CaptionTrack, o as CaptionWord, p as ChartBaseFields, q as ChartTemplateInput, r as ColorScheme, s as ColumnChartInput, t as ComparisonBarInput, u as ContentBlockInput, v as CornerBrandingConfig, w as CustomTemplateDefinition, x as CustomTemplateLayer, y as CustomTemplateValidationError, z as CustomTemplateValidationResult, D as DARK_SURFACE, E as DEFAULT_DOC_FONT, F as DEFAULT_TITLE_FONT, G as DataTableInput, H as DateEventInput, I as DeepPartial, J as DefinitionCardInput, K as DiagramBlockInput, L as DiagramEdgeAnchor, M as DiagramTemplateEdge, N as DiagramTemplateNode, O as Doc, P as DocBlock, Q as DocDiagnostic, R as DonutChartInput, S as DrawingBlockInput, T as FRONTMATTER_CUSTOM_TEMPLATES_KEY, U as FRONTMATTER_CUSTOM_THEMES_KEY, V as FactCardInput, W as FontFamily, X as FontFamilyKind, Y as FullBleedQuoteInput, Z as GradientBackgroundConfig, _ as ImageBackgroundConfig, $ as ImageLayer, a0 as ImageTreatment, a1 as ImageWithCaptionInput, a2 as LIGHT_SURFACE, a3 as Layer, a4 as LayerRepeat, a5 as LayoutHints, a6 as LeftFeatureInput, a7 as LineChartInput, a8 as LinearGradient, a9 as ListBlockInput, aa as MapBlockInput, ab as MapLayer, ac as MapMarker, ad as MapTileStyle, ae as MarkerStyle, af as MediaClip, ag as MediaScheduleOptions, ah as MermaidLayer, ai as PAGE_ACCENT_STRATEGIES, aj as PAGE_BACKGROUNDS, ak as PAGE_BACKGROUND_RHYTHMS, al as PAGE_DESIGN_FAMILIES, am as PAGE_DIVIDERS, an as PAGE_EMPHASES, ao as PAGE_EYEBROWS, ap as PAGE_HEADING_CASES, aq as PAGE_HEADING_SCALES, ar as PAGE_HEADING_UNDERLINES, as as PAGE_HERO_STYLES, at as PAGE_IMAGE_FRAMINGS, au as PAGE_NUMERAL_STYLES, av as PAGE_PATTERNS, aw as PAGE_QUOTE_MARKS, ax as PAGE_SECTION_KINDS, ay as PAGE_SECTION_SPACINGS, az as PAGE_SHADOWS, aA as PageAccentRotation, aB as PageBackground, aC as PageDesignFamily, aD as PageEmphasis, aE as PageHeadingTreatment, aF as PageSectionKind, aG as PageSectionOverride, aH as PageTokens, aI as PathLayer, aJ as PatternBackgroundConfig, aK as PersistentLayer, aL as PersistentLayerConfig, aM as PersistentLayerTemplate, aN as PersistentLayerTemplateConfig, aO as PersistentLayerTemplateType, aP as PhotoGridInput, aQ as PieChartInput, aR as PipStyle, aS as Position, aT as ProgressIndicatorConfig, aU as PromotedBodyAnnotation, aV as PullQuoteInput, aW as QuoteBlockInput, aX as RawLayersInput, aY as RenderStyle, aZ as RightFeatureInput, a_ as ScatterChartInput, a$ as ScheduledClip, b0 as SectionHeaderInput, b1 as ShapeFilter, b2 as ShapeLayer, b3 as ShapePattern, b4 as SolidBackgroundConfig, b5 as StartBlockConfig, b6 as StatHighlightInput, b7 as SurfaceScheme, b8 as THEME_SCHEMA_VERSION, b9 as TableLayer, ba as TableLayerStyle, bb as TemplateBlock, bc as TemplateContext, bd as TemplateFunction, be as TemplateRegistry, bf as TextLayer, bg as TextStyle, bh as Theme, bi as ThemeColorPalette, bj as ThemeColorScheme, bk as ThemePageStyle, bl as ThemeRegistry, bm as ThemeSchemaVersion, bn as ThemeSeedColors, bo as ThemeStyle, bp as ThemeTypography, bq as TimelineBlockInput, br as TimelineTemplateEvent, bs as TimelineTemplateLink, bt as TimelineTemplateTrack, bu as TitleBlockInput, bv as TitleCaptionConfig, bw as TranscriptBlockInput, bx as TreeBlockInput, by as TreeLayer, bz as TreeLayerItem, bA as TreeLayerStyle, bB as TreeTemplateItem, bC as TwoColumnInput, bD as VIEWPORT_PRESETS, bE as VideoLayer, bF as VideoPipPosition, bG as VideoPipShape, bH as VideoPipSize, bI as VideoPlacement, bJ as VideoPresentation, bK as VideoPullQuoteInput, bL as VideoWithCaptionInput, bM as ViewportConfig, bN as ViewportOrientation, bO as ViewportPreset, bP as VignetteConfig, bQ as applySurface, bR as calculateDuration, bS as calculateFontScale, bT as createTemplateContext, bU as createTheme, bV as createThemeRegistry, bW as getAspectRatioString, bX as getBlockAtTime, bY as getCaptionAtTime, bZ as getDocPlaybackDuration, b_ as getLayoutHints, b$ as getSafeTextBounds, c0 as getSegmentAtTime, c1 as getTwoColumnPositions, c2 as getViewport, c3 as getViewportOrientation, c4 as isCustomTemplateDefinition, c5 as isPersistentLayerTemplate, c6 as isTemplateBlock, c7 as layoutScaledFontSize, c8 as resolveMediaSchedule, c9 as scaledFontSize, ca as validateCustomTemplateDefinition } from './Doc-BkxT7G80.js';
2
+ export { A as AccentImage, a as AccentPosition, b as AmbientGradientConfig, c as Animation, d as AnimationType, e as AreaChartInput, f as AudioBookmark, g as AudioSegment, h as AudioTimingData, i as AudioTrack, B as BarChartInput, j as BigTextInput, k as Block, l as BlockConnection, m as BorderStyle, C as CaptionPhrase, n as CaptionTrack, o as CaptionWord, p as ChartBaseFields, q as ChartTemplateInput, r as ColorScheme, s as ColumnChartInput, t as ComparisonBarInput, u as ContentBlockInput, v as CornerBrandingConfig, w as CustomTemplateDefinition, x as CustomTemplateLayer, y as CustomTemplateValidationError, z as CustomTemplateValidationResult, D as DARK_SURFACE, E as DEFAULT_DOC_FONT, F as DEFAULT_TITLE_FONT, G as DataTableInput, H as DateEventInput, I as DeepPartial, J as DefinitionCardInput, K as DiagramBlockInput, L as DiagramEdgeAnchor, M as DiagramTemplateEdge, N as DiagramTemplateNode, O as Doc, P as DocBlock, Q as DocDiagnostic, R as DonutChartInput, S as DrawingBlockInput, T as FRONTMATTER_CUSTOM_TEMPLATES_KEY, U as FRONTMATTER_CUSTOM_THEMES_KEY, V as FactCardInput, W as FontFamily, X as FontFamilyKind, Y as FullBleedQuoteInput, Z as GradientBackgroundConfig, _ as ImageBackgroundConfig, $ as ImageLayer, a0 as ImageTreatment, a1 as ImageWithCaptionInput, a2 as LIGHT_SURFACE, a3 as Layer, a4 as LayerRepeat, a5 as LayoutHints, a6 as LeftFeatureInput, a7 as LineChartInput, a8 as LinearGradient, a9 as ListBlockInput, aa as MapBlockInput, ab as MapLayer, ac as MapMarker, ad as MapTileStyle, ae as MarkerStyle, af as MediaClip, ag as MediaCrop, ah as MediaCut, ai as MediaEdits, aj as MediaScheduleOptions, ak as MermaidLayer, al as PAGE_ACCENT_STRATEGIES, am as PAGE_BACKGROUNDS, an as PAGE_BACKGROUND_RHYTHMS, ao as PAGE_DESIGN_FAMILIES, ap as PAGE_DIVIDERS, aq as PAGE_EMPHASES, ar as PAGE_EYEBROWS, as as PAGE_HEADING_CASES, at as PAGE_HEADING_SCALES, au as PAGE_HEADING_UNDERLINES, av as PAGE_HERO_STYLES, aw as PAGE_IMAGE_FRAMINGS, ax as PAGE_NUMERAL_STYLES, ay as PAGE_PATTERNS, az as PAGE_QUOTE_MARKS, aA as PAGE_SECTION_KINDS, aB as PAGE_SECTION_SPACINGS, aC as PAGE_SHADOWS, aD as PageAccentRotation, aE as PageBackground, aF as PageDesignFamily, aG as PageEmphasis, aH as PageHeadingTreatment, aI as PageSectionKind, aJ as PageSectionOverride, aK as PageTokens, aL as PathLayer, aM as PatternBackgroundConfig, aN as PersistentLayer, aO as PersistentLayerConfig, aP as PersistentLayerTemplate, aQ as PersistentLayerTemplateConfig, aR as PersistentLayerTemplateType, aS as PhotoGridInput, aT as PieChartInput, aU as PipStyle, aV as Position, aW as ProgressIndicatorConfig, aX as PromotedBodyAnnotation, aY as PullQuoteInput, aZ as QuoteBlockInput, a_ as RawLayersInput, a$ as RenderStyle, b0 as RightFeatureInput, b1 as ScatterChartInput, b2 as ScheduledClip, b3 as SectionHeaderInput, b4 as ShapeFilter, b5 as ShapeLayer, b6 as ShapePattern, b7 as SolidBackgroundConfig, b8 as StartBlockConfig, b9 as StatHighlightInput, ba as SurfaceScheme, bb as THEME_SCHEMA_VERSION, bc as TableLayer, bd as TableLayerStyle, be as TemplateBlock, bf as TemplateContext, bg as TemplateFunction, bh as TemplateRegistry, bi as TextLayer, bj as TextStyle, bk as Theme, bl as ThemeColorPalette, bm as ThemeColorScheme, bn as ThemePageStyle, bo as ThemeRegistry, bp as ThemeSchemaVersion, bq as ThemeSeedColors, br as ThemeStyle, bs as ThemeTypography, bt as TimelineBlockInput, bu as TimelineTemplateEvent, bv as TimelineTemplateLink, bw as TimelineTemplateTrack, bx as TitleBlockInput, by as TitleCaptionConfig, bz as TranscriptBlockInput, bA as TreeBlockInput, bB as TreeLayer, bC as TreeLayerItem, bD as TreeLayerStyle, bE as TreeTemplateItem, bF as TwoColumnInput, bG as VIEWPORT_PRESETS, bH as VideoLayer, bI as VideoPipPosition, bJ as VideoPipShape, bK as VideoPipSize, bL as VideoPlacement, bM as VideoPresentation, bN as VideoPullQuoteInput, bO as VideoWithCaptionInput, bP as ViewportConfig, bQ as ViewportOrientation, bR as ViewportPreset, bS as VignetteConfig, bT as applySurface, bU as calculateDuration, bV as calculateFontScale, bW as createTemplateContext, bX as createTheme, bY as createThemeRegistry, bZ as getAspectRatioString, b_ as getBlockAtTime, b$ as getCaptionAtTime, c0 as getDocPlaybackDuration, c1 as getLayoutHints, c2 as getSafeTextBounds, c3 as getSegmentAtTime, c4 as getTwoColumnPositions, c5 as getViewport, c6 as getViewportOrientation, c7 as isCustomTemplateDefinition, c8 as isPersistentLayerTemplate, c9 as isTemplateBlock, ca as layoutScaledFontSize, cb as resolveMediaSchedule, cc as scaledFontSize, cd as scheduleMediaClip, ce as validateCustomTemplateDefinition } from './Doc-CynsGqL4.js';
3
3
  export { AVAILABLE_FONT_STACKS, CompileOptions, ContrastPreset, DocSchemaIssue, FONT_FALLBACKS, FontStack, MermaidThemeVariables, PipStyleVars, STARTER_THEME, ValidationError, ValidationResult, accentToColorScheme, assertDocSchema, assertTheme, buildGoogleFontsUrl, buildMermaidThemeVariables, compileTheme, contrastRatio, defaultPageStyle, deriveColorPalette, deriveScale, fontStack, getFontStack, guessFontFallback, hexHueDegrees, isHex, matchFontFamily, oklchDarken, oklchLighten, oklchSetChroma, parseTheme, pickContrastingText, pipStyleVars, relativeLuminance, resolveFontFamily, serializeTheme, validateDocSchema, validateTheme, withAlpha } from './schemas/index.js';
4
4
  export { D as DEFAULT_MARKDOWN_SAFETY_LIMITS, a as DEFAULT_TRANSITION_DURATION_SECONDS, H as HeadingAttributes, b as HeadingTemplateAnnotation, c as HtmlComment, d as HtmlElement, e as HtmlNode, f as HtmlText, M as MarkdownBlockNode, g as MarkdownBlockquote, h as MarkdownBreak, i as MarkdownCodeBlock, j as MarkdownContainerDirective, k as MarkdownDefinitionDescription, l as MarkdownDefinitionList, m as MarkdownDefinitionTerm, n as MarkdownDocument, o as MarkdownEmphasis, p as MarkdownFootnoteDefinition, q as MarkdownFootnoteReference, r as MarkdownHeading, s as MarkdownHtmlBlock, t as MarkdownImage, u as MarkdownImageReference, v as MarkdownInlineCode, w as MarkdownInlineHtml, x as MarkdownInlineIcon, y as MarkdownInlineMath, z as MarkdownInlineNode, A as MarkdownLeafDirective, B as MarkdownLimitError, C as MarkdownLink, E as MarkdownLinkDefinition, F as MarkdownLinkReference, G as MarkdownList, I as MarkdownListItem, J as MarkdownMathBlock, K as MarkdownMention, L as MarkdownNode, N as MarkdownParagraph, O as MarkdownPoint, P as MarkdownSafetyLimits, Q as MarkdownSourcePosition, R as MarkdownStrikethrough, S as MarkdownStrong, T as MarkdownSubscript, U as MarkdownSuperscript, V as MarkdownTable, W as MarkdownTableCell, X as MarkdownTableRow, Y as MarkdownText, Z as MarkdownTextDirective, _ as MarkdownThematicBreak, $ as ParseOptions, a0 as StringifyOptions, a1 as TRANSITION_DIRECTIONS, a2 as TRANSITION_TYPES, a3 as Transition, a4 as TransitionDirection, a5 as TransitionType, a6 as assertMarkdownDocumentWithinLimits, a7 as assertMarkdownSourceWithinLimits, a8 as isTransitionType, a9 as normalizeTransitionDirection, aa as normalizeTransitionType, ab as resolveBlockTransition, ac as resolveMarkdownSafetyLimits, ad as resolveTransitionDuration } from './types-Be6sBUBx.js';
5
- export { D as DEFAULT_THEME, a as DEFAULT_THEME_ID, T as THEMES, g as getAvailableThemes, b as getThemeSummaries, r as resolveTheme } from './themeLibrary-BbSjnGmd.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-z7t3x5CU.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-C8ZB54Vv.js';
7
+ export { E as EditorLayerMeta, I as ImageEditCanvas, a as ImageEditDoc, b as ImageEditLayer, c as ImageEditLayerKind, d as ImageEditMeta } from './ImageEditDoc-BVZe_5y4.js';
8
8
  export { ASCII_CHAR_H, ASCII_CHAR_W, ASCII_DIAGRAM_FENCE_LANGS, ASCII_TIMELINE_FENCE_LANGS, AccentLayout, AsciiDiagram, AsciiDiagramDetection, AsciiDiagramEdge, AsciiDiagramNode, AsciiTimeline, AsciiTimelineDetection, AsciiTimelineEvent, AsciiTimelineLink, AsciiTimelineMarker, AsciiTimelineSide, AsciiTimelineStats, AsciiTimelineStyle, AsciiTimelineTrack, AudioSegmentTiming, BASE_INPUT_DESCRIPTORS, BLOCK_MEDIA_LAYOUT_POLICIES, BUILTIN_DASHBOARD_LAYOUTS, BlockLayerMaterialization, BlockMediaLayoutPolicy, BuildPreviewDocOptions, BuiltInTemplateName, CONTAINER_TEMPLATES, COVER_SLIDE_FRONTMATTER_KEYS, COVER_SLIDE_TEMPLATE_OPTIONS, ClipBox, ConnectorAnchor, ConnectorPort, ConnectorRouting, ConnectorSnapPoint, CoverBlockInput, CoverSlidePlayback, CoverSlideSettings, CoverSlideTemplate, CoverSlideTemplateOption, DASHBOARD_AUTO_LAYOUT_ID, DASHBOARD_FRONTMATTER_KEYS, DASHBOARD_STYLES, DASHBOARD_STYLE_IDS, DASHBOARD_ZOOM_LEVELS, DATA_FILE_EXTENSIONS, DEFAULT_COVER_SLIDE_SETTINGS, DEFAULT_DASHBOARD_SETTINGS, DEFAULT_DASHBOARD_STYLE, DEFAULT_LAYOUT, 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, 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, RenderAsciiDiagramOptions, RenderAsciiTimelineOptions, RenderTreeOptions, RepairResult, ResolveDataReferencesOptions, ResolvedDashboardCell, ResolvedDataReferences, ResolvedPageBlock, RichListItem, RuntimeTemplateRegistry, SHAPE_NAMES, SectionExtractor, SupplementalMediaLayoutVariant, SupplementalMediaShape, SupplementalMediaVariantMatrix, TABLE_FED_TEMPLATES, TEMPLATE_AUTHORING_METADATA, TEMPLATE_INPUT_DESCRIPTORS, TEMPLATE_METADATA, TREE_FENCE_LANGS, TemplateAuthoringMetadata, TemplateAuthoringRole, TemplateBodyPolicy, TemplateInputDescriptor, TemplateMediaOwnership, TemplateMetadata, TemplateParamFinding, Tree, TreeDetection, TreeItem, TreeNode, UnconsumedMediaBehavior, ValidateOptions, adjustY, anchorPoint, applyNarrationTiming, applyRenderStyleToLayers, asciiCellToCanvas, asciiDiagramFromBlocks, asciiDiagramFromTemplateData, asciiDiagramToTemplateData, asciiTimelineToTemplateData, autoTemplatePreservesContent, bigText, buildDashboardCellChrome, buildPageCss, buildPageCssVars, buildPreviewDoc, buildRegistry, canvasToAsciiCell, chooseDashboardLayout, clipEndpoints, clipPoint, coerceTemplateParams, comparisonBar, composeDashboardLayers, computeDiagramLayout, computeDrawingLayout, computeLayoutLayers, connectorPath, contentBlock, countBlocks, 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 } 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-Dp2aHFbc.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-CAJoa8fh.js';
10
10
  export { calculateBearing, decodeGeohash, encodeGeohash, geohashOverlapsBounds, geohashToHierarchicalPath, getGeohash4Neighbors, getGeohashPath, getGeohashPrefix, getNeighbors, haversineDistance } 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';
@@ -20,7 +20,7 @@ export { AnalyzedBlock, BlockImage, DEFAULT_TRANSFORM_STYLE_ID, NarratedSegmentI
20
20
  export { C as CoalesceOptions, P as PrunePolicy, R as RevertFailureReason, a as RevertOptions, b as RevertResult, S as SaveVersionOptions, c as SaveVersionResult, V as Version } from './types-8QjefM9J.js';
21
21
  export { DATA_BACKUP_PREFIX, DocumentVersionManager, DocumentVersionManagerOptions, VERSIONS_PREFIX, VERSION_TIMESTAMP_PATTERN, buildDataBackupPath, buildVersionPath, coalesceVersions, formatVersionTimestamp, getDocBasename, listVersions, parseVersionPath, parseVersionTimestamp, pruneVersions, readVersion, revertToVersion, saveVersion } from './versions/index.js';
22
22
  export { BuildJsonFormTokensOptions, ControlKind, InferSchemaOptions, JsonFormValidationError, JsonFormValidator, SquisqAnnotatedSchema, SquisqHints, SquisqWhen, appendPointer, arrayItemKind, buildJsonFormTokens, chooseControl, escapePointerSegment, evaluateWhen, getByPointer, inferSchema, isSafeConditionRegex, pointerSegments, primaryType, resolveFlag, resolveJsonFormTheme, resolveRef, setByPointer, toPointer } from './jsonForm/index.js';
23
- export { IMAGE_EDIT_ASSETS_PREFIX, IMAGE_EDIT_DEFAULT_BASENAME, IMAGE_EDIT_STATE_FILENAME, IMAGE_EDIT_VERSIONS_PREFIX, ImageEditExportFormat, ImageEditExportOptions, ImageEditVersionManager, ImageEditVersionManagerOptions, RevertImageEditFailureReason, RevertImageEditOptions, RevertImageEditResult, SaveImageEditVersionOptions, SaveImageEditVersionResult, addLayer, buildImageEditVersionPath, buildSvgString, coalesceImageEditVersions, createEmptyImageEditDoc, exportImageEditDoc, listImageEditVersions, parseImageEditVersionPath, pruneImageEditVersions, readImageEditDoc, readImageEditVersion, readImageEditVersionText, removeLayer, reorderLayer, revertToImageEditVersion, saveImageEditVersion, setCanvas, touch, updateLayer, writeImageEditDoc } from './imageEdit/index.js';
23
+ export { AnimatedImageFormat, AnimatedImageInfo, IMAGE_EDIT_ASSETS_PREFIX, IMAGE_EDIT_DEFAULT_BASENAME, IMAGE_EDIT_STATE_FILENAME, IMAGE_EDIT_VERSIONS_PREFIX, ImageEditExportFormat, ImageEditExportOptions, ImageEditVersionManager, ImageEditVersionManagerOptions, RevertImageEditFailureReason, RevertImageEditOptions, RevertImageEditResult, SaveImageEditVersionOptions, SaveImageEditVersionResult, addLayer, buildImageEditVersionPath, buildSvgString, coalesceImageEditVersions, createEmptyImageEditDoc, exportImageEditDoc, inspectAnimatedImage, listImageEditVersions, mayBeAnimatedImage, parseImageEditVersionPath, pruneImageEditVersions, readImageEditDoc, readImageEditVersion, readImageEditVersionText, removeLayer, reorderLayer, revertToImageEditVersion, saveImageEditVersion, setCanvas, touch, updateLayer, writeImageEditDoc } from './imageEdit/index.js';
24
24
  export { I as ICONS, a as IconEntry, b as IconFamily, c as IconTextRun, h as hasIconMarker, i as iconClass, d as iconMarker, s as splitIconMarkers, e as stripIconMarkers } from './inlineIconMarker-CiE8Hlvz.js';
25
25
  export { IconSuggestion, canonicalIconToken, iconGlyph, looksLikeIconToken, resolveIcon, suggestIcons } from './icons/index.js';
26
26
  export { BlockContentProfile, RecommendationResult, profileBlockContents, recommendTemplatesForBlock } from './recommend/index.js';