UNPKG

@ark-ui/vue

Version:

A collection of unstyled, accessible UI components for Vue, utilizing state machines for seamless interaction.

48 lines (45 loc) 1.64 kB
import { defineComponent, mergeDefaults, computed, renderSlot } from 'vue'; import { RenderStrategyPropsProvider } from '../../utils/use-render-strategy.js'; import { useForwardExpose } from '../../utils/use-forward-expose.js'; import { usePopover } from './use-popover.js'; import { PopoverProvider } from './use-popover-context.js'; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "popover-root", props: /* @__PURE__ */ mergeDefaults({ autoFocus: { type: Boolean }, closeOnEscape: { type: Boolean }, closeOnInteractOutside: { type: Boolean }, defaultOpen: { type: Boolean }, id: {}, ids: {}, initialFocusEl: { type: Function }, modal: { type: Boolean }, open: { type: Boolean }, persistentElements: {}, portalled: { type: Boolean }, positioning: {}, lazyMount: { type: Boolean }, unmountOnExit: { type: Boolean } }, { autoFocus: void 0, closeOnEscape: void 0, closeOnInteractOutside: void 0, defaultOpen: void 0, modal: void 0, open: void 0, portalled: void 0 }), emits: ["escapeKeyDown", "focusOutside", "interactOutside", "openChange", "pointerDownOutside", "requestDismiss", "update:open"], setup(__props, { emit: __emit }) { const props = __props; const emits = __emit; const popover = usePopover(props, emits); PopoverProvider(popover); RenderStrategyPropsProvider(computed(() => ({ lazyMount: props.lazyMount, unmountOnExit: props.unmountOnExit }))); useForwardExpose(); return (_ctx, _cache) => { return renderSlot(_ctx.$slots, "default"); }; } }); export { _sfc_main as default };