@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
TypeScript
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