import { defineComponent, ref, watch, onScopeDispose, h } from 'vue-demi'; import { createFocusTrap } from 'focus-trap'; import { unrefElement } from '@vueuse/core'; const UseFocusTrap = /* @__PURE__ */ /* #__PURE__ */ defineComponent({ name: "UseFocusTrap", props: ["as", "options"], setup(props, { slots }) { let trap; const target = ref(); const activate = () => trap && trap.activate(); const deactivate = () => trap && trap.deactivate(); watch( () => unrefElement(target), (el) => { if (!el) return; trap = createFocusTrap(el, props.options || {}); activate(); }, { flush: "post" } ); onScopeDispose(() => deactivate()); return () => { if (slots.default) return h(props.as || "div", { ref: target }, slots.default()); }; } }); export { UseFocusTrap };