@bendyline/squisq-editor-react 2.3.4 → 2.4.1
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-GNIVYDZH.js → chunk-KR4VLXUM.js} +10998 -8247
- package/dist/{chunk-6VDYKI3L.js → chunk-LJRHKXDV.js} +3 -1
- package/dist/chunk-LOTY7AOS.js +1925 -0
- package/dist/{chunk-5JMHFAVW.js → chunk-PDCKJCOS.js} +1200 -868
- package/dist/chunk-V4NBQF5C.js +62 -0
- package/dist/chunk-V6Z7GG55.js +16 -0
- package/dist/{chunk-54UGTQBO.js → chunk-WDX6UDL5.js} +1 -1
- package/dist/{chunk-NITZVAXL.js → chunk-WLJ623UZ.js} +24 -0
- package/dist/index.d.ts +289 -118
- package/dist/index.js +52 -20
- 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.d.ts +7 -407
- package/dist/recorder/index.js +3 -3
- package/dist/recorder-C5tAYUE3.d.ts +508 -0
- package/dist/shell/index.d.ts +1 -1
- package/dist/shell/index.js +6 -5
- package/dist/{shell-C-KkTBz7.d.ts → shell-CU4GpGuq.d.ts} +76 -6
- package/dist/styles/index.css +845 -26
- package/dist/teleprompter/index.d.ts +57 -246
- package/dist/teleprompter/index.js +12 -3
- package/dist/useNarrationStage-Bqo18PBw.d.ts +313 -0
- package/package.json +8 -6
- package/dist/chunk-5Q4JN4I5.js +0 -132
- package/dist/chunk-MJJK7YQB.js +0 -949
package/dist/index.js
CHANGED
|
@@ -62,11 +62,15 @@ import {
|
|
|
62
62
|
TRANSITION_GROUPS,
|
|
63
63
|
TemplatePicker,
|
|
64
64
|
ThemePicker,
|
|
65
|
+
TimelineCompositionPanel,
|
|
65
66
|
TimelineEditorWidget,
|
|
67
|
+
TimelineToolbar,
|
|
66
68
|
TimelineTrack,
|
|
69
|
+
TimelineVideoPanel,
|
|
67
70
|
TimelineViewExtension,
|
|
68
71
|
Toolbar,
|
|
69
72
|
TooltipLayer,
|
|
73
|
+
TransformMenu,
|
|
70
74
|
TransitionPicker,
|
|
71
75
|
TreeOutlineWidget,
|
|
72
76
|
TreeViewExtension,
|
|
@@ -89,6 +93,7 @@ import {
|
|
|
89
93
|
codeSnippetMarkdown,
|
|
90
94
|
compileDraft,
|
|
91
95
|
detectLanguageFromFileName,
|
|
96
|
+
documentTitleFromFileName,
|
|
92
97
|
draftPatchFromImportedTheme,
|
|
93
98
|
findAsciiDiagramBlockPos,
|
|
94
99
|
findCodeSnippetBlockPos,
|
|
@@ -101,6 +106,7 @@ import {
|
|
|
101
106
|
getBlockSlices,
|
|
102
107
|
getTimelineForNode,
|
|
103
108
|
indentItemOp,
|
|
109
|
+
ingestForWrite,
|
|
104
110
|
inspectMermaidSource,
|
|
105
111
|
isAsciiSourceVisible,
|
|
106
112
|
isCodeSnippetFenceLanguage,
|
|
@@ -126,7 +132,10 @@ import {
|
|
|
126
132
|
outdentItemOp,
|
|
127
133
|
parseTimelineForNode,
|
|
128
134
|
partitionFiles,
|
|
135
|
+
persistFromWrite,
|
|
129
136
|
platformShortcut,
|
|
137
|
+
preloadMonaco,
|
|
138
|
+
preloadMonacoSuggestions,
|
|
130
139
|
processMediaFiles,
|
|
131
140
|
processTextFile,
|
|
132
141
|
processTextFiles,
|
|
@@ -151,6 +160,8 @@ import {
|
|
|
151
160
|
searchPickerEntries,
|
|
152
161
|
setBlockAttrsValue,
|
|
153
162
|
setBlockDurationInSource,
|
|
163
|
+
setBlockStartTimeInSource,
|
|
164
|
+
setBlockTransitionInSource,
|
|
154
165
|
setHeadingAttrsTransition,
|
|
155
166
|
setHeadingLineTransition,
|
|
156
167
|
setMediaClipInSource,
|
|
@@ -176,20 +187,22 @@ import {
|
|
|
176
187
|
useDocCustomTemplates,
|
|
177
188
|
useDocCustomThemes,
|
|
178
189
|
useEditorContext,
|
|
190
|
+
useEscapeDismissal,
|
|
179
191
|
useFileDrop,
|
|
180
192
|
useMermaidDiagramData,
|
|
181
193
|
useMonacoLoader,
|
|
182
194
|
usePreviewSettings,
|
|
183
195
|
useTimelineData,
|
|
184
196
|
useTreeViewData
|
|
185
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-KR4VLXUM.js";
|
|
198
|
+
import "./chunk-V4NBQF5C.js";
|
|
186
199
|
import {
|
|
187
200
|
JsonEditor
|
|
188
|
-
} from "./chunk-
|
|
201
|
+
} from "./chunk-WDX6UDL5.js";
|
|
189
202
|
import {
|
|
190
203
|
markdownToTiptap,
|
|
191
204
|
tiptapToMarkdown
|
|
192
|
-
} from "./chunk-
|
|
205
|
+
} from "./chunk-WLJ623UZ.js";
|
|
193
206
|
import {
|
|
194
207
|
ImageEditor,
|
|
195
208
|
ImageViewer,
|
|
@@ -199,28 +212,34 @@ import {
|
|
|
199
212
|
} from "./chunk-V44VP242.js";
|
|
200
213
|
import {
|
|
201
214
|
RecorderButton
|
|
202
|
-
} from "./chunk-
|
|
215
|
+
} from "./chunk-LJRHKXDV.js";
|
|
203
216
|
import {
|
|
204
217
|
RecorderModal,
|
|
205
218
|
RecorderPanel,
|
|
206
219
|
getCaptureKind,
|
|
207
220
|
requestScreenStream,
|
|
208
221
|
useMediaRecorder
|
|
209
|
-
} from "./chunk-
|
|
222
|
+
} from "./chunk-LOTY7AOS.js";
|
|
210
223
|
import "./chunk-GS7QWYFT.js";
|
|
224
|
+
import {
|
|
225
|
+
TeleprompterView
|
|
226
|
+
} from "./chunk-V6Z7GG55.js";
|
|
211
227
|
import {
|
|
212
228
|
DEFAULT_TELEPROMPTER_PREFS,
|
|
213
229
|
EYE_LINE_FRACTION,
|
|
230
|
+
NarrationStage,
|
|
214
231
|
PCM_WORKLET_NAME,
|
|
215
232
|
PCM_WORKLET_SOURCE,
|
|
216
233
|
TELEPROMPTER_CSS,
|
|
217
234
|
TeleprompterControls,
|
|
218
235
|
TeleprompterSurface,
|
|
219
|
-
|
|
236
|
+
buildFilename,
|
|
220
237
|
buildNarrationSavePlan,
|
|
238
|
+
buildTimingJson,
|
|
221
239
|
cameraVideoLine,
|
|
222
240
|
createFloatingWindowManager,
|
|
223
241
|
detectFloatTiers,
|
|
242
|
+
encodeTimingJson,
|
|
224
243
|
ensureTeleprompterStyles,
|
|
225
244
|
executeNarrationSave,
|
|
226
245
|
insertNarrationPreamble,
|
|
@@ -228,27 +247,23 @@ import {
|
|
|
228
247
|
narrationAnnotationLine,
|
|
229
248
|
prompterVarsFromTheme,
|
|
230
249
|
registerPcmWorklet,
|
|
231
|
-
stepScroll,
|
|
232
|
-
targetOffsetFor,
|
|
233
|
-
useFloatingWindow,
|
|
234
|
-
useMicAnalysis,
|
|
235
|
-
useNarrationRecorder,
|
|
236
|
-
useTeleprompter,
|
|
237
|
-
vadConfigForSensitivity
|
|
238
|
-
} from "./chunk-5JMHFAVW.js";
|
|
239
|
-
import {
|
|
240
|
-
buildFilename,
|
|
241
|
-
buildTimingJson,
|
|
242
|
-
encodeTimingJson,
|
|
243
250
|
requestCameraStream,
|
|
244
251
|
requestMicStream,
|
|
245
252
|
resolveFormat,
|
|
253
|
+
stepScroll,
|
|
246
254
|
supportsDisplayMedia,
|
|
247
255
|
supportsMediaRecorder,
|
|
248
256
|
supportsUserMedia,
|
|
257
|
+
targetOffsetFor,
|
|
249
258
|
timingPathFor,
|
|
250
|
-
|
|
251
|
-
|
|
259
|
+
useFloatingWindow,
|
|
260
|
+
useMicAnalysis,
|
|
261
|
+
useNarrationRecorder,
|
|
262
|
+
useNarrationStage,
|
|
263
|
+
useStreamPreview,
|
|
264
|
+
useTeleprompter,
|
|
265
|
+
vadConfigForSensitivity
|
|
266
|
+
} from "./chunk-PDCKJCOS.js";
|
|
252
267
|
|
|
253
268
|
// src/FolderView.tsx
|
|
254
269
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -386,6 +401,9 @@ function ThemeCustomizerPanel({
|
|
|
386
401
|
const [draft, setDraft] = useState(() => themeToDraft(value));
|
|
387
402
|
const [popoverPosition, setPopoverPosition] = useState(null);
|
|
388
403
|
const containerRef = useRef(null);
|
|
404
|
+
const triggerRef = useRef(null);
|
|
405
|
+
const close = useCallback(() => setOpen(false), []);
|
|
406
|
+
useEscapeDismissal(open, close, triggerRef);
|
|
389
407
|
const externalIdRef = useRef(value?.id ?? null);
|
|
390
408
|
useEffect(() => {
|
|
391
409
|
const incomingId = value?.id ?? null;
|
|
@@ -476,6 +494,7 @@ function ThemeCustomizerPanel({
|
|
|
476
494
|
/* @__PURE__ */ jsx3(
|
|
477
495
|
"button",
|
|
478
496
|
{
|
|
497
|
+
ref: triggerRef,
|
|
479
498
|
type: "button",
|
|
480
499
|
className: `squisq-toolbar-button squisq-theme-customizer-trigger${triggerLabel ? " squisq-theme-customizer-trigger--label" : ""}${open ? " squisq-toolbar-button--active" : ""}`,
|
|
481
500
|
"data-tooltip": "Customize theme",
|
|
@@ -706,6 +725,7 @@ export {
|
|
|
706
725
|
MermaidDiagramTypeThumbnail,
|
|
707
726
|
MermaidDiagramWidget,
|
|
708
727
|
MermaidShapePalette,
|
|
728
|
+
NarrationStage,
|
|
709
729
|
OutlinePanel,
|
|
710
730
|
PCM_WORKLET_NAME,
|
|
711
731
|
PCM_WORKLET_SOURCE,
|
|
@@ -734,11 +754,15 @@ export {
|
|
|
734
754
|
TemplatePicker,
|
|
735
755
|
ThemeCustomizerPanel,
|
|
736
756
|
ThemePicker,
|
|
757
|
+
TimelineCompositionPanel,
|
|
737
758
|
TimelineEditorWidget,
|
|
759
|
+
TimelineToolbar,
|
|
738
760
|
TimelineTrack,
|
|
761
|
+
TimelineVideoPanel,
|
|
739
762
|
TimelineViewExtension,
|
|
740
763
|
Toolbar,
|
|
741
764
|
TooltipLayer,
|
|
765
|
+
TransformMenu,
|
|
742
766
|
TransitionPicker,
|
|
743
767
|
TreeOutlineWidget,
|
|
744
768
|
TreeViewExtension,
|
|
@@ -768,6 +792,7 @@ export {
|
|
|
768
792
|
createFloatingWindowManager,
|
|
769
793
|
detectFloatTiers,
|
|
770
794
|
detectLanguageFromFileName,
|
|
795
|
+
documentTitleFromFileName,
|
|
771
796
|
draftPatchFromImportedTheme,
|
|
772
797
|
encodeTimingJson,
|
|
773
798
|
ensureTeleprompterStyles,
|
|
@@ -785,6 +810,7 @@ export {
|
|
|
785
810
|
getTimelineForNode,
|
|
786
811
|
imageEditorReducer,
|
|
787
812
|
indentItemOp,
|
|
813
|
+
ingestForWrite,
|
|
788
814
|
initialImageEditorState,
|
|
789
815
|
insertNarrationPreamble,
|
|
790
816
|
inspectMermaidSource,
|
|
@@ -815,6 +841,9 @@ export {
|
|
|
815
841
|
outdentItemOp,
|
|
816
842
|
parseTimelineForNode,
|
|
817
843
|
partitionFiles,
|
|
844
|
+
persistFromWrite,
|
|
845
|
+
preloadMonaco,
|
|
846
|
+
preloadMonacoSuggestions,
|
|
818
847
|
processMediaFiles,
|
|
819
848
|
processTextFile,
|
|
820
849
|
processTextFiles,
|
|
@@ -846,6 +875,8 @@ export {
|
|
|
846
875
|
searchPickerEntries,
|
|
847
876
|
setBlockAttrsValue,
|
|
848
877
|
setBlockDurationInSource,
|
|
878
|
+
setBlockStartTimeInSource,
|
|
879
|
+
setBlockTransitionInSource,
|
|
849
880
|
setHeadingAttrsTransition,
|
|
850
881
|
setHeadingLineTransition,
|
|
851
882
|
setMediaClipInSource,
|
|
@@ -885,6 +916,7 @@ export {
|
|
|
885
916
|
useMicAnalysis,
|
|
886
917
|
useMonacoLoader,
|
|
887
918
|
useNarrationRecorder,
|
|
919
|
+
useNarrationStage,
|
|
888
920
|
usePreviewSettings,
|
|
889
921
|
useStreamPreview,
|
|
890
922
|
useTeleprompter,
|
package/dist/monaco.d.ts
CHANGED
|
@@ -1 +1,27 @@
|
|
|
1
1
|
export * from 'monaco-editor/esm/vs/editor/editor.api.js';
|
|
2
|
+
import { M as MonacoLanguageRequest, a as MonacoLanguageLoadOptions } from './monacoLanguageDetection-DEyUW-BS.js';
|
|
3
|
+
export { m as monacoLanguageRequestKey, b as monacoLanguagesForDocument, n as normalizeMonacoLanguage } from './monacoLanguageDetection-DEyUW-BS.js';
|
|
4
|
+
|
|
5
|
+
/** Demand-driven Monaco language registration for Squisq editor surfaces. */
|
|
6
|
+
|
|
7
|
+
/** Load only the requested grammar registrations and, when opted in, services. */
|
|
8
|
+
declare function loadMonacoLanguages(requested: MonacoLanguageRequest, options?: MonacoLanguageLoadOptions): Promise<void>;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Canonical Monaco entry for Squisq and downstream hosts.
|
|
12
|
+
*
|
|
13
|
+
* This entry deliberately avoids Monaco's `editor.main.js` and
|
|
14
|
+
* `editor.all.js` barrels. It registers the compact editing feature profile
|
|
15
|
+
* used by every Squisq editor. Language grammars and worker-backed services
|
|
16
|
+
* are loaded on demand through `loadMonacoLanguages`, so a Markdown source
|
|
17
|
+
* view does not initialize an IDE's worth of unrelated features and languages.
|
|
18
|
+
*
|
|
19
|
+
* Rich CSS/HTML/JSON/JavaScript/TypeScript services still need workers wired
|
|
20
|
+
* through `configureMonacoWorkers`. Syntax highlighting, editing, and Squisq's
|
|
21
|
+
* custom completion providers do not start those workers.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/** Load Monaco's completion/snippet UI without placing it in the editor core. */
|
|
25
|
+
declare function loadMonacoSuggestions(): Promise<void>;
|
|
26
|
+
|
|
27
|
+
export { MonacoLanguageLoadOptions, MonacoLanguageRequest, loadMonacoLanguages, loadMonacoSuggestions };
|
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 };
|