UNPKG

@trail-ui/react

Version:
41 lines (38 loc) 1.11 kB
import { Popover } from "./chunk-4UQW3ENJ.mjs"; // src/menu/menu.tsx import { clsx } from "@trail-ui/shared-utils"; import { menu } from "@trail-ui/theme"; import { createContext, useMemo } from "react"; import { Menu as AriaMenu } from "react-aria-components"; import { jsx } from "react/jsx-runtime"; var InternalMenuContext = createContext( {} ); function Menu(props) { const { children, className, classNames, placement = "bottom", itemClasses, ...otherProps } = props; const slots = useMemo(() => menu(), []); const baseStyles = clsx(classNames == null ? void 0 : classNames.base, className); return /* @__PURE__ */ jsx( Popover, { isMenuPopover: true, isNonModal: true, placement, className: slots.popover({ class: classNames == null ? void 0 : classNames.popover }), children: /* @__PURE__ */ jsx(InternalMenuContext.Provider, { value: { itemClasses }, children: /* @__PURE__ */ jsx(AriaMenu, { className: slots.base({ class: baseStyles }), ...otherProps, children }) }) } ); } export { InternalMenuContext, Menu };