@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/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-GNIVYDZH.js";
197
+ } from "./chunk-KR4VLXUM.js";
198
+ import "./chunk-V4NBQF5C.js";
186
199
  import {
187
200
  JsonEditor
188
- } from "./chunk-54UGTQBO.js";
201
+ } from "./chunk-WDX6UDL5.js";
189
202
  import {
190
203
  markdownToTiptap,
191
204
  tiptapToMarkdown
192
- } from "./chunk-NITZVAXL.js";
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-6VDYKI3L.js";
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-MJJK7YQB.js";
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
- TeleprompterView,
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
- useStreamPreview
251
- } from "./chunk-5Q4JN4I5.js";
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,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  JsonEditor
3
- } from "../chunk-54UGTQBO.js";
4
- import "../chunk-NITZVAXL.js";
3
+ } from "../chunk-WDX6UDL5.js";
4
+ import "../chunk-WLJ623UZ.js";
5
5
  export {
6
6
  JsonEditor
7
7
  };
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
- import "monaco-editor/esm/vs/editor/editor.main.js";
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 JSONC_LANGUAGE = {
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(monaco2) {
55
- if (monaco2.languages.getLanguages().some(({ id }) => id === "jsonc")) return;
56
- monaco2.languages.register({
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
- monaco2.languages.setLanguageConfiguration("jsonc", JSONC_CONFIGURATION);
63
- monaco2.languages.setMonarchTokensProvider("jsonc", JSONC_LANGUAGE);
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
- export * from "monaco-editor/esm/vs/editor/editor.api.js";
68
- registerJsoncLanguage(monaco);
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 };
@@ -0,0 +1,3 @@
1
+ // src/monacoSuggestions.ts
2
+ import "monaco-editor/esm/vs/editor/contrib/snippet/browser/snippetController2.js";
3
+ import "monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestController.js";