@bendyline/squisq-editor-react 2.11.19 → 2.11.21

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.
@@ -0,0 +1,83 @@
1
+ import { S as ScreenCaptureRegion } from './screenRegion-Ci_RsCzG.js';
2
+
3
+ /**
4
+ * User-configurable recorder device/encoding settings.
5
+ *
6
+ * Values stay serializable so the modal can include them in its capture key:
7
+ * changing a setting releases any prepared preview before a new stream is
8
+ * requested. Numeric and string track values are expressed as either `ideal`
9
+ * (best effort) or `exact` (fail when unavailable) constraints. Display
10
+ * capture is the exception: the screen-capture standard rejects exact
11
+ * constraints during its user picker, so those values always remain ideal.
12
+ */
13
+
14
+ type RecorderConstraintMode = 'ideal' | 'exact';
15
+ interface RecorderAudioDeviceSettings {
16
+ deviceId: string;
17
+ groupId?: string;
18
+ autoGainControl?: boolean;
19
+ channelCount?: number;
20
+ echoCancellation?: boolean;
21
+ latency?: number;
22
+ noiseSuppression?: boolean;
23
+ sampleRate?: number;
24
+ sampleSize?: number;
25
+ }
26
+ interface RecorderCameraDeviceSettings {
27
+ deviceId: string;
28
+ groupId?: string;
29
+ aspectRatio?: number;
30
+ backgroundBlur?: boolean;
31
+ facingMode?: string;
32
+ frameRate?: number;
33
+ height?: number;
34
+ resizeMode?: string;
35
+ width?: number;
36
+ }
37
+ interface RecorderScreenDeviceSettings {
38
+ /** Crop in captured pixels, relative to the chosen surface (not the desktop). */
39
+ crop?: ScreenCaptureRegion;
40
+ aspectRatio?: number;
41
+ cursor?: string;
42
+ displaySurface?: string;
43
+ frameRate?: number;
44
+ height?: number;
45
+ logicalSurface?: boolean;
46
+ resizeMode?: string;
47
+ width?: number;
48
+ }
49
+ interface RecorderScreenAudioSettings {
50
+ restrictOwnAudio?: boolean;
51
+ suppressLocalAudioPlayback?: boolean;
52
+ }
53
+ interface RecorderEncodingSettings {
54
+ audioMimeType: string;
55
+ videoMimeType: string;
56
+ bitsPerSecond?: number;
57
+ audioBitsPerSecond?: number;
58
+ videoBitsPerSecond?: number;
59
+ audioBitrateMode?: 'constant' | 'variable';
60
+ videoKeyFrameIntervalDuration?: number;
61
+ videoKeyFrameIntervalCount?: number;
62
+ }
63
+ interface RecorderDeviceSettings {
64
+ constraintMode: RecorderConstraintMode;
65
+ audio: RecorderAudioDeviceSettings;
66
+ camera: RecorderCameraDeviceSettings;
67
+ screen: RecorderScreenDeviceSettings;
68
+ screenAudio: RecorderScreenAudioSettings;
69
+ encoding: RecorderEncodingSettings;
70
+ }
71
+ declare const DEFAULT_RECORDER_DEVICE_SETTINGS: RecorderDeviceSettings;
72
+ /** Build microphone constraints from the advanced settings form. */
73
+ declare function buildRecorderAudioConstraints(settings: RecorderDeviceSettings): MediaTrackConstraints;
74
+ /** Build camera constraints from the advanced settings form. */
75
+ declare function buildRecorderCameraConstraints(settings: RecorderDeviceSettings): MediaTrackConstraints;
76
+ /** Build display-capture constraints independently from camera constraints. */
77
+ declare function buildRecorderScreenConstraints(settings: RecorderDeviceSettings): MediaTrackConstraints;
78
+ /** Build the audio-track constraints specific to getDisplayMedia. */
79
+ declare function buildRecorderScreenAudioConstraints(settings: RecorderDeviceSettings): MediaTrackConstraints;
80
+ /** Convert the form's kbps values to the bps values MediaRecorder expects. */
81
+ declare function recorderBitsPerSecond(value: number | undefined): number | undefined;
82
+
83
+ export { DEFAULT_RECORDER_DEVICE_SETTINGS as D, type RecorderDeviceSettings as R, type RecorderAudioDeviceSettings as a, type RecorderCameraDeviceSettings as b, type RecorderConstraintMode as c, type RecorderEncodingSettings as d, type RecorderScreenAudioSettings as e, type RecorderScreenDeviceSettings as f, buildRecorderAudioConstraints as g, buildRecorderCameraConstraints as h, buildRecorderScreenAudioConstraints as i, buildRecorderScreenConstraints as j, recorderBitsPerSecond as r };
@@ -1,6 +1,7 @@
1
1
  import {
2
- SPEECH_INPUT_SAMPLE_RATE
3
- } from "./chunk-DNEVUOBZ.js";
2
+ microphoneTakeAsWav
3
+ } from "./chunk-K56KR27T.js";
4
+ import "./chunk-DNEVUOBZ.js";
4
5
  import {
5
6
  DEFAULT_RECORDER_DEVICE_SETTINGS,
6
7
  buildRecorderAudioConstraints
@@ -320,137 +321,6 @@ function extendRecognitionPrompt(previous, transcript) {
320
321
  return (firstWhitespace >= 0 ? tail.slice(firstWhitespace + 1) : tail).trim();
321
322
  }
322
323
 
323
- // src/speech/speechAudioWav.ts
324
- async function microphoneTakeAsWav(blob) {
325
- const encoded = await blobBytes(blob);
326
- let audio;
327
- try {
328
- audio = await decodeAt16k(encoded);
329
- } catch (caught) {
330
- const detail = caught instanceof Error && caught.message ? ` (${caught.message})` : "";
331
- throw new Error(`This recording could not be prepared for speech recognition${detail}`);
332
- }
333
- const channels = Array.from(
334
- { length: audio.numberOfChannels },
335
- (_, index) => audio.getChannelData(index)
336
- );
337
- const mono = downmixToMono(channels);
338
- const samples = audio.sampleRate === SPEECH_INPUT_SAMPLE_RATE ? mono : resampleLinear(mono, audio.sampleRate, SPEECH_INPUT_SAMPLE_RATE);
339
- return encodeMonoPcm16Wav([samples], SPEECH_INPUT_SAMPLE_RATE).buffer;
340
- }
341
- function blobBytes(blob) {
342
- if (typeof blob.arrayBuffer === "function") return blob.arrayBuffer();
343
- return new Promise((resolve, reject) => {
344
- const reader = new FileReader();
345
- reader.onload = () => {
346
- const result = reader.result;
347
- if (result instanceof ArrayBuffer) resolve(result);
348
- else reject(new Error("The recording could not be read."));
349
- };
350
- reader.onerror = () => reject(reader.error ?? new Error("The recording could not be read."));
351
- reader.readAsArrayBuffer(blob);
352
- });
353
- }
354
- async function decodeAt16k(encoded) {
355
- if (typeof OfflineAudioContext !== "undefined") {
356
- let offline = null;
357
- try {
358
- offline = new OfflineAudioContext(1, 1, SPEECH_INPUT_SAMPLE_RATE);
359
- } catch {
360
- offline = null;
361
- }
362
- if (offline) return offline.decodeAudioData(encoded);
363
- }
364
- if (typeof AudioContext === "undefined") {
365
- throw new Error("Web Audio is unavailable");
366
- }
367
- const context = new AudioContext();
368
- try {
369
- return await context.decodeAudioData(encoded);
370
- } finally {
371
- await context.close().catch(() => void 0);
372
- }
373
- }
374
- function downmixToMono(channels) {
375
- const sampleCount = channels[0]?.length ?? 0;
376
- if (channels.length === 0 || sampleCount === 0) {
377
- throw new Error("The microphone recording was empty.");
378
- }
379
- if (channels.length === 1) return channels[0];
380
- if (channels.some((channel) => channel.length !== sampleCount)) {
381
- throw new Error("The microphone recording channels have different lengths.");
382
- }
383
- const mono = new Float32Array(sampleCount);
384
- for (let index = 0; index < sampleCount; index += 1) {
385
- let sum = 0;
386
- for (const channel of channels) sum += channel[index] ?? 0;
387
- mono[index] = sum / channels.length;
388
- }
389
- return mono;
390
- }
391
- function resampleLinear(samples, fromRate, toRate) {
392
- if (!Number.isFinite(fromRate) || fromRate <= 0 || !Number.isFinite(toRate) || toRate <= 0) {
393
- throw new Error("The microphone recording has an invalid sample rate.");
394
- }
395
- if (fromRate === toRate) return samples;
396
- const outputLength = Math.max(1, Math.round(samples.length * toRate / fromRate));
397
- const output = new Float32Array(outputLength);
398
- const step = fromRate / toRate;
399
- for (let index = 0; index < outputLength; index += 1) {
400
- const position = index * step;
401
- const left = Math.floor(position);
402
- const right = Math.min(left + 1, samples.length - 1);
403
- const fraction = position - left;
404
- const a = samples[Math.min(left, samples.length - 1)] ?? 0;
405
- const b = samples[right] ?? 0;
406
- output[index] = a + (b - a) * fraction;
407
- }
408
- return output;
409
- }
410
- function encodeMonoPcm16Wav(channels, sampleRate) {
411
- const sampleCount = channels[0]?.length ?? 0;
412
- if (channels.length === 0 || sampleCount === 0) {
413
- throw new Error("The microphone recording was empty.");
414
- }
415
- if (!Number.isFinite(sampleRate) || sampleRate <= 0) {
416
- throw new Error("The microphone recording has an invalid sample rate.");
417
- }
418
- if (channels.some((channel) => channel.length !== sampleCount)) {
419
- throw new Error("The microphone recording channels have different lengths.");
420
- }
421
- const rate = Math.round(sampleRate);
422
- const bytesPerSample = 2;
423
- const dataBytes = sampleCount * bytesPerSample;
424
- const buffer = new ArrayBuffer(44 + dataBytes);
425
- const view = new DataView(buffer);
426
- writeAscii(view, 0, "RIFF");
427
- view.setUint32(4, 36 + dataBytes, true);
428
- writeAscii(view, 8, "WAVE");
429
- writeAscii(view, 12, "fmt ");
430
- view.setUint32(16, 16, true);
431
- view.setUint16(20, 1, true);
432
- view.setUint16(22, 1, true);
433
- view.setUint32(24, rate, true);
434
- view.setUint32(28, rate * bytesPerSample, true);
435
- view.setUint16(32, bytesPerSample, true);
436
- view.setUint16(34, 16, true);
437
- writeAscii(view, 36, "data");
438
- view.setUint32(40, dataBytes, true);
439
- for (let index = 0; index < sampleCount; index += 1) {
440
- let mono = 0;
441
- for (const channel of channels) mono += channel[index] ?? 0;
442
- mono = Math.max(-1, Math.min(1, mono / channels.length));
443
- const pcm = mono < 0 ? Math.round(mono * 32768) : Math.round(mono * 32767);
444
- view.setInt16(44 + index * bytesPerSample, pcm, true);
445
- }
446
- return new Uint8Array(buffer);
447
- }
448
- function writeAscii(view, offset, value) {
449
- for (let index = 0; index < value.length; index += 1) {
450
- view.setUint8(offset + index, value.charCodeAt(index));
451
- }
452
- }
453
-
454
324
  // src/speech/dictationSession.ts
455
325
  function dictationAudioConstraints(settings = DEFAULT_RECORDER_DEVICE_SETTINGS) {
456
326
  return {
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-Cje1A3zN.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-Cje1A3zN.js';
1
+ import { C as CodeContext, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as EditorView$1, c as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-XyXxGPs4.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 FormulaSessionOptions, J as ImageDisplayMode, K as IngestedSidecar, L as InsertBlockOptions, M as LayoutMode, N as MentionCandidate, O as MentionProvider, P as OutlineBlock, Q as OutlineInsertion, R as PreviewPanel, T as PreviewPanelProps, U as RawEditor, V as RawEditorProps, W as ThemeInheritance, Y as ViewPreferences, Z as WriteCanvasSettings, _ as WysiwygEditor, $ as WysiwygEditorProps, a0 as XLSX_LOCKED_REASON, a1 as XlsxFormulaSession, a2 as applySourceEditsToText, a3 as blockInsertionPoint, a4 as createXlsxFormulaSession, a5 as getBlockSlices, a6 as headingDepthForInsertion, a7 as ingestSidecarBytes, a8 as joinBlockAt, a9 as lineToOffset, aa as minimalReplaceEdit, ab as normalizeSourceEdits, ac as offsetToLine, ad as resolveOutlineInsertion, ae as sliceIndexAtOffset, af as sourceOutline, ag as spliceBlock, ah as useEditorContext, ai as useEditorContextMenuItems, aj as useEditorInsertMenuItems } from './shell-XyXxGPs4.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';
@@ -10,31 +10,33 @@ import { CodeBlockCopyHandler, DisplayMode, CaptionStyle, VideoPresentation, Pip
10
10
  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
- import { MarkdownWrapState } from '@bendyline/squisq/markdown';
13
+ import { MarkdownWrapState, BlockVideoEmbed, VideoEmbed } from '@bendyline/squisq/markdown';
14
14
  export { MarkdownSourceEdit } from '@bendyline/squisq/markdown';
15
15
  import * as monaco_editor from 'monaco-editor';
16
+ import { editor } from 'monaco-editor';
16
17
  import { M as MonacoLanguageRequest, a as MonacoLanguageLoadOptions } from './monacoLanguageDetection-DEyUW-BS.js';
17
18
  export { MonacoWorkerConstructor, MonacoWorkerConstructors, configureMonacoWorkers } from './monaco-workers/index.js';
18
19
  import * as _tiptap_core from '@tiptap/core';
19
- import { Mark, Extension } from '@tiptap/core';
20
+ import { Mark, Extension, JSONContent, Editor as Editor$1 } from '@tiptap/core';
20
21
  import * as _tiptap_extension_heading from '@tiptap/extension-heading';
21
- import { DecorationSet } from '@tiptap/pm/view';
22
+ import { DecorationSet, EditorView } from '@tiptap/pm/view';
22
23
  import { Editor } from '@tiptap/react';
23
- import { Transaction, PluginKey } from '@tiptap/pm/state';
24
+ import { Transaction, PluginKey, EditorState } from '@tiptap/pm/state';
24
25
  import { Node } from '@tiptap/pm/model';
25
26
  import { RenderResult } from 'mermaid';
26
27
  import { FenceRendererMap } from '@bendyline/squisq/fence';
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, 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-DKN3vZPi.js';
31
- import { R as RecorderState } from './useNarrationStage-CB8dynUg.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-CB8dynUg.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-Civyq5SU.js';
32
+ import { R as RecorderState } from './useNarrationStage-DlighI1z.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-DlighI1z.js';
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';
33
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';
34
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-De4z-gGb.js';
35
37
  export { createHarperProofingProvider } from './proofing/index.js';
36
38
  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';
39
+ export { D as DictationControl, a as SPEECH_INPUT_SAMPLE_RATE, b as SpeechInputCapability, S as SpeechInputProvider, c as SpeechInputProviderFactory, d as SpeechInputReadiness, e as SpeechInputReadinessState, f as SpeechInputTranscribeOptions, g as SpeechInputTranscript, i as isSpeechInputProviderFactory, r as resolveSpeechInputProvider } from './types-Bi4ZVKvN.js';
38
40
  import '@bendyline/squisq-calc';
39
41
  import '@bendyline/squisq-formats/xlsx';
40
42
  import '@bendyline/squisq/versions';
@@ -43,6 +45,7 @@ import './types-C0puuw-M.js';
43
45
  import '@bendyline/squisq/review';
44
46
  import '@bendyline/squisq/imageEdit';
45
47
  import '@bendyline/squisq/jsonForm';
48
+ import './screenRegion-Ci_RsCzG.js';
46
49
  import '@bendyline/squisq/narration';
47
50
 
48
51
  /**
@@ -563,8 +566,18 @@ interface DocumentSettingsDialogProps {
563
566
  onSave: (nextSource: string) => void;
564
567
  /** Called when the dialog is dismissed (Cancel, Escape, backdrop click). */
565
568
  onClose: () => void;
569
+ /**
570
+ * Host default theme a document without its own theme inherits (see
571
+ * `EditorShell`'s `defaultThemeId`). When set, the Theme picker's default
572
+ * entry names it, and choosing any concrete theme — the built-in default
573
+ * included — is saved explicitly; only the default entry removes the key.
574
+ * Omitted: choosing the built-in default removes the key, as before.
575
+ */
576
+ defaultThemeId?: string;
577
+ /** Label for the Theme picker's default entry. Defaults to `'Default'`. */
578
+ defaultThemeLabel?: string;
566
579
  }
567
- declare function DocumentSettingsDialog({ markdownSource, onSave, onClose, }: DocumentSettingsDialogProps): react_jsx_runtime.JSX.Element;
580
+ declare function DocumentSettingsDialog({ markdownSource, onSave, onClose, defaultThemeId, defaultThemeLabel, }: DocumentSettingsDialogProps): react_jsx_runtime.JSX.Element;
568
581
 
569
582
  interface ThemePickerProps {
570
583
  /** Currently selected theme id. Empty string represents "default". */
@@ -579,6 +592,16 @@ interface ThemePickerProps {
579
592
  * "no explicit theme" (frontmatter omits the key entirely).
580
593
  */
581
594
  includeDefault?: boolean;
595
+ /**
596
+ * Theme the "Default" entry stands for — a host default that a document
597
+ * without its own theme inherits. When set (with `includeDefault`), the
598
+ * entry and the trigger preview this theme and read
599
+ * `"<defaultLabel> (<theme name>)"`. Built-in ids and ids from
600
+ * `customThemes` are recognized; other ids are shown by id.
601
+ */
602
+ defaultThemeId?: string;
603
+ /** Label for the "Default" entry (e.g. a host's "Workspace default"). Defaults to `'Default'`. */
604
+ defaultLabel?: string;
582
605
  /**
583
606
  * `'compact'` (default) renders a small toolbar trigger; `'full'`
584
607
  * stretches to fill the parent and is sized for dialog layouts.
@@ -599,7 +622,7 @@ interface ThemePickerProps {
599
622
  /** Per-custom-card delete affordance. */
600
623
  onDeleteCustom?: (id: string) => void;
601
624
  }
602
- declare function ThemePicker({ value, onChange, includeDefault, variant, ariaLabel, customThemes, onCreateCustom, onEditCustom, onDeleteCustom, }: ThemePickerProps): react_jsx_runtime.JSX.Element;
625
+ declare function ThemePicker({ value, onChange, includeDefault, defaultThemeId, defaultLabel, variant, ariaLabel, customThemes, onCreateCustom, onEditCustom, onDeleteCustom, }: ThemePickerProps): react_jsx_runtime.JSX.Element;
603
626
 
604
627
  interface CustomThemeContextValue {
605
628
  /** Themes inlined into the current doc's frontmatter. */
@@ -769,6 +792,17 @@ interface ImportThemeSectionProps {
769
792
  }
770
793
  declare function ImportThemeSection({ onImported, allowLayouts }: ImportThemeSectionProps): react_jsx_runtime.JSX.Element;
771
794
 
795
+ /**
796
+ * Dropdown trigger rendered directly beside the Use tab. Selecting a mode
797
+ * also enters the Use view, so the menu works from Write and Source as well
798
+ * as from an already-active preview.
799
+ */
800
+ interface PreviewModeMenuProps {
801
+ /** Incremented by the parent to open the menu from another control. */
802
+ openRequest?: number;
803
+ }
804
+ declare function PreviewModeMenu({ openRequest }: PreviewModeMenuProps): react_jsx_runtime.JSX.Element;
805
+
772
806
  /** Caption selection: off, or one of the two enabled styles. */
773
807
  type CaptionMode = 'off' | CaptionStyle;
774
808
  interface PreviewSettings {
@@ -778,8 +812,32 @@ interface PreviewSettings {
778
812
  activeDisplayMode: DisplayMode;
779
813
  setSelectedDisplayMode: (mode: DisplayMode | null) => void;
780
814
  activeThemeId: string;
815
+ /**
816
+ * Choose the document theme. A theme id is persisted to `squisq-theme`
817
+ * (see {@link inheritedThemeId} for when the built-in default is written);
818
+ * `''` removes the key so the document follows the inherited default;
819
+ * `null` only drops an unsaved in-session selection.
820
+ */
781
821
  setSelectedThemeId: (id: string | null) => void;
782
822
  activeTheme: Theme;
823
+ /**
824
+ * The theme the document itself chose — the in-session selection or its
825
+ * frontmatter `squisq-theme` (legacy `themeId` / `theme`). `null` when the
826
+ * document names no known theme and renders with {@link inheritedThemeId}
827
+ * (or the built-in default).
828
+ */
829
+ explicitThemeId: string | null;
830
+ /**
831
+ * The host default theme (`EditorShell`'s `defaultThemeId`) resolved to a
832
+ * known theme id: what a document without its own theme renders with.
833
+ * `undefined` when the host supplies no default. While a host default is
834
+ * present, choosing any concrete theme — the built-in default included —
835
+ * is written to frontmatter, and theme pickers offer a
836
+ * "`inheritedThemeLabel` (<theme name>)" entry that removes the key.
837
+ */
838
+ inheritedThemeId: string | undefined;
839
+ /** Label for the inherited-default picker entry (host-overridable; default `'Default'`). */
840
+ inheritedThemeLabel: string;
783
841
  activeTransformStyle: string;
784
842
  setSelectedTransformStyle: (id: string | null) => void;
785
843
  /** The caption style used when captions are enabled. */
@@ -876,8 +934,20 @@ interface PreviewSettingsProviderProps {
876
934
  * present, `activeTheme` is this value and `activeThemeId` is its `id`.
877
935
  */
878
936
  themeOverride?: Theme | null;
937
+ /**
938
+ * Host default theme for a document whose frontmatter names no theme
939
+ * (`squisq-theme` / legacy `themeId` / `theme`). A document's own theme
940
+ * always wins; built-in and custom-theme ids are accepted. Unlike
941
+ * `themeOverride`, this never overrides the document.
942
+ */
943
+ defaultThemeId?: string;
944
+ /**
945
+ * Label for the picker entry that follows {@link defaultThemeId}, rendered
946
+ * as `"<label> (<theme name>)"`. Defaults to `'Default'`.
947
+ */
948
+ defaultThemeLabel?: string;
879
949
  }
880
- declare function PreviewSettingsProvider({ doc, children, defaultViewportPreset, themeOverride, }: PreviewSettingsProviderProps): react_jsx_runtime.JSX.Element;
950
+ declare function PreviewSettingsProvider({ doc, children, defaultViewportPreset, themeOverride, defaultThemeId, defaultThemeLabel, }: PreviewSettingsProviderProps): react_jsx_runtime.JSX.Element;
881
951
  interface PreviewToolbarControlsProps {
882
952
  /**
883
953
  * Display mode whose applicable control set should be rendered. Defaults to
@@ -885,24 +955,16 @@ interface PreviewToolbarControlsProps {
885
955
  * setting still writes through the shared preview-settings context.
886
956
  */
887
957
  displayMode?: DisplayMode;
958
+ /** Optional designer for the current document's slide summarization. */
959
+ summarizationDesigner?: (onClose: () => void) => ReactNode;
888
960
  }
889
- declare function PreviewToolbarControls({ displayMode }?: PreviewToolbarControlsProps): react_jsx_runtime.JSX.Element;
961
+ declare function PreviewToolbarControls({ displayMode, summarizationDesigner, }?: PreviewToolbarControlsProps): react_jsx_runtime.JSX.Element;
890
962
  /**
891
963
  * Segmented display-mode switch retained as a public, embeddable control.
892
964
  * The editor shell uses {@link PreviewModeMenu} beside its Use tab instead.
893
965
  * Narrate is hidden when the host disables `allowNarrate`.
894
966
  */
895
967
  declare function PreviewModeSwitch(): react_jsx_runtime.JSX.Element;
896
- /**
897
- * Dropdown trigger rendered directly beside the Use tab. Selecting a mode
898
- * also enters the Use view, so the menu works from Write and Source as well
899
- * as from an already-active preview.
900
- */
901
- interface PreviewModeMenuProps {
902
- /** Incremented by the parent to open the menu from another control. */
903
- openRequest?: number;
904
- }
905
- declare function PreviewModeMenu({ openRequest }: PreviewModeMenuProps): react_jsx_runtime.JSX.Element;
906
968
  /**
907
969
  * Segmented aspect-ratio switch (16:9 / 1:1 / 9:16 / 4:3), used inline in the
908
970
  * Use toolbar and inside its overflow popover. Reads and writes the same
@@ -2967,6 +3029,133 @@ interface DataCardWidgetProps {
2967
3029
  }
2968
3030
  declare function DataCardWidget({ editor, blockId, getMediaProvider, getMediaRevision, getContainer, onOpenFiles, onMediaSaved, getCalcEngineFactory, }: DataCardWidgetProps): ReactElement | null;
2969
3031
 
3032
+ /**
3033
+ * VideoEmbedExtension — the Write view's inline player for hosted videos.
3034
+ *
3035
+ * A top-level paragraph that is nothing but a link (or bare URL) to a
3036
+ * YouTube, Vimeo, Loom, Dailymotion or Wistia page gets the provider's player
3037
+ * mounted ABOVE it. The paragraph itself stays in the document, visible and
3038
+ * editable, styled as the player's caption: edit its text to retitle the
3039
+ * video, edit the link (or the URL) to change it, delete it to remove the
3040
+ * player. Nothing about the video is stored anywhere but that paragraph, so
3041
+ * markdown round-trips byte-identically with the extension active.
3042
+ *
3043
+ * Structurally a sibling of `dataCard/DataCardExtension`: the same paragraph
3044
+ * position registry (`mapFenceEntries`) gives each player a stable session id,
3045
+ * so typing elsewhere never reloads an iframe. The widget is keyed by that id
3046
+ * PLUS the embed URL, so changing the link swaps the player.
3047
+ *
3048
+ * A raw `<iframe>` embed line (pasted into the Source view, or written by
3049
+ * another tool) plays too; its caption is the HTML, and the player offers to
3050
+ * rewrite it as a plain link.
3051
+ */
3052
+
3053
+ type VideoEmbedBlockEntry = FenceBlockEntry;
3054
+ interface VideoEmbedPluginState {
3055
+ entries: VideoEmbedBlockEntry[];
3056
+ decorations: DecorationSet;
3057
+ seq: number;
3058
+ }
3059
+ interface VideoEmbedExtensionOptions {
3060
+ /** When false, the extension is inert and video links stay plain links. */
3061
+ enabled?: boolean;
3062
+ }
3063
+ declare const VIDEO_EMBED_KEY: PluginKey<VideoEmbedPluginState>;
3064
+ /** Document position of a registered video paragraph, by session id. */
3065
+ declare function findVideoEmbedBlockPos(state: EditorState, blockId: string): number | null;
3066
+ /**
3067
+ * Rewrite a raw `<iframe>` embed paragraph as the plain-link form, in one
3068
+ * undoable transaction. False when the block is gone or no longer HTML.
3069
+ */
3070
+ declare function convertVideoEmbedToLink(view: EditorView, blockId: string): boolean;
3071
+ declare const VideoEmbedExtension: Extension<VideoEmbedExtensionOptions, any>;
3072
+
3073
+ /**
3074
+ * The Write view's reading of a hosted-video paragraph — the ProseMirror twin
3075
+ * of core's `findBlockVideoEmbed`, over what `tiptapBridge` makes of each
3076
+ * authored form:
3077
+ *
3078
+ * - `[title](url)` → text carrying one link mark;
3079
+ * - a bare URL, or the `<url>` autolink → plain text (the bridge does not
3080
+ * autolink; Tiptap's autolink may add a mark later, which is also fine);
3081
+ * - a raw `<iframe …>` embed snippet on its own line → plain text holding
3082
+ * the HTML.
3083
+ *
3084
+ * Plus the inverse: the paragraph node the editor writes for a video, which
3085
+ * the bridge serializes as `[title](watchUrl)` or the bare watch URL.
3086
+ */
3087
+
3088
+ /**
3089
+ * The hosted video a paragraph stands for, or null. Every non-blank run must
3090
+ * carry the SAME link, or none may — a link with prose beside it is a link.
3091
+ */
3092
+ declare function videoEmbedOfParagraph(node: Node): BlockVideoEmbed | null;
3093
+ /** The paragraph content the editor writes for a video. */
3094
+ declare function videoEmbedParagraphJson(watchUrl: string, title?: string | null): JSONContent;
3095
+ /**
3096
+ * The markdown source the editor writes for a video: `[title](watchUrl)`, or
3097
+ * the bare watch URL when untitled (GFM autolinks it; core reads the
3098
+ * paragraph's text, so an autolink that stops short of an id's trailing `_`
3099
+ * still plays).
3100
+ */
3101
+ declare function videoEmbedMarkdown(watchUrl: string, title?: string | null): string;
3102
+
3103
+ /**
3104
+ * Pasting a provider's embed code into the Write view.
3105
+ *
3106
+ * YouTube's Share → Embed (and Vimeo's, Loom's …) copies an `<iframe>`
3107
+ * snippet. Pasted as-is it would land as a paragraph of literal HTML; instead
3108
+ * it becomes the paragraph-that-is-only-a-link form — a link to the video's
3109
+ * page — which `VideoEmbedExtension` plays and every other renderer shows as a
3110
+ * link. A pasted bare URL needs no help: it lands as a URL (Tiptap autolinks
3111
+ * it), and on an empty line that is already the embed form.
3112
+ */
3113
+
3114
+ /** Handle a Write-view paste of embed code; false leaves the paste to others. */
3115
+ declare function pasteVideoEmbedCode(view: EditorView, text: string): boolean;
3116
+
3117
+ interface VideoEmbedDialogProps {
3118
+ /** A new video (Insert) or the one under the caret (Update). */
3119
+ mode: 'insert' | 'update';
3120
+ /** Initial URL / embed code. */
3121
+ initialInput: string;
3122
+ /** Initial title. */
3123
+ initialTitle: string;
3124
+ /** Confirm with the recognized video and the (trimmed, possibly empty) title. */
3125
+ onConfirm: (embed: VideoEmbed, title: string) => void;
3126
+ /** Dismiss without changes. */
3127
+ onClose: () => void;
3128
+ }
3129
+ declare function VideoEmbedDialog({ mode, initialInput, initialTitle, onConfirm, onClose, }: VideoEmbedDialogProps): react_jsx_runtime.JSX.Element;
3130
+
3131
+ /**
3132
+ * Putting a stored file into the document, in whichever view is active.
3133
+ *
3134
+ * An image becomes an image; video and audio become playable `<video>` /
3135
+ * `<audio>` players (the representation the recorder writes, which every
3136
+ * renderer swaps for an inline player); a data file (csv/tsv/xlsx/parquet)
3137
+ * becomes a sidecar reference block the Write view shows as a live grid; and
3138
+ * anything else becomes a link to the file. The Insert menu's Image/Media and
3139
+ * File items, file drops and Files-panel uploads all come through here, so
3140
+ * they can never disagree about what a given file turns into. A hosted video
3141
+ * (Insert → Online Video) is the one reference with no stored file: a
3142
+ * paragraph that is only a link to the video's page.
3143
+ */
3144
+
3145
+ interface MediaInsertionTarget {
3146
+ activeView: EditorView$1;
3147
+ tiptapEditor: Editor$1 | null;
3148
+ monacoEditor: editor.IStandaloneCodeEditor | null;
3149
+ /** Used when no editing surface is live (the Use tab): append to the source. */
3150
+ appendMarkdown: (snippet: string) => void;
3151
+ }
3152
+ /**
3153
+ * Insert a hosted video (YouTube, Vimeo, …) as its own top-level paragraph:
3154
+ * `[title](watchUrl)`, or the bare URL when untitled. Renderers that know the
3155
+ * convention play it; everything else shows a link.
3156
+ */
3157
+ declare function insertVideoEmbedReference(target: MediaInsertionTarget, watchUrl: string, title?: string | null): void;
3158
+
2970
3159
  /**
2971
3160
  * Data preview loading for the Write-view data card: bytes → a small
2972
3161
  * `DataPreview` window via the formats data readers, loaded lazily so a
@@ -3362,4 +3551,4 @@ declare function unshownSlidesWarning(total: number, unshown: number): string |
3362
3551
  /** The exact label of the review-state block-timings checkbox. */
3363
3552
  declare const SLIDE_TIMING_CHECKBOX_LABEL = "Update block timings when I save this narration";
3364
3553
 
3365
- 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 };
3554
+ 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, 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, VIDEO_EMBED_KEY, VersionHistoryPanel, type VideoEmbedBlockEntry, VideoEmbedDialog, type VideoEmbedDialogProps, VideoEmbedExtension, type VideoEmbedExtensionOptions, type VideoEmbedPluginState, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, XlsxSourceMeta, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, convertVideoEmbedToLink, dataExtensionOf, dataLinkHrefOf, detectLanguageFromFileName, draftPatchFromImportedTheme, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findDataCardBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findOwningHeadingPosition, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, findVideoEmbedBlockPos, formatSeconds, getTimelineForNode, indentItemOp, ingestForWrite, insertVideoEmbedReference, 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, pasteVideoEmbedCode, 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, videoEmbedMarkdown, videoEmbedOfParagraph, videoEmbedParagraphJson, viewStateFromBinding, writeHeadingViewState };