UNPKG

@ark-ui/vue

Version:

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

44 lines (39 loc) 1.65 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const vue = require('vue'); const useRenderStrategy = require('../../utils/use-render-strategy.cjs'); const useForwardExpose = require('../../utils/use-forward-expose.cjs'); const useMenuContext = require('./use-menu-context.cjs'); const useMenuMachineContext = require('./use-menu-machine-context.cjs'); const useMenuTriggerItemContext = require('./use-menu-trigger-item-context.cjs'); const _sfc_main = /* @__PURE__ */ vue.defineComponent({ __name: "menu-root-provider", props: { value: {}, lazyMount: { type: Boolean }, unmountOnExit: { type: Boolean }, asChild: { type: Boolean } }, setup(__props) { const props = __props; const { value: { machine, api } } = props; const parentApi = useMenuContext.useMenuContext(); const parentMachine = useMenuMachineContext.useMenuMachineContext(); vue.onMounted(() => { if (!parentMachine) return; parentApi.value.setChild(machine); api.value.setParent(parentMachine); }); useMenuTriggerItemContext.MenuTriggerItemProvider(vue.computed(() => parentApi.value.getTriggerItemProps(api.value))); useMenuMachineContext.MenuMachineProvider(machine); useMenuContext.MenuProvider(api); useRenderStrategy.RenderStrategyPropsProvider(vue.computed(() => ({ lazyMount: props.lazyMount, unmountOnExit: props.unmountOnExit }))); useForwardExpose.useForwardExpose(); return (_ctx, _cache) => { return vue.renderSlot(_ctx.$slots, "default"); }; } }); exports.default = _sfc_main;