@bendyline/squisq-editor-react 2.11.19 → 2.11.20

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-DTefmCBG.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-DTefmCBG.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. */
@@ -778,8 +801,32 @@ interface PreviewSettings {
778
801
  activeDisplayMode: DisplayMode;
779
802
  setSelectedDisplayMode: (mode: DisplayMode | null) => void;
780
803
  activeThemeId: string;
804
+ /**
805
+ * Choose the document theme. A theme id is persisted to `squisq-theme`
806
+ * (see {@link inheritedThemeId} for when the built-in default is written);
807
+ * `''` removes the key so the document follows the inherited default;
808
+ * `null` only drops an unsaved in-session selection.
809
+ */
781
810
  setSelectedThemeId: (id: string | null) => void;
782
811
  activeTheme: Theme;
812
+ /**
813
+ * The theme the document itself chose — the in-session selection or its
814
+ * frontmatter `squisq-theme` (legacy `themeId` / `theme`). `null` when the
815
+ * document names no known theme and renders with {@link inheritedThemeId}
816
+ * (or the built-in default).
817
+ */
818
+ explicitThemeId: string | null;
819
+ /**
820
+ * The host default theme (`EditorShell`'s `defaultThemeId`) resolved to a
821
+ * known theme id: what a document without its own theme renders with.
822
+ * `undefined` when the host supplies no default. While a host default is
823
+ * present, choosing any concrete theme — the built-in default included —
824
+ * is written to frontmatter, and theme pickers offer a
825
+ * "`inheritedThemeLabel` (<theme name>)" entry that removes the key.
826
+ */
827
+ inheritedThemeId: string | undefined;
828
+ /** Label for the inherited-default picker entry (host-overridable; default `'Default'`). */
829
+ inheritedThemeLabel: string;
783
830
  activeTransformStyle: string;
784
831
  setSelectedTransformStyle: (id: string | null) => void;
785
832
  /** The caption style used when captions are enabled. */
@@ -876,8 +923,20 @@ interface PreviewSettingsProviderProps {
876
923
  * present, `activeTheme` is this value and `activeThemeId` is its `id`.
877
924
  */
878
925
  themeOverride?: Theme | null;
926
+ /**
927
+ * Host default theme for a document whose frontmatter names no theme
928
+ * (`squisq-theme` / legacy `themeId` / `theme`). A document's own theme
929
+ * always wins; built-in and custom-theme ids are accepted. Unlike
930
+ * `themeOverride`, this never overrides the document.
931
+ */
932
+ defaultThemeId?: string;
933
+ /**
934
+ * Label for the picker entry that follows {@link defaultThemeId}, rendered
935
+ * as `"<label> (<theme name>)"`. Defaults to `'Default'`.
936
+ */
937
+ defaultThemeLabel?: string;
879
938
  }
880
- declare function PreviewSettingsProvider({ doc, children, defaultViewportPreset, themeOverride, }: PreviewSettingsProviderProps): react_jsx_runtime.JSX.Element;
939
+ declare function PreviewSettingsProvider({ doc, children, defaultViewportPreset, themeOverride, defaultThemeId, defaultThemeLabel, }: PreviewSettingsProviderProps): react_jsx_runtime.JSX.Element;
881
940
  interface PreviewToolbarControlsProps {
882
941
  /**
883
942
  * Display mode whose applicable control set should be rendered. Defaults to
@@ -2967,6 +3026,133 @@ interface DataCardWidgetProps {
2967
3026
  }
2968
3027
  declare function DataCardWidget({ editor, blockId, getMediaProvider, getMediaRevision, getContainer, onOpenFiles, onMediaSaved, getCalcEngineFactory, }: DataCardWidgetProps): ReactElement | null;
2969
3028
 
3029
+ /**
3030
+ * VideoEmbedExtension — the Write view's inline player for hosted videos.
3031
+ *
3032
+ * A top-level paragraph that is nothing but a link (or bare URL) to a
3033
+ * YouTube, Vimeo, Loom, Dailymotion or Wistia page gets the provider's player
3034
+ * mounted ABOVE it. The paragraph itself stays in the document, visible and
3035
+ * editable, styled as the player's caption: edit its text to retitle the
3036
+ * video, edit the link (or the URL) to change it, delete it to remove the
3037
+ * player. Nothing about the video is stored anywhere but that paragraph, so
3038
+ * markdown round-trips byte-identically with the extension active.
3039
+ *
3040
+ * Structurally a sibling of `dataCard/DataCardExtension`: the same paragraph
3041
+ * position registry (`mapFenceEntries`) gives each player a stable session id,
3042
+ * so typing elsewhere never reloads an iframe. The widget is keyed by that id
3043
+ * PLUS the embed URL, so changing the link swaps the player.
3044
+ *
3045
+ * A raw `<iframe>` embed line (pasted into the Source view, or written by
3046
+ * another tool) plays too; its caption is the HTML, and the player offers to
3047
+ * rewrite it as a plain link.
3048
+ */
3049
+
3050
+ type VideoEmbedBlockEntry = FenceBlockEntry;
3051
+ interface VideoEmbedPluginState {
3052
+ entries: VideoEmbedBlockEntry[];
3053
+ decorations: DecorationSet;
3054
+ seq: number;
3055
+ }
3056
+ interface VideoEmbedExtensionOptions {
3057
+ /** When false, the extension is inert and video links stay plain links. */
3058
+ enabled?: boolean;
3059
+ }
3060
+ declare const VIDEO_EMBED_KEY: PluginKey<VideoEmbedPluginState>;
3061
+ /** Document position of a registered video paragraph, by session id. */
3062
+ declare function findVideoEmbedBlockPos(state: EditorState, blockId: string): number | null;
3063
+ /**
3064
+ * Rewrite a raw `<iframe>` embed paragraph as the plain-link form, in one
3065
+ * undoable transaction. False when the block is gone or no longer HTML.
3066
+ */
3067
+ declare function convertVideoEmbedToLink(view: EditorView, blockId: string): boolean;
3068
+ declare const VideoEmbedExtension: Extension<VideoEmbedExtensionOptions, any>;
3069
+
3070
+ /**
3071
+ * The Write view's reading of a hosted-video paragraph — the ProseMirror twin
3072
+ * of core's `findBlockVideoEmbed`, over what `tiptapBridge` makes of each
3073
+ * authored form:
3074
+ *
3075
+ * - `[title](url)` → text carrying one link mark;
3076
+ * - a bare URL, or the `<url>` autolink → plain text (the bridge does not
3077
+ * autolink; Tiptap's autolink may add a mark later, which is also fine);
3078
+ * - a raw `<iframe …>` embed snippet on its own line → plain text holding
3079
+ * the HTML.
3080
+ *
3081
+ * Plus the inverse: the paragraph node the editor writes for a video, which
3082
+ * the bridge serializes as `[title](watchUrl)` or the bare watch URL.
3083
+ */
3084
+
3085
+ /**
3086
+ * The hosted video a paragraph stands for, or null. Every non-blank run must
3087
+ * carry the SAME link, or none may — a link with prose beside it is a link.
3088
+ */
3089
+ declare function videoEmbedOfParagraph(node: Node): BlockVideoEmbed | null;
3090
+ /** The paragraph content the editor writes for a video. */
3091
+ declare function videoEmbedParagraphJson(watchUrl: string, title?: string | null): JSONContent;
3092
+ /**
3093
+ * The markdown source the editor writes for a video: `[title](watchUrl)`, or
3094
+ * the bare watch URL when untitled (GFM autolinks it; core reads the
3095
+ * paragraph's text, so an autolink that stops short of an id's trailing `_`
3096
+ * still plays).
3097
+ */
3098
+ declare function videoEmbedMarkdown(watchUrl: string, title?: string | null): string;
3099
+
3100
+ /**
3101
+ * Pasting a provider's embed code into the Write view.
3102
+ *
3103
+ * YouTube's Share → Embed (and Vimeo's, Loom's …) copies an `<iframe>`
3104
+ * snippet. Pasted as-is it would land as a paragraph of literal HTML; instead
3105
+ * it becomes the paragraph-that-is-only-a-link form — a link to the video's
3106
+ * page — which `VideoEmbedExtension` plays and every other renderer shows as a
3107
+ * link. A pasted bare URL needs no help: it lands as a URL (Tiptap autolinks
3108
+ * it), and on an empty line that is already the embed form.
3109
+ */
3110
+
3111
+ /** Handle a Write-view paste of embed code; false leaves the paste to others. */
3112
+ declare function pasteVideoEmbedCode(view: EditorView, text: string): boolean;
3113
+
3114
+ interface VideoEmbedDialogProps {
3115
+ /** A new video (Insert) or the one under the caret (Update). */
3116
+ mode: 'insert' | 'update';
3117
+ /** Initial URL / embed code. */
3118
+ initialInput: string;
3119
+ /** Initial title. */
3120
+ initialTitle: string;
3121
+ /** Confirm with the recognized video and the (trimmed, possibly empty) title. */
3122
+ onConfirm: (embed: VideoEmbed, title: string) => void;
3123
+ /** Dismiss without changes. */
3124
+ onClose: () => void;
3125
+ }
3126
+ declare function VideoEmbedDialog({ mode, initialInput, initialTitle, onConfirm, onClose, }: VideoEmbedDialogProps): react_jsx_runtime.JSX.Element;
3127
+
3128
+ /**
3129
+ * Putting a stored file into the document, in whichever view is active.
3130
+ *
3131
+ * An image becomes an image; video and audio become playable `<video>` /
3132
+ * `<audio>` players (the representation the recorder writes, which every
3133
+ * renderer swaps for an inline player); a data file (csv/tsv/xlsx/parquet)
3134
+ * becomes a sidecar reference block the Write view shows as a live grid; and
3135
+ * anything else becomes a link to the file. The Insert menu's Image/Media and
3136
+ * File items, file drops and Files-panel uploads all come through here, so
3137
+ * they can never disagree about what a given file turns into. A hosted video
3138
+ * (Insert → Online Video) is the one reference with no stored file: a
3139
+ * paragraph that is only a link to the video's page.
3140
+ */
3141
+
3142
+ interface MediaInsertionTarget {
3143
+ activeView: EditorView$1;
3144
+ tiptapEditor: Editor$1 | null;
3145
+ monacoEditor: editor.IStandaloneCodeEditor | null;
3146
+ /** Used when no editing surface is live (the Use tab): append to the source. */
3147
+ appendMarkdown: (snippet: string) => void;
3148
+ }
3149
+ /**
3150
+ * Insert a hosted video (YouTube, Vimeo, …) as its own top-level paragraph:
3151
+ * `[title](watchUrl)`, or the bare URL when untitled. Renderers that know the
3152
+ * convention play it; everything else shows a link.
3153
+ */
3154
+ declare function insertVideoEmbedReference(target: MediaInsertionTarget, watchUrl: string, title?: string | null): void;
3155
+
2970
3156
  /**
2971
3157
  * Data preview loading for the Write-view data card: bytes → a small
2972
3158
  * `DataPreview` window via the formats data readers, loaded lazily so a
@@ -3362,4 +3548,4 @@ declare function unshownSlidesWarning(total: number, unshown: number): string |
3362
3548
  /** The exact label of the review-state block-timings checkbox. */
3363
3549
  declare const SLIDE_TIMING_CHECKBOX_LABEL = "Update block timings when I save this narration";
3364
3550
 
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 };
3551
+ 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 };