@bendyline/squisq-editor-react 2.13.22 → 2.13.24

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.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- import { C as CodeContext, P as PageTemplateSettings, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as EditorView$1, c as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-CdtncgKy.js';
2
- export { A as ApplySourceEditsOptions, B as BlockInsertionBuilder, d as BlockInsertionContext, e as BlockPlacement, f as BlockRange, g as BlockSlice, h as BlockTagVisibility, i as CodeContextSection, j as CoverImageSaveOutput, D as DashboardImageSaveOutput, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, y as EditorSelectionInfo, z as EditorShell, G as EditorShellProps, H as EditorState, I as FindOptions, J as FindRequest, K as FormulaSessionOptions, L as ImageDisplayMode, M as IngestedSidecar, N as InsertBlockOptions, O as LayoutMode, Q as MentionCandidate, R as MentionProvider, T as NavigationSheetPanel, U as OutlineBlock, V as OutlineInsertion, W as PageTemplateChoice, Y as PreviewPanel, Z as PreviewPanelProps, _ as RawEditor, $ as RawEditorProps, a0 as ThemeInheritance, a1 as ViewPreferences, a2 as WriteCanvasSettings, a3 as WysiwygEditor, a4 as WysiwygEditorProps, a5 as XLSX_LOCKED_REASON, a6 as XlsxFormulaSession, a7 as applySourceEditsToText, a8 as blockInsertionPoint, a9 as createXlsxFormulaSession, aa as getBlockSlices, ab as headingDepthForInsertion, ac as ingestSidecarBytes, ad as joinBlockAt, ae as lineToOffset, af as minimalReplaceEdit, ag as normalizeSourceEdits, ah as offsetToLine, ai as resolveOutlineInsertion, aj as sliceIndexAtOffset, ak as sourceOutline, al as spliceBlock, am as useEditorContext, an as useEditorContextMenuItems, ao as useEditorInsertMenuItems } from './shell-CdtncgKy.js';
1
+ import { C as CodeContext, P as PageTemplateSettings, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as EditorView$1, c as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-DOxTnb9f.js';
2
+ export { A as ApplySourceEditsOptions, B as BlockInsertionBuilder, d as BlockInsertionContext, e as BlockPlacement, f as BlockRange, g as BlockSlice, h as BlockTagVisibility, i as CodeContextSection, j as CoverImageSaveOutput, D as DashboardImageSaveOutput, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, y as EditorSelectionInfo, z as EditorShell, G as EditorShellProps, H as EditorState, I as EditorToolbarPosition, J as FindOptions, K as FindRequest, L as FormulaSessionOptions, M as ImageDisplayMode, N as IngestedSidecar, O as InsertBlockOptions, Q as LayoutMode, R as MediaEditSaveOutput, T as MentionCandidate, U as MentionProvider, V as NavigationSheetPanel, W as OutlineBlock, Y as OutlineInsertion, Z as PageTemplateChoice, _ as PreviewPanel, $ as PreviewPanelProps, a0 as RawEditor, a1 as RawEditorProps, a2 as ThemeInheritance, a3 as ViewPreferences, a4 as WriteCanvasSettings, a5 as WysiwygEditor, a6 as WysiwygEditorProps, a7 as XLSX_LOCKED_REASON, a8 as XlsxFormulaSession, a9 as applySourceEditsToText, aa as blockInsertionPoint, ab as createXlsxFormulaSession, ac as getBlockSlices, ad as headingDepthForInsertion, ae as ingestSidecarBytes, af as joinBlockAt, ag as lineToOffset, ah as minimalReplaceEdit, ai as normalizeSourceEdits, aj as offsetToLine, ak as resolveOutlineInsertion, al as sliceIndexAtOffset, am as sourceOutline, an as spliceBlock, ao as useEditorContext, ap as useEditorContextMenuItems, aq as useEditorInsertMenuItems } from './shell-DOxTnb9f.js';
3
3
  import * as react from 'react';
4
4
  import { ReactNode, CSSProperties, RefObject, ReactElement } from 'react';
5
5
  import { Doc, ScheduledClip, VideoPlacement, VideoPipSize, VideoPipShape, VideoPipPosition, MediaEdits, MediaProvider, Theme, CustomTemplateDefinition, ThemeSeedColors, ViewportPreset, ViewportConfig, Block, MediaEntry, DiagramEdgeAnchor } from '@bendyline/squisq/schemas';
6
6
  import { ContentContainer } from '@bendyline/squisq/storage';
7
+ import { MediaEditRenderManager } from '@bendyline/squisq-video-react/media-edit';
7
8
  export { CanvasRect, ImageEditor, ImageEditorAction, ImageEditorProps, ImageEditorState, ImageEditorTool, ImageViewer, ImageViewerProps, UseImageEditorOptions, UseImageEditorReturn, imageEditorReducer, initialImageEditorState, useImageEditor } from './image-editor/index.js';
8
9
  import { WikiLinkSupport, MarkdownWrapState, SvgIslandDiagnostic, BlockVideoEmbed, VideoEmbed } from '@bendyline/squisq/markdown';
9
10
  export { MarkdownSourceEdit } from '@bendyline/squisq/markdown';
@@ -27,9 +28,9 @@ import { RenderResult } from 'mermaid';
27
28
  import { TableViewState } from '@bendyline/squisq/table';
28
29
  import { EditJournal } from '@bendyline/squisq-grid-react';
29
30
  export { JsonEditor, JsonEditorProps } from './json-editor/index.js';
30
- export { C as CameraStreamOptions, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderButton, c as RecorderButtonProps, d as RecorderCameraSaveResult, e as RecorderColorScheme, f as RecorderDeviceOption, g as RecorderDeviceQuickPicks, h as RecorderDeviceQuickPicksProps, i as RecorderDeviceSettingsPanel, j as RecorderDeviceSettingsPanelProps, k as RecorderModal, l as RecorderModalProps, m as RecorderNarrationOptions, n as RecorderPanel, o as RecorderPanelProps, p as RecorderSaveResult, q as RecorderSlidesOptions, S as ScreenStreamHandle, r as ScreenStreamOptions, s as SlideTimingSaveResult, T as TimingJson, t as buildTimingJson, u as encodeTimingJson, v as hasRecorderDeviceChoice, w as recordedMediaKind, x as recorderDeviceGroups, y as recorderDeviceOptions, z as requestCameraStream, A as requestMicStream, B as requestScreenStream, D as timingPathFor, E as useMediaDevices, F as useStreamPreview } from './recorder-rQGYsS6B.js';
31
- import { R as RecorderState } from './useNarrationStage-DlighI1z.js';
32
- export { C as CanvasSink, a as CaptureKind, D as DEFAULT_TELEPROMPTER_PREFS, F as FloatOpenOptions, b as FloatTier, c as FloatingWindowHandle, d as FloatingWindowManager, M as MicAnalysisHandle, e as MicAnalysisStatus, N as NarrationRecorderController, f as NarrationRecorderState, g as NarrationStageHandle, h as NarrationTake, P as PrompterTransport, i as RecorderAudioBitrateMode, j as RecorderCameraLane, k as RecorderExtendedMediaOptions, l as RecorderSource, m as ResolvedFormat, T as TeleprompterController, n as TeleprompterPrefs, o as TeleprompterRecordingDeps, U as UseMediaRecorderOptions, p as UseMediaRecorderResult, q as UseNarrationStageOptions, r as buildFilename, s as createFloatingWindowManager, t as detectFloatTiers, u as getCaptureKind, v as resolveFormat, w as supportsDisplayMedia, x as supportsMediaRecorder, y as supportsUserMedia, z as useFloatingWindow, A as useMediaRecorder, B as useMicAnalysis, E as useNarrationRecorder, G as useNarrationStage, H as useTeleprompter, I as vadConfigForSensitivity } from './useNarrationStage-DlighI1z.js';
31
+ export { C as CameraStreamOptions, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderButton, c as RecorderButtonProps, d as RecorderCameraSaveResult, e as RecorderColorScheme, f as RecorderDeviceOption, g as RecorderDeviceQuickPicks, h as RecorderDeviceQuickPicksProps, i as RecorderDeviceSettingsPanel, j as RecorderDeviceSettingsPanelProps, k as RecorderModal, l as RecorderModalProps, m as RecorderNarrationOptions, n as RecorderPanel, o as RecorderPanelProps, p as RecorderSaveResult, q as RecorderSlidesOptions, S as ScreenStreamHandle, r as ScreenStreamOptions, s as SlideTimingSaveResult, T as TimingJson, t as buildTimingJson, u as encodeTimingJson, v as hasRecorderDeviceChoice, w as recordedMediaKind, x as recorderDeviceGroups, y as recorderDeviceOptions, z as requestCameraStream, A as requestMicStream, B as requestScreenStream, D as timingPathFor, E as useMediaDevices, F as useStreamPreview } from './recorder-pdsnPhLa.js';
32
+ import { R as RecorderState } from './useNarrationStage-BsSUp9Zr.js';
33
+ export { C as CanvasSink, a as CaptureKind, D as DEFAULT_TELEPROMPTER_PREFS, F as FloatOpenOptions, b as FloatTier, c as FloatingWindowHandle, d as FloatingWindowManager, M as MicAnalysisHandle, e as MicAnalysisStatus, N as NarrationRecorderController, f as NarrationRecorderState, g as NarrationStageHandle, h as NarrationTake, P as PrompterTransport, i as RecorderAudioBitrateMode, j as RecorderCameraLane, k as RecorderExtendedMediaOptions, l as RecorderSource, m as ResolvedFormat, T as TeleprompterController, n as TeleprompterPrefs, o as TeleprompterRecordingDeps, U as UseMediaRecorderOptions, p as UseMediaRecorderResult, q as UseNarrationStageOptions, r as buildFilename, s as createFloatingWindowManager, t as detectFloatTiers, u as getCaptureKind, v as resolveFormat, w as supportsDisplayMedia, x as supportsMediaRecorder, y as supportsUserMedia, z as useFloatingWindow, A as useMediaRecorder, B as useMicAnalysis, E as useNarrationRecorder, G as useNarrationStage, H as useTeleprompter, I as vadConfigForSensitivity } from './useNarrationStage-BsSUp9Zr.js';
33
34
  export { D as DEFAULT_RECORDER_DEVICE_SETTINGS, a as RecorderAudioDeviceSettings, b as RecorderCameraDeviceSettings, c as RecorderConstraintMode, R as RecorderDeviceSettings, d as RecorderEncodingSettings, e as RecorderScreenAudioSettings, f as RecorderScreenDeviceSettings, g as buildRecorderAudioConstraints, h as buildRecorderCameraConstraints, i as buildRecorderScreenAudioConstraints, j as buildRecorderScreenConstraints, r as recorderBitsPerSecond } from './deviceSettings-BSkIQncC.js';
34
35
  export { EYE_LINE_FRACTION, ExecuteNarrationSaveDeps, NarrationSavePlan, NarrationSavePlanArgs, NarrationSaveProgress, NarrationSaveResult, NarrationStage, NarrationStageProps, PCM_WORKLET_NAME, PCM_WORKLET_SOURCE, TELEPROMPTER_CSS, TeleprompterControls, TeleprompterControlsProps, TeleprompterSurface, TeleprompterSurfaceProps, TeleprompterView, TeleprompterViewProps, TokenLineMap, buildNarrationSavePlan, cameraVideoLine, ensureTeleprompterStyles, executeNarrationSave, insertNarrationPreamble, measureTokenLines, narrationAnnotationLine, prompterVarsFromTheme, registerPcmWorklet, stepScroll, targetOffsetFor } from './teleprompter/index.js';
35
36
  export { H as HarperProofingConfig, a as ProofingCapability, b as ProofingDocumentRef, c as ProofingIgnoreStore, d as ProofingLanguage, e as ProofingLintOptions, P as ProofingProvider, f as ProofingProviderFactory } from './types-qxwhho3e.js';
@@ -39,7 +40,6 @@ export { D as DictationControl, a as SPEECH_INPUT_SAMPLE_RATE, b as SpeechInputC
39
40
  import '@bendyline/squisq-calc';
40
41
  import '@bendyline/squisq-formats/xlsx';
41
42
  import '@bendyline/squisq/versions';
42
- import '@bendyline/squisq-video-react/media-edit';
43
43
  import './types-C0puuw-M.js';
44
44
  import '@bendyline/squisq/review';
45
45
  import '@bendyline/squisq/imageEdit';
@@ -352,6 +352,8 @@ declare function setBlockStartTimeInSource(source: string, line: number, seconds
352
352
  declare function setBlockTransitionInSource(source: string, line: number, transition: TransitionFields): string | null;
353
353
  /** A patch to a media clip; numeric values are seconds, `null` removes the key. */
354
354
  interface MediaClipPatch {
355
+ /** Point the clip at another file. */
356
+ src?: string;
355
357
  startAt?: number | null;
356
358
  clipStart?: number | null;
357
359
  clipEnd?: number | null;
@@ -375,6 +377,68 @@ interface MediaClipPatch {
375
377
  */
376
378
  declare function setMediaClipInSource(source: string, line: number, patch: MediaClipPatch): string | null;
377
379
 
380
+ /**
381
+ * Baked media for exports that cannot apply a recipe.
382
+ *
383
+ * A script-free HTML page plays a clip's file as it is: no cuts, no cleaned-up
384
+ * sound, no gain, fades or crop. `bakeMarkdownMedia` finds every clip in a
385
+ * markdown source whose recipe such a player would ignore, has the render
386
+ * manager bake it, and returns the source with those clips pointing at their
387
+ * baked files and the recipe (and trim) taken off — a document any exporter
388
+ * can treat as ordinary media. The original source is not changed; this is
389
+ * the text to hand to the export.
390
+ */
391
+
392
+ interface BakedMediaReference {
393
+ /** The clip's source reference, as the document wrote it. */
394
+ src: string;
395
+ kind: 'audio' | 'video';
396
+ /** 1-based line of the clip in the markdown. */
397
+ sourceLine: number;
398
+ /** Where the baked file is stored: a media path the document's provider resolves. */
399
+ path: string;
400
+ /** The reference written into the returned markdown. */
401
+ reference: string;
402
+ }
403
+ interface BakedMarkdown {
404
+ /** The source, with every baked clip pointing at its baked file. */
405
+ markdown: string;
406
+ baked: BakedMediaReference[];
407
+ /** Clips that could not be baked. They keep their original reference and recipe. */
408
+ failures: Array<{
409
+ src: string;
410
+ sourceLine: number;
411
+ error: string;
412
+ }>;
413
+ }
414
+ interface BakeMarkdownMediaOptions {
415
+ signal?: AbortSignal;
416
+ /** 0…1 across every clip that needs baking, with the clip being worked on. */
417
+ onProgress?: (fraction: number, clip: {
418
+ index: number;
419
+ count: number;
420
+ src: string;
421
+ }) => void;
422
+ /**
423
+ * How the returned markdown refers to a baked file.
424
+ *
425
+ * - `'store'` (default) — its path in the render store. Right when the
426
+ * export is read beside the document's own media folder.
427
+ * - `'copy'` — a visible name beside the source (`video/take-edited.mp4`),
428
+ * for an export that carries its own copy of each file: the render store
429
+ * is a dot-folder, which many static hosts will not serve. The exporter
430
+ * reads `baked[n].path` and writes it at `baked[n].reference`.
431
+ */
432
+ reference?: 'store' | 'copy';
433
+ }
434
+ /**
435
+ * Bake every clip in `markdown` that a recipe-unaware player would play
436
+ * wrongly, and return the source rewritten to use the baked files. A clip
437
+ * that fails to bake is reported and left as it was; cancelling rejects with
438
+ * an `AbortError`.
439
+ */
440
+ declare function bakeMarkdownMedia(markdown: string, manager: MediaEditRenderManager, options?: BakeMarkdownMediaOptions): Promise<BakedMarkdown>;
441
+
378
442
  /**
379
443
  * fileKind
380
444
  *
@@ -1008,6 +1072,11 @@ interface ToolbarProps {
1008
1072
  * editing free-form prompts — can pass false to suppress it.
1009
1073
  */
1010
1074
  showPlayTab?: boolean;
1075
+ /**
1076
+ * Whether to render the view tabs and their mode menus at all. Defaults to
1077
+ * true. See `EditorShellProps.showViewTabs`.
1078
+ */
1079
+ showViewTabs?: boolean;
1011
1080
  /**
1012
1081
  * Whether to render Squisq's built-in text, block, and contextual
1013
1082
  * formatting controls. The toolbar, Insert menu, view tabs, and host slots
@@ -1035,7 +1104,7 @@ interface ToolbarProps {
1035
1104
  * - WYSIWYG: calls Tiptap chain commands (toggleBold, etc.)
1036
1105
  * - Raw: appends markdown syntax to the source
1037
1106
  */
1038
- declare function Toolbar({ className, showFiles, fileCount, onToggleFiles, slotLeft, slotAfterTabs, slotAfterActions, slotRight, showPlayTab, showFormattingControls, showInsertControls, hostMode, readOnly, findShortcut, }: ToolbarProps): react.JSX.Element;
1107
+ declare function Toolbar({ className, showFiles, fileCount, onToggleFiles, slotLeft, slotAfterTabs, slotAfterActions, slotRight, showPlayTab, showViewTabs, showFormattingControls, showInsertControls, hostMode, readOnly, findShortcut, }: ToolbarProps): react.JSX.Element;
1039
1108
 
1040
1109
  /**
1041
1110
  * VersionHistoryPanel
@@ -1213,8 +1282,20 @@ interface TemplatePickerProps {
1213
1282
  * their static wireframe icons.
1214
1283
  */
1215
1284
  previewSource?: TemplatePreviewSource;
1285
+ /**
1286
+ * Shows the current type but cannot be opened — for a host whose active
1287
+ * block has no type to change. Pair with {@link title} to say why.
1288
+ */
1289
+ disabled?: boolean;
1290
+ /** Tooltip for the trigger. Defaults to "Choose block type". */
1291
+ title?: string;
1292
+ /**
1293
+ * Text for the current type, in place of the label derived from `value` —
1294
+ * for a host that shows something `value` cannot name (e.g. "Cover").
1295
+ */
1296
+ valueLabel?: string;
1216
1297
  }
1217
- declare function TemplatePicker({ value, onChange, colorScheme, compact, recommended, onOpenDesigner, previewSource, }: TemplatePickerProps): react.JSX.Element;
1298
+ declare function TemplatePicker({ value, onChange, colorScheme, compact, recommended, onOpenDesigner, previewSource, disabled, title, valueLabel, }: TemplatePickerProps): react.JSX.Element;
1218
1299
 
1219
1300
  interface TransitionPickerProps {
1220
1301
  value: TransitionFields;
@@ -3100,6 +3181,45 @@ interface DataCardWidgetProps {
3100
3181
  }
3101
3182
  declare function DataCardWidget({ editor, blockId, getMediaProvider, getMediaRevision, getContainer, onOpenFiles, onMediaSaved, getCalcEngineFactory, }: DataCardWidgetProps): ReactElement | null;
3102
3183
 
3184
+ /**
3185
+ * FillAvailableExtension — a height-capable block at the end of the page takes
3186
+ * the room left below it.
3187
+ *
3188
+ * Widget hosts opt in with the `squisq-block-fill-available` class (the data
3189
+ * grid, the diagram canvases, the drawing scene). When such a host ends the
3190
+ * document — nothing after it but empty paragraphs — and the page is shorter
3191
+ * than its window, this plugin stamps the host with `data-fill-height` and
3192
+ * `--squisq-fill-height`: the height from the host's top to the bottom of the
3193
+ * visible page, less what must still fit below it. Each component's CSS
3194
+ * decides which part grows into that room (the grid's scroller, a diagram's
3195
+ * canvas); without the stamp every component keeps its natural height.
3196
+ *
3197
+ * One measurement serves the document view and the single-block card. The
3198
+ * page keeps ordinary block flow: turning the editor into a flex column would
3199
+ * stop sibling margins collapsing and respace every paragraph above the block.
3200
+ *
3201
+ * The target comes from the viewport and from what lies above and below the
3202
+ * host, never from the host's own height, so a host growing into it cannot
3203
+ * move it; in a container sized by its content it equals the host's natural
3204
+ * height. Auto-growing shells (a chat composer) are skipped outright anyway:
3205
+ * they have no page edge to fill to.
3206
+ */
3207
+
3208
+ declare const FILL_AVAILABLE_CLASS = "squisq-block-fill-available";
3209
+ /** The fill-capable host that ends the document, if one does. */
3210
+ declare function terminalFillHost(editorDom: HTMLElement): HTMLElement | null;
3211
+ interface FillGeometry {
3212
+ /** The scroll container's visible height (`clientHeight`). */
3213
+ viewportHeight: number;
3214
+ /** The host's border-box top, in the container's scroll-content coordinates. */
3215
+ hostTop: number;
3216
+ /** What must still fit below the host's border box: its margin, any empty tail, the page's bottom padding. */
3217
+ below: number;
3218
+ }
3219
+ /** The min-height a terminal host may take, or null when the page has no room to give. */
3220
+ declare function fillHeightFor({ viewportHeight, hostTop, below }: FillGeometry): number | null;
3221
+ declare const FillAvailableExtension: Extension<any, any>;
3222
+
3103
3223
  /**
3104
3224
  * VideoEmbedExtension — the Write view's inline player for hosted videos.
3105
3225
  *
@@ -3640,4 +3760,4 @@ declare function unshownSlidesWarning(total: number, unshown: number): string |
3640
3760
  /** The exact label of the review-state block-timings checkbox. */
3641
3761
  declare const SLIDE_TIMING_CHECKBOX_LABEL = "Update block timings when I save this narration";
3642
3762
 
3643
- export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type ApplyAsciiDiagramCommandOptions, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, CalcEngineFactory, CodeContext, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, CsvSourceMeta, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DATA_CARD_KEY, DEFAULT_MERMAID_DIAGRAM_TYPE, type DataCardBlockEntry, DataCardExtension, type DataCardExtensionOptions, type DataCardPluginState, DataCardWidget, type DataPreview, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EditorHostMode, EditorView$1 as EditorView, EmojiPicker, type EmojiPickerProps, FENCE_WIDGET_CONTAINED_EVENTS, type FenceBlockEntry, type FileCategory, type FileKind, type FolderEntry, FolderView, type FolderViewProps, FormulaEditRecord, type GridSaveResult, HOST_FENCE_KEY, type HeadingTransitionAttrs, type HeadingViewBinding, HeadingWithTemplate, type HostFenceBlockEntry, HostFenceExtension, type HostFenceExtensionOptions, type HostFencePluginState, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MarkdownEscape, MediaBin, type MediaBinProps, type MediaClipPatch, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramProperty, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditCapabilities, type MermaidEditableDiagramKind, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidEditableText, type MermaidEditableTextTarget, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, type MermaidSelection, MermaidShapePalette, type MermaidShapePaletteProps, type MermaidSourceEditableModel, type MermaidSurfaceScheme, type MermaidValidationResult, MonacoLanguageLoadOptions, MonacoLanguageRequest, OutlinePanel, type OutlinePanelProps, PICKER_CATEGORIES, PageTemplateSettings, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PreviewToolbarControlsProps, REPAIRABLE_KEY, type RecorderPanelMode, type RecorderSlide, RecorderSlidesPanel, type RecorderSlidesPanelProps, RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, SLIDE_TIMING_CHECKBOX_LABEL, SVG_ISLAND_KEY, type SaveCsvEditsOptions, type SaveXlsxEditsOptions, StatusBar, type StatusBarProps, Subscript, Superscript, type SvgIslandBlockEntry, SvgIslandExtension, type SvgIslandExtensionOptions, type SvgIslandPluginState, SvgIslandWidget, type SvgIslandWidgetProps, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineCompositionPanel, type TimelineCompositionPanelProps, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineToolbar, type TimelineToolbarProps, TimelineTrack, type TimelineTrackProps, TimelineVideoPanel, type TimelineVideoPanelProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, Toolbar, type ToolbarProps, TooltipLayer, TransformMenu, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type TreeBlockEntry, type TreeCommand, TreeOutlineWidget, type TreeViewData, TreeViewExtension, type TreeViewExtensionOptions, type TreeViewPluginState, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseMonacoLoaderResult, VIDEO_EMBED_KEY, VersionHistoryPanel, type VideoEmbedBlockEntry, VideoEmbedDialog, type VideoEmbedDialogProps, VideoEmbedExtension, type VideoEmbedExtensionOptions, type VideoEmbedPluginState, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, WriteModeMenu, type WriteModeMenuProps, XlsxSourceMeta, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, convertVideoEmbedToLink, dataExtensionOf, dataLinkHrefOf, describeSvgIslandRemovals, detectLanguageFromFileName, draftPatchFromImportedTheme, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findDataCardBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findOwningHeadingPosition, findRepairableBlockPos, findSvgIslandBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, findVideoEmbedBlockPos, formatSeconds, getTimelineForNode, indentItemOp, ingestForWrite, insertVideoEmbedReference, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isExpandedPanel, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isSvgIslandNode, isSvgIslandSourceVisible, isTimelineSourceSafeForSemanticEdit, loadDataPreview, mapFenceEntries, markdownToTiptap, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidEditableTexts, mermaidErrorMessage, mermaidSurfaceScheme, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, nextTimelineEventId, normalizeMermaidFlowchartShape, outdentItemOp, panelModeAfterToggle, parseTimelineForNode, partitionFiles, pasteVideoEmbedCode, persistFromWrite, preloadMonaco, preloadMonacoSuggestions, processDataFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, readHeadingViewBinding, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceHostFenceText, replaceSvgIslandText, replaceAsciiFenceText as replaceTreeFenceText, resizeNodeOp, resolveFileKind, resolveMermaidSurfaceTheme, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, saveCsvEdits, saveXlsxEdits, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setBlockStartTimeInSource, setBlockTransitionInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsSvgFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, showSlideTimingCheckbox, slideStepForKey, summarizeBlockProps, templateLabel, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, toggleSvgIslandSource, transitionLabel, translateDiagramOp, unshownSlidesWarning, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useFileDrop, useMermaidDiagramData, useMermaidSurfaceTheme, useMonacoLoader, usePreviewSettings, usePreviewSettingsOptional, useTimelineData, useTreeViewData, validateMermaidSource, videoEmbedMarkdown, videoEmbedOfParagraph, videoEmbedParagraphJson, viewStateFromBinding, writeHeadingViewState };
3763
+ export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type ApplyAsciiDiagramCommandOptions, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, type BakeMarkdownMediaOptions, type BakedMarkdown, type BakedMediaReference, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, CalcEngineFactory, CodeContext, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, CsvSourceMeta, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DATA_CARD_KEY, DEFAULT_MERMAID_DIAGRAM_TYPE, type DataCardBlockEntry, DataCardExtension, type DataCardExtensionOptions, type DataCardPluginState, DataCardWidget, type DataPreview, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EditorHostMode, EditorView$1 as EditorView, EmojiPicker, type EmojiPickerProps, FENCE_WIDGET_CONTAINED_EVENTS, FILL_AVAILABLE_CLASS, type FenceBlockEntry, type FileCategory, type FileKind, FillAvailableExtension, type FillGeometry, type FolderEntry, FolderView, type FolderViewProps, FormulaEditRecord, type GridSaveResult, HOST_FENCE_KEY, type HeadingTransitionAttrs, type HeadingViewBinding, HeadingWithTemplate, type HostFenceBlockEntry, HostFenceExtension, type HostFenceExtensionOptions, type HostFencePluginState, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MarkdownEscape, MediaBin, type MediaBinProps, type MediaClipPatch, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramProperty, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditCapabilities, type MermaidEditableDiagramKind, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidEditableText, type MermaidEditableTextTarget, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, type MermaidSelection, MermaidShapePalette, type MermaidShapePaletteProps, type MermaidSourceEditableModel, type MermaidSurfaceScheme, type MermaidValidationResult, MonacoLanguageLoadOptions, MonacoLanguageRequest, OutlinePanel, type OutlinePanelProps, PICKER_CATEGORIES, PageTemplateSettings, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PreviewToolbarControlsProps, REPAIRABLE_KEY, type RecorderPanelMode, type RecorderSlide, RecorderSlidesPanel, type RecorderSlidesPanelProps, RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, SLIDE_TIMING_CHECKBOX_LABEL, SVG_ISLAND_KEY, type SaveCsvEditsOptions, type SaveXlsxEditsOptions, StatusBar, type StatusBarProps, Subscript, Superscript, type SvgIslandBlockEntry, SvgIslandExtension, type SvgIslandExtensionOptions, type SvgIslandPluginState, SvgIslandWidget, type SvgIslandWidgetProps, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineCompositionPanel, type TimelineCompositionPanelProps, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineToolbar, type TimelineToolbarProps, TimelineTrack, type TimelineTrackProps, TimelineVideoPanel, type TimelineVideoPanelProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, Toolbar, type ToolbarProps, TooltipLayer, TransformMenu, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type TreeBlockEntry, type TreeCommand, TreeOutlineWidget, type TreeViewData, TreeViewExtension, type TreeViewExtensionOptions, type TreeViewPluginState, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseMonacoLoaderResult, VIDEO_EMBED_KEY, VersionHistoryPanel, type VideoEmbedBlockEntry, VideoEmbedDialog, type VideoEmbedDialogProps, VideoEmbedExtension, type VideoEmbedExtensionOptions, type VideoEmbedPluginState, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, WriteModeMenu, type WriteModeMenuProps, XlsxSourceMeta, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, bakeMarkdownMedia, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, convertVideoEmbedToLink, dataExtensionOf, dataLinkHrefOf, describeSvgIslandRemovals, detectLanguageFromFileName, draftPatchFromImportedTheme, fillHeightFor, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findDataCardBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findOwningHeadingPosition, findRepairableBlockPos, findSvgIslandBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, findVideoEmbedBlockPos, formatSeconds, getTimelineForNode, indentItemOp, ingestForWrite, insertVideoEmbedReference, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isExpandedPanel, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isSvgIslandNode, isSvgIslandSourceVisible, isTimelineSourceSafeForSemanticEdit, loadDataPreview, mapFenceEntries, markdownToTiptap, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidEditableTexts, mermaidErrorMessage, mermaidSurfaceScheme, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, nextTimelineEventId, normalizeMermaidFlowchartShape, outdentItemOp, panelModeAfterToggle, parseTimelineForNode, partitionFiles, pasteVideoEmbedCode, persistFromWrite, preloadMonaco, preloadMonacoSuggestions, processDataFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, readHeadingViewBinding, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceHostFenceText, replaceSvgIslandText, replaceAsciiFenceText as replaceTreeFenceText, resizeNodeOp, resolveFileKind, resolveMermaidSurfaceTheme, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, saveCsvEdits, saveXlsxEdits, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setBlockStartTimeInSource, setBlockTransitionInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsSvgFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, showSlideTimingCheckbox, slideStepForKey, summarizeBlockProps, templateLabel, terminalFillHost, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, toggleSvgIslandSource, transitionLabel, translateDiagramOp, unshownSlidesWarning, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useFileDrop, useMermaidDiagramData, useMermaidSurfaceTheme, useMonacoLoader, usePreviewSettings, usePreviewSettingsOptional, useTimelineData, useTreeViewData, validateMermaidSource, videoEmbedMarkdown, videoEmbedOfParagraph, videoEmbedParagraphJson, viewStateFromBinding, writeHeadingViewState };
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  PROOF_FRONTMATTER_KEYS,
4
4
  createHarperProofingProvider
5
5
  } from "./chunk-VRRT4WP4.js";
6
- import "./chunk-7ADGH53Y.js";
6
+ import "./chunk-RVHUTOHG.js";
7
7
  import {
8
8
  configureMonacoWorkers
9
9
  } from "./chunk-BWPFPHWY.js";
@@ -36,6 +36,8 @@ import {
36
36
  EditorShell,
37
37
  EmojiPicker,
38
38
  FENCE_WIDGET_CONTAINED_EVENTS,
39
+ FILL_AVAILABLE_CLASS,
40
+ FillAvailableExtension,
39
41
  FontPicker,
40
42
  HOST_FENCE_KEY,
41
43
  HeadingWithTemplate,
@@ -121,6 +123,7 @@ import {
121
123
  dataLinkHrefOf,
122
124
  describeSvgIslandRemovals,
123
125
  draftPatchFromImportedTheme,
126
+ fillHeightFor,
124
127
  findAsciiDiagramBlockPos,
125
128
  findCodeSnippetBlockPos,
126
129
  findDataCardBlockPos,
@@ -214,6 +217,7 @@ import {
214
217
  shouldPasteAsTreeFence,
215
218
  summarizeBlockProps,
216
219
  templateLabel,
220
+ terminalFillHost,
217
221
  themeToDraft,
218
222
  toggleAsciiSource,
219
223
  toggleDirOp,
@@ -244,7 +248,7 @@ import {
244
248
  videoEmbedParagraphJson,
245
249
  viewStateFromBinding,
246
250
  writeHeadingViewState
247
- } from "./chunk-LZO3HOCQ.js";
251
+ } from "./chunk-5NA2IDXP.js";
248
252
  import {
249
253
  EditorProvider,
250
254
  applySourceEditsToText,
@@ -254,6 +258,7 @@ import {
254
258
  headingDepthForInsertion,
255
259
  joinBlockAt,
256
260
  lineToOffset,
261
+ listEditableMedia,
257
262
  minimalReplaceEdit,
258
263
  normalizeSourceEdits,
259
264
  offsetToLine,
@@ -265,7 +270,7 @@ import {
265
270
  useBlockNavigator,
266
271
  useEditorContext,
267
272
  useEditorInsertMenuItems
268
- } from "./chunk-MMK26QF7.js";
273
+ } from "./chunk-EPMIOQAZ.js";
269
274
  import {
270
275
  SPEECH_INPUT_SAMPLE_RATE,
271
276
  isSpeechInputProviderFactory,
@@ -291,7 +296,7 @@ import {
291
296
  } from "./chunk-HLU6ZBS7.js";
292
297
  import {
293
298
  RecorderButton
294
- } from "./chunk-5O3RU2HO.js";
299
+ } from "./chunk-KMTQ4M2G.js";
295
300
  import {
296
301
  RecorderDeviceQuickPicks,
297
302
  RecorderDeviceSettingsPanel,
@@ -316,7 +321,7 @@ import {
316
321
  unshownSlidesWarning,
317
322
  useMediaDevices,
318
323
  useMediaRecorder
319
- } from "./chunk-APTVXGK6.js";
324
+ } from "./chunk-QI5SHUVT.js";
320
325
  import {
321
326
  DEFAULT_RECORDER_DEVICE_SETTINGS,
322
327
  buildRecorderAudioConstraints,
@@ -330,7 +335,7 @@ import {
330
335
  } from "./chunk-UYB5CPRE.js";
331
336
  import {
332
337
  TeleprompterView
333
- } from "./chunk-GI2D2XS5.js";
338
+ } from "./chunk-IOG66XFC.js";
334
339
  import {
335
340
  DEFAULT_TELEPROMPTER_PREFS,
336
341
  EYE_LINE_FRACTION,
@@ -361,7 +366,7 @@ import {
361
366
  useStreamPreview,
362
367
  useTeleprompter,
363
368
  vadConfigForSensitivity
364
- } from "./chunk-JCIK2QU5.js";
369
+ } from "./chunk-2KTMXJWB.js";
365
370
  import {
366
371
  buildFilename,
367
372
  requestMicStream,
@@ -369,7 +374,7 @@ import {
369
374
  supportsDisplayMedia,
370
375
  supportsMediaRecorder,
371
376
  supportsUserMedia
372
- } from "./chunk-DNJ6HOES.js";
377
+ } from "./chunk-QXHX7N4V.js";
373
378
  import {
374
379
  buildTimingJson,
375
380
  encodeTimingJson,
@@ -445,6 +450,67 @@ function defaultIconFor(entry) {
445
450
  return /* @__PURE__ */ jsx(Icon, { icon: "fa-regular fa-file-lines fa-fw" });
446
451
  }
447
452
 
453
+ // src/mediaEdit/bakedMarkdown.ts
454
+ import { markdownToDoc } from "@bendyline/squisq/doc";
455
+ import { parseMarkdown } from "@bendyline/squisq/markdown";
456
+ import { mediaBakeCopyPath, needsMediaBake } from "@bendyline/squisq/mediaEdit";
457
+ function extensionOf(path) {
458
+ const name = path.slice(path.lastIndexOf("/") + 1);
459
+ const dot = name.lastIndexOf(".");
460
+ return dot < 0 ? "" : name.slice(dot + 1);
461
+ }
462
+ function uniqueCopyPath(src, extension, used) {
463
+ const first = mediaBakeCopyPath(src, extension);
464
+ let path = first;
465
+ for (let n = 2; used.has(path); n++) {
466
+ path = first.replace(/(\.[^./]+)$/, `-${n}$1`);
467
+ }
468
+ used.add(path);
469
+ return path;
470
+ }
471
+ async function bakeMarkdownMedia(markdown, manager, options = {}) {
472
+ const doc = markdownToDoc(parseMarkdown(markdown));
473
+ const clips = listEditableMedia(doc).filter((item) => needsMediaBake(item.clip));
474
+ const result = { markdown, baked: [], failures: [] };
475
+ const usedCopyPaths = /* @__PURE__ */ new Set();
476
+ for (const [index, item] of clips.entries()) {
477
+ options.signal?.throwIfAborted();
478
+ const position = { index, count: clips.length, src: item.src };
479
+ options.onProgress?.(index / clips.length, position);
480
+ try {
481
+ const path = await manager.bake(item.clip, {
482
+ signal: options.signal,
483
+ onProgress: (fraction) => options.onProgress?.((index + fraction) / clips.length, position)
484
+ });
485
+ const reference = options.reference === "copy" ? uniqueCopyPath(item.src, extensionOf(path), usedCopyPaths) : path;
486
+ const rewritten = setMediaClipInSource(result.markdown, item.sourceLine, {
487
+ src: reference,
488
+ clipStart: null,
489
+ clipEnd: null,
490
+ edits: null
491
+ });
492
+ if (rewritten == null) throw new Error("The clip could not be rewritten.");
493
+ result.markdown = rewritten;
494
+ result.baked.push({
495
+ src: item.src,
496
+ kind: item.kind,
497
+ sourceLine: item.sourceLine,
498
+ path,
499
+ reference
500
+ });
501
+ } catch (err) {
502
+ if (err instanceof DOMException && err.name === "AbortError") throw err;
503
+ result.failures.push({
504
+ src: item.src,
505
+ sourceLine: item.sourceLine,
506
+ error: err instanceof Error ? err.message : String(err)
507
+ });
508
+ }
509
+ }
510
+ options.onProgress?.(1, { index: clips.length, count: clips.length, src: "" });
511
+ return result;
512
+ }
513
+
448
514
  // src/ViewSwitcher.tsx
449
515
  import { useEffect, useState } from "react";
450
516
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
@@ -829,6 +895,8 @@ export {
829
895
  EditorShell,
830
896
  EmojiPicker,
831
897
  FENCE_WIDGET_CONTAINED_EVENTS,
898
+ FILL_AVAILABLE_CLASS,
899
+ FillAvailableExtension,
832
900
  FolderView,
833
901
  HOST_FENCE_KEY,
834
902
  HeadingWithTemplate,
@@ -921,6 +989,7 @@ export {
921
989
  applyTimelineCommand,
922
990
  applyTreeCommand,
923
991
  asciiDiagramToCanvas,
992
+ bakeMarkdownMedia,
924
993
  blockInsertionPoint,
925
994
  buildFilename,
926
995
  buildNarrationSavePlan,
@@ -953,6 +1022,7 @@ export {
953
1022
  encodeTimingJson,
954
1023
  ensureTeleprompterStyles,
955
1024
  executeNarrationSave,
1025
+ fillHeightFor,
956
1026
  findAsciiDiagramBlockPos,
957
1027
  findCodeSnippetBlockPos,
958
1028
  findDataCardBlockPos,
@@ -1086,6 +1156,7 @@ export {
1086
1156
  supportsUserMedia,
1087
1157
  targetOffsetFor,
1088
1158
  templateLabel,
1159
+ terminalFillHost,
1089
1160
  timingPathFor,
1090
1161
  tiptapToMarkdown,
1091
1162
  toggleAsciiSource,
@@ -1,6 +1,6 @@
1
- export { C as CameraStreamOptions, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderButton, c as RecorderButtonProps, d as RecorderCameraSaveResult, e as RecorderColorScheme, f as RecorderDeviceOption, g as RecorderDeviceQuickPicks, h as RecorderDeviceQuickPicksProps, i as RecorderDeviceSettingsPanel, j as RecorderDeviceSettingsPanelProps, k as RecorderModal, l as RecorderModalProps, n as RecorderPanel, o as RecorderPanelProps, p as RecorderSaveResult, S as ScreenStreamHandle, r as ScreenStreamOptions, T as TimingJson, t as buildTimingJson, u as encodeTimingJson, v as hasRecorderDeviceChoice, w as recordedMediaKind, x as recorderDeviceGroups, y as recorderDeviceOptions, z as requestCameraStream, A as requestMicStream, B as requestScreenStream, D as timingPathFor, E as useMediaDevices, F as useStreamPreview } from '../recorder-rQGYsS6B.js';
1
+ export { C as CameraStreamOptions, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderButton, c as RecorderButtonProps, d as RecorderCameraSaveResult, e as RecorderColorScheme, f as RecorderDeviceOption, g as RecorderDeviceQuickPicks, h as RecorderDeviceQuickPicksProps, i as RecorderDeviceSettingsPanel, j as RecorderDeviceSettingsPanelProps, k as RecorderModal, l as RecorderModalProps, n as RecorderPanel, o as RecorderPanelProps, p as RecorderSaveResult, S as ScreenStreamHandle, r as ScreenStreamOptions, T as TimingJson, t as buildTimingJson, u as encodeTimingJson, v as hasRecorderDeviceChoice, w as recordedMediaKind, x as recorderDeviceGroups, y as recorderDeviceOptions, z as requestCameraStream, A as requestMicStream, B as requestScreenStream, D as timingPathFor, E as useMediaDevices, F as useStreamPreview } from '../recorder-pdsnPhLa.js';
2
2
  export { D as DEFAULT_RECORDER_DEVICE_SETTINGS, a as RecorderAudioDeviceSettings, b as RecorderCameraDeviceSettings, c as RecorderConstraintMode, R as RecorderDeviceSettings, d as RecorderEncodingSettings, e as RecorderScreenAudioSettings, f as RecorderScreenDeviceSettings, g as buildRecorderAudioConstraints, h as buildRecorderCameraConstraints, i as buildRecorderScreenAudioConstraints, j as buildRecorderScreenConstraints, r as recorderBitsPerSecond } from '../deviceSettings-BSkIQncC.js';
3
- export { a as CaptureKind, i as RecorderAudioBitrateMode, j as RecorderCameraLane, k as RecorderExtendedMediaOptions, l as RecorderSource, R as RecorderState, m as ResolvedFormat, U as UseMediaRecorderOptions, p as UseMediaRecorderResult, r as buildFilename, u as getCaptureKind, v as resolveFormat, w as supportsDisplayMedia, x as supportsMediaRecorder, y as supportsUserMedia, A as useMediaRecorder } from '../useNarrationStage-DlighI1z.js';
3
+ export { a as CaptureKind, i as RecorderAudioBitrateMode, j as RecorderCameraLane, k as RecorderExtendedMediaOptions, l as RecorderSource, R as RecorderState, m as ResolvedFormat, U as UseMediaRecorderOptions, p as UseMediaRecorderResult, r as buildFilename, u as getCaptureKind, v as resolveFormat, w as supportsDisplayMedia, x as supportsMediaRecorder, y as supportsUserMedia, A as useMediaRecorder } from '../useNarrationStage-BsSUp9Zr.js';
4
4
  import 'react';
5
5
  import '@bendyline/squisq/schemas';
6
6
  import '@bendyline/squisq/storage';
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RecorderButton
3
- } from "../chunk-5O3RU2HO.js";
3
+ } from "../chunk-KMTQ4M2G.js";
4
4
  import {
5
5
  RecorderDeviceQuickPicks,
6
6
  RecorderDeviceSettingsPanel,
@@ -14,7 +14,7 @@ import {
14
14
  requestScreenStream,
15
15
  useMediaDevices,
16
16
  useMediaRecorder
17
- } from "../chunk-APTVXGK6.js";
17
+ } from "../chunk-QI5SHUVT.js";
18
18
  import {
19
19
  DEFAULT_RECORDER_DEVICE_SETTINGS,
20
20
  buildRecorderAudioConstraints,
@@ -27,7 +27,7 @@ import "../chunk-UYB5CPRE.js";
27
27
  import {
28
28
  requestCameraStream,
29
29
  useStreamPreview
30
- } from "../chunk-JCIK2QU5.js";
30
+ } from "../chunk-2KTMXJWB.js";
31
31
  import {
32
32
  buildFilename,
33
33
  requestMicStream,
@@ -35,7 +35,7 @@ import {
35
35
  supportsDisplayMedia,
36
36
  supportsMediaRecorder,
37
37
  supportsUserMedia
38
- } from "../chunk-DNJ6HOES.js";
38
+ } from "../chunk-QXHX7N4V.js";
39
39
  import {
40
40
  buildTimingJson,
41
41
  encodeTimingJson,
@@ -2,7 +2,7 @@ import * as react from 'react';
2
2
  import { CSSProperties, RefObject } from 'react';
3
3
  import { Doc, Theme, ViewportConfig, MediaProvider } from '@bendyline/squisq/schemas';
4
4
  import { ContentContainer } from '@bendyline/squisq/storage';
5
- import { l as RecorderSource, o as TeleprompterRecordingDeps } from './useNarrationStage-DlighI1z.js';
5
+ import { l as RecorderSource, o as TeleprompterRecordingDeps } from './useNarrationStage-BsSUp9Zr.js';
6
6
  import { R as RecorderDeviceSettings } from './deviceSettings-BSkIQncC.js';
7
7
  import { S as ScreenCaptureRegion } from './screenRegion-Ci_RsCzG.js';
8
8
 
@@ -19,7 +19,7 @@ import {
19
19
  updateReviewDecorations,
20
20
  useReview,
21
21
  useReviewState
22
- } from "../chunk-MMK26QF7.js";
22
+ } from "../chunk-EPMIOQAZ.js";
23
23
  import "../chunk-DNEVUOBZ.js";
24
24
  import "../chunk-SSEE55FT.js";
25
25
 
@@ -1,4 +1,4 @@
1
- export { h as BlockTagVisibility, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, E as EditorHostMode, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, z as EditorShell, G as EditorShellProps, H as EditorState, b as EditorView, L as ImageDisplayMode, O as LayoutMode, Q as MentionCandidate, R as MentionProvider, Y as PreviewPanel, Z as PreviewPanelProps, _ as RawEditor, $ as RawEditorProps, a0 as ThemeInheritance, a1 as ViewPreferences, a3 as WysiwygEditor, a4 as WysiwygEditorProps, am as useEditorContext, an as useEditorContextMenuItems, ao as useEditorInsertMenuItems } from '../shell-CdtncgKy.js';
1
+ export { h as BlockTagVisibility, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, E as EditorHostMode, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, z as EditorShell, G as EditorShellProps, H as EditorState, b as EditorView, M as ImageDisplayMode, Q as LayoutMode, T as MentionCandidate, U as MentionProvider, _ as PreviewPanel, $ as PreviewPanelProps, a0 as RawEditor, a1 as RawEditorProps, a2 as ThemeInheritance, a3 as ViewPreferences, a5 as WysiwygEditor, a6 as WysiwygEditorProps, ao as useEditorContext, ap as useEditorContextMenuItems, aq as useEditorInsertMenuItems } from '../shell-DOxTnb9f.js';
2
2
  import 'react';
3
3
  import '@bendyline/squisq/table';
4
4
  import '@bendyline/squisq-calc';
@@ -5,23 +5,23 @@ import {
5
5
  RawEditor,
6
6
  WysiwygEditor,
7
7
  useEditorContextMenuItems
8
- } from "../chunk-LZO3HOCQ.js";
8
+ } from "../chunk-5NA2IDXP.js";
9
9
  import {
10
10
  EditorProvider,
11
11
  useEditorContext,
12
12
  useEditorInsertMenuItems
13
- } from "../chunk-MMK26QF7.js";
13
+ } from "../chunk-EPMIOQAZ.js";
14
14
  import "../chunk-DNEVUOBZ.js";
15
15
  import "../chunk-A2H3JOA5.js";
16
16
  import "../chunk-F6URHAW6.js";
17
17
  import "../chunk-SSEE55FT.js";
18
18
  import "../chunk-HLU6ZBS7.js";
19
- import "../chunk-APTVXGK6.js";
19
+ import "../chunk-QI5SHUVT.js";
20
20
  import "../chunk-LRZJD5YD.js";
21
21
  import "../chunk-UYB5CPRE.js";
22
- import "../chunk-GI2D2XS5.js";
23
- import "../chunk-JCIK2QU5.js";
24
- import "../chunk-DNJ6HOES.js";
22
+ import "../chunk-IOG66XFC.js";
23
+ import "../chunk-2KTMXJWB.js";
24
+ import "../chunk-QXHX7N4V.js";
25
25
  import "../chunk-GG35EBRB.js";
26
26
  export {
27
27
  EditorContextMenuProvider,