import { defineComponent, ref, createVNode, Fragment } from 'vue'; import '../../../utils/index.mjs'; import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs'; import { composeRefs } from '../../../utils/vue/refs.mjs'; import { ensureOnlyChild } from '../../../utils/vue/vnode.mjs'; const forwardRefProps = buildProps({ setRef: { type: definePropType(Function), required: true }, onlyChild: Boolean }); var ForwardRef = defineComponent({ props: forwardRefProps, setup(props, { slots }) { const fragmentRef = ref(); const setRef = composeRefs(fragmentRef, (el) => { if (el) { props.setRef(el.nextElementSibling); } else { props.setRef(null); } }); return () => { var _a; const [firstChild] = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || []; const child = props.onlyChild ? ensureOnlyChild(firstChild.children) : firstChild.children; return createVNode(Fragment, { "ref": setRef }, [child]); }; } }); export { ForwardRef as default, forwardRefProps }; //# sourceMappingURL=forward-ref.mjs.map