@omniviewdev/editors 3.0.3 → 5.0.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/dist/editors.css CHANGED
@@ -1 +1 @@
1
- ._Root_1729c_1{position:relative;overflow:hidden;box-sizing:border-box;border-radius:var(--ov-radius-sm, 4px);border:1px solid var(--ov-color-editor-border, var(--ov-color-border-default));background:var(--ov-color-editor-bg, var(--ov-color-bg-surface));height:var(--_editor-height);width:var(--_editor-width)}._Root_1729c_1[data-borderless]{border:none;border-radius:0}._Inner_1729c_17{height:100%;width:100%}._Loading_1729c_22{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:var(--ov-color-fg-muted);font-family:var(--ov-font-family-sans, sans-serif);font-size:var(--ov-font-size-sm, 13px)}._Root_1ltbg_1{position:relative;overflow:hidden;box-sizing:border-box;border-radius:var(--ov-radius-sm, 4px);border:1px solid var(--ov-color-editor-border, var(--ov-color-border-default));background:var(--ov-color-editor-bg, var(--ov-color-bg-surface));height:var(--_diff-height, 100%)}._Root_1ltbg_1[data-borderless]{border:none;border-radius:0}._Inner_1ltbg_16{height:100%;width:100%}._Loading_1ltbg_21{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:var(--ov-color-fg-muted);font-family:var(--ov-font-family-sans, sans-serif);font-size:var(--ov-font-size-sm, 13px)}._Root_1s8vo_1{width:100%;height:100%;overflow:hidden;background:var(--ov-color-terminal-bg, var(--ov-color-bg-surface));border:1px solid var(--ov-color-terminal-border, var(--ov-color-border-default));border-radius:var(--ov-radius-sm, 4px);padding:var(--ov-space-1, 4px);font-family:var(--ov-font-family-mono, monospace)}._Root_1wl3o_1{color:var(--ov-color-editor-fg, var(--ov-color-fg-default));font-family:var(--ov-font-family-sans, sans-serif);font-size:var(--ov-font-size-md, 14px);line-height:var(--ov-line-height-md, 1.6);padding:var(--ov-space-3, 12px);overflow-y:auto}._Root_1wl3o_1 h1,._Root_1wl3o_1 h2,._Root_1wl3o_1 h3,._Root_1wl3o_1 h4,._Root_1wl3o_1 h5,._Root_1wl3o_1 h6{color:var(--ov-color-fg-default);font-weight:var(--ov-font-weight-bold, 600);margin-top:var(--ov-space-4, 16px);margin-bottom:var(--ov-space-2, 8px)}._Root_1wl3o_1 h1{font-size:var(--ov-font-size-2xl, 24px);border-bottom:1px solid var(--ov-color-border-muted);padding-bottom:var(--ov-space-2, 8px)}._Root_1wl3o_1 h2{font-size:var(--ov-font-size-xl, 20px);border-bottom:1px solid var(--ov-color-border-muted);padding-bottom:var(--ov-space-1, 4px)}._Root_1wl3o_1 h3{font-size:var(--ov-font-size-lg, 16px)}._Root_1wl3o_1 p{margin-top:0;margin-bottom:var(--ov-space-3, 12px)}._Root_1wl3o_1 ul,._Root_1wl3o_1 ol{margin-top:0;margin-bottom:var(--ov-space-3, 12px);padding-left:var(--ov-space-5, 24px)}._Root_1wl3o_1 li{margin-bottom:var(--ov-space-1, 4px)}._Root_1wl3o_1 figure{margin:0 0 var(--ov-space-3, 12px) 0}._Root_1wl3o_1 blockquote>p:last-child{margin-bottom:0}._Root_1wl3o_1 blockquote{margin-bottom:var(--ov-space-3, 12px)}._Root_1wl3o_1 .ov-md-checkbox{display:inline-grid;width:auto;vertical-align:middle;margin-right:var(--ov-space-1, 4px)}._Root_1wl3o_1 li:has(>.ov-md-checkbox){list-style:none}._Root_1wl3o_1 img{max-width:100%;height:auto;border-radius:var(--ov-radius-sm, 4px)}._Root_1wl3o_1 [data-ov-component=accordion]{margin-bottom:var(--ov-space-3, 12px)}._Loading_1wl3o_92{display:flex;align-items:center;justify-content:center;padding:var(--ov-space-4, 16px);color:var(--ov-color-fg-muted);font-size:var(--ov-font-size-sm, 13px)}._Overlay_a3q8o_1{position:fixed;inset:0;z-index:var(--ov-z-modal, 1000);display:flex;justify-content:center;padding-top:20vh;background:var(--ov-color-overlay-bg, rgba(0, 0, 0, .4))}._Root_a3q8o_11{width:min(600px,90vw);max-height:60vh;display:flex;flex-direction:column;background:var(--ov-color-quickpick-bg, var(--ov-color-bg-surface));border:1px solid var(--ov-color-border-overlay);border-radius:var(--ov-radius-md, 8px);box-shadow:var(--ov-color-quickpick-shadow, 0 8px 32px rgba(0, 0, 0, .4));overflow:hidden}._CommandList_a3q8o_24{min-height:0;flex:1 1 auto}._Results_a3q8o_29{max-block-size:none}._Root_1b5sv_1{font-family:var(--ov-font-family-mono, monospace);font-size:var(--ov-font-size-sm, 13px);line-height:1.5;color:var(--ov-color-editor-fg, var(--ov-color-fg-default));background:var(--ov-color-editor-bg, var(--ov-color-bg-surface));border:1px solid var(--ov-color-editor-border, var(--ov-color-border-default));border-radius:var(--ov-radius-sm, 4px);overflow:auto}._Toolbar_1b5sv_12{display:flex;align-items:center;gap:var(--ov-space-2, 8px);padding:var(--ov-space-2, 8px);border-bottom:1px solid var(--ov-color-border-muted)}._SearchInput_1b5sv_20{flex:1;padding:var(--ov-space-1, 4px) var(--ov-space-2, 8px);background:var(--ov-color-input-bg, transparent);color:var(--ov-color-input-fg, var(--ov-color-fg-default));border:1px solid var(--ov-color-border-control);border-radius:var(--ov-radius-sm, 4px);font-family:inherit;font-size:inherit;outline:none}._SearchInput_1b5sv_20::placeholder{color:var(--ov-color-input-placeholder, var(--ov-color-fg-muted))}._SearchInput_1b5sv_20:focus-visible{outline:2px solid var(--ov-color-border-focus, var(--ov-color-fg-accent, #007fd4));outline-offset:-1px}._CopyButton_1b5sv_41{padding:var(--ov-space-1, 4px) var(--ov-space-2, 8px);background:var(--ov-color-button-secondary-bg, var(--ov-color-bg-subtle));color:var(--ov-color-button-secondary-fg, var(--ov-color-fg-default));border:1px solid var(--ov-color-border-default);border-radius:var(--ov-radius-sm, 4px);font-size:var(--ov-font-size-xs, 11px);cursor:pointer}._CopyButton_1b5sv_41:hover{background:var(--ov-color-button-secondary-hover-bg, var(--ov-color-bg-subtle))}._Tree_1b5sv_55{padding:var(--ov-space-2, 8px)}._Row_1b5sv_63{display:flex;align-items:center;padding:1px 0;padding-left:var(--_inspector-depth-indent, 0);cursor:default;white-space:nowrap}._Row_1b5sv_63:hover{background:var(--ov-color-list-hover-bg, var(--ov-color-bg-subtle))}._RowHighlight_1b5sv_76{background:var(--ov-color-editor-find-match-bg, rgba(255, 255, 0, .15))}._Chevron_1b5sv_80{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;font-size:10px;color:var(--ov-color-fg-muted);transition:transform var(--ov-duration-fast, .1s) var(--ov-ease-standard, ease);cursor:pointer}._ChevronExpanded_1b5sv_93{transform:rotate(90deg)}._ChevronSpacer_1b5sv_97{display:inline-block;width:16px;flex-shrink:0}._Key_1b5sv_103{color:var(--ov-syntax-property, var(--ov-color-fg-default))}._Colon_1b5sv_107{color:var(--ov-syntax-punctuation, var(--ov-color-fg-muted))}._Value_1b5sv_111[data-type=string]{color:var(--ov-syntax-string, var(--ov-color-fg-accent, currentColor))}._Value_1b5sv_111[data-type=number]{color:var(--ov-syntax-number, var(--ov-color-fg-success, currentColor))}._Value_1b5sv_111[data-type=boolean]{color:var(--ov-syntax-keyword, var(--ov-color-fg-info, currentColor))}._Value_1b5sv_111[data-type=null],._Value_1b5sv_111[data-type=undefined]{color:var(--ov-syntax-keyword, var(--ov-color-fg-info, currentColor));font-style:italic}._Preview_1b5sv_129{color:var(--ov-color-fg-muted);font-style:italic}._Comma_1b5sv_134{color:var(--ov-syntax-punctuation, var(--ov-color-fg-muted))}
1
+ ._Root_1729c_1{position:relative;overflow:hidden;box-sizing:border-box;border-radius:var(--ov-radius-sm, 4px);border:1px solid var(--ov-color-editor-border, var(--ov-color-border-default));background:var(--ov-color-editor-bg, var(--ov-color-bg-surface));height:var(--_editor-height);width:var(--_editor-width)}._Root_1729c_1[data-borderless]{border:none;border-radius:0}._Inner_1729c_17{height:100%;width:100%}._Loading_1729c_22{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:var(--ov-color-fg-muted);font-family:var(--ov-font-family-sans, sans-serif);font-size:var(--ov-font-size-sm, 13px)}._Root_1ltbg_1{position:relative;overflow:hidden;box-sizing:border-box;border-radius:var(--ov-radius-sm, 4px);border:1px solid var(--ov-color-editor-border, var(--ov-color-border-default));background:var(--ov-color-editor-bg, var(--ov-color-bg-surface));height:var(--_diff-height, 100%)}._Root_1ltbg_1[data-borderless]{border:none;border-radius:0}._Inner_1ltbg_16{height:100%;width:100%}._Loading_1ltbg_21{display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:var(--ov-color-fg-muted);font-family:var(--ov-font-family-sans, sans-serif);font-size:var(--ov-font-size-sm, 13px)}._Root_1s8vo_1{width:100%;height:100%;overflow:hidden;background:var(--ov-color-terminal-bg, var(--ov-color-bg-surface));border:1px solid var(--ov-color-terminal-border, var(--ov-color-border-default));border-radius:var(--ov-radius-sm, 4px);padding:var(--ov-space-1, 4px);font-family:var(--ov-font-family-mono, monospace)}._Root_1wl3o_1{color:var(--ov-color-editor-fg, var(--ov-color-fg-default));font-family:var(--ov-font-family-sans, sans-serif);font-size:var(--ov-font-size-md, 14px);line-height:var(--ov-line-height-md, 1.6);padding:var(--ov-space-3, 12px);overflow-y:auto}._Root_1wl3o_1 h1,._Root_1wl3o_1 h2,._Root_1wl3o_1 h3,._Root_1wl3o_1 h4,._Root_1wl3o_1 h5,._Root_1wl3o_1 h6{color:var(--ov-color-fg-default);font-weight:var(--ov-font-weight-bold, 600);margin-top:var(--ov-space-4, 16px);margin-bottom:var(--ov-space-2, 8px)}._Root_1wl3o_1 h1{font-size:var(--ov-font-size-2xl, 24px);border-bottom:1px solid var(--ov-color-border-muted);padding-bottom:var(--ov-space-2, 8px)}._Root_1wl3o_1 h2{font-size:var(--ov-font-size-xl, 20px);border-bottom:1px solid var(--ov-color-border-muted);padding-bottom:var(--ov-space-1, 4px)}._Root_1wl3o_1 h3{font-size:var(--ov-font-size-lg, 16px)}._Root_1wl3o_1 p{margin-top:0;margin-bottom:var(--ov-space-3, 12px)}._Root_1wl3o_1 ul,._Root_1wl3o_1 ol{margin-top:0;margin-bottom:var(--ov-space-3, 12px);padding-left:var(--ov-space-5, 24px)}._Root_1wl3o_1 li{margin-bottom:var(--ov-space-1, 4px)}._Root_1wl3o_1 figure{margin:0 0 var(--ov-space-3, 12px) 0}._Root_1wl3o_1 blockquote>p:last-child{margin-bottom:0}._Root_1wl3o_1 blockquote{margin-bottom:var(--ov-space-3, 12px)}._Root_1wl3o_1 .ov-md-checkbox{display:inline-grid;width:auto;vertical-align:middle;margin-right:var(--ov-space-1, 4px)}._Root_1wl3o_1 li:has(>.ov-md-checkbox){list-style:none}._Root_1wl3o_1 img{max-width:100%;height:auto;border-radius:var(--ov-radius-sm, 4px)}._Root_1wl3o_1 [data-ov-component=accordion]{margin-bottom:var(--ov-space-3, 12px)}._Loading_1wl3o_92{display:flex;align-items:center;justify-content:center;padding:var(--ov-space-4, 16px);color:var(--ov-color-fg-muted);font-size:var(--ov-font-size-sm, 13px)}._Overlay_pgin5_1{position:fixed;inset:0;z-index:var(--ov-z-modal, 1000);display:flex;justify-content:center;align-items:flex-start;padding-top:20vh;background:var(--ov-color-overlay-bg, rgba(0, 0, 0, .4))}._Root_pgin5_12{width:min(600px,90vw);max-height:60vh;display:flex;flex-direction:column;background:var(--ov-color-quickpick-bg, var(--ov-color-bg-surface));border:1px solid var(--ov-color-border-overlay);border-radius:var(--ov-radius-md, 8px);box-shadow:var(--ov-color-quickpick-shadow, 0 8px 32px rgba(0, 0, 0, .4));overflow:hidden}._CommandList_pgin5_25{min-height:0;flex:1 1 auto}._Results_pgin5_30{max-block-size:none;overscroll-behavior:contain}._Message_pgin5_35{padding:var(--ov-space-stack-md, 16px);color:var(--ov-color-danger);overflow-wrap:anywhere}._Root_1b5sv_1{font-family:var(--ov-font-family-mono, monospace);font-size:var(--ov-font-size-sm, 13px);line-height:1.5;color:var(--ov-color-editor-fg, var(--ov-color-fg-default));background:var(--ov-color-editor-bg, var(--ov-color-bg-surface));border:1px solid var(--ov-color-editor-border, var(--ov-color-border-default));border-radius:var(--ov-radius-sm, 4px);overflow:auto}._Toolbar_1b5sv_12{display:flex;align-items:center;gap:var(--ov-space-2, 8px);padding:var(--ov-space-2, 8px);border-bottom:1px solid var(--ov-color-border-muted)}._SearchInput_1b5sv_20{flex:1;padding:var(--ov-space-1, 4px) var(--ov-space-2, 8px);background:var(--ov-color-input-bg, transparent);color:var(--ov-color-input-fg, var(--ov-color-fg-default));border:1px solid var(--ov-color-border-control);border-radius:var(--ov-radius-sm, 4px);font-family:inherit;font-size:inherit;outline:none}._SearchInput_1b5sv_20::placeholder{color:var(--ov-color-input-placeholder, var(--ov-color-fg-muted))}._SearchInput_1b5sv_20:focus-visible{outline:2px solid var(--ov-color-border-focus, var(--ov-color-fg-accent, #007fd4));outline-offset:-1px}._CopyButton_1b5sv_41{padding:var(--ov-space-1, 4px) var(--ov-space-2, 8px);background:var(--ov-color-button-secondary-bg, var(--ov-color-bg-subtle));color:var(--ov-color-button-secondary-fg, var(--ov-color-fg-default));border:1px solid var(--ov-color-border-default);border-radius:var(--ov-radius-sm, 4px);font-size:var(--ov-font-size-xs, 11px);cursor:pointer}._CopyButton_1b5sv_41:hover{background:var(--ov-color-button-secondary-hover-bg, var(--ov-color-bg-subtle))}._Tree_1b5sv_55{padding:var(--ov-space-2, 8px)}._Row_1b5sv_63{display:flex;align-items:center;padding:1px 0;padding-left:var(--_inspector-depth-indent, 0);cursor:default;white-space:nowrap}._Row_1b5sv_63:hover{background:var(--ov-color-list-hover-bg, var(--ov-color-bg-subtle))}._RowHighlight_1b5sv_76{background:var(--ov-color-editor-find-match-bg, rgba(255, 255, 0, .15))}._Chevron_1b5sv_80{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;font-size:10px;color:var(--ov-color-fg-muted);transition:transform var(--ov-duration-fast, .1s) var(--ov-ease-standard, ease);cursor:pointer}._ChevronExpanded_1b5sv_93{transform:rotate(90deg)}._ChevronSpacer_1b5sv_97{display:inline-block;width:16px;flex-shrink:0}._Key_1b5sv_103{color:var(--ov-syntax-property, var(--ov-color-fg-default))}._Colon_1b5sv_107{color:var(--ov-syntax-punctuation, var(--ov-color-fg-muted))}._Value_1b5sv_111[data-type=string]{color:var(--ov-syntax-string, var(--ov-color-fg-accent, currentColor))}._Value_1b5sv_111[data-type=number]{color:var(--ov-syntax-number, var(--ov-color-fg-success, currentColor))}._Value_1b5sv_111[data-type=boolean]{color:var(--ov-syntax-keyword, var(--ov-color-fg-info, currentColor))}._Value_1b5sv_111[data-type=null],._Value_1b5sv_111[data-type=undefined]{color:var(--ov-syntax-keyword, var(--ov-color-fg-info, currentColor));font-style:italic}._Preview_1b5sv_129{color:var(--ov-color-fg-muted);font-style:italic}._Comma_1b5sv_134{color:var(--ov-syntax-punctuation, var(--ov-color-fg-muted))}._Root_im36v_1{display:flex;flex-direction:column;gap:var(--ov-space-1, 4px);min-width:0}._Label_im36v_7{font-size:var(--ov-font-size-sm, 12px);font-weight:500;color:var(--ov-color-fg-muted)}._Surface_im36v_12{position:relative;overflow:hidden;min-height:var(--_cel-editor-min-height, 52px);border:1px solid var(--ov-color-border-default);border-radius:var(--ov-radius-md, 6px);background:var(--ov-color-bg-surface)}._Surface_im36v_12:focus-within{border-color:var(--ov-color-border-focus);box-shadow:0 0 0 1px var(--ov-color-border-focus)}._Placeholder_im36v_24{position:absolute;inset:8px auto auto 8px;pointer-events:none;color:var(--ov-color-fg-muted);font:13px var(--ov-font-family-mono, monospace)}._Loading_im36v_31{padding:var(--ov-space-2, 8px);color:var(--ov-color-fg-muted)}._Message_im36v_35{color:var(--ov-color-fg-muted);font-size:var(--ov-font-size-sm, 12px);overflow-wrap:anywhere}._Hint_im36v_40{color:var(--ov-color-fg-muted);font-size:var(--ov-font-size-xs, 11px)}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,41 @@
1
- import { BuiltInThemeId } from '../../../base-ui/src/index.ts';
2
1
  import { ForwardRefExoticComponent } from 'react';
3
2
  import { HTMLAttributes } from 'react';
3
+ import { JSX } from 'react/jsx-runtime';
4
4
  import * as monaco from 'monaco-editor';
5
5
  import { ReactNode } from 'react';
6
6
  import { RefAttributes } from 'react';
7
- import { ThemeSummary } from '../../../base-ui/src/index.ts';
8
7
 
9
8
  export declare function buildMonacoTheme(mode: BuiltInThemeId, element?: HTMLElement | null): MonacoThemeData;
10
9
 
11
10
  export declare function buildXtermTheme(element?: HTMLElement | null): XtermThemeData;
12
11
 
12
+ declare type BuiltInThemeId =
13
+ | 'void'
14
+ | 'dark'
15
+ | 'light'
16
+ | 'obsidian'
17
+ | 'carbon'
18
+ | 'solarized-dark'
19
+ | 'solarized-light'
20
+ | 'high-contrast-dark'
21
+ | 'high-contrast-light';
22
+
23
+ /** Controlled, contextual CEL surface. This component never parses or evaluates CEL. */
24
+ export declare function CelQueryEditor(props: CelQueryEditorProps): JSX.Element;
25
+
26
+ export declare interface CelQueryEditorProps extends QueryEditorRenderProps {
27
+ /** A check channel also runs while unfocused, independently of completion popup visibility. */
28
+ check?: QueryLanguageService;
29
+ hover?: QueryHoverService;
30
+ signature?: QuerySignatureService;
31
+ /** Releases adapter document ownership when this model unmounts or changes context. */
32
+ onDocumentClose?: (uri: string) => void;
33
+ minHeight?: number;
34
+ maxHeight?: number;
35
+ className?: string;
36
+ onMount?: (editor: monaco.editor.IStandaloneCodeEditor, monaco: typeof monaco) => void;
37
+ }
38
+
13
39
  export declare const CodeEditor: ForwardRefExoticComponent<CodeEditorProps & RefAttributes<CodeEditorHandle>>;
14
40
 
15
41
  export declare interface CodeEditorHandle {
@@ -109,6 +135,10 @@ export declare interface CommandPaletteProps {
109
135
  commands: CommandItem[];
110
136
  onSelect: (command: CommandItem) => void;
111
137
  placeholder?: string;
138
+ /** Caller-owned pending state; previous commands cannot execute while loading. */
139
+ loading?: boolean;
140
+ /** Caller-owned failure message. Takes precedence over loading and empty states. */
141
+ error?: string;
112
142
  }
113
143
 
114
144
  /** Cursor position info passed to `onCursorChange`. */
@@ -345,6 +375,124 @@ export declare interface ObjectInspectorProps extends HTMLAttributes<HTMLDivElem
345
375
 
346
376
  export declare const OV_MONACO_THEME = "ov-theme";
347
377
 
378
+ declare interface QueryAvailability {
379
+ status: 'ready' | 'loading' | 'error' | 'denied' | 'unavailable';
380
+ message?: string;
381
+ }
382
+
383
+ declare interface QueryCompletion {
384
+ id: string;
385
+ label: string;
386
+ kind: 'field' | 'operator' | 'value' | 'parameter' | 'function';
387
+ type?: string;
388
+ description?: string;
389
+ /** Presentation-only candidate matching and host relevance order. */
390
+ filterText?: string;
391
+ sortText?: string;
392
+ /** Snippets use Monaco/LSP tab-stop syntax; plain edits are the default. */
393
+ insertTextFormat?: 'plain' | 'snippet';
394
+ /** Host-provided union/branch applicability. Never inferred by the component. */
395
+ condition?: string;
396
+ detail?: string;
397
+ disabledReason?: string;
398
+ edit: QueryEdit;
399
+ }
400
+
401
+ declare interface QueryDiagnostic {
402
+ id: string;
403
+ severity: 'error' | 'warning' | 'info' | 'hint';
404
+ message: string;
405
+ range: QueryRange;
406
+ fix?: QueryEdit;
407
+ }
408
+
409
+ declare interface QueryDocument {
410
+ text: string;
411
+ version: number;
412
+ /** Optional editor-owned identity; authoring adapters must isolate distinct models. */
413
+ uri?: string;
414
+ }
415
+
416
+ declare interface QueryEdit {
417
+ range: QueryRange;
418
+ text: string;
419
+ }
420
+
421
+ /** Dependency-injected code surface. Base UI owns controls and drafts, never Monaco. */
422
+ declare interface QueryEditorRenderProps {
423
+ document: QueryDocument;
424
+ onChange: (text: string) => void;
425
+ contextKey: string;
426
+ request?: QueryLanguageService;
427
+ availability?: QueryAvailability;
428
+ disabled?: boolean;
429
+ onSubmit?: () => void;
430
+ label?: string;
431
+ placeholder?: string;
432
+ debounceMs?: number;
433
+ maxSuggestions?: number;
434
+ }
435
+
436
+ declare interface QueryHoverResponse {
437
+ documentVersion: number;
438
+ contextKey: string;
439
+ status: QueryServiceStatus;
440
+ message?: string;
441
+ /** Untrusted Markdown documentation for a checked source range. */
442
+ hover?: { range: QueryRange; contents: string };
443
+ }
444
+
445
+ declare type QueryHoverService = (request: QueryLanguageRequest) => Promise<QueryHoverResponse>;
446
+
447
+ declare interface QueryLanguageRequest {
448
+ document: QueryDocument;
449
+ cursor: { offset: number; unit: 'utf8-byte' };
450
+ contextKey: string;
451
+ signal: AbortSignal;
452
+ }
453
+
454
+ declare interface QueryLanguageResponse {
455
+ documentVersion: number;
456
+ contextKey: string;
457
+ status: QueryServiceStatus;
458
+ message?: string;
459
+ completions: readonly QueryCompletion[];
460
+ diagnostics: readonly QueryDiagnostic[];
461
+ /** Suggestions are bounded observations, not exhaustive inventory/schema facts. */
462
+ incomplete?: boolean;
463
+ }
464
+
465
+ declare type QueryLanguageService = (
466
+ request: QueryLanguageRequest,
467
+ ) => Promise<QueryLanguageResponse>;
468
+
469
+ /** Local presentation contracts, not a host wire protocol. Source offsets are zero-based,
470
+ * half-open UTF-8 byte offsets. The adapter converts DOM UTF-16 offsets explicitly. */
471
+ declare interface QueryRange {
472
+ start: number;
473
+ end: number;
474
+ unit: 'utf8-byte';
475
+ }
476
+
477
+ declare type QueryServiceStatus = 'ready' | 'empty' | 'error' | 'denied' | 'unavailable';
478
+
479
+ declare interface QuerySignatureResponse {
480
+ documentVersion: number;
481
+ contextKey: string;
482
+ status: QueryServiceStatus;
483
+ message?: string;
484
+ signature?: {
485
+ label: string;
486
+ documentation?: string;
487
+ parameters: readonly { label: string; documentation?: string }[];
488
+ activeParameter: number;
489
+ };
490
+ }
491
+
492
+ declare type QuerySignatureService = (
493
+ request: QueryLanguageRequest,
494
+ ) => Promise<QuerySignatureResponse>;
495
+
348
496
  declare type SchemaChangeListener = () => void;
349
497
 
350
498
  export declare function setupMonacoWorkers(): void;
@@ -560,6 +708,21 @@ export declare interface TerminalSearchOptions {
560
708
  */
561
709
  export declare type TerminalSignal = 'ERROR' | 'CLOSE' | 'SIGINT' | 'SIGQUIT' | 'SIGTERM' | 'SIGKILL' | 'SIGHUP' | 'SIGUSR1' | 'SIGUSR2' | 'SIGWINCH';
562
710
 
711
+ declare type ThemeOwner =
712
+ | { kind: 'builtin'; id: 'base-ui' }
713
+ | { kind: 'plugin'; id: string }
714
+ | { kind: 'user'; id: string };
715
+
716
+ declare interface ThemeSummary {
717
+ id: string;
718
+ name: string;
719
+ base: BuiltInThemeId;
720
+ appearance: 'dark' | 'light';
721
+ description?: string;
722
+ builtIn: boolean;
723
+ owner: ThemeOwner;
724
+ }
725
+
563
726
  export declare function useEditorTheme(): EditorTheme;
564
727
 
565
728
  export declare interface XtermThemeData {