import { createApp, reactive } from "vue"; import { extend } from "./basic.mjs"; import { useExpose } from "../composables/use-expose.mjs"; function usePopupState() { const state = reactive({ show: false }); const toggle = (show) => { state.show = show; }; const open = (props) => { extend(state, props, { transitionAppear: true }); toggle(true); }; const close = () => toggle(false); useExpose({ open, close, toggle }); return { open, close, state, toggle }; } function mountComponent(RootComponent) { const app = createApp(RootComponent); const root = document.createElement("div"); document.body.appendChild(root); return { instance: app.mount(root), unmount() { app.unmount(); document.body.removeChild(root); } }; } export { mountComponent, usePopupState };