import {render} from "lit" import {RenderResult} from "./types.js" import {SlateView} from "./slate_view_element.js" import {auto_exportparts} from "./auto_exportparts/auto.js" export function make_view_root({ afterRender, onConnected, onDisconnected, }: { afterRender: () => void onConnected: () => void onDisconnected: () => void }) { const container = document.createElement(SlateView.tag) as SlateView container.onConnected(onConnected) container.onDisconnected(onDisconnected) const shadow = container.attachShadow({mode: "open"}) let auto_exportparts_is_enabled = false return { container, shadow, set auto_exportparts(enabled: boolean) { auto_exportparts_is_enabled = enabled }, render_into_shadow(content: RenderResult) { render(content, shadow) if (auto_exportparts_is_enabled) auto_exportparts(container, shadow) afterRender() return container }, } }