<!-- API Report Version: 2.3 -->

## API Report File for "@atlaskit/dropdown-menu"

> Do not edit this file. This report is auto-generated using
> [API Extractor](https://api-extractor.com/).
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)

### Table of contents

- [Main Entry Types](#main-entry-types)
- [Peer Dependencies](#peer-dependencies)

### Main Entry Types

<!--SECTION START: Main Entry Types-->

```ts
/// <reference types="react" />

import type { CustomItemProps } from '@atlaskit/menu/types';
import { default as DropdownItemGroup } from '@atlaskit/menu/section';
import { KeyboardEvent as KeyboardEvent_2 } from 'react';
import type { MenuGroupProps } from '@atlaskit/menu/types';
import { MouseEvent as MouseEvent_2 } from 'react';
import { default as React_2 } from 'react';
import { ReactElement } from 'react';
import { ReactNode } from 'react';
import { Ref } from 'react';
import type { SectionProps } from '@atlaskit/menu';
import type { SectionProps as SectionProps_2 } from '@atlaskit/menu/types';
import type { TriggerProps } from '@atlaskit/popup/types';

// @public (undocumented)
export interface CustomTriggerProps<TriggerElement extends HTMLElement = HTMLElement>
	extends Omit<TriggerProps, 'ref'> {
	isSelected?: boolean;
	onClick?: (e: KeyboardEvent_2 | MouseEvent_2) => void;
	testId?: string;
	triggerRef: Ref<TriggerElement>;
}

// @public
export const DropdownItem: React_2.ForwardRefExoticComponent<
	DropdownItemProps & React_2.RefAttributes<HTMLElement>
>;

// @public
export const DropdownItemCheckbox: ({
	children,
	defaultSelected,
	description,
	id,
	isDisabled,
	isSelected,
	onClick: providedOnClick,
	shouldDescriptionWrap,
	shouldTitleWrap,
	testId,
	...rest
}: DropdownItemCheckboxProps) => JSX.Element;

// @public
export const DropdownItemCheckboxGroup: ({
	children,
	hasSeparator,
	id,
	isList,
	isScrollable,
	overrides,
	testId,
	title,
	...rest
}: DropdownItemCheckboxGroupProps) => JSX.Element;

// @public (undocumented)
interface DropdownItemCheckboxGroupProps extends SectionProps {
	id: string;
}

// @public (undocumented)
interface DropdownItemCheckboxProps {
	children: React.ReactNode;
	defaultSelected?: boolean;
	description?: JSX.Element | string;
	id: string;
	isDisabled?: boolean;
	isSelected?: boolean;
	onClick?: (e: KeyboardEvent_2 | MouseEvent_2) => void;
	shouldDescriptionWrap?: boolean;
	shouldTitleWrap?: boolean;
	testId?: string;
	title?: string;
}

export { DropdownItemGroup };

// @public (undocumented)
export interface DropdownItemProps {
	children: React.ReactNode;
	component?: CustomItemProps['component'];
	description?: JSX.Element | string;
	elemAfter?: React.ReactNode;
	elemBefore?: React.ReactNode;
	href?: string;
	isDisabled?: boolean;
	isSelected?: boolean;
	onClick?: (e: KeyboardEvent_2 | MouseEvent_2) => void;
	rel?: string;
	shouldDescriptionWrap?: boolean;
	shouldTitleWrap?: boolean;
	target?: string;
	testId?: string;
	title?: string;
}

// @public
export const DropdownItemRadio: ({
	children,
	defaultSelected,
	testId,
	id,
	title,
	description,
	isDisabled,
	isSelected,
	onClick: providedOnClick,
	shouldDescriptionWrap,
	shouldTitleWrap,
	...rest
}: DropdownItemRadioProps) => JSX.Element;

// @public
export const DropdownItemRadioGroup: ({
	children,
	hasSeparator,
	id,
	isList,
	isScrollable,
	overrides,
	testId,
	title,
	...rest
}: DropdownItemRadioGroupProps) => JSX.Element;

// @public (undocumented)
interface DropdownItemRadioGroupProps extends SectionProps {
	// (undocumented)
	id: string;
}

// @public (undocumented)
interface DropdownItemRadioProps {
	children: React.ReactNode;
	defaultSelected?: boolean;
	description?: JSX.Element | string;
	id: string;
	isDisabled?: boolean;
	isSelected?: boolean;
	onClick?: (e: KeyboardEvent_2 | MouseEvent_2) => void;
	shouldDescriptionWrap?: boolean;
	shouldTitleWrap?: boolean;
	testId?: string;
	title?: string;
}

// @public
const DropdownMenu: <T extends HTMLElement = HTMLElement>({
	autoFocus,
	children,
	defaultOpen,
	isLoading,
	isOpen,
	onOpenChange,
	placement,
	shouldFlip,
	shouldRenderToParent,
	spacing,
	statusLabel,
	testId,
	trigger,
	zIndex,
}: DropdownMenuProps<T>) => JSX.Element;
export default DropdownMenu;

// @public (undocumented)
export interface DropdownMenuGroupProps extends SectionProps_2 {}

// @public (undocumented)
export interface DropdownMenuProps<TriggerElement extends HTMLElement = HTMLElement> {
	appearance?: 'default' | 'tall';
	autoFocus?: boolean;
	children?: ReactNode;
	defaultOpen?: boolean;
	isLoading?: boolean;
	isOpen?: boolean;
	onOpenChange?: (args: OnOpenChangeArgs) => void;
	placement?: Placement;
	shouldFlip?: boolean;
	shouldRenderToParent?: boolean;
	spacing?: Extract<MenuGroupProps['spacing'], 'compact' | 'cozy'>;
	statusLabel?: string;
	testId?: string;
	trigger?: ((triggerButtonProps: CustomTriggerProps<TriggerElement>) => ReactElement) | string;
	zIndex?: number;
}

// @public (undocumented)
export interface OnOpenChangeArgs {
	// (undocumented)
	event: KeyboardEvent_2 | MouseEvent_2;
	// (undocumented)
	isOpen: boolean;
}

// @public (undocumented)
type Placement =
	| 'auto'
	| 'auto-end'
	| 'auto-start'
	| 'bottom'
	| 'bottom-end'
	| 'bottom-start'
	| 'left'
	| 'left-end'
	| 'left-start'
	| 'right'
	| 'right-end'
	| 'right-start'
	| 'top'
	| 'top-end'
	| 'top-start';

// (No @packageDocumentation comment for this package)
```

<!--SECTION END: Main Entry Types-->

### Peer Dependencies

<!--SECTION START: Peer Dependencies-->

```json
{
	"react": "^16.8.0",
	"react-dom": "^16.8.0"
}
```

<!--SECTION END: Peer Dependencies-->
