import { Comment, computed, useSlots, type VNode } from 'vue' /** * Check if a slot has any real content (ignores comment nodes) * @param name Slot name, default is "default" */ export function useHasSlot(name: string = 'default') { const slots = useSlots() return computed(() => { const slotFn = slots[name] if (!slotFn) return false const vnodes: VNode[] = slotFn() return vnodes.some((vnode) => vnode.type !== Comment) }) }