UNPKG

@arolariu/components

Version:

🎨 70+ beautiful, accessible React components built on Base UI. TypeScript-first, CSS Modules styling, tree-shakeable, SSR-ready. Perfect for modern web apps, design systems & rapid prototyping. Zero config, maximum flexibility! ⚡

421 lines • 14.2 kB
import { Menu as BaseMenu } from "@base-ui/react/menu"; import { useRender } from "@base-ui/react/use-render"; import * as React from "react"; interface DropdownMenuProps extends React.ComponentPropsWithRef<typeof BaseMenu.Root> { } interface DropdownMenuTriggerProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.Trigger>, "className"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; /** * Enables child element composition instead of rendering the default wrapper. * @default false * @deprecated Prefer Base UI's `render` prop. */ asChild?: boolean; } interface DropdownMenuSubTriggerProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.SubmenuTrigger>, "className"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; /** * Applies inset spacing to align nested content. * @default false */ inset?: boolean; } interface DropdownMenuContentProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.Positioner>, "className"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; } interface DropdownMenuItemProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.Item>, "className"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; /** * Applies inset spacing to align nested content. * @default false */ inset?: boolean; /** * Enables child element composition instead of rendering the default wrapper. * @default false * @deprecated Prefer Base UI's `render` prop. */ asChild?: boolean; } interface DropdownMenuCheckboxItemProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.CheckboxItem>, "className"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; } interface DropdownMenuRadioItemProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.RadioItem>, "className"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; } interface DropdownMenuLabelProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.GroupLabel>, "className"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; /** * Applies inset spacing to align nested content. * @default false */ inset?: boolean; } interface DropdownMenuSeparatorProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.Separator>, "className"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; } interface DropdownMenuShortcutProps extends React.ComponentPropsWithRef<"span"> { /** * Applies additional CSS classes to the component root element. * @default undefined */ className?: string; /** * Overrides the default rendered element while preserving component behavior. * @default undefined */ render?: useRender.RenderProp<Record<string, never>>; /** * Enables child element composition instead of rendering the default wrapper. * @default false * @deprecated Prefer Base UI's `render` prop. */ asChild?: boolean; } /** * Coordinates dropdown menu state and accessibility behavior. * * @remarks * - Delegates structure and state to the underlying Base UI primitive * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Preserves the underlying primitive API for advanced composition * * @example * ```tsx * <DropdownMenu>Content</DropdownMenu> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenu(props: Readonly<DropdownMenu.Props>): React.ReactElement; declare namespace DropdownMenu { var displayName: string; } /** * Renders the dropdown menu group. * * @remarks * - Delegates structure and state to the underlying Base UI primitive * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Preserves the underlying primitive API for advanced composition * * @example * ```tsx * <DropdownMenuGroup>Content</DropdownMenuGroup> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>; /** * Provides the dropdown menu portal container. * * @remarks * - Delegates structure and state to the underlying Base UI primitive * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Preserves the underlying primitive API for advanced composition * * @example * ```tsx * <DropdownMenuPortal>Content</DropdownMenuPortal> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare const DropdownMenuPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ContextMenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>; /** * Coordinates the dropdown menu radio group. * * @remarks * - Delegates structure and state to the underlying Base UI primitive * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Preserves the underlying primitive API for advanced composition * * @example * ```tsx * <DropdownMenuRadioGroup>Content</DropdownMenuRadioGroup> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare const DropdownMenuRadioGroup: React.NamedExoticComponent<Omit<import("@base-ui/react").ContextMenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>; /** * Coordinates the dropdown menu sub. * * @remarks * - Delegates structure and state to the underlying Base UI primitive * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Preserves the underlying primitive API for advanced composition * * @example * ```tsx * <DropdownMenuSub>Content</DropdownMenuSub> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare const DropdownMenuSub: typeof BaseMenu.SubmenuRoot & { displayName?: string; }; /** * Renders the dropdown menu trigger. * * @remarks * - Renders a `<button>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuTrigger>Content</DropdownMenuTrigger> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>; /** * Renders the dropdown menu sub trigger. * * @remarks * - Renders a `<div>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuSubTrigger>Content</DropdownMenuSubTrigger> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenuSubTrigger(props: Readonly<DropdownMenuSubTrigger.Props>): React.ReactElement; declare namespace DropdownMenuSubTrigger { var displayName: string; } /** * Renders the dropdown menu sub content. * * @remarks * - Renders a `<div>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuSubContent>Content</DropdownMenuSubContent> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenuSubContent(props: Readonly<DropdownMenuContent.Props>): React.ReactElement; declare namespace DropdownMenuSubContent { var displayName: string; } /** * Renders the dropdown menu content. * * @remarks * - Renders a `<div>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuContent>Content</DropdownMenuContent> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>; /** * Renders the dropdown menu item. * * @remarks * - Renders a `<div>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuItem>Content</DropdownMenuItem> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenuItem(props: Readonly<DropdownMenuItem.Props>): React.ReactElement; declare namespace DropdownMenuItem { var displayName: string; } /** * Renders the dropdown menu checkbox item. * * @remarks * - Renders a `<div>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuCheckboxItem>Content</DropdownMenuCheckboxItem> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenuCheckboxItem(props: Readonly<DropdownMenuCheckboxItem.Props>): React.ReactElement; declare namespace DropdownMenuCheckboxItem { var displayName: string; } /** * Renders the dropdown menu radio item. * * @remarks * - Renders a `<div>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuRadioItem>Content</DropdownMenuRadioItem> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenuRadioItem(props: Readonly<DropdownMenuRadioItem.Props>): React.ReactElement; declare namespace DropdownMenuRadioItem { var displayName: string; } /** * Renders the dropdown menu label. * * @remarks * - Renders a `<div>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuLabel>Content</DropdownMenuLabel> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenuLabel(props: Readonly<DropdownMenuLabel.Props>): React.ReactElement; declare namespace DropdownMenuLabel { var displayName: string; } /** * Renders the dropdown menu separator. * * @remarks * - Renders a `<div>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuSeparator>Content</DropdownMenuSeparator> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenuSeparator(props: Readonly<DropdownMenuSeparator.Props>): React.ReactElement; declare namespace DropdownMenuSeparator { var displayName: string; } /** * Renders the dropdown menu shortcut. * * @remarks * - Renders a `<span>` element by default * - Built on {@link https://base-ui.com/react/components/menu | Base UI Menu} * - Supports the `render` prop for element composition * * @example * ```tsx * <DropdownMenuShortcut>Content</DropdownMenuShortcut> * ``` * * @see {@link https://base-ui.com/react/components/menu | Base UI Documentation} */ declare function DropdownMenuShortcut(props: Readonly<DropdownMenuShortcut.Props>): React.ReactElement; declare namespace DropdownMenuShortcut { var displayName: string; } declare namespace DropdownMenu { type Props = DropdownMenuProps; type State = BaseMenu.Root.State; } declare namespace DropdownMenuTrigger { type Props = DropdownMenuTriggerProps; type State = BaseMenu.Trigger.State; } declare namespace DropdownMenuSubTrigger { type Props = DropdownMenuSubTriggerProps; type State = BaseMenu.SubmenuTrigger.State; } declare namespace DropdownMenuContent { type Props = DropdownMenuContentProps; type State = BaseMenu.Popup.State; } declare namespace DropdownMenuSubContent { type Props = DropdownMenuContentProps; type State = BaseMenu.Popup.State; } declare namespace DropdownMenuItem { type Props = DropdownMenuItemProps; type State = BaseMenu.Item.State; } declare namespace DropdownMenuCheckboxItem { type Props = DropdownMenuCheckboxItemProps; type State = BaseMenu.CheckboxItem.State; } declare namespace DropdownMenuRadioItem { type Props = DropdownMenuRadioItemProps; type State = BaseMenu.RadioItem.State; } declare namespace DropdownMenuLabel { type Props = DropdownMenuLabelProps; type State = BaseMenu.GroupLabel.State; } declare namespace DropdownMenuSeparator { type Props = DropdownMenuSeparatorProps; type State = BaseMenu.Separator.State; } declare namespace DropdownMenuShortcut { type Props = DropdownMenuShortcutProps; type State = Record<string, never>; } export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, }; //# sourceMappingURL=dropdown-menu.d.ts.map