@bendyline/squisq-editor-react 2.3.3 → 2.4.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 +4 -2
- package/dist/{chunk-MJJK7YQB.js → chunk-F4NBECWR.js} +35 -1
- package/dist/{chunk-54UGTQBO.js → chunk-IIWECJ26.js} +1 -1
- package/dist/{chunk-NITZVAXL.js → chunk-MM3M2KUV.js} +12 -0
- package/dist/{chunk-QN3Q64LV.js → chunk-UPEGQYF4.js} +4486 -2719
- package/dist/chunk-V4NBQF5C.js +62 -0
- package/dist/{chunk-6VDYKI3L.js → chunk-VNUGP7NG.js} +1 -1
- package/dist/index.d.ts +174 -50
- package/dist/index.js +27 -5
- package/dist/json-editor/index.js +2 -2
- package/dist/monaco.d.ts +26 -0
- package/dist/monaco.js +144 -10
- package/dist/monacoLanguageDetection-DEyUW-BS.d.ts +18 -0
- package/dist/monacoSuggestions-MDBODZ7F.js +3 -0
- package/dist/recorder/index.js +2 -2
- package/dist/shell/index.d.ts +1 -1
- package/dist/shell/index.js +4 -3
- package/dist/{shell-YIIUac26.d.ts → shell-9Kxzxjbn.d.ts} +55 -7
- package/dist/styles/index.css +519 -24
- package/package.json +7 -5
package/dist/monaco.js
CHANGED
|
@@ -1,9 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
monacoLanguageRequestKey,
|
|
3
|
+
monacoLanguagesForDocument,
|
|
4
|
+
normalizeMonacoLanguage,
|
|
5
|
+
normalizedMonacoLanguageRequests
|
|
6
|
+
} from "./chunk-V4NBQF5C.js";
|
|
7
|
+
|
|
8
|
+
// src/monacoFeatures.ts
|
|
9
|
+
import "monaco-editor/esm/vs/editor/browser/coreCommands.js";
|
|
10
|
+
import "monaco-editor/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js";
|
|
11
|
+
import "monaco-editor/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js";
|
|
12
|
+
import "monaco-editor/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js";
|
|
13
|
+
import "monaco-editor/esm/vs/editor/contrib/caretOperations/browser/transpose.js";
|
|
14
|
+
import "monaco-editor/esm/vs/editor/contrib/clipboard/browser/clipboard.js";
|
|
15
|
+
import "monaco-editor/esm/vs/editor/contrib/comment/browser/comment.js";
|
|
16
|
+
import "monaco-editor/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js";
|
|
17
|
+
import "monaco-editor/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js";
|
|
18
|
+
import "monaco-editor/esm/vs/editor/contrib/dnd/browser/dnd.js";
|
|
19
|
+
import "monaco-editor/esm/vs/editor/contrib/find/browser/findController.js";
|
|
20
|
+
import "monaco-editor/esm/vs/editor/contrib/folding/browser/folding.js";
|
|
21
|
+
import "monaco-editor/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js";
|
|
22
|
+
import "monaco-editor/esm/vs/editor/contrib/indentation/browser/indentation.js";
|
|
23
|
+
import "monaco-editor/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js";
|
|
24
|
+
import "monaco-editor/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js";
|
|
25
|
+
import "monaco-editor/esm/vs/editor/contrib/links/browser/links.js";
|
|
26
|
+
import "monaco-editor/esm/vs/editor/contrib/multicursor/browser/multicursor.js";
|
|
27
|
+
import "monaco-editor/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js";
|
|
28
|
+
import "monaco-editor/esm/vs/editor/contrib/tokenization/browser/tokenization.js";
|
|
29
|
+
import "monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js";
|
|
30
|
+
import "monaco-editor/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js";
|
|
31
|
+
import "monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js";
|
|
32
|
+
import "monaco-editor/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js";
|
|
33
|
+
import "monaco-editor/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js";
|
|
34
|
+
import "monaco-editor/esm/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js";
|
|
35
|
+
import "monaco-editor/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js";
|
|
36
|
+
import "monaco-editor/esm/vs/editor/common/standaloneStrings.js";
|
|
37
|
+
import "monaco-editor/esm/vs/base/browser/ui/codicons/codiconStyles.js";
|
|
38
|
+
import "monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js";
|
|
39
|
+
|
|
1
40
|
// src/monaco.ts
|
|
2
|
-
|
|
3
|
-
import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
|
|
41
|
+
export * from "monaco-editor/esm/vs/editor/editor.api.js";
|
|
4
42
|
|
|
5
43
|
// src/monacoJsonc.ts
|
|
6
|
-
var
|
|
44
|
+
var JSON_LANGUAGE = {
|
|
7
45
|
defaultToken: "",
|
|
8
46
|
// Reuse Monaco's JSON token scopes so built-in and host themes color JSONC
|
|
9
47
|
// exactly like JSON instead of requiring JSONC-specific theme rules.
|
|
@@ -51,18 +89,114 @@ var JSONC_CONFIGURATION = {
|
|
|
51
89
|
{ open: '"', close: '"' }
|
|
52
90
|
]
|
|
53
91
|
};
|
|
54
|
-
function registerJsoncLanguage(
|
|
55
|
-
if (
|
|
56
|
-
|
|
92
|
+
function registerJsoncLanguage(monaco) {
|
|
93
|
+
if (monaco.languages.getLanguages().some(({ id }) => id === "jsonc")) return;
|
|
94
|
+
monaco.languages.register({
|
|
57
95
|
id: "jsonc",
|
|
58
96
|
aliases: ["JSONC", "JSON with Comments", "jsonc"],
|
|
59
97
|
extensions: [".jsonc"],
|
|
60
98
|
mimetypes: ["application/jsonc"]
|
|
61
99
|
});
|
|
62
|
-
|
|
63
|
-
|
|
100
|
+
monaco.languages.setLanguageConfiguration("jsonc", JSONC_CONFIGURATION);
|
|
101
|
+
monaco.languages.setMonarchTokensProvider("jsonc", JSON_LANGUAGE);
|
|
102
|
+
}
|
|
103
|
+
function registerJsonLanguage(monaco) {
|
|
104
|
+
if (monaco.languages.getLanguages().some(({ id }) => id === "json")) return;
|
|
105
|
+
monaco.languages.register({
|
|
106
|
+
id: "json",
|
|
107
|
+
aliases: ["JSON", "json"],
|
|
108
|
+
extensions: [".json"],
|
|
109
|
+
mimetypes: ["application/json"]
|
|
110
|
+
});
|
|
111
|
+
monaco.languages.setLanguageConfiguration("json", JSONC_CONFIGURATION);
|
|
112
|
+
monaco.languages.setMonarchTokensProvider("json", JSON_LANGUAGE);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// src/monacoLanguages.ts
|
|
116
|
+
var SYNTAX_LOADERS = {
|
|
117
|
+
cpp: () => import("monaco-editor/esm/vs/basic-languages/cpp/cpp.contribution.js"),
|
|
118
|
+
csharp: () => import("monaco-editor/esm/vs/basic-languages/csharp/csharp.contribution.js"),
|
|
119
|
+
css: () => import("monaco-editor/esm/vs/basic-languages/css/css.contribution.js"),
|
|
120
|
+
dockerfile: () => import("monaco-editor/esm/vs/basic-languages/dockerfile/dockerfile.contribution.js"),
|
|
121
|
+
go: () => import("monaco-editor/esm/vs/basic-languages/go/go.contribution.js"),
|
|
122
|
+
handlebars: () => import("monaco-editor/esm/vs/basic-languages/handlebars/handlebars.contribution.js"),
|
|
123
|
+
html: () => import("monaco-editor/esm/vs/basic-languages/html/html.contribution.js"),
|
|
124
|
+
ini: () => import("monaco-editor/esm/vs/basic-languages/ini/ini.contribution.js"),
|
|
125
|
+
java: () => import("monaco-editor/esm/vs/basic-languages/java/java.contribution.js"),
|
|
126
|
+
javascript: () => import("monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js"),
|
|
127
|
+
kotlin: () => import("monaco-editor/esm/vs/basic-languages/kotlin/kotlin.contribution.js"),
|
|
128
|
+
less: () => import("monaco-editor/esm/vs/basic-languages/less/less.contribution.js"),
|
|
129
|
+
lua: () => import("monaco-editor/esm/vs/basic-languages/lua/lua.contribution.js"),
|
|
130
|
+
markdown: () => import("monaco-editor/esm/vs/basic-languages/markdown/markdown.contribution.js"),
|
|
131
|
+
php: () => import("monaco-editor/esm/vs/basic-languages/php/php.contribution.js"),
|
|
132
|
+
python: () => import("monaco-editor/esm/vs/basic-languages/python/python.contribution.js"),
|
|
133
|
+
ruby: () => import("monaco-editor/esm/vs/basic-languages/ruby/ruby.contribution.js"),
|
|
134
|
+
rust: () => import("monaco-editor/esm/vs/basic-languages/rust/rust.contribution.js"),
|
|
135
|
+
scss: () => import("monaco-editor/esm/vs/basic-languages/scss/scss.contribution.js"),
|
|
136
|
+
shell: () => import("monaco-editor/esm/vs/basic-languages/shell/shell.contribution.js"),
|
|
137
|
+
sql: () => import("monaco-editor/esm/vs/basic-languages/sql/sql.contribution.js"),
|
|
138
|
+
swift: () => import("monaco-editor/esm/vs/basic-languages/swift/swift.contribution.js"),
|
|
139
|
+
typescript: () => import("monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution.js"),
|
|
140
|
+
xml: () => import("monaco-editor/esm/vs/basic-languages/xml/xml.contribution.js"),
|
|
141
|
+
yaml: () => import("monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution.js")
|
|
142
|
+
};
|
|
143
|
+
var SERVICE_LOADERS = {
|
|
144
|
+
css: () => import("monaco-editor/esm/vs/language/css/monaco.contribution.js"),
|
|
145
|
+
html: () => import("monaco-editor/esm/vs/language/html/monaco.contribution.js"),
|
|
146
|
+
javascript: () => import("monaco-editor/esm/vs/language/typescript/monaco.contribution.js"),
|
|
147
|
+
json: () => import("monaco-editor/esm/vs/language/json/monaco.contribution.js"),
|
|
148
|
+
jsonc: () => import("monaco-editor/esm/vs/language/json/monaco.contribution.js"),
|
|
149
|
+
less: () => import("monaco-editor/esm/vs/language/css/monaco.contribution.js"),
|
|
150
|
+
scss: () => import("monaco-editor/esm/vs/language/css/monaco.contribution.js"),
|
|
151
|
+
typescript: () => import("monaco-editor/esm/vs/language/typescript/monaco.contribution.js")
|
|
152
|
+
};
|
|
153
|
+
var languagePromises = /* @__PURE__ */ new Map();
|
|
154
|
+
async function registerLightweightJson(language) {
|
|
155
|
+
const monaco = await import("monaco-editor/esm/vs/editor/editor.api.js");
|
|
156
|
+
if (language === "json") registerJsonLanguage(monaco);
|
|
157
|
+
else registerJsoncLanguage(monaco);
|
|
158
|
+
}
|
|
159
|
+
function loadLanguage(language, languageServices) {
|
|
160
|
+
if (!language || language === "plaintext") return Promise.resolve();
|
|
161
|
+
const serviceLoader = languageServices ? SERVICE_LOADERS[language] : void 0;
|
|
162
|
+
const cacheKey = `${serviceLoader ? "services" : "syntax"}:${language}`;
|
|
163
|
+
const existing = languagePromises.get(cacheKey);
|
|
164
|
+
if (existing) return existing;
|
|
165
|
+
const syntaxLoader = SYNTAX_LOADERS[language];
|
|
166
|
+
const promise = (async () => {
|
|
167
|
+
if (serviceLoader) {
|
|
168
|
+
await Promise.all([import("./monacoSuggestions-MDBODZ7F.js"), syntaxLoader?.(), serviceLoader()]);
|
|
169
|
+
if (language === "jsonc") await registerLightweightJson("jsonc");
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (language === "json" || language === "jsonc") {
|
|
173
|
+
await registerLightweightJson(language);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
await syntaxLoader?.();
|
|
177
|
+
})().catch((error) => {
|
|
178
|
+
languagePromises.delete(cacheKey);
|
|
179
|
+
throw error;
|
|
180
|
+
});
|
|
181
|
+
languagePromises.set(cacheKey, promise);
|
|
182
|
+
return promise;
|
|
183
|
+
}
|
|
184
|
+
async function loadMonacoLanguages(requested, options = {}) {
|
|
185
|
+
await Promise.all(
|
|
186
|
+
normalizedMonacoLanguageRequests(requested).map(
|
|
187
|
+
(language) => loadLanguage(language, options.languageServices === true)
|
|
188
|
+
)
|
|
189
|
+
);
|
|
64
190
|
}
|
|
65
191
|
|
|
66
192
|
// src/monaco.ts
|
|
67
|
-
|
|
68
|
-
|
|
193
|
+
async function loadMonacoSuggestions() {
|
|
194
|
+
await import("./monacoSuggestions-MDBODZ7F.js");
|
|
195
|
+
}
|
|
196
|
+
export {
|
|
197
|
+
loadMonacoLanguages,
|
|
198
|
+
loadMonacoSuggestions,
|
|
199
|
+
monacoLanguageRequestKey,
|
|
200
|
+
monacoLanguagesForDocument,
|
|
201
|
+
normalizeMonacoLanguage
|
|
202
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Pure language normalization and Markdown-fence detection (no Monaco imports). */
|
|
2
|
+
type MonacoLanguageRequest = string | readonly string[] | null | undefined;
|
|
3
|
+
interface MonacoLanguageLoadOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Enable worker-backed IDE services for CSS/HTML/JSON/JavaScript/TypeScript.
|
|
6
|
+
* Syntax highlighting remains available when false. Defaults to false.
|
|
7
|
+
*/
|
|
8
|
+
languageServices?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare function normalizeMonacoLanguage(language: string): string;
|
|
11
|
+
declare function monacoLanguageRequestKey(requested: MonacoLanguageRequest, options?: MonacoLanguageLoadOptions): string;
|
|
12
|
+
/**
|
|
13
|
+
* Return the primary language plus explicit languages used by Markdown fences.
|
|
14
|
+
* Closing fences and untagged fences do not add language work.
|
|
15
|
+
*/
|
|
16
|
+
declare function monacoLanguagesForDocument(primaryLanguage: string, source: string): string[];
|
|
17
|
+
|
|
18
|
+
export { type MonacoLanguageRequest as M, type MonacoLanguageLoadOptions as a, monacoLanguagesForDocument as b, monacoLanguageRequestKey as m, normalizeMonacoLanguage as n };
|
package/dist/recorder/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RecorderButton
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-VNUGP7NG.js";
|
|
4
4
|
import {
|
|
5
5
|
RecorderModal,
|
|
6
6
|
RecorderPanel,
|
|
7
7
|
getCaptureKind,
|
|
8
8
|
requestScreenStream,
|
|
9
9
|
useMediaRecorder
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-F4NBECWR.js";
|
|
11
11
|
import "../chunk-GS7QWYFT.js";
|
|
12
12
|
import {
|
|
13
13
|
buildFilename,
|
package/dist/shell/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as BlockTagVisibility, D as DocumentLinkCandidate, b as DocumentLinkProvider,
|
|
1
|
+
export { B as BlockTagVisibility, D as DocumentLinkCandidate, b as DocumentLinkProvider, c as EditorActions, d as EditorColorScheme, e as EditorContextValue, E as EditorHostMode, f as EditorMode, g as EditorProvider, h as EditorProviderProps, i as EditorShell, j as EditorShellProps, k as EditorState, l as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, m as MentionProvider, P as PreviewPanel, n as PreviewPanelProps, R as RawEditor, o as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, p as WysiwygEditor, q as WysiwygEditorProps, u as useEditorContext } from '../shell-9Kxzxjbn.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
4
4
|
import '@bendyline/squisq/schemas';
|
package/dist/shell/index.js
CHANGED
|
@@ -5,10 +5,11 @@ import {
|
|
|
5
5
|
RawEditor,
|
|
6
6
|
WysiwygEditor,
|
|
7
7
|
useEditorContext
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-UPEGQYF4.js";
|
|
9
|
+
import "../chunk-V4NBQF5C.js";
|
|
10
|
+
import "../chunk-MM3M2KUV.js";
|
|
10
11
|
import "../chunk-V44VP242.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-F4NBECWR.js";
|
|
12
13
|
import "../chunk-GS7QWYFT.js";
|
|
13
14
|
import "../chunk-5JMHFAVW.js";
|
|
14
15
|
import "../chunk-5Q4JN4I5.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { Doc, MediaProvider, Theme } from '@bendyline/squisq/schemas';
|
|
3
|
+
import { Doc, MediaProvider, ViewportPreset, Theme } from '@bendyline/squisq/schemas';
|
|
4
4
|
import { MarkdownDocument } from '@bendyline/squisq/markdown';
|
|
5
5
|
import { ContentContainer } from '@bendyline/squisq/storage';
|
|
6
6
|
import { DocumentVersionManager, SaveVersionOptions, SaveVersionResult, PrunePolicy } from '@bendyline/squisq/versions';
|
|
@@ -205,6 +205,15 @@ interface EditorState {
|
|
|
205
205
|
* host may allow the recorder modal but not want a prompter surface.
|
|
206
206
|
*/
|
|
207
207
|
allowNarrate: boolean;
|
|
208
|
+
/**
|
|
209
|
+
* Whether the Write view transparently unwraps hard-wrapped paragraph
|
|
210
|
+
* prose for editing and re-applies the document's detected wrap
|
|
211
|
+
* convention when serializing (see `detectMarkdownWrapState`). Without
|
|
212
|
+
* it, a hard-wrapped document renders as one choppy paragraph per
|
|
213
|
+
* physical line in Write view — and the first edit persists that
|
|
214
|
+
* chopped structure. Defaults to true; document layout mode only.
|
|
215
|
+
*/
|
|
216
|
+
preserveSourceWrapping: boolean;
|
|
208
217
|
/**
|
|
209
218
|
* Document layout mode. `'document'` (default) edits the whole document;
|
|
210
219
|
* `'block'` activates the block-at-a-time card view. Initialized from the
|
|
@@ -440,6 +449,12 @@ interface EditorProviderProps {
|
|
|
440
449
|
* frontmatter-forced `display-mode: narrate` clamps back to video.
|
|
441
450
|
*/
|
|
442
451
|
allowNarrate?: boolean;
|
|
452
|
+
/**
|
|
453
|
+
* Whether the Write view transparently unwraps hard-wrapped prose and
|
|
454
|
+
* re-applies the detected wrap convention on save. Defaults to true;
|
|
455
|
+
* pass false for literal behavior (Tiptap sees the wrapped source).
|
|
456
|
+
*/
|
|
457
|
+
preserveSourceWrapping?: boolean;
|
|
443
458
|
/**
|
|
444
459
|
* File name (e.g. `foo.ts`) or bare extension — used to pick a Monaco
|
|
445
460
|
* language and decide between markdown vs. code mode.
|
|
@@ -533,7 +548,7 @@ interface ViewPreferences {
|
|
|
533
548
|
/** Document vs. block-at-a-time layout. */
|
|
534
549
|
layoutMode?: LayoutMode;
|
|
535
550
|
}
|
|
536
|
-
declare function EditorProvider({ initialMarkdown, initialView, articleId, colorScheme: initialColorScheme, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, mediaProvider, imageDisplayMode, mentionProvider, documentLinkProvider, linkSchemes, allowRecording, allowNarrate, fileName, language, findMode: controlledFindMode, onFindModeChange, inlinePreview, showStatusBar, outline, blockTags, blockTagVisibility: initialBlockTagVisibility, themeInheritance, layoutMode, viewPreferences, onViewPreferencesChange, children, }: EditorProviderProps): react_jsx_runtime.JSX.Element;
|
|
551
|
+
declare function EditorProvider({ initialMarkdown, initialView, articleId, colorScheme: initialColorScheme, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, mediaProvider, imageDisplayMode, mentionProvider, documentLinkProvider, linkSchemes, allowRecording, allowNarrate, preserveSourceWrapping, fileName, language, findMode: controlledFindMode, onFindModeChange, inlinePreview, showStatusBar, outline, blockTags, blockTagVisibility: initialBlockTagVisibility, themeInheritance, layoutMode, viewPreferences, onViewPreferencesChange, children, }: EditorProviderProps): react_jsx_runtime.JSX.Element;
|
|
537
552
|
|
|
538
553
|
/**
|
|
539
554
|
* Host-supplied context sections rendered INSIDE the Monaco (raw/code)
|
|
@@ -619,12 +634,34 @@ interface WriteCanvasSettings {
|
|
|
619
634
|
lineSpacing?: number;
|
|
620
635
|
}
|
|
621
636
|
|
|
637
|
+
/**
|
|
638
|
+
* Semantic embedding mode for the editor shell.
|
|
639
|
+
*
|
|
640
|
+
* The default document mode exposes the full multi-view authoring surface.
|
|
641
|
+
* Chat mode keeps the composer in Write view and removes document-level
|
|
642
|
+
* authoring controls that do not belong in a message composer.
|
|
643
|
+
*/
|
|
644
|
+
type EditorHostMode = 'document' | 'chat';
|
|
645
|
+
|
|
622
646
|
interface EditorShellProps {
|
|
623
647
|
/** Initial markdown content */
|
|
624
648
|
initialMarkdown?: string;
|
|
625
|
-
/** Initial active view */
|
|
626
649
|
/** Initial active view (default: 'wysiwyg') */
|
|
627
650
|
initialView?: EditorView;
|
|
651
|
+
/**
|
|
652
|
+
* Semantic mode for the surface embedding the editor. `'document'`
|
|
653
|
+
* (default) exposes the normal multi-view authoring shell. `'chat'`
|
|
654
|
+
* starts and stays in Write view through the shell's own controls, hides
|
|
655
|
+
* the view tabs, and removes document-level layout, transform, view, and
|
|
656
|
+
* settings controls from the toolbar.
|
|
657
|
+
*/
|
|
658
|
+
hostMode?: EditorHostMode;
|
|
659
|
+
/**
|
|
660
|
+
* Viewport preset used by slideshow/video preview when neither the document
|
|
661
|
+
* nor the user has selected one. Defaults to landscape. Hosts may update it
|
|
662
|
+
* responsively; explicit document and user choices remain authoritative.
|
|
663
|
+
*/
|
|
664
|
+
defaultViewportPreset?: ViewportPreset;
|
|
628
665
|
/** Article ID for Doc generation */
|
|
629
666
|
articleId?: string;
|
|
630
667
|
/** Base path for media URLs in preview */
|
|
@@ -733,7 +770,7 @@ interface EditorShellProps {
|
|
|
733
770
|
*/
|
|
734
771
|
allowPresentationWindow?: boolean;
|
|
735
772
|
/**
|
|
736
|
-
* Whether Use mode may enter
|
|
773
|
+
* Whether Use mode may enter native full screen. Defaults to true. Disable
|
|
737
774
|
* this in embedded hosts whose webview does not support the Fullscreen API.
|
|
738
775
|
*/
|
|
739
776
|
allowPresentationFullscreen?: boolean;
|
|
@@ -870,6 +907,15 @@ interface EditorShellProps {
|
|
|
870
907
|
* `allowRecording` + a `mediaProvider`.
|
|
871
908
|
*/
|
|
872
909
|
allowNarrate?: boolean;
|
|
910
|
+
/**
|
|
911
|
+
* Whether the Write view transparently unwraps hard-wrapped paragraph
|
|
912
|
+
* prose for editing and re-applies the document's detected wrap
|
|
913
|
+
* convention when serializing. Defaults to true — without it, a
|
|
914
|
+
* hard-wrapped document renders one choppy paragraph per physical line
|
|
915
|
+
* in Write view and the first edit persists that chopped structure.
|
|
916
|
+
* Pass `false` for literal behavior. Document layout mode only.
|
|
917
|
+
*/
|
|
918
|
+
preserveSourceWrapping?: boolean;
|
|
873
919
|
/**
|
|
874
920
|
* Placeholder text shown in the WYSIWYG editor while the document is
|
|
875
921
|
* empty. When omitted, the editor rotates through its own generic
|
|
@@ -995,7 +1041,7 @@ interface EditorShellProps {
|
|
|
995
1041
|
* Complete markdown editor shell with toolbar, view switcher, and three
|
|
996
1042
|
* editing modes: Raw (Monaco), WYSIWYG (Tiptap), and Preview.
|
|
997
1043
|
*/
|
|
998
|
-
declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, onLinkClick, colorScheme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, statusBarSlotRight, showPlayTab, allowPresentationWindow, allowPresentationFullscreen, allowPrint, submitOnEnter, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, language, findMode, onFindModeChange, mentionProvider, documentLinkProvider, linkSchemes, 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;
|
|
1044
|
+
declare function EditorShell({ initialMarkdown, initialView, hostMode, defaultViewportPreset, articleId, basePath, onChange, onLinkClick, colorScheme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, statusBarSlotRight, showPlayTab, allowPresentationWindow, allowPresentationFullscreen, allowPrint, submitOnEnter, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, language, findMode, onFindModeChange, mentionProvider, documentLinkProvider, linkSchemes, allowRecording, allowNarrate, preserveSourceWrapping, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, }: EditorShellProps): react_jsx_runtime.JSX.Element;
|
|
999
1045
|
|
|
1000
1046
|
/**
|
|
1001
1047
|
* RawEditor
|
|
@@ -1071,12 +1117,14 @@ interface PreviewPanelProps {
|
|
|
1071
1117
|
* `timing.json` reading.
|
|
1072
1118
|
*/
|
|
1073
1119
|
workspaceContainer?: ContentContainer | null;
|
|
1120
|
+
/** Delegate authored link activation to the embedding host. */
|
|
1121
|
+
onLinkClick?: (href: string) => boolean | undefined;
|
|
1074
1122
|
}
|
|
1075
1123
|
/**
|
|
1076
1124
|
* Live preview panel that renders the current document as a slideshow
|
|
1077
1125
|
* or document view. Controls (viewport, mode, theme, transform, captions)
|
|
1078
1126
|
* are rendered in the main toolbar via PreviewToolbarControls.
|
|
1079
1127
|
*/
|
|
1080
|
-
declare function PreviewPanel({ basePath, className, workspaceContainer }: PreviewPanelProps): react_jsx_runtime.JSX.Element;
|
|
1128
|
+
declare function PreviewPanel({ basePath, className, workspaceContainer, onLinkClick, }: PreviewPanelProps): react_jsx_runtime.JSX.Element;
|
|
1081
1129
|
|
|
1082
|
-
export { type BlockTagVisibility as B, type CodeContext as C, type DocumentLinkCandidate as D, type
|
|
1130
|
+
export { type BlockTagVisibility as B, type CodeContext as C, type DocumentLinkCandidate as D, type EditorHostMode as E, type ImageDisplayMode as I, type LayoutMode as L, type MentionCandidate as M, PreviewPanel as P, RawEditor as R, type SceneTextChannel as S, type ThemeInheritance as T, type ViewPreferences as V, type WriteCanvasSettings as W, type CodeContextSection as a, type DocumentLinkProvider as b, type EditorActions as c, type EditorColorScheme as d, type EditorContextValue as e, type EditorMode as f, EditorProvider as g, type EditorProviderProps as h, EditorShell as i, type EditorShellProps as j, type EditorState as k, type EditorView as l, type MentionProvider as m, type PreviewPanelProps as n, type RawEditorProps as o, WysiwygEditor as p, type WysiwygEditorProps as q, useEditorContext as u };
|