@veracity/vui
Version:
Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.
36 lines (34 loc) • 1.01 kB
JavaScript
import { filterUndefined } from "../utils/object.js";
import Popover from "../popover/popover.js";
import { MenuProvider } from "./context.js";
import { MenuButton } from "./menuButton.js";
import { MenuItem } from "./menuItem.js";
import { MenuList } from "./menuList.js";
import { useMemo } from "react";
import { jsx } from "react/jsx-runtime";
//#region src/menu/menu.tsx
/** Wraps Popover component and exposes some props to the children via context. */
function Menu(props) {
const { closeOnSelect = true, size, variant, ...rest } = props;
const context = useMemo(() => filterUndefined({
closeOnSelect,
size,
variant
}), [
closeOnSelect,
size,
variant
]);
return /* @__PURE__ */ jsx(MenuProvider, {
value: context,
children: /* @__PURE__ */ jsx(Popover, { ...rest })
});
}
Menu.Button = MenuButton;
Menu.Item = MenuItem;
Menu.List = MenuList;
Menu.displayName = "Menu";
//#endregion
export { Menu, Menu as default };
globalThis.__vuiVersion__ = "5.3.1"
//# sourceMappingURL=menu.js.map