UNPKG

react-monaco-json-merge

Version:

A powerful React component for 3-way JSON merging with semantic comparison, built on Monaco Editor. Features schema-aware conflict detection, interactive resolution, and real-time validation.

59 lines 2.55 kB
import type * as monaco from "monaco-editor"; import type { ModifiedBaseRange } from "../types"; /** * Configuration for editor decoration colors and styles */ export interface DecorationConfig { conflictColor: string; changeColor: string; baseColor: string; conflictOverviewColor: string; changeOverviewColor: string; baseOverviewColor: string; } /** * Determines CSS classes and overview colors based on conflict type */ export interface DecorationClasses { input1Class: string; input2Class: string; baseClass: string; input1OverviewColor: string; input2OverviewColor: string; baseOverviewColor: string; input1Symbol: string; input2Symbol: string; } /** * Determines the CSS classes and colors for decorations based on conflict type */ export declare function getDecorationClasses(conflict: ModifiedBaseRange, isTwoColumnMode: boolean, config: DecorationConfig): DecorationClasses; /** * Creates Monaco editor decorations for input1 (theirs) panel */ export declare function createInput1Decorations(conflict: ModifiedBaseRange, classes: DecorationClasses, monacoInstance: typeof monaco): monaco.editor.IModelDeltaDecoration[]; /** * Creates Monaco editor decorations for input2 (ours) panel */ export declare function createInput2Decorations(conflict: ModifiedBaseRange, classes: DecorationClasses, monacoInstance: typeof monaco): monaco.editor.IModelDeltaDecoration[]; /** * Creates Monaco editor decorations for base panel */ export declare function createBaseDecorations(conflict: ModifiedBaseRange, classes: DecorationClasses, monacoInstance: typeof monaco): monaco.editor.IModelDeltaDecoration[]; /** * Creates all decorations for a conflict (input1, input2, and base) */ export declare function createConflictDecorations(conflict: ModifiedBaseRange, isTwoColumnMode: boolean, config: DecorationConfig, monacoInstance: typeof monaco): { input1Decorations: monaco.editor.IModelDeltaDecoration[]; input2Decorations: monaco.editor.IModelDeltaDecoration[]; baseDecorations: monaco.editor.IModelDeltaDecoration[]; }; /** * Creates decorations for all conflicts */ export declare function createAllDecorations(conflicts: ModifiedBaseRange[], isTwoColumnMode: boolean, config: DecorationConfig, monacoInstance: typeof monaco): { input1Decorations: monaco.editor.IModelDeltaDecoration[]; input2Decorations: monaco.editor.IModelDeltaDecoration[]; baseDecorations: monaco.editor.IModelDeltaDecoration[]; }; //# sourceMappingURL=editorDecorations.d.ts.map