UNPKG

@alice-ui/react

Version:
42 lines (39 loc) 1.12 kB
import { Popover } from "./chunk-CRJBVNHT.mjs"; // src/menu/menu.tsx import { clsx } from "@alice-ui/shared-utils"; import { menu } from "@alice-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, variant, color, ...otherProps } = props; const slots = useMemo(() => menu(), []); const baseStyles = clsx(classNames == null ? void 0 : classNames.base, className); return /* @__PURE__ */ jsx( Popover, { isNonModal: true, placement, className: slots.popover({ class: classNames == null ? void 0 : classNames.popover }), children: /* @__PURE__ */ jsx(InternalMenuContext.Provider, { value: { itemClasses, variant, color }, children: /* @__PURE__ */ jsx(AriaMenu, { className: slots.base({ class: baseStyles }), ...otherProps, children }) }) } ); } export { InternalMenuContext, Menu };