@bendyline/squisq-editor-react 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/dist/index.d.ts +579 -47
- package/dist/index.js +7477 -2943
- package/dist/index.js.map +1 -1
- package/dist/styles/index.css +1008 -38
- package/package.json +6 -5
- package/src/DocumentSettingsDialog.tsx +32 -18
- package/src/EditorContext.tsx +27 -0
- package/src/EditorShell.tsx +25 -1
- package/src/PreviewControls.tsx +77 -29
- package/src/PreviewPanel.tsx +5 -1
- package/src/RawEditor.tsx +12 -0
- package/src/RecorderEntry.tsx +5 -0
- package/src/Toolbar.tsx +479 -36
- package/src/WysiwygEditor.tsx +25 -11
- package/src/__tests__/buildPreviewDocContent.test.ts +17 -0
- package/src/__tests__/codeContextSectionView.test.tsx +8 -6
- package/src/__tests__/documentSettingsDialog.test.tsx +22 -0
- package/src/__tests__/editorShellProps.test.tsx +65 -0
- package/src/__tests__/findMode.test.tsx +104 -0
- package/src/__tests__/findModel.test.ts +55 -0
- package/src/__tests__/markdownCodeFence.test.ts +45 -0
- package/src/__tests__/mediaAttachmentFlow.test.ts +2 -2
- package/src/__tests__/mediaReferences.test.ts +15 -0
- package/src/__tests__/previewControls.test.tsx +195 -0
- package/src/__tests__/recorderTheme.test.tsx +42 -0
- package/src/__tests__/selectionConversions.test.ts +80 -0
- package/src/__tests__/tiptapBridge.test.ts +57 -7
- package/src/__tests__/tiptapImageRoundTrip.test.ts +1 -1
- package/src/__tests__/toolbarSelectionConversion.test.tsx +190 -0
- package/src/__tests__/writeCanvasSettings.test.ts +15 -0
- package/src/asciiDiagram/AsciiDiagramWidget.tsx +34 -4
- package/src/asciiDiagram/__tests__/AsciiDiagramExtension.test.ts +20 -1
- package/src/asciiDiagram/__tests__/asciiDiagramCommands.test.ts +58 -1
- package/src/asciiDiagram/asciiDiagramCommands.ts +36 -10
- package/src/asciiDiagram/asciiDiagramData.ts +33 -0
- package/src/asciiDiagram/asciiDiagramOps.ts +19 -0
- package/src/buildPreviewDoc.ts +9 -7
- package/src/codeContext/types.ts +1 -1
- package/src/codeSnippet/CodeSnippetExtension.ts +205 -0
- package/src/codeSnippet/CodeSnippetWidget.tsx +109 -0
- package/src/codeSnippet/__tests__/CodeSnippetExtension.test.ts +95 -0
- package/src/codeSnippet/__tests__/codeSnippetLanguages.test.ts +50 -0
- package/src/codeSnippet/codeSnippetCommands.ts +21 -0
- package/src/codeSnippet/codeSnippetData.ts +43 -0
- package/src/codeSnippet/codeSnippetLanguages.ts +216 -0
- package/src/customTemplates/__tests__/useMemoryLayerAdapter.test.ts +13 -0
- package/src/customTemplates/useMemoryLayerAdapter.ts +7 -1
- package/src/diagram/DiagramCanvas.tsx +17 -2
- package/src/find/FindHighlightExtension.ts +81 -0
- package/src/find/FindToolbar.tsx +314 -0
- package/src/find/findModel.ts +77 -0
- package/src/frontmatterSettings.ts +23 -0
- package/src/index.ts +96 -1
- package/src/markdownCodeFence.ts +72 -0
- package/src/mediaReferences.ts +5 -3
- package/src/mermaid/MermaidDiagramCanvas.tsx +693 -0
- package/src/mermaid/MermaidDiagramExtension.ts +243 -0
- package/src/mermaid/MermaidDiagramTypeThumbnail.tsx +184 -0
- package/src/mermaid/MermaidDiagramWidget.tsx +653 -0
- package/src/mermaid/MermaidShapePalette.tsx +245 -0
- package/src/mermaid/__tests__/MermaidDiagramExtension.test.ts +361 -0
- package/src/mermaid/__tests__/mermaidDiagramTypes.test.ts +35 -0
- package/src/mermaid/__tests__/mermaidRenderer.test.ts +49 -0
- package/src/mermaid/__tests__/mermaidSourceOps.test.ts +213 -0
- package/src/mermaid/__tests__/mermaidSyntax.test.ts +71 -0
- package/src/mermaid/mermaidCommands.ts +34 -0
- package/src/mermaid/mermaidData.ts +31 -0
- package/src/mermaid/mermaidDiagramTypes.ts +325 -0
- package/src/mermaid/mermaidModel.ts +31 -0
- package/src/mermaid/mermaidRenderer.ts +181 -0
- package/src/mermaid/mermaidShapes.ts +113 -0
- package/src/mermaid/mermaidSourceOps.ts +454 -0
- package/src/recorder/RecorderButton.tsx +9 -1
- package/src/recorder/RecorderModal.tsx +84 -41
- package/src/recorder/RecorderPanel.tsx +9 -1
- package/src/scene/Scene.tsx +46 -15
- package/src/scene/SceneBlockToolbar.tsx +29 -14
- package/src/scene/SceneViewControls.tsx +43 -0
- package/src/scene/__tests__/fitScale.test.ts +19 -0
- package/src/scene/__tests__/sceneIsolation.test.tsx +27 -1
- package/src/scene/__tests__/useScenePanZoom.test.ts +28 -1
- package/src/scene/adapters/DrawingAdapter.ts +6 -1
- package/src/scene/adapters/LayoutAdapter.ts +3 -0
- package/src/scene/commands/SceneCommand.ts +13 -2
- package/src/scene/fitScale.ts +17 -0
- package/src/scene/hooks/useScenePanZoom.ts +11 -4
- package/src/scene/scene.css +85 -3
- package/src/scene/tools/SelectTool.ts +5 -5
- package/src/selectionConversions.ts +155 -0
- package/src/styles/ascii-timeline.css +101 -4
- package/src/styles/code-snippet.css +76 -0
- package/src/styles/editor.css +352 -2
- package/src/styles/index.css +2 -0
- package/src/styles/mermaid-diagram.css +487 -0
- package/src/styles/tree-view.css +51 -1
- package/src/timeline/TimelineEditorWidget.tsx +200 -41
- package/src/timeline/__tests__/TimelineEditorWidget.test.tsx +61 -2
- package/src/timeline/__tests__/timelineCommands.test.ts +32 -0
- package/src/timeline/__tests__/timelineOps.test.ts +55 -0
- package/src/timeline/timelineCommands.ts +54 -0
- package/src/timeline/timelineOps.ts +107 -3
- package/src/tiptapBridge.ts +23 -5
- package/src/treeview/TreeOutlineWidget.tsx +153 -3
- package/src/treeview/__tests__/TreeOutlineWidget.test.tsx +156 -0
- package/src/treeview/__tests__/treeOps.test.ts +52 -0
- package/src/treeview/__tests__/treeViewCommands.test.ts +16 -0
- package/src/treeview/treeOps.ts +59 -0
- package/src/treeview/treeViewCommands.ts +5 -0
- package/src/writeCanvasSettings.ts +30 -0
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ import { DecorationSet } from '@tiptap/pm/view';
|
|
|
17
17
|
import { Editor as Editor$1 } from '@tiptap/react';
|
|
18
18
|
import { PluginKey } from '@tiptap/pm/state';
|
|
19
19
|
import { Node } from '@tiptap/pm/model';
|
|
20
|
+
import { RenderResult } from 'mermaid';
|
|
20
21
|
import { SquisqAnnotatedSchema, JsonFormValidator, JsonFormValidationError } from '@bendyline/squisq/jsonForm';
|
|
21
22
|
import { NarrationTrace, NarrationAlignment, NarrationScript, NarrationTimingJsonV3, VadConfig } from '@bendyline/squisq/narration';
|
|
22
23
|
import { ImageEditExportFormat, ImageEditVersionManager } from '@bendyline/squisq/imageEdit';
|
|
@@ -153,6 +154,8 @@ interface EditorState {
|
|
|
153
154
|
colorScheme: EditorColorScheme;
|
|
154
155
|
/** Operating mode — 'markdown' for the full shell, 'code' for Monaco-only. */
|
|
155
156
|
editorMode: EditorMode;
|
|
157
|
+
/** Whether the host-triggered Find toolbar is active. */
|
|
158
|
+
findMode: boolean;
|
|
156
159
|
/** Monaco language ID for the Raw editor. */
|
|
157
160
|
language: string;
|
|
158
161
|
/**
|
|
@@ -262,6 +265,8 @@ interface EditorActions {
|
|
|
262
265
|
setMarkdownDoc: (doc: MarkdownDocument) => void;
|
|
263
266
|
/** Switch the active view */
|
|
264
267
|
setActiveView: (view: EditorView) => void;
|
|
268
|
+
/** Enter or leave the host-triggered Find toolbar mode. */
|
|
269
|
+
setFindMode: (active: boolean) => void;
|
|
265
270
|
/** Register / unregister the Tiptap editor instance (called by WysiwygEditor) */
|
|
266
271
|
setTiptapEditor: (editor: Editor | null) => void;
|
|
267
272
|
/** Register / unregister the Monaco editor instance (called by RawEditor) */
|
|
@@ -444,6 +449,13 @@ interface EditorProviderProps {
|
|
|
444
449
|
fileName?: string;
|
|
445
450
|
/** Explicit Monaco language ID — wins over the fileName-derived one. */
|
|
446
451
|
language?: string;
|
|
452
|
+
/**
|
|
453
|
+
* Controlled Find-mode state. No trigger button is rendered by default;
|
|
454
|
+
* hosts can set this prop or call `setFindMode` from editor context.
|
|
455
|
+
*/
|
|
456
|
+
findMode?: boolean;
|
|
457
|
+
/** Notified when Find mode requests a state change (for example, its X button). */
|
|
458
|
+
onFindModeChange?: (active: boolean) => void;
|
|
447
459
|
/**
|
|
448
460
|
* Initial visibility of the inline preview gutter. Defaults to false.
|
|
449
461
|
* The toolbar's View menu can toggle it at runtime.
|
|
@@ -523,7 +535,7 @@ interface ViewPreferences {
|
|
|
523
535
|
/** Document vs. block-at-a-time layout. */
|
|
524
536
|
layoutMode?: LayoutMode;
|
|
525
537
|
}
|
|
526
|
-
declare function EditorProvider({ initialMarkdown, initialView, articleId, colorScheme: initialColorScheme, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, mediaProvider, imageDisplayMode, mentionProvider, documentLinkProvider, allowRecording, allowNarrate, fileName, language, inlinePreview, showStatusBar, outline, blockTags, blockTagVisibility: initialBlockTagVisibility, themeInheritance, layoutMode, viewPreferences, onViewPreferencesChange, children, }: EditorProviderProps): react_jsx_runtime.JSX.Element;
|
|
538
|
+
declare function EditorProvider({ initialMarkdown, initialView, articleId, colorScheme: initialColorScheme, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, mediaProvider, imageDisplayMode, mentionProvider, documentLinkProvider, allowRecording, allowNarrate, fileName, language, findMode: controlledFindMode, onFindModeChange, inlinePreview, showStatusBar, outline, blockTags, blockTagVisibility: initialBlockTagVisibility, themeInheritance, layoutMode, viewPreferences, onViewPreferencesChange, children, }: EditorProviderProps): react_jsx_runtime.JSX.Element;
|
|
527
539
|
|
|
528
540
|
/**
|
|
529
541
|
* Host-supplied context sections rendered INSIDE the Monaco (raw/code)
|
|
@@ -581,7 +593,7 @@ interface CodeContext {
|
|
|
581
593
|
/** Line-anchored sections. Array order is preserved for equal lines. */
|
|
582
594
|
sections?: CodeContextSection[];
|
|
583
595
|
/**
|
|
584
|
-
* Extra URI schemes section links may use (e.g. `['
|
|
596
|
+
* Extra URI schemes section links may use (e.g. `['workspace-nav']`).
|
|
585
597
|
* http/https/mailto/tel are always allowed; executable schemes
|
|
586
598
|
* (javascript:, data:) are never allowed regardless.
|
|
587
599
|
*/
|
|
@@ -601,6 +613,14 @@ interface CodeContext {
|
|
|
601
613
|
onToggleSection?: (sectionId: string, expanded: boolean) => void;
|
|
602
614
|
}
|
|
603
615
|
|
|
616
|
+
/** Host-controlled typography for the markdown Write canvas. */
|
|
617
|
+
interface WriteCanvasSettings {
|
|
618
|
+
/** Base text size in CSS pixels. Headings continue to scale relative to it. */
|
|
619
|
+
textSize?: number;
|
|
620
|
+
/** Unitless line-height multiplier for body text. */
|
|
621
|
+
lineSpacing?: number;
|
|
622
|
+
}
|
|
623
|
+
|
|
604
624
|
interface EditorShellProps {
|
|
605
625
|
/** Initial markdown content */
|
|
606
626
|
initialMarkdown?: string;
|
|
@@ -743,6 +763,12 @@ interface EditorShellProps {
|
|
|
743
763
|
* toolbar, tabs, and status bar keep their normal sizing.
|
|
744
764
|
*/
|
|
745
765
|
thinMargins?: boolean;
|
|
766
|
+
/**
|
|
767
|
+
* Host-controlled typography for the markdown Write canvas. `textSize` is
|
|
768
|
+
* measured in CSS pixels and `lineSpacing` is a unitless line-height
|
|
769
|
+
* multiplier. This is presentation-only and does not modify the markdown.
|
|
770
|
+
*/
|
|
771
|
+
writeCanvasSettings?: WriteCanvasSettings;
|
|
746
772
|
/**
|
|
747
773
|
* Render the bottom status bar (word / character / line / block counts
|
|
748
774
|
* and parse-state indicator). Defaults to `true`. Set to `false` in
|
|
@@ -776,6 +802,14 @@ interface EditorShellProps {
|
|
|
776
802
|
* switches the shell into code mode.
|
|
777
803
|
*/
|
|
778
804
|
language?: string;
|
|
805
|
+
/**
|
|
806
|
+
* Controlled Find-mode state. Find has no built-in trigger button; hosts
|
|
807
|
+
* opt in by setting this prop (or by calling `setFindMode` from a toolbar
|
|
808
|
+
* slot rendered inside the editor context).
|
|
809
|
+
*/
|
|
810
|
+
findMode?: boolean;
|
|
811
|
+
/** Called when Find mode requests a state change, including its X button. */
|
|
812
|
+
onFindModeChange?: (active: boolean) => void;
|
|
779
813
|
/**
|
|
780
814
|
* Optional async provider for `@`-mention suggestions. When supplied,
|
|
781
815
|
* typing `@` inside the editor opens a popover of candidates; selecting
|
|
@@ -935,7 +969,7 @@ interface EditorShellProps {
|
|
|
935
969
|
* Complete markdown editor shell with toolbar, view switcher, and three
|
|
936
970
|
* editing modes: Raw (Monaco), WYSIWYG (Tiptap), and Preview.
|
|
937
971
|
*/
|
|
938
|
-
declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, colorScheme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, showPlayTab, submitOnEnter, codeContext, fullWidth, uxFont, thinMargins, showStatusBar, imageDisplayMode, fileName, language, mentionProvider, documentLinkProvider, allowRecording, allowNarrate, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, }: EditorShellProps): react_jsx_runtime.JSX.Element;
|
|
972
|
+
declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, colorScheme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, showPlayTab, submitOnEnter, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, language, findMode, onFindModeChange, mentionProvider, documentLinkProvider, allowRecording, allowNarrate, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, }: EditorShellProps): react_jsx_runtime.JSX.Element;
|
|
939
973
|
|
|
940
974
|
/**
|
|
941
975
|
* Bridges a host-supplied {@link CodeContext} onto the live Monaco editor:
|
|
@@ -1265,17 +1299,6 @@ interface RawEditorProps {
|
|
|
1265
1299
|
*/
|
|
1266
1300
|
declare function RawEditor({ monacoTheme, minimap, fontSize, wordWrap, className, submitOnEnter, readOnly, }: RawEditorProps): react_jsx_runtime.JSX.Element;
|
|
1267
1301
|
|
|
1268
|
-
/**
|
|
1269
|
-
* WysiwygEditor
|
|
1270
|
-
*
|
|
1271
|
-
* Tiptap-based rich text editor that provides a WYSIWYG editing experience
|
|
1272
|
-
* for markdown content. Uses squisq's parseMarkdown/stringifyMarkdown for
|
|
1273
|
-
* conversion rather than Tiptap's built-in HTML serialization, ensuring
|
|
1274
|
-
* perfect fidelity with the markdown format.
|
|
1275
|
-
*
|
|
1276
|
-
* Includes extensions for GFM features: tables, task lists, strikethrough,
|
|
1277
|
-
* and code blocks.
|
|
1278
|
-
*/
|
|
1279
1302
|
interface WysiwygEditorProps {
|
|
1280
1303
|
/**
|
|
1281
1304
|
* Placeholder text when the editor is empty. If omitted, one of several
|
|
@@ -1292,12 +1315,14 @@ interface WysiwygEditorProps {
|
|
|
1292
1315
|
submitOnEnter?: () => void;
|
|
1293
1316
|
/** Disable Tiptap editing — renders content but blocks input. */
|
|
1294
1317
|
readOnly?: boolean;
|
|
1318
|
+
/** Host-controlled base text size and line spacing for the Write canvas. */
|
|
1319
|
+
writeCanvasSettings?: WriteCanvasSettings;
|
|
1295
1320
|
}
|
|
1296
1321
|
/**
|
|
1297
1322
|
* Rich WYSIWYG markdown editor built on Tiptap (ProseMirror).
|
|
1298
1323
|
* Binds to the shared EditorContext for source synchronization.
|
|
1299
1324
|
*/
|
|
1300
|
-
declare function WysiwygEditor({ placeholder, className, submitOnEnter, readOnly, }: WysiwygEditorProps): react_jsx_runtime.JSX.Element;
|
|
1325
|
+
declare function WysiwygEditor({ placeholder, className, submitOnEnter, readOnly, writeCanvasSettings, }: WysiwygEditorProps): react_jsx_runtime.JSX.Element;
|
|
1301
1326
|
|
|
1302
1327
|
interface PreviewPanelProps {
|
|
1303
1328
|
/** Base path for resolving media URLs in DocPlayer */
|
|
@@ -2564,6 +2589,8 @@ type DiagramCommand = {
|
|
|
2564
2589
|
nodeId: string;
|
|
2565
2590
|
width: number;
|
|
2566
2591
|
height: number;
|
|
2592
|
+
x?: number;
|
|
2593
|
+
y?: number;
|
|
2567
2594
|
} | {
|
|
2568
2595
|
kind: 'addConnection';
|
|
2569
2596
|
source: string;
|
|
@@ -2713,6 +2740,16 @@ declare function useAsciiDiagramData(editor: Editor$1, blockId: string): AsciiDi
|
|
|
2713
2740
|
* corrupting the fence.
|
|
2714
2741
|
*/
|
|
2715
2742
|
|
|
2743
|
+
interface ApplyAsciiDiagramCommandOptions {
|
|
2744
|
+
/**
|
|
2745
|
+
* Virtual grid offset currently shown by the canvas for legacy art. It is
|
|
2746
|
+
* folded into the source in the same transaction as the user's first edit.
|
|
2747
|
+
*/
|
|
2748
|
+
diagramOffset?: {
|
|
2749
|
+
col: number;
|
|
2750
|
+
row: number;
|
|
2751
|
+
};
|
|
2752
|
+
}
|
|
2716
2753
|
/**
|
|
2717
2754
|
* Replace the TEXT inside the codeBlock at `pos` and, when `ensureLanguage`
|
|
2718
2755
|
* is given, promote its `language` attribute in the SAME transaction (one
|
|
@@ -2732,7 +2769,7 @@ declare function replaceAsciiFenceText(editor: Editor$1, pos: number, nextText:
|
|
|
2732
2769
|
*/
|
|
2733
2770
|
declare function applyRepairCommand(editor: Editor$1, blockId: string): boolean;
|
|
2734
2771
|
/** Full pipeline for a canvas command against a registered fence block. */
|
|
2735
|
-
declare function applyAsciiDiagramCommand(editor: Editor$1, blockId: string, cmd: DiagramCommand): boolean;
|
|
2772
|
+
declare function applyAsciiDiagramCommand(editor: Editor$1, blockId: string, cmd: DiagramCommand, options?: ApplyAsciiDiagramCommandOptions): boolean;
|
|
2736
2773
|
|
|
2737
2774
|
/**
|
|
2738
2775
|
* RepairableDiagramExtension — mounts an inline "Repair as diagram" button on
|
|
@@ -2795,6 +2832,8 @@ declare const RepairableDiagramExtension: Extension<RepairableDiagramExtensionOp
|
|
|
2795
2832
|
* single-line, so newlines collapse to spaces.
|
|
2796
2833
|
*/
|
|
2797
2834
|
declare function sanitizeAsciiLabel(label: string): string;
|
|
2835
|
+
/** Translate every node by the same grid delta (edges/containment are unchanged). */
|
|
2836
|
+
declare function translateDiagramOp(diagram: AsciiDiagram, dCol: number, dRow: number): AsciiDiagram;
|
|
2798
2837
|
/** Move a node to (col, row); a container drags its whole subtree along. */
|
|
2799
2838
|
declare function moveNodeOp(diagram: AsciiDiagram, nodeId: string, col: number, row: number): AsciiDiagram;
|
|
2800
2839
|
/** Resize a node (grid cells). Clamped so the label always fits. */
|
|
@@ -2841,6 +2880,471 @@ declare function removeNodeOp(diagram: AsciiDiagram, nodeId: string): AsciiDiagr
|
|
|
2841
2880
|
*/
|
|
2842
2881
|
declare function shouldPasteAsAsciiFence(text: string): boolean;
|
|
2843
2882
|
|
|
2883
|
+
/**
|
|
2884
|
+
* Tiptap extension for `mermaid` code fences.
|
|
2885
|
+
*
|
|
2886
|
+
* The code block always remains the document source of truth. The extension
|
|
2887
|
+
* only hides/shows that block and mounts a rendered Mermaid canvas after it;
|
|
2888
|
+
* it never replaces the fence with an editor-only node or a reduced graph
|
|
2889
|
+
* model. That keeps every Mermaid diagram type and directive round-trippable.
|
|
2890
|
+
*/
|
|
2891
|
+
|
|
2892
|
+
interface MermaidDiagramBlockEntry {
|
|
2893
|
+
/** Synthetic session id, stable while this code block remains in the doc. */
|
|
2894
|
+
id: string;
|
|
2895
|
+
/** Current ProseMirror position of the `codeBlock`. */
|
|
2896
|
+
pos: number;
|
|
2897
|
+
}
|
|
2898
|
+
interface MermaidDiagramPluginState {
|
|
2899
|
+
entries: MermaidDiagramBlockEntry[];
|
|
2900
|
+
decorations: DecorationSet;
|
|
2901
|
+
sourceVisible: ReadonlySet<string>;
|
|
2902
|
+
seq: number;
|
|
2903
|
+
}
|
|
2904
|
+
interface MermaidDiagramExtensionOptions {
|
|
2905
|
+
/** When false, leave Mermaid fences as ordinary code blocks. */
|
|
2906
|
+
enabled?: boolean;
|
|
2907
|
+
}
|
|
2908
|
+
declare const MERMAID_DIAGRAM_KEY: PluginKey<MermaidDiagramPluginState>;
|
|
2909
|
+
/** Mermaid is an explicit mode: only a `mermaid` language tag claims it. */
|
|
2910
|
+
declare function isMermaidDiagramNode(node: Node): boolean;
|
|
2911
|
+
declare function findMermaidDiagramBlockPos(editor: Editor$1, blockId: string): number | null;
|
|
2912
|
+
declare function isMermaidSourceVisible(editor: Editor$1, blockId: string): boolean;
|
|
2913
|
+
/** Toggle the editable code block without changing any document bytes. */
|
|
2914
|
+
declare function toggleMermaidSource(editor: Editor$1, blockId: string): void;
|
|
2915
|
+
declare const MermaidDiagramExtension: Extension<MermaidDiagramExtensionOptions, any>;
|
|
2916
|
+
|
|
2917
|
+
interface MermaidDiagramWidgetProps {
|
|
2918
|
+
editor: Editor$1;
|
|
2919
|
+
blockId: string;
|
|
2920
|
+
host?: HTMLElement | null;
|
|
2921
|
+
}
|
|
2922
|
+
declare function MermaidDiagramWidget({ editor, blockId, host }: MermaidDiagramWidgetProps): react_jsx_runtime.JSX.Element | null;
|
|
2923
|
+
|
|
2924
|
+
/** Mermaid 11.16 flowchart shape catalog used by the structured editor. */
|
|
2925
|
+
interface MermaidFlowchartShape {
|
|
2926
|
+
id: string;
|
|
2927
|
+
label: string;
|
|
2928
|
+
category: 'Basic' | 'Process' | 'Data' | 'Documents' | 'Symbols';
|
|
2929
|
+
aliases?: readonly string[];
|
|
2930
|
+
}
|
|
2931
|
+
/**
|
|
2932
|
+
* Every non-asset shape in Mermaid 11.16's expanded flowchart catalog.
|
|
2933
|
+
* `icon` and `image` are deliberately excluded: they require additional
|
|
2934
|
+
* asset-specific fields and, for icons, a host-registered icon pack.
|
|
2935
|
+
*/
|
|
2936
|
+
declare const MERMAID_FLOWCHART_SHAPES: readonly [{
|
|
2937
|
+
readonly id: "rect";
|
|
2938
|
+
readonly label: "Process";
|
|
2939
|
+
readonly category: "Basic";
|
|
2940
|
+
readonly aliases: readonly ["rectangle", "proc"];
|
|
2941
|
+
}, {
|
|
2942
|
+
readonly id: "rounded";
|
|
2943
|
+
readonly label: "Event";
|
|
2944
|
+
readonly category: "Basic";
|
|
2945
|
+
readonly aliases: readonly ["event"];
|
|
2946
|
+
}, {
|
|
2947
|
+
readonly id: "stadium";
|
|
2948
|
+
readonly label: "Terminal";
|
|
2949
|
+
readonly category: "Basic";
|
|
2950
|
+
readonly aliases: readonly ["pill"];
|
|
2951
|
+
}, {
|
|
2952
|
+
readonly id: "circle";
|
|
2953
|
+
readonly label: "Circle";
|
|
2954
|
+
readonly category: "Basic";
|
|
2955
|
+
readonly aliases: readonly ["circ"];
|
|
2956
|
+
}, {
|
|
2957
|
+
readonly id: "dbl-circ";
|
|
2958
|
+
readonly label: "Double circle";
|
|
2959
|
+
readonly category: "Basic";
|
|
2960
|
+
readonly aliases: readonly ["double-circle"];
|
|
2961
|
+
}, {
|
|
2962
|
+
readonly id: "diam";
|
|
2963
|
+
readonly label: "Decision";
|
|
2964
|
+
readonly category: "Basic";
|
|
2965
|
+
readonly aliases: readonly ["diamond", "question"];
|
|
2966
|
+
}, {
|
|
2967
|
+
readonly id: "hex";
|
|
2968
|
+
readonly label: "Preparation";
|
|
2969
|
+
readonly category: "Basic";
|
|
2970
|
+
readonly aliases: readonly ["hexagon", "prepare"];
|
|
2971
|
+
}, {
|
|
2972
|
+
readonly id: "tri";
|
|
2973
|
+
readonly label: "Extract";
|
|
2974
|
+
readonly category: "Basic";
|
|
2975
|
+
readonly aliases: readonly ["triangle"];
|
|
2976
|
+
}, {
|
|
2977
|
+
readonly id: "odd";
|
|
2978
|
+
readonly label: "Odd";
|
|
2979
|
+
readonly category: "Basic";
|
|
2980
|
+
}, {
|
|
2981
|
+
readonly id: "notch-rect";
|
|
2982
|
+
readonly label: "Card";
|
|
2983
|
+
readonly category: "Process";
|
|
2984
|
+
readonly aliases: readonly ["card"];
|
|
2985
|
+
}, {
|
|
2986
|
+
readonly id: "delay";
|
|
2987
|
+
readonly label: "Delay";
|
|
2988
|
+
readonly category: "Process";
|
|
2989
|
+
}, {
|
|
2990
|
+
readonly id: "div-rect";
|
|
2991
|
+
readonly label: "Divided process";
|
|
2992
|
+
readonly category: "Process";
|
|
2993
|
+
readonly aliases: readonly ["div-proc"];
|
|
2994
|
+
}, {
|
|
2995
|
+
readonly id: "fork";
|
|
2996
|
+
readonly label: "Fork / join";
|
|
2997
|
+
readonly category: "Process";
|
|
2998
|
+
readonly aliases: readonly ["join"];
|
|
2999
|
+
}, {
|
|
3000
|
+
readonly id: "lin-rect";
|
|
3001
|
+
readonly label: "Lined process";
|
|
3002
|
+
readonly category: "Process";
|
|
3003
|
+
readonly aliases: readonly ["lin-proc"];
|
|
3004
|
+
}, {
|
|
3005
|
+
readonly id: "st-rect";
|
|
3006
|
+
readonly label: "Multi-process";
|
|
3007
|
+
readonly category: "Process";
|
|
3008
|
+
readonly aliases: readonly ["processes"];
|
|
3009
|
+
}, {
|
|
3010
|
+
readonly id: "fr-rect";
|
|
3011
|
+
readonly label: "Subprocess";
|
|
3012
|
+
readonly category: "Process";
|
|
3013
|
+
readonly aliases: readonly ["subprocess"];
|
|
3014
|
+
}, {
|
|
3015
|
+
readonly id: "tag-rect";
|
|
3016
|
+
readonly label: "Tagged process";
|
|
3017
|
+
readonly category: "Process";
|
|
3018
|
+
readonly aliases: readonly ["tag-proc"];
|
|
3019
|
+
}, {
|
|
3020
|
+
readonly id: "lean-r";
|
|
3021
|
+
readonly label: "Input / output";
|
|
3022
|
+
readonly category: "Data";
|
|
3023
|
+
readonly aliases: readonly ["in-out"];
|
|
3024
|
+
}, {
|
|
3025
|
+
readonly id: "lean-l";
|
|
3026
|
+
readonly label: "Output / input";
|
|
3027
|
+
readonly category: "Data";
|
|
3028
|
+
readonly aliases: readonly ["out-in"];
|
|
3029
|
+
}, {
|
|
3030
|
+
readonly id: "datastore";
|
|
3031
|
+
readonly label: "Data store";
|
|
3032
|
+
readonly category: "Data";
|
|
3033
|
+
readonly aliases: readonly ["data-store"];
|
|
3034
|
+
}, {
|
|
3035
|
+
readonly id: "cyl";
|
|
3036
|
+
readonly label: "Database";
|
|
3037
|
+
readonly category: "Data";
|
|
3038
|
+
readonly aliases: readonly ["database", "db"];
|
|
3039
|
+
}, {
|
|
3040
|
+
readonly id: "h-cyl";
|
|
3041
|
+
readonly label: "Direct access storage";
|
|
3042
|
+
readonly category: "Data";
|
|
3043
|
+
readonly aliases: readonly ["das"];
|
|
3044
|
+
}, {
|
|
3045
|
+
readonly id: "lin-cyl";
|
|
3046
|
+
readonly label: "Disk storage";
|
|
3047
|
+
readonly category: "Data";
|
|
3048
|
+
readonly aliases: readonly ["disk"];
|
|
3049
|
+
}, {
|
|
3050
|
+
readonly id: "bow-rect";
|
|
3051
|
+
readonly label: "Stored data";
|
|
3052
|
+
readonly category: "Data";
|
|
3053
|
+
readonly aliases: readonly ["stored-data"];
|
|
3054
|
+
}, {
|
|
3055
|
+
readonly id: "win-pane";
|
|
3056
|
+
readonly label: "Internal storage";
|
|
3057
|
+
readonly category: "Data";
|
|
3058
|
+
readonly aliases: readonly ["window-pane"];
|
|
3059
|
+
}, {
|
|
3060
|
+
readonly id: "doc";
|
|
3061
|
+
readonly label: "Document";
|
|
3062
|
+
readonly category: "Documents";
|
|
3063
|
+
}, {
|
|
3064
|
+
readonly id: "docs";
|
|
3065
|
+
readonly label: "Multi-document";
|
|
3066
|
+
readonly category: "Documents";
|
|
3067
|
+
readonly aliases: readonly ["documents"];
|
|
3068
|
+
}, {
|
|
3069
|
+
readonly id: "lin-doc";
|
|
3070
|
+
readonly label: "Lined document";
|
|
3071
|
+
readonly category: "Documents";
|
|
3072
|
+
}, {
|
|
3073
|
+
readonly id: "tag-doc";
|
|
3074
|
+
readonly label: "Tagged document";
|
|
3075
|
+
readonly category: "Documents";
|
|
3076
|
+
}, {
|
|
3077
|
+
readonly id: "flag";
|
|
3078
|
+
readonly label: "Paper tape";
|
|
3079
|
+
readonly category: "Documents";
|
|
3080
|
+
readonly aliases: readonly ["paper-tape"];
|
|
3081
|
+
}, {
|
|
3082
|
+
readonly id: "bang";
|
|
3083
|
+
readonly label: "Bang";
|
|
3084
|
+
readonly category: "Symbols";
|
|
3085
|
+
}, {
|
|
3086
|
+
readonly id: "cloud";
|
|
3087
|
+
readonly label: "Cloud";
|
|
3088
|
+
readonly category: "Symbols";
|
|
3089
|
+
}, {
|
|
3090
|
+
readonly id: "hourglass";
|
|
3091
|
+
readonly label: "Collate";
|
|
3092
|
+
readonly category: "Symbols";
|
|
3093
|
+
readonly aliases: readonly ["collate"];
|
|
3094
|
+
}, {
|
|
3095
|
+
readonly id: "bolt";
|
|
3096
|
+
readonly label: "Communication link";
|
|
3097
|
+
readonly category: "Symbols";
|
|
3098
|
+
readonly aliases: readonly ["com-link"];
|
|
3099
|
+
}, {
|
|
3100
|
+
readonly id: "brace";
|
|
3101
|
+
readonly label: "Comment left";
|
|
3102
|
+
readonly category: "Symbols";
|
|
3103
|
+
readonly aliases: readonly ["comment"];
|
|
3104
|
+
}, {
|
|
3105
|
+
readonly id: "brace-r";
|
|
3106
|
+
readonly label: "Comment right";
|
|
3107
|
+
readonly category: "Symbols";
|
|
3108
|
+
}, {
|
|
3109
|
+
readonly id: "braces";
|
|
3110
|
+
readonly label: "Comment both";
|
|
3111
|
+
readonly category: "Symbols";
|
|
3112
|
+
}, {
|
|
3113
|
+
readonly id: "curv-trap";
|
|
3114
|
+
readonly label: "Display";
|
|
3115
|
+
readonly category: "Symbols";
|
|
3116
|
+
readonly aliases: readonly ["display"];
|
|
3117
|
+
}, {
|
|
3118
|
+
readonly id: "notch-pent";
|
|
3119
|
+
readonly label: "Loop limit";
|
|
3120
|
+
readonly category: "Symbols";
|
|
3121
|
+
readonly aliases: readonly ["loop-limit"];
|
|
3122
|
+
}, {
|
|
3123
|
+
readonly id: "flip-tri";
|
|
3124
|
+
readonly label: "Manual file";
|
|
3125
|
+
readonly category: "Symbols";
|
|
3126
|
+
readonly aliases: readonly ["manual-file"];
|
|
3127
|
+
}, {
|
|
3128
|
+
readonly id: "sl-rect";
|
|
3129
|
+
readonly label: "Manual input";
|
|
3130
|
+
readonly category: "Symbols";
|
|
3131
|
+
readonly aliases: readonly ["manual-input"];
|
|
3132
|
+
}, {
|
|
3133
|
+
readonly id: "trap-t";
|
|
3134
|
+
readonly label: "Manual operation";
|
|
3135
|
+
readonly category: "Symbols";
|
|
3136
|
+
readonly aliases: readonly ["manual"];
|
|
3137
|
+
}, {
|
|
3138
|
+
readonly id: "trap-b";
|
|
3139
|
+
readonly label: "Priority action";
|
|
3140
|
+
readonly category: "Symbols";
|
|
3141
|
+
readonly aliases: readonly ["priority"];
|
|
3142
|
+
}, {
|
|
3143
|
+
readonly id: "f-circ";
|
|
3144
|
+
readonly label: "Junction";
|
|
3145
|
+
readonly category: "Symbols";
|
|
3146
|
+
readonly aliases: readonly ["junction"];
|
|
3147
|
+
}, {
|
|
3148
|
+
readonly id: "sm-circ";
|
|
3149
|
+
readonly label: "Start";
|
|
3150
|
+
readonly category: "Symbols";
|
|
3151
|
+
readonly aliases: readonly ["start"];
|
|
3152
|
+
}, {
|
|
3153
|
+
readonly id: "fr-circ";
|
|
3154
|
+
readonly label: "Stop";
|
|
3155
|
+
readonly category: "Symbols";
|
|
3156
|
+
readonly aliases: readonly ["stop"];
|
|
3157
|
+
}, {
|
|
3158
|
+
readonly id: "cross-circ";
|
|
3159
|
+
readonly label: "Summary";
|
|
3160
|
+
readonly category: "Symbols";
|
|
3161
|
+
readonly aliases: readonly ["summary"];
|
|
3162
|
+
}, {
|
|
3163
|
+
readonly id: "text";
|
|
3164
|
+
readonly label: "Text block";
|
|
3165
|
+
readonly category: "Symbols";
|
|
3166
|
+
}];
|
|
3167
|
+
type MermaidFlowchartShapeId = (typeof MERMAID_FLOWCHART_SHAPES)[number]['id'];
|
|
3168
|
+
declare function isMermaidFlowchartShapeId(value: string): value is MermaidFlowchartShapeId;
|
|
3169
|
+
/** Normalize legacy parser names and documented aliases to the general-syntax id. */
|
|
3170
|
+
declare function normalizeMermaidFlowchartShape(value: string | null | undefined): MermaidFlowchartShapeId;
|
|
3171
|
+
|
|
3172
|
+
type MermaidFlowchartDirection = 'TB' | 'TD' | 'BT' | 'RL' | 'LR';
|
|
3173
|
+
interface MermaidEditableNode {
|
|
3174
|
+
id: string;
|
|
3175
|
+
domId: string;
|
|
3176
|
+
label: string;
|
|
3177
|
+
shape: MermaidFlowchartShapeId;
|
|
3178
|
+
classes: readonly string[];
|
|
3179
|
+
}
|
|
3180
|
+
interface MermaidEditableEdge {
|
|
3181
|
+
id: string;
|
|
3182
|
+
source: string;
|
|
3183
|
+
target: string;
|
|
3184
|
+
label: string;
|
|
3185
|
+
type?: string;
|
|
3186
|
+
stroke?: string;
|
|
3187
|
+
userDefinedId?: boolean;
|
|
3188
|
+
}
|
|
3189
|
+
interface MermaidFlowchartModel {
|
|
3190
|
+
kind: 'flowchart';
|
|
3191
|
+
direction: MermaidFlowchartDirection;
|
|
3192
|
+
nodes: readonly MermaidEditableNode[];
|
|
3193
|
+
edges: readonly MermaidEditableEdge[];
|
|
3194
|
+
}
|
|
3195
|
+
/** Structured editing is additive to full Mermaid rendering, never required by it. */
|
|
3196
|
+
type MermaidEditableModel = MermaidFlowchartModel;
|
|
3197
|
+
|
|
3198
|
+
type MermaidNodeCanvasAction = 'rename' | 'shape' | 'duplicate' | 'connect' | 'delete';
|
|
3199
|
+
interface MermaidDiagramCanvasProps {
|
|
3200
|
+
source: string;
|
|
3201
|
+
maximized?: boolean;
|
|
3202
|
+
onToggleMaximize?: () => void;
|
|
3203
|
+
selectedNodeId?: string | null;
|
|
3204
|
+
selectedEdgeId?: string | null;
|
|
3205
|
+
renamingNodeId?: string | null;
|
|
3206
|
+
renamingEdgeId?: string | null;
|
|
3207
|
+
connectSourceId?: string | null;
|
|
3208
|
+
connecting?: boolean;
|
|
3209
|
+
onModelChange?: (model: MermaidEditableModel | null) => void;
|
|
3210
|
+
onSelectNode?: (id: string | null) => void;
|
|
3211
|
+
onSelectEdge?: (id: string | null) => void;
|
|
3212
|
+
onNodeAction?: (action: MermaidNodeCanvasAction, id: string) => void;
|
|
3213
|
+
onEditEdgeLabel?: (id: string) => void;
|
|
3214
|
+
onCommitRename?: (id: string, label: string) => boolean;
|
|
3215
|
+
onCommitEdgeLabel?: (id: string, label: string) => boolean;
|
|
3216
|
+
onCancelRename?: () => void;
|
|
3217
|
+
onCancelEdgeLabel?: () => void;
|
|
3218
|
+
onDisconnectEdge?: (id: string) => void;
|
|
3219
|
+
}
|
|
3220
|
+
declare function MermaidDiagramCanvas({ source, maximized, onToggleMaximize, selectedNodeId, selectedEdgeId, renamingNodeId, renamingEdgeId, connectSourceId, connecting, onModelChange, onSelectNode, onSelectEdge, onNodeAction, onEditEdgeLabel, onCommitRename, onCommitEdgeLabel, onCancelRename, onCancelEdgeLabel, onDisconnectEdge, }: MermaidDiagramCanvasProps): react_jsx_runtime.JSX.Element;
|
|
3221
|
+
|
|
3222
|
+
/** Live source view for one registered Mermaid code fence. */
|
|
3223
|
+
|
|
3224
|
+
interface MermaidDiagramData {
|
|
3225
|
+
/** Mermaid source exactly as stored inside the code block. */
|
|
3226
|
+
source: string;
|
|
3227
|
+
}
|
|
3228
|
+
declare function useMermaidDiagramData(editor: Editor$1, blockId: string): MermaidDiagramData | null;
|
|
3229
|
+
|
|
3230
|
+
/** Browser-only, lazy Mermaid renderer shared by all complex-diagram widgets. */
|
|
3231
|
+
|
|
3232
|
+
interface MermaidRenderResult extends Pick<RenderResult, 'svg' | 'diagramType'> {
|
|
3233
|
+
/** Present for flowchart/graph sources that Mermaid exposes as editable nodes and edges. */
|
|
3234
|
+
model?: MermaidEditableModel;
|
|
3235
|
+
}
|
|
3236
|
+
/**
|
|
3237
|
+
* Render through Mermaid's public API so all diagram types supported by the
|
|
3238
|
+
* pinned Mermaid release share the same path. The caller owns insertion of
|
|
3239
|
+
* the returned SVG; interactive `bindFunctions` are intentionally not run in
|
|
3240
|
+
* the editor, preventing authored links/callbacks from hijacking editing.
|
|
3241
|
+
*/
|
|
3242
|
+
declare function renderMermaidDiagram(id: string, source: string, container?: Element): Promise<MermaidRenderResult>;
|
|
3243
|
+
/** Inspect the subset Mermaid exposes as structured flowchart nodes/edges. */
|
|
3244
|
+
declare function inspectMermaidSource(source: string): Promise<MermaidEditableModel | null>;
|
|
3245
|
+
declare function mermaidErrorMessage(error: unknown): string;
|
|
3246
|
+
|
|
3247
|
+
interface MermaidShapePaletteProps {
|
|
3248
|
+
selected?: MermaidFlowchartShapeId;
|
|
3249
|
+
onPick: (shape: MermaidFlowchartShapeId) => void;
|
|
3250
|
+
onClose: () => void;
|
|
3251
|
+
}
|
|
3252
|
+
declare function MermaidShapePalette({ selected, onPick, onClose }: MermaidShapePaletteProps): react_jsx_runtime.JSX.Element;
|
|
3253
|
+
|
|
3254
|
+
/** Curated starter gallery for the diagram grammars supported by Mermaid 11.16. */
|
|
3255
|
+
type MermaidDiagramCategory = 'Structure' | 'Planning' | 'Data';
|
|
3256
|
+
type MermaidDiagramPreview = 'flowchart' | 'sequence' | 'state' | 'class' | 'er' | 'mindmap' | 'c4' | 'architecture' | 'gantt' | 'timeline' | 'journey' | 'kanban' | 'git' | 'pie' | 'quadrant' | 'sankey' | 'xy' | 'requirement';
|
|
3257
|
+
interface MermaidDiagramType {
|
|
3258
|
+
readonly id: string;
|
|
3259
|
+
readonly label: string;
|
|
3260
|
+
readonly description: string;
|
|
3261
|
+
readonly category: MermaidDiagramCategory;
|
|
3262
|
+
readonly preview: MermaidDiagramPreview;
|
|
3263
|
+
readonly starter: string;
|
|
3264
|
+
/** Mermaid marks this grammar as beta or otherwise experimental. */
|
|
3265
|
+
readonly badge?: 'Beta' | 'Experimental';
|
|
3266
|
+
}
|
|
3267
|
+
declare const MERMAID_DIAGRAM_TYPES: readonly MermaidDiagramType[];
|
|
3268
|
+
declare const DEFAULT_MERMAID_DIAGRAM_TYPE: MermaidDiagramType;
|
|
3269
|
+
declare function mermaidDiagramMarkdown(source: string): string;
|
|
3270
|
+
|
|
3271
|
+
/** Small authored SVG cues; these avoid spinning up Mermaid for every gallery tile. */
|
|
3272
|
+
declare function MermaidDiagramTypeThumbnail({ preview }: {
|
|
3273
|
+
preview: MermaidDiagramPreview;
|
|
3274
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3275
|
+
|
|
3276
|
+
/**
|
|
3277
|
+
* Tiptap extension for ordinary explicit-language code fences.
|
|
3278
|
+
*
|
|
3279
|
+
* The ProseMirror code block remains authoritative. This plugin hides it and
|
|
3280
|
+
* mounts a Monaco editor whose edits rewrite only the node's text content, so
|
|
3281
|
+
* fence language and source round-trip through Markdown without a parallel model.
|
|
3282
|
+
*/
|
|
3283
|
+
|
|
3284
|
+
interface CodeSnippetBlockEntry {
|
|
3285
|
+
/** Synthetic session id, stable while this code block remains in the doc. */
|
|
3286
|
+
id: string;
|
|
3287
|
+
/** Current ProseMirror position of the `codeBlock`. */
|
|
3288
|
+
pos: number;
|
|
3289
|
+
}
|
|
3290
|
+
interface CodeSnippetPluginState {
|
|
3291
|
+
entries: CodeSnippetBlockEntry[];
|
|
3292
|
+
decorations: DecorationSet;
|
|
3293
|
+
seq: number;
|
|
3294
|
+
}
|
|
3295
|
+
interface CodeSnippetExtensionOptions {
|
|
3296
|
+
/** When false, leave all ordinary language-tagged fences as code blocks. */
|
|
3297
|
+
enabled?: boolean;
|
|
3298
|
+
}
|
|
3299
|
+
declare const CODE_SNIPPET_KEY: PluginKey<CodeSnippetPluginState>;
|
|
3300
|
+
declare function isCodeSnippetNode(node: Node): boolean;
|
|
3301
|
+
declare function findCodeSnippetBlockPos(editor: Editor$1, blockId: string): number | null;
|
|
3302
|
+
declare const CodeSnippetExtension: Extension<CodeSnippetExtensionOptions, any>;
|
|
3303
|
+
|
|
3304
|
+
interface CodeSnippetWidgetProps {
|
|
3305
|
+
editor: Editor$1;
|
|
3306
|
+
blockId: string;
|
|
3307
|
+
host?: HTMLElement | null;
|
|
3308
|
+
}
|
|
3309
|
+
declare function CodeSnippetWidget({ editor, blockId, host }: CodeSnippetWidgetProps): react_jsx_runtime.JSX.Element | null;
|
|
3310
|
+
|
|
3311
|
+
/** Lossless edits for language-tagged code fences. */
|
|
3312
|
+
|
|
3313
|
+
declare function replaceCodeSnippetText(editor: Editor$1, blockId: string, nextText: string): boolean;
|
|
3314
|
+
|
|
3315
|
+
/** Live source/language view for one registered code snippet fence. */
|
|
3316
|
+
|
|
3317
|
+
interface CodeSnippetData {
|
|
3318
|
+
/** Fence language exactly as stored in the ProseMirror node. */
|
|
3319
|
+
fenceLanguage: string;
|
|
3320
|
+
label: string;
|
|
3321
|
+
monacoLanguage: string;
|
|
3322
|
+
/** Source exactly as stored inside the code block. */
|
|
3323
|
+
source: string;
|
|
3324
|
+
}
|
|
3325
|
+
declare function useCodeSnippetData(editor: Editor$1, blockId: string): CodeSnippetData | null;
|
|
3326
|
+
|
|
3327
|
+
/** Languages offered by the Insert Code Snippet menu and understood by Monaco. */
|
|
3328
|
+
interface CodeSnippetLanguage {
|
|
3329
|
+
/** Language written after the opening Markdown fence. */
|
|
3330
|
+
readonly fenceLanguage: string;
|
|
3331
|
+
/** Human-readable picker/header label. */
|
|
3332
|
+
readonly label: string;
|
|
3333
|
+
/** Monaco language id used for syntax highlighting and language services. */
|
|
3334
|
+
readonly monacoLanguage: string;
|
|
3335
|
+
/** Small, immediately editable body inserted for a new snippet. */
|
|
3336
|
+
readonly starter: string;
|
|
3337
|
+
}
|
|
3338
|
+
declare const CODE_SNIPPET_LANGUAGES: readonly CodeSnippetLanguage[];
|
|
3339
|
+
/** The first token is the syntax id; any remaining fence metadata stays untouched. */
|
|
3340
|
+
declare function codeSnippetFenceLanguageToken(language: string | null | undefined): string;
|
|
3341
|
+
/** True for explicit language-tagged fences not owned by a richer Squisq block editor. */
|
|
3342
|
+
declare function isCodeSnippetFenceLanguage(language: string | null | undefined): boolean;
|
|
3343
|
+
declare function monacoLanguageForFence(language: string | null | undefined): string;
|
|
3344
|
+
declare function codeSnippetLanguageLabel(language: string | null | undefined): string;
|
|
3345
|
+
/** Markdown insertion form. The caller decides whether to wrap selected text or use a starter. */
|
|
3346
|
+
declare function codeSnippetMarkdown(language: string, source: string): string;
|
|
3347
|
+
|
|
2844
3348
|
/**
|
|
2845
3349
|
* TreeViewExtension — Tiptap/ProseMirror plugin that turns code blocks
|
|
2846
3350
|
* containing ASCII file-tree / outline art into interactive outline editors.
|
|
@@ -2897,6 +3401,34 @@ interface TreeViewData {
|
|
|
2897
3401
|
/** Live view of one registered tree block; null when it no longer parses. */
|
|
2898
3402
|
declare function useTreeViewData(editor: Editor$1, blockId: string): TreeViewData | null;
|
|
2899
3403
|
|
|
3404
|
+
/**
|
|
3405
|
+
* Pure outline operations over the tree model — the write-direction half of
|
|
3406
|
+
* the fence-is-source-of-truth loop:
|
|
3407
|
+
*
|
|
3408
|
+
* fence text → parseTree → op → renderTree → fence text
|
|
3409
|
+
*
|
|
3410
|
+
* Every op returns a NEW Tree (inputs untouched). These are the genuinely
|
|
3411
|
+
* new operations with no diagram analog: indent / outdent (re-parent a node
|
|
3412
|
+
* carrying its subtree), move-up / move-down (reorder siblings), plus
|
|
3413
|
+
* add / rename / remove / toggle-directory. Connector rails re-derive in
|
|
3414
|
+
* render, so ops only touch structure + labels.
|
|
3415
|
+
*/
|
|
3416
|
+
|
|
3417
|
+
/** Make an arbitrary rename safe as a tree label: no connector glyphs / newlines. */
|
|
3418
|
+
declare function sanitizeTreeLabel(label: string): string;
|
|
3419
|
+
type TreeDropPosition = 'before' | 'child' | 'after';
|
|
3420
|
+
declare function renameItemOp(tree: Tree, id: string, label: string): Tree;
|
|
3421
|
+
declare function addItemOp(tree: Tree, targetId: string, position: 'child' | 'siblingAfter', label?: string, isDir?: boolean): Tree;
|
|
3422
|
+
declare function removeItemOp(tree: Tree, id: string): Tree;
|
|
3423
|
+
/** Node becomes the last child of its immediate preceding sibling. */
|
|
3424
|
+
declare function indentItemOp(tree: Tree, id: string): Tree;
|
|
3425
|
+
/** Node becomes a sibling of its parent, inserted directly after it (subtree carried). */
|
|
3426
|
+
declare function outdentItemOp(tree: Tree, id: string): Tree;
|
|
3427
|
+
declare function moveItemUpOp(tree: Tree, id: string): Tree;
|
|
3428
|
+
declare function moveItemDownOp(tree: Tree, id: string): Tree;
|
|
3429
|
+
/** Toggle the trailing-slash directory marker on a node's label. */
|
|
3430
|
+
declare function toggleDirOp(tree: Tree, id: string): Tree;
|
|
3431
|
+
|
|
2900
3432
|
/**
|
|
2901
3433
|
* Write direction of the tree loop: outline command → fence rewrite.
|
|
2902
3434
|
*
|
|
@@ -2921,6 +3453,11 @@ type TreeCommand = {
|
|
|
2921
3453
|
} | {
|
|
2922
3454
|
kind: 'outdentItem';
|
|
2923
3455
|
id: string;
|
|
3456
|
+
} | {
|
|
3457
|
+
kind: 'moveItem';
|
|
3458
|
+
id: string;
|
|
3459
|
+
targetId: string;
|
|
3460
|
+
position: TreeDropPosition;
|
|
2924
3461
|
} | {
|
|
2925
3462
|
kind: 'moveItemUp';
|
|
2926
3463
|
id: string;
|
|
@@ -2937,33 +3474,6 @@ type TreeCommand = {
|
|
|
2937
3474
|
|
|
2938
3475
|
declare function applyTreeCommand(editor: Editor$1, blockId: string, cmd: TreeCommand): boolean;
|
|
2939
3476
|
|
|
2940
|
-
/**
|
|
2941
|
-
* Pure outline operations over the tree model — the write-direction half of
|
|
2942
|
-
* the fence-is-source-of-truth loop:
|
|
2943
|
-
*
|
|
2944
|
-
* fence text → parseTree → op → renderTree → fence text
|
|
2945
|
-
*
|
|
2946
|
-
* Every op returns a NEW Tree (inputs untouched). These are the genuinely
|
|
2947
|
-
* new operations with no diagram analog: indent / outdent (re-parent a node
|
|
2948
|
-
* carrying its subtree), move-up / move-down (reorder siblings), plus
|
|
2949
|
-
* add / rename / remove / toggle-directory. Connector rails re-derive in
|
|
2950
|
-
* render, so ops only touch structure + labels.
|
|
2951
|
-
*/
|
|
2952
|
-
|
|
2953
|
-
/** Make an arbitrary rename safe as a tree label: no connector glyphs / newlines. */
|
|
2954
|
-
declare function sanitizeTreeLabel(label: string): string;
|
|
2955
|
-
declare function renameItemOp(tree: Tree, id: string, label: string): Tree;
|
|
2956
|
-
declare function addItemOp(tree: Tree, targetId: string, position: 'child' | 'siblingAfter', label?: string, isDir?: boolean): Tree;
|
|
2957
|
-
declare function removeItemOp(tree: Tree, id: string): Tree;
|
|
2958
|
-
/** Node becomes the last child of its immediate preceding sibling. */
|
|
2959
|
-
declare function indentItemOp(tree: Tree, id: string): Tree;
|
|
2960
|
-
/** Node becomes a sibling of its parent, inserted directly after it (subtree carried). */
|
|
2961
|
-
declare function outdentItemOp(tree: Tree, id: string): Tree;
|
|
2962
|
-
declare function moveItemUpOp(tree: Tree, id: string): Tree;
|
|
2963
|
-
declare function moveItemDownOp(tree: Tree, id: string): Tree;
|
|
2964
|
-
/** Toggle the trailing-slash directory marker on a node's label. */
|
|
2965
|
-
declare function toggleDirOp(tree: Tree, id: string): Tree;
|
|
2966
|
-
|
|
2967
3477
|
/**
|
|
2968
3478
|
* Paste gate for bare (unfenced) ASCII tree art. `├──`/`└──` file-tree lines
|
|
2969
3479
|
* would otherwise route through the markdown converter and mangle; when this
|
|
@@ -3083,6 +3593,19 @@ declare function removeTimelineEventOp(timeline: AsciiTimeline, eventId: string)
|
|
|
3083
3593
|
*/
|
|
3084
3594
|
|
|
3085
3595
|
type TimelineCommand = {
|
|
3596
|
+
kind: 'addTrack';
|
|
3597
|
+
id?: string;
|
|
3598
|
+
label?: string;
|
|
3599
|
+
eventId?: string;
|
|
3600
|
+
eventLabel?: string;
|
|
3601
|
+
} | {
|
|
3602
|
+
kind: 'updateTrack';
|
|
3603
|
+
trackId: string;
|
|
3604
|
+
label: string;
|
|
3605
|
+
} | {
|
|
3606
|
+
kind: 'removeTrack';
|
|
3607
|
+
trackId: string;
|
|
3608
|
+
} | {
|
|
3086
3609
|
kind: 'addEvent';
|
|
3087
3610
|
trackId: string;
|
|
3088
3611
|
/** Normalized position on the global timeline rail. */
|
|
@@ -3106,6 +3629,8 @@ interface TimelineCommandResult {
|
|
|
3106
3629
|
applied: boolean;
|
|
3107
3630
|
/** Present after add so the widget can select/focus the new marker. */
|
|
3108
3631
|
eventId?: string;
|
|
3632
|
+
/** Present after adding a track. */
|
|
3633
|
+
trackId?: string;
|
|
3109
3634
|
/** Why an otherwise valid semantic edit was deliberately blocked. */
|
|
3110
3635
|
reason?: 'read-only' | 'unsafe-source';
|
|
3111
3636
|
}
|
|
@@ -3295,6 +3820,7 @@ interface UseMediaRecorderResult {
|
|
|
3295
3820
|
declare function getCaptureKind(source: RecorderSource): CaptureKind;
|
|
3296
3821
|
declare function useMediaRecorder(options?: UseMediaRecorderOptions): UseMediaRecorderResult;
|
|
3297
3822
|
|
|
3823
|
+
type RecorderColorScheme = 'light' | 'dark';
|
|
3298
3824
|
interface RecorderModalProps {
|
|
3299
3825
|
/** Required — recordings are written here. */
|
|
3300
3826
|
mediaProvider: MediaProvider;
|
|
@@ -3307,6 +3833,8 @@ interface RecorderModalProps {
|
|
|
3307
3833
|
container?: ContentContainer | null;
|
|
3308
3834
|
/** Initial capture source. Defaults to `'mic'` (narration). */
|
|
3309
3835
|
initialMode?: RecorderSource;
|
|
3836
|
+
/** Light/dark chrome scheme. Defaults to `'light'`. */
|
|
3837
|
+
colorScheme?: RecorderColorScheme;
|
|
3310
3838
|
/** Called after the modal is dismissed (save or cancel). */
|
|
3311
3839
|
onClose: () => void;
|
|
3312
3840
|
/**
|
|
@@ -3333,7 +3861,7 @@ interface RecorderSaveResult {
|
|
|
3333
3861
|
/** Script text the user typed (narration only). */
|
|
3334
3862
|
sourceText?: string;
|
|
3335
3863
|
}
|
|
3336
|
-
declare function RecorderModal({ mediaProvider, container, initialMode, onClose, onSave, }: RecorderModalProps): react_jsx_runtime.JSX.Element;
|
|
3864
|
+
declare function RecorderModal({ mediaProvider, container, initialMode, colorScheme, onClose, onSave, }: RecorderModalProps): react_jsx_runtime.JSX.Element;
|
|
3337
3865
|
|
|
3338
3866
|
interface RecorderButtonProps {
|
|
3339
3867
|
/** Where to write the resulting recording. Required. */
|
|
@@ -3342,6 +3870,8 @@ interface RecorderButtonProps {
|
|
|
3342
3870
|
container?: ContentContainer | null;
|
|
3343
3871
|
/** Initial capture source. Defaults to `'mic'`. */
|
|
3344
3872
|
initialMode?: RecorderSource;
|
|
3873
|
+
/** Light/dark chrome scheme copied onto the portaled modal. */
|
|
3874
|
+
colorScheme?: RecorderColorScheme;
|
|
3345
3875
|
/** Fired after a successful save. */
|
|
3346
3876
|
onSave?: (result: RecorderSaveResult) => void;
|
|
3347
3877
|
/** Button label. Defaults to `'Record'`. */
|
|
@@ -3351,19 +3881,21 @@ interface RecorderButtonProps {
|
|
|
3351
3881
|
/** Whether the button is disabled. */
|
|
3352
3882
|
disabled?: boolean;
|
|
3353
3883
|
}
|
|
3354
|
-
declare function RecorderButton({ mediaProvider, container, initialMode, onSave, label, style, disabled, }: RecorderButtonProps): react_jsx_runtime.JSX.Element;
|
|
3884
|
+
declare function RecorderButton({ mediaProvider, container, initialMode, colorScheme, onSave, label, style, disabled, }: RecorderButtonProps): react_jsx_runtime.JSX.Element;
|
|
3355
3885
|
|
|
3356
3886
|
interface RecorderPanelProps {
|
|
3357
3887
|
mediaProvider: MediaProvider;
|
|
3358
3888
|
container?: ContentContainer | null;
|
|
3359
3889
|
initialMode?: RecorderSource;
|
|
3890
|
+
/** Light/dark chrome scheme copied onto the portaled modal. */
|
|
3891
|
+
colorScheme?: RecorderColorScheme;
|
|
3360
3892
|
onSave?: (result: RecorderSaveResult) => void;
|
|
3361
3893
|
/** ARIA / tooltip label. Defaults to `'Record media'`. */
|
|
3362
3894
|
tooltip?: string;
|
|
3363
3895
|
/** Optional className for the trigger button. */
|
|
3364
3896
|
className?: string;
|
|
3365
3897
|
}
|
|
3366
|
-
declare function RecorderPanel({ mediaProvider, container, initialMode, onSave, tooltip, className, }: RecorderPanelProps): react_jsx_runtime.JSX.Element;
|
|
3898
|
+
declare function RecorderPanel({ mediaProvider, container, initialMode, colorScheme, onSave, tooltip, className, }: RecorderPanelProps): react_jsx_runtime.JSX.Element;
|
|
3367
3899
|
|
|
3368
3900
|
/**
|
|
3369
3901
|
* useStreamPreview — binds a `MediaStream` to a `<video>` element's
|
|
@@ -4153,4 +4685,4 @@ interface UseImageEditorReturn {
|
|
|
4153
4685
|
}
|
|
4154
4686
|
declare function useImageEditor(options: UseImageEditorOptions): UseImageEditorReturn;
|
|
4155
4687
|
|
|
4156
|
-
export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, type BlockRange, type BlockSlice, type BlockTagVisibility, type CameraStreamOptions, type CanvasRect, type CanvasSink, type CaptureKind, type CodeContext, type CodeContextSection, CodeContextZones, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DEFAULT_TELEPROMPTER_PREFS, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, type DocumentLinkCandidate, type DocumentLinkProvider, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EYE_LINE_FRACTION, type EditorActions, type EditorColorScheme, type EditorContextValue, type EditorMode, EditorProvider, type EditorProviderProps, EditorShell, type EditorShellProps, type EditorState, type EditorView, EmojiPicker, type EmojiPickerProps, type FileCategory, type FileKind, type FloatOpenOptions, type FloatTier, type FloatingWindowHandle, type FloatingWindowManager, type FolderEntry, FolderView, type FolderViewProps, type HeadingTransitionAttrs, HeadingWithTemplate, type ImageDisplayMode, ImageEditor, type ImageEditorAction, type ImageEditorProps, type ImageEditorState, type ImageEditorTool, ImageViewer, type ImageViewerProps, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, JsonEditor, type JsonEditorProps, type LayoutMode, MediaBin, type MediaBinProps, type MediaClipPatch, type MentionCandidate, type MentionProvider, type MicAnalysisHandle, type MicAnalysisStatus, type MonacoWorkerConstructor, type MonacoWorkerConstructors, type NarrationRecorderController, type NarrationRecorderState, type NarrationSavePlan, type NarrationSaveResult, type NarrationTake, OutlinePanel, type OutlinePanelProps, PCM_WORKLET_NAME, PCM_WORKLET_SOURCE, PICKER_CATEGORIES, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, PreviewPanel, type PreviewPanelProps, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PrompterTransport, REPAIRABLE_KEY, RawEditor, type RawEditorProps, type RecordedBookmark, RecorderButton, type RecorderButtonProps, RecorderModal, type RecorderModalProps, RecorderPanel, type RecorderPanelProps, type RecorderSaveResult, type RecorderSource, type RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, type ResolvedFormat, type ScreenStreamHandle, type ScreenStreamOptions, StatusBar, type StatusBarProps, TELEPROMPTER_CSS, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, type TeleprompterController, TeleprompterControls, type TeleprompterControlsProps, type TeleprompterPrefs, type TeleprompterRecordingDeps, TeleprompterSurface, type TeleprompterSurfaceProps, TeleprompterView, type TeleprompterViewProps, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, type ThemeInheritance, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineTrack, type TimelineTrackProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, type TimingJson, type TokenLineMap, Toolbar, type ToolbarProps, TooltipLayer, 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 UseImageEditorOptions, type UseImageEditorReturn, type UseMediaRecorderOptions, type UseMediaRecorderResult, type UseMonacoLoaderResult, VersionHistoryPanel, ViewMenuPanel, type ViewPreferences, ViewSwitcher, type ViewSwitcherProps, WysiwygEditor, type WysiwygEditorProps, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildFilename, buildNarrationSavePlan, buildPreviewDoc, buildTimingJson, cameraVideoLine, classifyFile, configureMonacoWorkers, createFloatingWindowManager, detectFloatTiers, detectLanguageFromFileName, draftPatchFromImportedTheme, encodeTimingJson, ensureTeleprompterStyles, executeNarrationSave, findAsciiDiagramBlockPos, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, formatSeconds, getBlockSlices, getCaptureKind, getTimelineForNode, imageEditorReducer, indentItemOp, initialImageEditorState, insertNarrationPreamble, isAsciiSourceVisible, isRepairableFence, isTimelineSourceSafeForSemanticEdit, lineToOffset, markdownToTiptap, measureTokenLines, moveItemDownOp, moveItemUpOp, moveNodeOp, narrationAnnotationLine, nextTimelineEventId, offsetToLine, outdentItemOp, parseTimelineForNode, partitionFiles, processMediaFiles, processTextFile, processTextFiles, prompterVarsFromTheme, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, registerPcmWorklet, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, replaceAsciiFenceText, replaceAsciiFenceText as replaceTreeFenceText, requestCameraStream, requestMicStream, requestScreenStream, resizeNodeOp, resolveFileKind, resolveFormat, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, sliceIndexAtOffset, spliceBlock, stepScroll, summarizeBlockProps, supportsDisplayMedia, supportsMediaRecorder, supportsUserMedia, targetOffsetFor, templateLabel, timingPathFor, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, transitionLabel, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useEditorContext, useFileDrop, useFloatingWindow, useImageEditor, useMediaRecorder, useMicAnalysis, useMonacoLoader, useNarrationRecorder, usePreviewSettings, useStreamPreview, useTeleprompter, useTimelineData, useTreeViewData, vadConfigForSensitivity };
|
|
4688
|
+
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, type BlockRange, type BlockSlice, type BlockTagVisibility, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, type CameraStreamOptions, type CanvasRect, type CanvasSink, type CaptureKind, type CodeContext, type CodeContextSection, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DEFAULT_MERMAID_DIAGRAM_TYPE, DEFAULT_TELEPROMPTER_PREFS, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, type DocumentLinkCandidate, type DocumentLinkProvider, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EYE_LINE_FRACTION, type EditorActions, type EditorColorScheme, type EditorContextValue, type EditorMode, EditorProvider, type EditorProviderProps, EditorShell, type EditorShellProps, type EditorState, type EditorView, EmojiPicker, type EmojiPickerProps, type FileCategory, type FileKind, type FloatOpenOptions, type FloatTier, type FloatingWindowHandle, type FloatingWindowManager, type FolderEntry, FolderView, type FolderViewProps, type HeadingTransitionAttrs, HeadingWithTemplate, type ImageDisplayMode, ImageEditor, type ImageEditorAction, type ImageEditorProps, type ImageEditorState, type ImageEditorTool, ImageViewer, type ImageViewerProps, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, JsonEditor, type JsonEditorProps, type LayoutMode, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MediaBin, type MediaBinProps, type MediaClipPatch, type MentionCandidate, type MentionProvider, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, MermaidShapePalette, type MermaidShapePaletteProps, type MicAnalysisHandle, type MicAnalysisStatus, type MonacoWorkerConstructor, type MonacoWorkerConstructors, type NarrationRecorderController, type NarrationRecorderState, type NarrationSavePlan, type NarrationSaveResult, type NarrationTake, OutlinePanel, type OutlinePanelProps, PCM_WORKLET_NAME, PCM_WORKLET_SOURCE, PICKER_CATEGORIES, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, PreviewPanel, type PreviewPanelProps, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PrompterTransport, REPAIRABLE_KEY, RawEditor, type RawEditorProps, type RecordedBookmark, RecorderButton, type RecorderButtonProps, type RecorderColorScheme, RecorderModal, type RecorderModalProps, RecorderPanel, type RecorderPanelProps, type RecorderSaveResult, type RecorderSource, type RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, type ResolvedFormat, type ScreenStreamHandle, type ScreenStreamOptions, StatusBar, type StatusBarProps, TELEPROMPTER_CSS, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, type TeleprompterController, TeleprompterControls, type TeleprompterControlsProps, type TeleprompterPrefs, type TeleprompterRecordingDeps, TeleprompterSurface, type TeleprompterSurfaceProps, TeleprompterView, type TeleprompterViewProps, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, type ThemeInheritance, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineTrack, type TimelineTrackProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, type TimingJson, type TokenLineMap, Toolbar, type ToolbarProps, TooltipLayer, 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 UseImageEditorOptions, type UseImageEditorReturn, type UseMediaRecorderOptions, type UseMediaRecorderResult, type UseMonacoLoaderResult, VersionHistoryPanel, ViewMenuPanel, type ViewPreferences, ViewSwitcher, type ViewSwitcherProps, type WriteCanvasSettings, WysiwygEditor, type WysiwygEditorProps, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildFilename, buildNarrationSavePlan, buildPreviewDoc, buildTimingJson, cameraVideoLine, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, configureMonacoWorkers, createFloatingWindowManager, detectFloatTiers, detectLanguageFromFileName, draftPatchFromImportedTheme, encodeTimingJson, ensureTeleprompterStyles, executeNarrationSave, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findMermaidDiagramBlockPos, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, formatSeconds, getBlockSlices, getCaptureKind, getTimelineForNode, imageEditorReducer, indentItemOp, initialImageEditorState, insertNarrationPreamble, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isTimelineSourceSafeForSemanticEdit, lineToOffset, markdownToTiptap, measureTokenLines, mermaidDiagramMarkdown, mermaidErrorMessage, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, narrationAnnotationLine, nextTimelineEventId, normalizeMermaidFlowchartShape, offsetToLine, outdentItemOp, parseTimelineForNode, partitionFiles, processMediaFiles, processTextFile, processTextFiles, prompterVarsFromTheme, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, registerPcmWorklet, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceAsciiFenceText as replaceTreeFenceText, requestCameraStream, requestMicStream, requestScreenStream, resizeNodeOp, resolveFileKind, resolveFormat, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, sliceIndexAtOffset, spliceBlock, stepScroll, summarizeBlockProps, supportsDisplayMedia, supportsMediaRecorder, supportsUserMedia, targetOffsetFor, templateLabel, timingPathFor, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, transitionLabel, translateDiagramOp, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useEditorContext, useFileDrop, useFloatingWindow, useImageEditor, useMediaRecorder, useMermaidDiagramData, useMicAnalysis, useMonacoLoader, useNarrationRecorder, usePreviewSettings, useStreamPreview, useTeleprompter, useTimelineData, useTreeViewData, vadConfigForSensitivity };
|