import { Trigger } from "../../types/trigger.mjs";
import { Placement } from "../../utils/placement.mjs";
import { MenuCheckboxItemType } from "../../Menu/checkboxItem.mjs";
import { MenuSwitchItemType } from "../../Menu/switchItem.mjs";
import { BaseMenuItemType } from "../../Menu/baseItem.mjs";
import { IconAlign, IconSpaceMode } from "../../Menu/renderUtils.mjs";
import { ReactNode } from "react";
import { MenuPopupProps, MenuPortalProps, MenuPositionerProps, MenuRootProps, MenuTriggerProps } from "@base-ui/react/menu";

//#region src/base-ui/DropdownMenu/type.d.ts
type DropdownMenuPlacement = Placement;
type DropdownMenuCheckboxItem = MenuCheckboxItemType;
type DropdownMenuSwitchItem = MenuSwitchItemType;
type DropdownItem = BaseMenuItemType;
interface DropdownMenuProps<Payload = unknown> extends Omit<MenuRootProps<Payload>, 'children'> {
  children: ReactNode;
  /**
   * 图标与 label+desc 的垂直对齐方式
   * - 'center': 图标垂直居中（默认）
   * - 'start': 图标与第一行文本顶部对齐，仅在 item 有 desc 时生效
   * @default 'center'
   */
  iconAlign?: IconAlign;
  /**
   * 图标空间保留模式
   * - 'global': 当任何一个选项有图标时，所有 item 都保留图标位
   * - 'group': 只有当一个分组中存在图标时，该分组才保留图标位
   * @default 'global'
   */
  iconSpaceMode?: IconSpaceMode;
  items: DropdownItem[] | (() => DropdownItem[]);
  nativeButton?: boolean;
  placement?: DropdownMenuPlacement;
  popupProps?: MenuPopupProps;
  portalProps?: MenuPortalProps;
  positionerProps?: MenuPositionerProps;
  /**
   * 触发方式
   * @default 'click'
   */
  trigger?: Trigger;
  triggerProps?: Omit<MenuTriggerProps<Payload>, 'children'>;
}
//#endregion
export { DropdownItem, DropdownMenuCheckboxItem, DropdownMenuPlacement, DropdownMenuProps, DropdownMenuSwitchItem };
//# sourceMappingURL=type.d.mts.map