import { Menu as Primitive } from "@base-ui/react/menu"; import type { ReactNode } from "react"; export declare const Menu: typeof Primitive.Root; export declare const MenuTrigger: Primitive.Trigger; export declare const MenuPortal: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuPositioner: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuPopup: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuBackdrop: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuArrow: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuLinkItem: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuCheckboxItem: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuCheckboxItemIndicator: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuRadioItemIndicator: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export declare const MenuSubmenuRoot: typeof Primitive.SubmenuRoot; export declare const MenuSubmenuTrigger: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; export type MenuContentProps = Primitive.Popup.Props & { /** * Accessible name for the menu. Usually leave this out: Base UI already points the popup's * `aria-labelledby` at whichever trigger opened it, so a name here REPLACES the words on * the button a screen reader just read. Pass it only when the menu is about something the * trigger does not say. */ label?: string; /** Where the portal mounts. Defaults to ``. */ container?: Primitive.Portal.Props["container"]; /** * Positioner props: `side`, `align`, `sideOffset`, `collisionPadding` and the stacking order. The * default `z-[60]` puts the menu above the overlay layer (z-50: dialog, drawer) so a menu opened * inside a dialog is not painted behind it; raise it with `positionerProps={{ className: "z-[80]" * }}` if the app stacks something higher. */ positionerProps?: Primitive.Positioner.Props; }; /** * A dropdown for choices, such as the account menu, a row's actions or a picker. Portal, positioner * and popup composed once, for the same reason the dialog's are: the arrangement is not optional * and getting it wrong throws a number. * * Roving focus, typeahead, escape, outside-dismiss and focus return all come from Base UI. * Nothing here re-implements any of them. */ export declare function MenuContent({ className, children, label, container, positionerProps, ...rest }: MenuContentProps): import("react").JSX.Element; export declare function MenuItem({ className, ...rest }: Primitive.Item.Props): import("react").JSX.Element; export declare function MenuSeparator({ className, ...rest }: Primitive.Separator.Props): import("react").JSX.Element; /** The caption a group is named by, or nothing. Never a part you place yourself. */ type MenuGroupCaption = { label?: string; }; /** * A set of related items with an optional caption. * * The caption is a PROP because that is the only arrangement that cannot be got wrong: it * lands inside the group, which is both what stops Base UI throwing and what gives the set * its `aria-labelledby`. It is also not focusable, so it never eats an arrow-key stop. * Optional, because a group whose trigger already says what it is would only repeat itself. */ export declare function MenuGroup({ label, children, ...rest }: Primitive.Group.Props & MenuGroupCaption): import("react").JSX.Element; /** A set of choices for a theme, locale or one axis of a filter. Same caption rule as `MenuGroup`. */ export declare function MenuRadioGroup({ label, children, ...rest }: Primitive.RadioGroup.Props & MenuGroupCaption): import("react").JSX.Element; export type MenuRadioItemProps = Primitive.RadioItem.Props & { /** Mark for the chosen item. */ indicator?: ReactNode; }; /** * One choice in a set. The mark keeps a fixed leading column whether or not it is showing, so * the labels do not shift sideways when the selection moves. */ export declare function MenuRadioItem({ className, children, indicator, ...rest }: MenuRadioItemProps): import("react").JSX.Element; export {}; //# sourceMappingURL=menu.d.ts.map