UNPKG

prong-editor

Version:

Prong (PRojectional jsON Gui) is an editor framework for creating bespoke in-browser editors for JSON-based domain-specific languages (such as [Vega](https://vega.github.io/vega/), [Vega-Lite](https://vega.github.io/vega-lite/), [Tracery](https://tracery.

36 lines (35 loc) 1.61 kB
import { StateField, EditorState } from "@codemirror/state"; import { EditorView } from "@codemirror/view"; import { SyntaxNode } from "@lezer/common"; import { MenuRow } from "../compute-menu-contents"; export declare type UpdateDispatch = { from: number; to: number; value: string; }; export declare type SelectionRoute = [number, number]; export interface PopoverMenuState { menuState: popOverSMState; targetNode: SyntaxNode | null; highlightNode: SyntaxNode | null; targetedTypings: []; tooltip: any; selectedRouting: [number, number]; menuContents: MenuRow[]; hasProjectionContent: boolean; } export declare const popoverMenuState: PopoverMenuState; export declare type popoverSMEvent = "closeTooltip" | "firstUse" | "openTooltip" | "stopUsingTooltip" | "switchToMonocle" | "switchToTooltip" | "switchToDocked" | "useTooltip"; export declare type popOverSMState = "monocleOpen" | "tooltipOpen" | "dockOpen" | "tooltipClosed" | "tooltipInUse" | "preFirstUse"; export declare const visibleStates: Set<popOverSMState>; export declare function buildProjectionsForMenu(props: { fullCode: string; node: SyntaxNode | null; state: EditorState; view: EditorView; currentCodeSlice: string; }): MenuRow[]; export declare function maybeFilterToFullProjection(menuRows: MenuRow[]): MenuRow[]; export declare const popOverState: StateField<PopoverMenuState>; export declare const popoverEffectDispatch: import("@codemirror/state").StateEffectType<popoverSMEvent>; export declare const setRouting: import("@codemirror/state").StateEffectType<[number, number]>;