Skip to content

Editor Structured

export function interpolateEditorLabel(
value: string,
replacements: Readonly<Record<string, string | number>>,
): string;

interface StructuredDataEditorLocaleText {
readonly chartTitle: string;
readonly timelineTitle: string;
readonly close: string;
readonly preview: string;
readonly pointSummary: string;
readonly pointsSummary: string;
readonly eventSummary: string;
readonly eventsSummary: string;
readonly value: string;
readonly label: string;
readonly start: string;
readonly end: string;
readonly addPoint: string;
readonly addEvent: string;
readonly deletePoint: string;
readonly deleteEvent: string;
readonly reorderPoint: string;
readonly moveEvent: string;
readonly reorderEvent: string;
readonly pasteValues: string;
readonly pasteHint: string;
readonly replaceValues: string;
readonly appendValues: string;
readonly editRawJson: string;
readonly visualEditor: string;
readonly rawJsonHint: string;
readonly invalidNumber: string;
readonly invalidPaste: string;
readonly invalidTimeline: string;
readonly invalidJson: string;
readonly outsideRange: string;
readonly emptyPoints: string;
readonly emptyEvents: string;
readonly cancel: string;
readonly apply: string;
readonly validationSummary: string;
readonly resizeStart: string;
readonly resizeEnd: string
}

interface StructuredEditorRuntime {
readonly locale: StructuredDataEditorLocaleText;
readonly revogrid: HTMLRevoGridElement;
readonly providers: import('@revolist/revogrid').PluginProviders
}

interface StructuredEditorContentProps {
readonly value: T;
readonly locale: StructuredDataEditorLocaleText;
readonly onChange: (value: T) => void;
readonly onValidityChange: (valid: boolean) => void
}

interface StructuredEditorHostOptions {
readonly runtime: StructuredEditorRuntime;
readonly save: (value?: unknown, preventFocus?: boolean) => void;
readonly close: (focusNext?: boolean) => void;
readonly initialValue: T;
readonly title: string;
readonly kind: 'chart' | 'timeline';
/** Renderer-owned variables required by a body-level structured editor. */
readonly themeVariables?: readonly `--${string}`[];
readonly renderContent: (
props: StructuredEditorContentProps<T>,
) => ComponentChildren
}

Shared structured-value popup that commits only through the core editor callback.

class StructuredEditorHost {
mount(anchor: HTMLElement): void;
destroy(): void;
}