1 import {LexicalEditor} from "lexical";
2 import {EditorUIManager} from "./framework/manager";
3 import {EditorUiContext} from "./framework/core";
4 import {el} from "../utils/dom";
6 export function buildEditorUI(containerDOM: HTMLElement, editor: LexicalEditor, options: Record<string, any>): EditorUiContext {
7 const editorDOM = el('div', {
8 contenteditable: 'true',
9 class: `editor-content-area ${options.editorClass || ''}`,
11 const scrollDOM = el('div', {
12 class: 'editor-content-wrap',
15 containerDOM.append(scrollDOM);
16 containerDOM.classList.add('editor-container');
17 containerDOM.setAttribute('dir', options.textDirection);
18 if (options.darkMode) {
19 containerDOM.classList.add('editor-dark');
22 const manager = new EditorUIManager();
23 const context: EditorUiContext = {
25 containerDOM: containerDOM,
29 translate(text: string): string {
30 const translations = options.translations;
31 return translations[text] || text;
33 error(error: string|Error): void {
34 const message = error instanceof Error ? error.message : error;
35 window.$events.error(message); // TODO - Translate
39 manager.setContext(context);