/** * notion-enhancer * (c) 2023 dragonwocky (https://dragonwocky.me/) * (https://notion-enhancer.github.io/) under the MIT license */ function Frame(props) { const { html, extendProps } = globalThis.__enhancerApi; extendProps(props, { class: `rounded-[5px] w-[1150px] h-[calc(100vh-100px)] max-w-[calc(100vw-100px)] max-h-[715px] overflow-hidden bg-[color:var(--theme--bg-primary)] drop-shadow-xl group-open:(pointer-events-auto opacity-100 scale-100) transition opacity-0 scale-95`, }); return html``; } function Modal(props, ...children) { const { html, extendProps, addKeyListener } = globalThis.__enhancerApi; extendProps(props, { class: `notion-enhancer--menu-modal group z-[999] fixed inset-0 w-screen h-screen transition pointer-events-none opacity-0 open:(pointer-events-auto opacity-100)`, }); const $modal = html`
$modal.close()} >
${children}
`; $modal.open = () => { $modal.setAttribute("open", ""); $modal.onopen?.(); }; $modal.close = () => { $modal.onbeforeclose?.(); $modal.removeAttribute("open"); $modal.style.pointerEvents = "auto"; setTimeout(() => { $modal.style.pointerEvents = ""; $modal.onclose?.(); }, 200); }; addKeyListener("Escape", () => { if (document.activeElement?.nodeName === "INPUT") return; $modal.close(); }); return $modal; } function Button( { icon, notifications, themeOverridesLoaded, ...props }, ...children ) { const { html, extendProps } = globalThis.__enhancerApi; extendProps(props, { tabindex: 0, role: "button", class: `notion-enhancer--menu-button flex select-none cursor-pointer rounded-[3px] text-[14px] my-px mx-[4px] py-[2px] px-[10px] transition hover:bg-[color:var(--theme--bg-hover)]`, }); return html`
${children}
${notifications}
`; } export { Frame, Modal, Button };