@bendyline/squisq-editor-react 2.11.16 → 2.11.18

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 (30) hide show
  1. package/dist/{chunk-ZDWZRVAY.js → chunk-2XXBDECJ.js} +1 -1
  2. package/dist/{chunk-DNB32SU2.js → chunk-45NQUR62.js} +1105 -130
  3. package/dist/{chunk-34FRFDQ6.js → chunk-CGENKHWY.js} +58 -102
  4. package/dist/chunk-DNEVUOBZ.js +14 -0
  5. package/dist/chunk-DNJ6HOES.js +93 -0
  6. package/dist/{chunk-EN5BYZOE.js → chunk-DPAMJV6A.js} +3 -2
  7. package/dist/{chunk-5TYCTE33.js → chunk-GIXXD2O3.js} +2189 -1834
  8. package/dist/{chunk-ENDRPV6T.js → chunk-H7YTL6SL.js} +1 -1
  9. package/dist/chunk-LRZJD5YD.js +107 -0
  10. package/dist/{chunk-4D7QMRTZ.js → chunk-U6NVT3BY.js} +466 -540
  11. package/dist/{chunk-WDQFWD7Z.js → chunk-UBFNLWCN.js} +2 -2
  12. package/dist/{chunk-27WOOJXR.js → chunk-WKZLBGPX.js} +1 -1
  13. package/dist/dictationSession-PN3OT5LJ.js +521 -0
  14. package/dist/index.d.ts +36 -21
  15. package/dist/index.js +54 -22
  16. package/dist/json-editor/index.js +3 -3
  17. package/dist/recorder/index.d.ts +2 -2
  18. package/dist/recorder/index.js +17 -13
  19. package/dist/{recorder-C6ArYQBa.d.ts → recorder-CRsw0eC7.d.ts} +6 -5
  20. package/dist/review/index.js +3 -2
  21. package/dist/shell/index.d.ts +2 -1
  22. package/dist/shell/index.js +10 -7
  23. package/dist/{shell-X0EoQbbN.d.ts → shell-Cb0P_ln8.d.ts} +170 -5
  24. package/dist/speech/index.d.ts +126 -0
  25. package/dist/speech/index.js +10 -0
  26. package/dist/styles/index.css +162 -29
  27. package/dist/teleprompter/index.d.ts +13 -5
  28. package/dist/teleprompter/index.js +3 -2
  29. package/dist/{useNarrationStage-DopDr_P5.d.ts → useNarrationStage-vKtk6H-V.d.ts} +7 -1
  30. package/package.json +10 -6
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as CodeContext, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-X0EoQbbN.js';
2
- export { B as BlockRange, c as BlockSlice, d as BlockTagVisibility, e as CodeContextSection, f as CoverImageSaveOutput, D as DashboardImageSaveOutput, g as DocumentLinkCandidate, h as DocumentLinkProvider, i as EditorActions, j as EditorColorScheme, k as EditorContextMenuContext, l as EditorContextMenuItem, m as EditorContextMenuItemVisibility, n as EditorContextMenuProvider, o as EditorContextMenuProviderProps, p as EditorContextValue, q as EditorMode, r as EditorProvider, s as EditorProviderProps, t as EditorSelectionInfo, u as EditorShell, v as EditorShellProps, w as EditorState, x as EditorView, y as FormulaSessionOptions, I as ImageDisplayMode, z as IngestedSidecar, L as LayoutMode, M as MentionCandidate, A as MentionProvider, P as PreviewPanel, G as PreviewPanelProps, R as RawEditor, H as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, W as WriteCanvasSettings, J as WysiwygEditor, K as WysiwygEditorProps, N as XLSX_LOCKED_REASON, O as XlsxFormulaSession, Q as createXlsxFormulaSession, U as getBlockSlices, Y as ingestSidecarBytes, Z as lineToOffset, _ as offsetToLine, $ as sliceIndexAtOffset, a0 as spliceBlock, a1 as useEditorContext, a2 as useEditorContextMenuItems } from './shell-X0EoQbbN.js';
1
+ import { C as CodeContext, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-Cb0P_ln8.js';
2
+ export { A as ApplySourceEditsOptions, B as BlockInsertionBuilder, c as BlockInsertionContext, d as BlockPlacement, e as BlockRange, f as BlockSlice, g as BlockTagVisibility, h as CodeContextSection, i as CoverImageSaveOutput, D as DashboardImageSaveOutput, j as DocumentLinkCandidate, k as DocumentLinkProvider, l as EditorActions, m as EditorColorScheme, n as EditorContextMenuContext, o as EditorContextMenuItem, p as EditorContextMenuItemVisibility, q as EditorContextMenuProvider, r as EditorContextMenuProviderProps, s as EditorContextValue, t as EditorMode, u as EditorProvider, v as EditorProviderProps, w as EditorSelectionInfo, x as EditorShell, y as EditorShellProps, z as EditorState, G as EditorView, H as FormulaSessionOptions, I as ImageDisplayMode, J as IngestedSidecar, K as InsertBlockOptions, L as LayoutMode, M as MentionCandidate, N as MentionProvider, O as OutlineBlock, P as OutlineInsertion, Q as PreviewPanel, R as PreviewPanelProps, T as RawEditor, U as RawEditorProps, V as ThemeInheritance, W as ViewPreferences, Y as WriteCanvasSettings, Z as WysiwygEditor, _ as WysiwygEditorProps, $ as XLSX_LOCKED_REASON, a0 as XlsxFormulaSession, a1 as applySourceEditsToText, a2 as blockInsertionPoint, a3 as createXlsxFormulaSession, a4 as getBlockSlices, a5 as headingDepthForInsertion, a6 as ingestSidecarBytes, a7 as joinBlockAt, a8 as lineToOffset, a9 as minimalReplaceEdit, aa as normalizeSourceEdits, ab as offsetToLine, ac as resolveOutlineInsertion, ad as sliceIndexAtOffset, ae as sourceOutline, af as spliceBlock, ag as useEditorContext, ah as useEditorContextMenuItems } from './shell-Cb0P_ln8.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
5
  import { ReactNode, CSSProperties, ReactElement } from 'react';
@@ -11,6 +11,7 @@ import { IconFamily } from '@bendyline/squisq/icons';
11
11
  import { CoverSlideTemplate, CoverSlidePlayback, DashboardStyleId, DashboardLayoutSummary, ConnectorRouting, AsciiDiagram, Tree, AsciiTimeline, AsciiTimelineSide, AsciiTimelineMarker } from '@bendyline/squisq/doc';
12
12
  export { BuildPreviewDocOptions, buildPreviewDoc, documentTitleFromFileName } from '@bendyline/squisq/doc';
13
13
  import { MarkdownWrapState } from '@bendyline/squisq/markdown';
14
+ export { MarkdownSourceEdit } from '@bendyline/squisq/markdown';
14
15
  import * as monaco_editor from 'monaco-editor';
15
16
  import { M as MonacoLanguageRequest, a as MonacoLanguageLoadOptions } from './monacoLanguageDetection-DEyUW-BS.js';
16
17
  export { MonacoWorkerConstructor, MonacoWorkerConstructors, configureMonacoWorkers } from './monaco-workers/index.js';
@@ -26,13 +27,14 @@ import { FenceRendererMap } from '@bendyline/squisq/fence';
26
27
  import { TableViewState } from '@bendyline/squisq/table';
27
28
  import { EditJournal } from '@bendyline/squisq-grid-react';
28
29
  export { JsonEditor, JsonEditorProps } from './json-editor/index.js';
29
- export { C as CameraStreamOptions, D as DEFAULT_RECORDER_DEVICE_SETTINGS, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderAudioDeviceSettings, c as RecorderButton, d as RecorderButtonProps, e as RecorderCameraDeviceSettings, f as RecorderCameraSaveResult, g as RecorderColorScheme, h as RecorderConstraintMode, i as RecorderDeviceOption, j as RecorderDeviceQuickPicks, k as RecorderDeviceQuickPicksProps, l as RecorderDeviceSettings, m as RecorderDeviceSettingsPanel, n as RecorderDeviceSettingsPanelProps, o as RecorderEncodingSettings, p as RecorderModal, q as RecorderModalProps, r as RecorderNarrationOptions, s as RecorderPanel, t as RecorderPanelProps, u as RecorderSaveResult, v as RecorderScreenAudioSettings, w as RecorderScreenDeviceSettings, x as RecorderSlidesOptions, S as ScreenStreamHandle, y as ScreenStreamOptions, z as SlideTimingSaveResult, T as TimingJson, A as buildRecorderAudioConstraints, B as buildRecorderCameraConstraints, E as buildRecorderScreenAudioConstraints, F as buildRecorderScreenConstraints, G as buildTimingJson, H as encodeTimingJson, I as hasRecorderDeviceChoice, J as recordedMediaKind, K as recorderBitsPerSecond, L as recorderDeviceGroups, N as recorderDeviceOptions, O as requestCameraStream, P as requestMicStream, Q as requestScreenStream, U as timingPathFor, V as useMediaDevices, W as useStreamPreview } from './recorder-C6ArYQBa.js';
30
- import { R as RecorderState } from './useNarrationStage-DopDr_P5.js';
31
- 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-DopDr_P5.js';
32
- export { EYE_LINE_FRACTION, NarrationSavePlan, 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';
30
+ export { C as CameraStreamOptions, D as DEFAULT_RECORDER_DEVICE_SETTINGS, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderAudioDeviceSettings, c as RecorderButton, d as RecorderButtonProps, e as RecorderCameraDeviceSettings, f as RecorderCameraSaveResult, g as RecorderColorScheme, h as RecorderConstraintMode, i as RecorderDeviceOption, j as RecorderDeviceQuickPicks, k as RecorderDeviceQuickPicksProps, l as RecorderDeviceSettings, m as RecorderDeviceSettingsPanel, n as RecorderDeviceSettingsPanelProps, o as RecorderEncodingSettings, p as RecorderModal, q as RecorderModalProps, r as RecorderNarrationOptions, s as RecorderPanel, t as RecorderPanelProps, u as RecorderSaveResult, v as RecorderScreenAudioSettings, w as RecorderScreenDeviceSettings, x as RecorderSlidesOptions, S as ScreenStreamHandle, y as ScreenStreamOptions, z as SlideTimingSaveResult, T as TimingJson, A as buildRecorderAudioConstraints, B as buildRecorderCameraConstraints, E as buildRecorderScreenAudioConstraints, F as buildRecorderScreenConstraints, G as buildTimingJson, H as encodeTimingJson, I as hasRecorderDeviceChoice, J as recordedMediaKind, K as recorderBitsPerSecond, L as recorderDeviceGroups, N as recorderDeviceOptions, O as requestCameraStream, P as requestMicStream, Q as requestScreenStream, U as timingPathFor, V as useMediaDevices, W as useStreamPreview } from './recorder-CRsw0eC7.js';
31
+ import { R as RecorderState } from './useNarrationStage-vKtk6H-V.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-vKtk6H-V.js';
33
+ 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';
33
34
  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-De4z-gGb.js';
34
35
  export { createHarperProofingProvider } from './proofing/index.js';
35
36
  export { PROOF_DIALECTS, PROOF_FRONTMATTER_KEYS, ProofCategory, ProofDialect, ProofFinding, ProofRange, ProofSuggestion, ProofSuggestionKind } from '@bendyline/squisq/proof';
37
+ export { DictationControl, SPEECH_INPUT_SAMPLE_RATE, SpeechInputCapability, SpeechInputProvider, SpeechInputProviderFactory, SpeechInputReadiness, SpeechInputReadinessState, SpeechInputTranscribeOptions, SpeechInputTranscript, isSpeechInputProviderFactory, resolveSpeechInputProvider } from './speech/index.js';
36
38
  import '@bendyline/squisq-calc';
37
39
  import '@bendyline/squisq-formats/xlsx';
38
40
  import '@bendyline/squisq/versions';
@@ -851,6 +853,13 @@ interface ThemeDesignerConfig {
851
853
  onClose: () => void;
852
854
  }
853
855
  declare function usePreviewSettings(): PreviewSettings;
856
+ /**
857
+ * Like {@link usePreviewSettings} but returns `null` when no provider is
858
+ * mounted. For consumers (e.g. WysiwygEditor) that want to react to the
859
+ * active theme when available without forcing every test harness to
860
+ * wrap them in a PreviewSettingsProvider.
861
+ */
862
+ declare function usePreviewSettingsOptional(): PreviewSettings | null;
854
863
  interface PreviewSettingsProviderProps {
855
864
  doc: Doc | null;
856
865
  children: ReactNode;
@@ -2490,6 +2499,20 @@ interface MermaidRenderResult extends Pick<RenderResult, 'svg' | 'diagramType'>
2490
2499
  * the editor, preventing authored links/callbacks from hijacking editing.
2491
2500
  */
2492
2501
  declare function renderMermaidDiagram(id: string, source: string, container?: Element, theme?: Theme): Promise<MermaidRenderResult>;
2502
+ /** Outcome of {@link validateMermaidSource}. */
2503
+ type MermaidValidationResult = {
2504
+ ok: true;
2505
+ diagramType: string;
2506
+ } | {
2507
+ ok: false;
2508
+ message: string;
2509
+ };
2510
+ /**
2511
+ * Check that Mermaid can parse `source`, without rendering or measuring
2512
+ * anything. Runs on the shared work queue like rendering, since parsing uses
2513
+ * the same diagram databases. `message` is Mermaid's own error, trimmed.
2514
+ */
2515
+ declare function validateMermaidSource(source: string): Promise<MermaidValidationResult>;
2493
2516
  /** Inspect the subset Mermaid exposes as structured flowchart nodes/edges. */
2494
2517
  declare function inspectMermaidSource(source: string): Promise<MermaidEditableModel | null>;
2495
2518
  declare function mermaidErrorMessage(error: unknown): string;
@@ -3303,24 +3326,16 @@ declare function RecorderSlidesPanel({ slides, index, onIndexChange, viewport, b
3303
3326
  * of `narrationModePolicy.ts`, kept DOM/MediaRecorder-free so every branch is
3304
3327
  * unit-testable.
3305
3328
  *
3306
- * Slides mode and narration mode both expand the dialog and both claim its
3307
- * right column, so they are mutually exclusive. That exclusion is STRUCTURAL:
3308
- * the dialog holds one {@link RecorderPanelMode} rather than two booleans, so
3309
- * checking one box cannot leave the other checked. There is deliberately no
3310
- * "are these compatible?" predicate to keep in sync.
3329
+ * Narration and slides are independent optional panels. The combined state
3330
+ * keeps both visible without changing which pipeline owns a take.
3311
3331
  */
3312
3332
 
3313
- /** Which optional panel occupies the dialog's right column. */
3314
- type RecorderPanelMode = 'none' | 'narration' | 'slides';
3315
- /** Whether the dialog should render in its full-viewport two-column form. */
3333
+ /** Which optional panels appear beside the capture controls. */
3334
+ type RecorderPanelMode = 'none' | 'narration' | 'slides' | 'both';
3335
+ /** Whether the dialog should render in its full-viewport form. */
3316
3336
  declare function isExpandedPanel(mode: RecorderPanelMode): boolean;
3317
3337
  /**
3318
- * The mode after toggling one of the two checkboxes. Checking a box selects
3319
- * it (deselecting the other by construction); unchecking returns to 'none'.
3320
- *
3321
- * Unchecking a box that is not the active mode is a no-op rather than a
3322
- * collapse — a stale change event from the box that was just superseded must
3323
- * not close the panel the user actually opened.
3338
+ * Toggle only the requested panel, preserving the other checkbox.
3324
3339
  */
3325
3340
  declare function panelModeAfterToggle(current: RecorderPanelMode, target: 'narration' | 'slides', checked: boolean): RecorderPanelMode;
3326
3341
  /** Clamp a slide index into `[0, count - 1]`, or 0 for an empty deck. */
@@ -3351,4 +3366,4 @@ declare function unshownSlidesWarning(total: number, unshown: number): string |
3351
3366
  /** The exact label of the review-state block-timings checkbox. */
3352
3367
  declare const SLIDE_TIMING_CHECKBOX_LABEL = "Update block timings when I save this narration";
3353
3368
 
3354
- 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, 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, MonacoLanguageLoadOptions, MonacoLanguageRequest, OutlinePanel, type OutlinePanelProps, PICKER_CATEGORIES, 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, type SaveCsvEditsOptions, type SaveXlsxEditsOptions, StatusBar, type StatusBarProps, Subscript, Superscript, 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, VersionHistoryPanel, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, XlsxSourceMeta, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, dataExtensionOf, dataLinkHrefOf, detectLanguageFromFileName, draftPatchFromImportedTheme, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findDataCardBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findOwningHeadingPosition, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, formatSeconds, getTimelineForNode, indentItemOp, ingestForWrite, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isExpandedPanel, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isTimelineSourceSafeForSemanticEdit, loadDataPreview, mapFenceEntries, markdownToTiptap, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidEditableTexts, mermaidErrorMessage, mermaidSurfaceScheme, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, nextTimelineEventId, normalizeMermaidFlowchartShape, outdentItemOp, panelModeAfterToggle, parseTimelineForNode, partitionFiles, persistFromWrite, preloadMonaco, preloadMonacoSuggestions, processDataFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, readHeadingViewBinding, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceHostFenceText, replaceAsciiFenceText as replaceTreeFenceText, resizeNodeOp, resolveFileKind, resolveMermaidSurfaceTheme, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, saveCsvEdits, saveXlsxEdits, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setBlockStartTimeInSource, setBlockTransitionInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, showSlideTimingCheckbox, slideStepForKey, summarizeBlockProps, templateLabel, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, transitionLabel, translateDiagramOp, unshownSlidesWarning, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useFileDrop, useMermaidDiagramData, useMermaidSurfaceTheme, useMonacoLoader, usePreviewSettings, useTimelineData, useTreeViewData, viewStateFromBinding, writeHeadingViewState };
3369
+ 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, 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, 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, type SaveCsvEditsOptions, type SaveXlsxEditsOptions, StatusBar, type StatusBarProps, Subscript, Superscript, 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, VersionHistoryPanel, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, XlsxSourceMeta, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, dataExtensionOf, dataLinkHrefOf, detectLanguageFromFileName, draftPatchFromImportedTheme, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findDataCardBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findOwningHeadingPosition, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, formatSeconds, getTimelineForNode, indentItemOp, ingestForWrite, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isExpandedPanel, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isTimelineSourceSafeForSemanticEdit, loadDataPreview, mapFenceEntries, markdownToTiptap, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidEditableTexts, mermaidErrorMessage, mermaidSurfaceScheme, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, nextTimelineEventId, normalizeMermaidFlowchartShape, outdentItemOp, panelModeAfterToggle, parseTimelineForNode, partitionFiles, persistFromWrite, preloadMonaco, preloadMonacoSuggestions, processDataFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, readHeadingViewBinding, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceHostFenceText, replaceAsciiFenceText as replaceTreeFenceText, resizeNodeOp, resolveFileKind, resolveMermaidSurfaceTheme, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, saveCsvEdits, saveXlsxEdits, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setBlockStartTimeInSource, setBlockTransitionInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, showSlideTimingCheckbox, slideStepForKey, summarizeBlockProps, templateLabel, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, transitionLabel, translateDiagramOp, unshownSlidesWarning, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useFileDrop, useMermaidDiagramData, useMermaidSurfaceTheme, useMonacoLoader, usePreviewSettings, usePreviewSettingsOptional, useTimelineData, useTreeViewData, validateMermaidSource, viewStateFromBinding, writeHeadingViewState };
package/dist/index.js CHANGED
@@ -215,34 +215,49 @@ import {
215
215
  useMermaidSurfaceTheme,
216
216
  useMonacoLoader,
217
217
  usePreviewSettings,
218
+ usePreviewSettingsOptional,
218
219
  useTimelineData,
219
220
  useTreeViewData,
221
+ validateMermaidSource,
220
222
  viewStateFromBinding,
221
223
  writeHeadingViewState
222
- } from "./chunk-5TYCTE33.js";
224
+ } from "./chunk-GIXXD2O3.js";
223
225
  import {
224
226
  EditorProvider,
227
+ applySourceEditsToText,
228
+ blockInsertionPoint,
225
229
  detectLanguageFromFileName,
226
230
  getBlockSlices,
231
+ headingDepthForInsertion,
232
+ joinBlockAt,
227
233
  lineToOffset,
234
+ minimalReplaceEdit,
235
+ normalizeSourceEdits,
228
236
  offsetToLine,
229
237
  resolveFileKind,
238
+ resolveOutlineInsertion,
230
239
  sliceIndexAtOffset,
240
+ sourceOutline,
231
241
  spliceBlock,
232
242
  useBlockNavigator,
233
243
  useEditorContext
234
- } from "./chunk-DNB32SU2.js";
244
+ } from "./chunk-45NQUR62.js";
245
+ import {
246
+ SPEECH_INPUT_SAMPLE_RATE,
247
+ isSpeechInputProviderFactory,
248
+ resolveSpeechInputProvider
249
+ } from "./chunk-DNEVUOBZ.js";
235
250
  import "./chunk-V4NBQF5C.js";
236
251
  import {
237
252
  JsonEditor
238
- } from "./chunk-WDQFWD7Z.js";
253
+ } from "./chunk-UBFNLWCN.js";
239
254
  import {
240
255
  MarkdownEscape
241
- } from "./chunk-ZDWZRVAY.js";
256
+ } from "./chunk-2XXBDECJ.js";
242
257
  import {
243
258
  markdownToTiptap,
244
259
  tiptapToMarkdown
245
- } from "./chunk-EN5BYZOE.js";
260
+ } from "./chunk-DPAMJV6A.js";
246
261
  import {
247
262
  ImageEditor,
248
263
  ImageViewer,
@@ -252,9 +267,8 @@ import {
252
267
  } from "./chunk-K4Z2GIX4.js";
253
268
  import {
254
269
  RecorderButton
255
- } from "./chunk-27WOOJXR.js";
270
+ } from "./chunk-WKZLBGPX.js";
256
271
  import {
257
- DEFAULT_RECORDER_DEVICE_SETTINGS,
258
272
  RecorderDeviceQuickPicks,
259
273
  RecorderDeviceSettingsPanel,
260
274
  RecorderModal,
@@ -262,10 +276,6 @@ import {
262
276
  RecorderSlidesPanel,
263
277
  SLIDE_TIMING_CHECKBOX_LABEL,
264
278
  buildPreviewDoc,
265
- buildRecorderAudioConstraints,
266
- buildRecorderCameraConstraints,
267
- buildRecorderScreenAudioConstraints,
268
- buildRecorderScreenConstraints,
269
279
  buildRecorderSlideDeck,
270
280
  clampSlideIndex,
271
281
  documentTitleFromFileName,
@@ -274,7 +284,6 @@ import {
274
284
  isExpandedPanel,
275
285
  panelModeAfterToggle,
276
286
  recordedMediaKind,
277
- recorderBitsPerSecond,
278
287
  recorderDeviceGroups,
279
288
  recorderDeviceOptions,
280
289
  requestScreenStream,
@@ -283,11 +292,19 @@ import {
283
292
  unshownSlidesWarning,
284
293
  useMediaDevices,
285
294
  useMediaRecorder
286
- } from "./chunk-4D7QMRTZ.js";
295
+ } from "./chunk-U6NVT3BY.js";
296
+ import {
297
+ DEFAULT_RECORDER_DEVICE_SETTINGS,
298
+ buildRecorderAudioConstraints,
299
+ buildRecorderCameraConstraints,
300
+ buildRecorderScreenAudioConstraints,
301
+ buildRecorderScreenConstraints,
302
+ recorderBitsPerSecond
303
+ } from "./chunk-LRZJD5YD.js";
287
304
  import "./chunk-GS7QWYFT.js";
288
305
  import {
289
306
  TeleprompterView
290
- } from "./chunk-ENDRPV6T.js";
307
+ } from "./chunk-H7YTL6SL.js";
291
308
  import {
292
309
  DEFAULT_TELEPROMPTER_PREFS,
293
310
  EYE_LINE_FRACTION,
@@ -297,7 +314,6 @@ import {
297
314
  TELEPROMPTER_CSS,
298
315
  TeleprompterControls,
299
316
  TeleprompterSurface,
300
- buildFilename,
301
317
  buildNarrationSavePlan,
302
318
  buildTimingJson,
303
319
  cameraVideoLine,
@@ -312,12 +328,7 @@ import {
312
328
  prompterVarsFromTheme,
313
329
  registerPcmWorklet,
314
330
  requestCameraStream,
315
- requestMicStream,
316
- resolveFormat,
317
331
  stepScroll,
318
- supportsDisplayMedia,
319
- supportsMediaRecorder,
320
- supportsUserMedia,
321
332
  targetOffsetFor,
322
333
  timingPathFor,
323
334
  useFloatingWindow,
@@ -327,7 +338,15 @@ import {
327
338
  useStreamPreview,
328
339
  useTeleprompter,
329
340
  vadConfigForSensitivity
330
- } from "./chunk-34FRFDQ6.js";
341
+ } from "./chunk-CGENKHWY.js";
342
+ import {
343
+ buildFilename,
344
+ requestMicStream,
345
+ resolveFormat,
346
+ supportsDisplayMedia,
347
+ supportsMediaRecorder,
348
+ supportsUserMedia
349
+ } from "./chunk-DNJ6HOES.js";
331
350
 
332
351
  // src/FolderView.tsx
333
352
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -428,7 +447,7 @@ function ViewSwitcher({ className }) {
428
447
  "aria-selected": activeView === view.id,
429
448
  className: `squisq-view-tab ${activeView === view.id ? "squisq-view-tab--active" : ""}`,
430
449
  onClick: () => setActiveView(view.id),
431
- title: `${view.label} (${platformShortcut(view.shortcutKey)})`,
450
+ title: `${view.label} (${platformShortcut(`Shift+${view.shortcutKey}`)})`,
432
451
  children: [
433
452
  /* @__PURE__ */ jsx2("span", { className: "squisq-view-tab-label squisq-view-tab-label--long", children: view.label }),
434
453
  view.shortLabel && view.shortLabel !== view.label && /* @__PURE__ */ jsx2("span", { className: "squisq-view-tab-label squisq-view-tab-label--short", children: view.shortLabel })
@@ -822,6 +841,7 @@ export {
822
841
  RecorderSlidesPanel,
823
842
  RepairableDiagramExtension,
824
843
  SLIDE_TIMING_CHECKBOX_LABEL,
844
+ SPEECH_INPUT_SAMPLE_RATE,
825
845
  StatusBar,
826
846
  Subscript,
827
847
  Superscript,
@@ -859,9 +879,11 @@ export {
859
879
  addTimelineEventOp,
860
880
  applyAsciiDiagramCommand,
861
881
  applyRepairCommand,
882
+ applySourceEditsToText,
862
883
  applyTimelineCommand,
863
884
  applyTreeCommand,
864
885
  asciiDiagramToCanvas,
886
+ blockInsertionPoint,
865
887
  buildFilename,
866
888
  buildNarrationSavePlan,
867
889
  buildPreviewDoc,
@@ -906,6 +928,7 @@ export {
906
928
  getCaptureKind,
907
929
  getTimelineForNode,
908
930
  hasRecorderDeviceChoice,
931
+ headingDepthForInsertion,
909
932
  imageEditorReducer,
910
933
  indentItemOp,
911
934
  ingestForWrite,
@@ -921,7 +944,9 @@ export {
921
944
  isMermaidFlowchartShapeId,
922
945
  isMermaidSourceVisible,
923
946
  isRepairableFence,
947
+ isSpeechInputProviderFactory,
924
948
  isTimelineSourceSafeForSemanticEdit,
949
+ joinBlockAt,
925
950
  lineToOffset,
926
951
  loadDataPreview,
927
952
  mapFenceEntries,
@@ -933,6 +958,7 @@ export {
933
958
  mermaidEditableTexts,
934
959
  mermaidErrorMessage,
935
960
  mermaidSurfaceScheme,
961
+ minimalReplaceEdit,
936
962
  monacoLanguageForFence,
937
963
  moveItemDownOp,
938
964
  moveItemUpOp,
@@ -940,6 +966,7 @@ export {
940
966
  narrationAnnotationLine,
941
967
  nextTimelineEventId,
942
968
  normalizeMermaidFlowchartShape,
969
+ normalizeSourceEdits,
943
970
  offsetToLine,
944
971
  outdentItemOp,
945
972
  panelModeAfterToggle,
@@ -981,6 +1008,8 @@ export {
981
1008
  resolveFileKind,
982
1009
  resolveFormat,
983
1010
  resolveMermaidSurfaceTheme,
1011
+ resolveOutlineInsertion,
1012
+ resolveSpeechInputProvider,
984
1013
  sanitizeAsciiLabel,
985
1014
  sanitizeTimelineText,
986
1015
  sanitizeTreeLabel,
@@ -1000,6 +1029,7 @@ export {
1000
1029
  showSlideTimingCheckbox,
1001
1030
  sliceIndexAtOffset,
1002
1031
  slideStepForKey,
1032
+ sourceOutline,
1003
1033
  spliceBlock,
1004
1034
  stepScroll,
1005
1035
  summarizeBlockProps,
@@ -1038,11 +1068,13 @@ export {
1038
1068
  useNarrationRecorder,
1039
1069
  useNarrationStage,
1040
1070
  usePreviewSettings,
1071
+ usePreviewSettingsOptional,
1041
1072
  useStreamPreview,
1042
1073
  useTeleprompter,
1043
1074
  useTimelineData,
1044
1075
  useTreeViewData,
1045
1076
  vadConfigForSensitivity,
1077
+ validateMermaidSource,
1046
1078
  viewStateFromBinding,
1047
1079
  writeHeadingViewState
1048
1080
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  JsonEditor
3
- } from "../chunk-WDQFWD7Z.js";
4
- import "../chunk-ZDWZRVAY.js";
5
- import "../chunk-EN5BYZOE.js";
3
+ } from "../chunk-UBFNLWCN.js";
4
+ import "../chunk-2XXBDECJ.js";
5
+ import "../chunk-DPAMJV6A.js";
6
6
  export {
7
7
  JsonEditor
8
8
  };
@@ -1,5 +1,5 @@
1
- export { C as CameraStreamOptions, D as DEFAULT_RECORDER_DEVICE_SETTINGS, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderAudioDeviceSettings, c as RecorderButton, d as RecorderButtonProps, e as RecorderCameraDeviceSettings, f as RecorderCameraSaveResult, g as RecorderColorScheme, h as RecorderConstraintMode, i as RecorderDeviceOption, j as RecorderDeviceQuickPicks, k as RecorderDeviceQuickPicksProps, l as RecorderDeviceSettings, m as RecorderDeviceSettingsPanel, n as RecorderDeviceSettingsPanelProps, o as RecorderEncodingSettings, p as RecorderModal, q as RecorderModalProps, s as RecorderPanel, t as RecorderPanelProps, u as RecorderSaveResult, v as RecorderScreenAudioSettings, w as RecorderScreenDeviceSettings, S as ScreenStreamHandle, y as ScreenStreamOptions, T as TimingJson, A as buildRecorderAudioConstraints, B as buildRecorderCameraConstraints, E as buildRecorderScreenAudioConstraints, F as buildRecorderScreenConstraints, G as buildTimingJson, H as encodeTimingJson, I as hasRecorderDeviceChoice, J as recordedMediaKind, K as recorderBitsPerSecond, L as recorderDeviceGroups, N as recorderDeviceOptions, O as requestCameraStream, P as requestMicStream, Q as requestScreenStream, U as timingPathFor, V as useMediaDevices, W as useStreamPreview } from '../recorder-C6ArYQBa.js';
2
- 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-DopDr_P5.js';
1
+ export { C as CameraStreamOptions, D as DEFAULT_RECORDER_DEVICE_SETTINGS, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderAudioDeviceSettings, c as RecorderButton, d as RecorderButtonProps, e as RecorderCameraDeviceSettings, f as RecorderCameraSaveResult, g as RecorderColorScheme, h as RecorderConstraintMode, i as RecorderDeviceOption, j as RecorderDeviceQuickPicks, k as RecorderDeviceQuickPicksProps, l as RecorderDeviceSettings, m as RecorderDeviceSettingsPanel, n as RecorderDeviceSettingsPanelProps, o as RecorderEncodingSettings, p as RecorderModal, q as RecorderModalProps, s as RecorderPanel, t as RecorderPanelProps, u as RecorderSaveResult, v as RecorderScreenAudioSettings, w as RecorderScreenDeviceSettings, S as ScreenStreamHandle, y as ScreenStreamOptions, T as TimingJson, A as buildRecorderAudioConstraints, B as buildRecorderCameraConstraints, E as buildRecorderScreenAudioConstraints, F as buildRecorderScreenConstraints, G as buildTimingJson, H as encodeTimingJson, I as hasRecorderDeviceChoice, J as recordedMediaKind, K as recorderBitsPerSecond, L as recorderDeviceGroups, N as recorderDeviceOptions, O as requestCameraStream, P as requestMicStream, Q as requestScreenStream, U as timingPathFor, V as useMediaDevices, W as useStreamPreview } from '../recorder-CRsw0eC7.js';
2
+ 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-vKtk6H-V.js';
3
3
  import 'react/jsx-runtime';
4
4
  import '@bendyline/squisq/schemas';
5
5
  import '@bendyline/squisq/storage';
@@ -1,40 +1,44 @@
1
1
  import {
2
2
  RecorderButton
3
- } from "../chunk-27WOOJXR.js";
3
+ } from "../chunk-WKZLBGPX.js";
4
4
  import {
5
- DEFAULT_RECORDER_DEVICE_SETTINGS,
6
5
  RecorderDeviceQuickPicks,
7
6
  RecorderDeviceSettingsPanel,
8
7
  RecorderModal,
9
8
  RecorderPanel,
10
- buildRecorderAudioConstraints,
11
- buildRecorderCameraConstraints,
12
- buildRecorderScreenAudioConstraints,
13
- buildRecorderScreenConstraints,
14
9
  getCaptureKind,
15
10
  hasRecorderDeviceChoice,
16
11
  recordedMediaKind,
17
- recorderBitsPerSecond,
18
12
  recorderDeviceGroups,
19
13
  recorderDeviceOptions,
20
14
  requestScreenStream,
21
15
  useMediaDevices,
22
16
  useMediaRecorder
23
- } from "../chunk-4D7QMRTZ.js";
17
+ } from "../chunk-U6NVT3BY.js";
18
+ import {
19
+ DEFAULT_RECORDER_DEVICE_SETTINGS,
20
+ buildRecorderAudioConstraints,
21
+ buildRecorderCameraConstraints,
22
+ buildRecorderScreenAudioConstraints,
23
+ buildRecorderScreenConstraints,
24
+ recorderBitsPerSecond
25
+ } from "../chunk-LRZJD5YD.js";
24
26
  import "../chunk-GS7QWYFT.js";
25
27
  import {
26
- buildFilename,
27
28
  buildTimingJson,
28
29
  encodeTimingJson,
29
30
  requestCameraStream,
31
+ timingPathFor,
32
+ useStreamPreview
33
+ } from "../chunk-CGENKHWY.js";
34
+ import {
35
+ buildFilename,
30
36
  requestMicStream,
31
37
  resolveFormat,
32
38
  supportsDisplayMedia,
33
39
  supportsMediaRecorder,
34
- supportsUserMedia,
35
- timingPathFor,
36
- useStreamPreview
37
- } from "../chunk-34FRFDQ6.js";
40
+ supportsUserMedia
41
+ } from "../chunk-DNJ6HOES.js";
38
42
  export {
39
43
  DEFAULT_RECORDER_DEVICE_SETTINGS,
40
44
  RecorderButton,
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Doc, Theme, ViewportConfig, MediaProvider } from '@bendyline/squisq/schemas';
3
3
  import { ContentContainer } from '@bendyline/squisq/storage';
4
- import { l as RecorderSource, o as TeleprompterRecordingDeps, S as ScreenCaptureRegion } from './useNarrationStage-DopDr_P5.js';
4
+ import { l as RecorderSource, o as TeleprompterRecordingDeps, S as ScreenCaptureRegion } from './useNarrationStage-vKtk6H-V.js';
5
5
  import { CSSProperties, RefObject } from 'react';
6
6
 
7
7
  type RecordedMediaKind = 'audio' | 'video';
@@ -24,17 +24,18 @@ declare function recordedMediaKind(source: RecorderSource, stream: {
24
24
  type RecorderColorScheme = 'light' | 'dark';
25
25
  /**
26
26
  * Everything narration mode needs beyond the base recorder props. Supplying
27
- * this (with non-null `recording`) surfaces the "Show narration mode"
27
+ * this (with non-null `doc`) surfaces the "Show narration mode"
28
28
  * checkbox; when checked, the dialog expands and mounts the teleprompter
29
29
  * beside the capture preview, and mic recording switches to the narration
30
- * pipeline (voice-aligned v3 timing sidecar + document preamble insertion).
30
+ * pipeline when `recording` is provided. With null `recording`, the stage
31
+ * tracks the existing capture audio and the host keeps its save pipeline.
31
32
  */
32
33
  interface RecorderNarrationOptions {
33
34
  /** Parsed document the prompter script is built from. */
34
35
  doc: Doc | null;
35
36
  /** Theme for the prompter surface (colors/fonts). */
36
37
  theme: Theme;
37
- /** Editor plumbing for the narration save pipeline; null hides the checkbox. */
38
+ /** Editor plumbing for aligned narration saves; null keeps the capture recorder and host onSave. */
38
39
  recording: TeleprompterRecordingDeps | null;
39
40
  }
40
41
  /**
@@ -89,7 +90,7 @@ interface RecorderModalProps {
89
90
  * markdown reference at the cursor — see {@link RecorderSaveResult}
90
91
  * for the fields a host needs to build that reference.
91
92
  *
92
- * NOT fired for narration-mode saves: the narration pipeline writes its
93
+ * NOT fired for aligned narration saves (non-null narration.recording): that pipeline writes its
93
94
  * own `{[audio …]}` document preamble (via `executeNarrationSave`), so a
94
95
  * host insertion here would double up.
95
96
  */
@@ -19,8 +19,9 @@ import {
19
19
  updateReviewDecorations,
20
20
  useReview,
21
21
  useReviewState
22
- } from "../chunk-DNB32SU2.js";
23
- import "../chunk-EN5BYZOE.js";
22
+ } from "../chunk-45NQUR62.js";
23
+ import "../chunk-DNEVUOBZ.js";
24
+ import "../chunk-DPAMJV6A.js";
24
25
 
25
26
  // src/review/proofingAdapter.ts
26
27
  import {
@@ -1,4 +1,4 @@
1
- export { d as BlockTagVisibility, g as DocumentLinkCandidate, h as DocumentLinkProvider, i as EditorActions, j as EditorColorScheme, k as EditorContextMenuContext, l as EditorContextMenuItem, m as EditorContextMenuItemVisibility, n as EditorContextMenuProvider, o as EditorContextMenuProviderProps, p as EditorContextValue, E as EditorHostMode, q as EditorMode, r as EditorProvider, s as EditorProviderProps, u as EditorShell, v as EditorShellProps, w as EditorState, x as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, A as MentionProvider, P as PreviewPanel, G as PreviewPanelProps, R as RawEditor, H as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, J as WysiwygEditor, K as WysiwygEditorProps, a1 as useEditorContext, a2 as useEditorContextMenuItems } from '../shell-X0EoQbbN.js';
1
+ export { g as BlockTagVisibility, j as DocumentLinkCandidate, k as DocumentLinkProvider, l as EditorActions, m as EditorColorScheme, n as EditorContextMenuContext, o as EditorContextMenuItem, p as EditorContextMenuItemVisibility, q as EditorContextMenuProvider, r as EditorContextMenuProviderProps, s as EditorContextValue, E as EditorHostMode, t as EditorMode, u as EditorProvider, v as EditorProviderProps, x as EditorShell, y as EditorShellProps, z as EditorState, G as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, N as MentionProvider, Q as PreviewPanel, R as PreviewPanelProps, T as RawEditor, U as RawEditorProps, V as ThemeInheritance, W as ViewPreferences, Z as WysiwygEditor, _ as WysiwygEditorProps, ag as useEditorContext, ah as useEditorContextMenuItems } from '../shell-Cb0P_ln8.js';
2
2
  import 'react/jsx-runtime';
3
3
  import '@bendyline/squisq/table';
4
4
  import '@bendyline/squisq-calc';
@@ -12,6 +12,7 @@ import '@bendyline/squisq/markdown';
12
12
  import '@bendyline/squisq/storage';
13
13
  import '../types-De4z-gGb.js';
14
14
  import '@bendyline/squisq/proof';
15
+ import '../speech/index.js';
15
16
  import '@bendyline/squisq/versions';
16
17
  import '@tiptap/core';
17
18
  import 'monaco-editor';
@@ -5,19 +5,22 @@ import {
5
5
  RawEditor,
6
6
  WysiwygEditor,
7
7
  useEditorContextMenuItems
8
- } from "../chunk-5TYCTE33.js";
8
+ } from "../chunk-GIXXD2O3.js";
9
9
  import {
10
10
  EditorProvider,
11
11
  useEditorContext
12
- } from "../chunk-DNB32SU2.js";
12
+ } from "../chunk-45NQUR62.js";
13
+ import "../chunk-DNEVUOBZ.js";
13
14
  import "../chunk-V4NBQF5C.js";
14
- import "../chunk-ZDWZRVAY.js";
15
- import "../chunk-EN5BYZOE.js";
15
+ import "../chunk-2XXBDECJ.js";
16
+ import "../chunk-DPAMJV6A.js";
16
17
  import "../chunk-K4Z2GIX4.js";
17
- import "../chunk-4D7QMRTZ.js";
18
+ import "../chunk-U6NVT3BY.js";
19
+ import "../chunk-LRZJD5YD.js";
18
20
  import "../chunk-GS7QWYFT.js";
19
- import "../chunk-ENDRPV6T.js";
20
- import "../chunk-34FRFDQ6.js";
21
+ import "../chunk-H7YTL6SL.js";
22
+ import "../chunk-CGENKHWY.js";
23
+ import "../chunk-DNJ6HOES.js";
21
24
  export {
22
25
  EditorContextMenuProvider,
23
26
  EditorProvider,