import { ref, onMounted, watchEffect, type Ref } from 'vue' import { createPopper, type Instance, type Options } from '@popperjs/core' export function usePopper(options: Partial = {}) { const trigger = ref(null) const container = ref(null) const popper = ref(null) onMounted(() => { watchEffect((onCleanup) => { if (!trigger.value || !container.value) return const instance = createPopper(trigger.value, container.value, options) popper.value = instance onCleanup(() => instance.destroy()) }) }) return [trigger, container, popper] as const }