@omniviewdev/editors 4.0.0 → 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_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))}
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,5 +1,6 @@
1
1
  import { ForwardRefExoticComponent } from 'react';
2
2
  import { HTMLAttributes } from 'react';
3
+ import { JSX } from 'react/jsx-runtime';
3
4
  import * as monaco from 'monaco-editor';
4
5
  import { ReactNode } from 'react';
5
6
  import { RefAttributes } from 'react';
@@ -19,6 +20,22 @@ declare type BuiltInThemeId =
19
20
  | 'high-contrast-dark'
20
21
  | 'high-contrast-light';
21
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
+
22
39
  export declare const CodeEditor: ForwardRefExoticComponent<CodeEditorProps & RefAttributes<CodeEditorHandle>>;
23
40
 
24
41
  export declare interface CodeEditorHandle {
@@ -358,6 +375,124 @@ export declare interface ObjectInspectorProps extends HTMLAttributes<HTMLDivElem
358
375
 
359
376
  export declare const OV_MONACO_THEME = "ov-theme";
360
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
+
361
496
  declare type SchemaChangeListener = () => void;
362
497
 
363
498
  export declare function setupMonacoWorkers(): void;