UNPKG

@ark-ui/vue

Version:

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

65 lines (60 loc) 2.45 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 useMenu = require('./use-menu.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", props: /* @__PURE__ */ vue.mergeDefaults({ anchorPoint: {}, "aria-label": {}, closeOnSelect: { type: Boolean }, composite: { type: Boolean }, defaultHighlightedValue: {}, defaultOpen: { type: Boolean }, highlightedValue: {}, id: {}, ids: {}, loopFocus: { type: Boolean }, navigate: { type: Function }, open: { type: Boolean }, positioning: {}, typeahead: { type: Boolean }, lazyMount: { type: Boolean }, unmountOnExit: { type: Boolean }, asChild: { type: Boolean } }, { closeOnSelect: void 0, composite: void 0, defaultOpen: void 0, loopFocus: void 0, open: void 0, typeahead: void 0 }), emits: ["escapeKeyDown", "focusOutside", "highlightChange", "interactOutside", "openChange", "pointerDownOutside", "select", "update:open", "update:highlightedValue"], setup(__props, { emit: __emit }) { const props = __props; const emits = __emit; const { api, machine } = useMenu.useMenu(props, emits); 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;