/** @jsx h */
///
///
///
import { h, render } from "./deps/preact.tsx";
import { ensureHTMLDivElement } from "./ensure.ts";
import { getWatchList } from "./watchList.ts";
import { editor } from "./deps/scrapbox-std.ts";
import { App, AppProps, userscriptName } from "./App.tsx";
import { setDebugMode } from "./debug.ts";
import type { Scrapbox } from "./deps/scrapbox.ts";
declare const scrapbox: Scrapbox;
export type { AppProps };
export interface MountInit extends Partial {
/** debug用有効化フラグ */
debug?: boolean;
}
export const mount = (init?: MountInit): void => {
const {
delay = 500,
whiteList = [],
watchList = getWatchList().slice(0, 100),
scrollTargets = ["link", "hashtag", "lineId", "title"],
style = "",
debug = false,
} = init ?? {};
setDebugMode(debug);
const app = document.createElement("div");
app.dataset.userscriptName = userscriptName;
const editorDiv = editor();
ensureHTMLDivElement(editorDiv, "#editor");
editorDiv.append(app);
const shadowRoot = app.attachShadow({ mode: "open" });
render(
,
shadowRoot,
);
};