UNPKG

reka-ui

Version:

Vue port for Radix UI Primitives.

82 lines (79 loc) 2.31 kB
import { createContext } from "../shared/createContext.js"; import { useDirection } from "../shared/useDirection.js"; import { useForwardExpose } from "../shared/useForwardExpose.js"; import { MenuRoot_default } from "../Menu/MenuRoot.js"; import { createBlock, defineComponent, isRef, openBlock, ref, renderSlot, toRefs, unref, withCtx } from "vue"; import { useVModel } from "@vueuse/core"; //#region src/DropdownMenu/DropdownMenuRoot.vue?vue&type=script&setup=true&lang.ts const [injectDropdownMenuRootContext, provideDropdownMenuRootContext] = createContext("DropdownMenuRoot"); var DropdownMenuRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ __name: "DropdownMenuRoot", props: { defaultOpen: { type: Boolean, required: false }, open: { type: Boolean, required: false, default: void 0 }, dir: { type: String, required: false }, modal: { type: Boolean, required: false, default: true } }, emits: ["update:open"], setup(__props, { emit: __emit }) { const props = __props; const emit = __emit; useForwardExpose(); const open = useVModel(props, "open", emit, { defaultValue: props.defaultOpen, passive: props.open === void 0 }); const triggerElement = ref(); const { modal, dir: propDir } = toRefs(props); const dir = useDirection(propDir); provideDropdownMenuRootContext({ open, onOpenChange: (value) => { open.value = value; }, onOpenToggle: () => { open.value = !open.value; }, triggerId: "", triggerElement, contentId: "", modal, dir }); return (_ctx, _cache) => { return openBlock(), createBlock(unref(MenuRoot_default), { open: unref(open), "onUpdate:open": _cache[0] || (_cache[0] = ($event) => isRef(open) ? open.value = $event : null), dir: unref(dir), modal: unref(modal) }, { default: withCtx(() => [renderSlot(_ctx.$slots, "default", { open: unref(open) })]), _: 3 }, 8, [ "open", "dir", "modal" ]); }; } }); //#endregion //#region src/DropdownMenu/DropdownMenuRoot.vue var DropdownMenuRoot_default = DropdownMenuRoot_vue_vue_type_script_setup_true_lang_default; //#endregion export { DropdownMenuRoot_default, injectDropdownMenuRootContext }; //# sourceMappingURL=DropdownMenuRoot.js.map