import type { CLASSES } from './vars'; import type { BaseProps, VerticalSidePlacement } from '../types'; export {}; export interface DropdownRef { updatePosition: () => void; } export interface DropdownItem { id: ID; title: React.ReactNode; type: 'item' | 'group' | 'sub'; icon?: React.ReactNode; theme?: 'primary' | 'success' | 'warning' | 'danger'; disabled?: boolean; separator?: boolean; children?: DropdownItem[]; } export interface DropdownProps> extends BaseProps<'dropdown' | 'dropdown-popup', typeof CLASSES>, Omit, 'children' | 'onClick'> { ref?: React.Ref; children: (props: { id: string; tabIndex: number; 'aria-haspopup': 'menu'; 'aria-expanded': boolean; 'aria-controls': string; onClick: React.MouseEventHandler; onMouseEnter: React.MouseEventHandler; onMouseLeave: React.MouseEventHandler; onFocus: React.FocusEventHandler; onBlur: React.FocusEventHandler; onKeyDown: React.KeyboardEventHandler; }) => React.ReactNode; list: T[]; visible?: boolean; defaultVisible?: boolean; trigger?: 'hover' | 'click'; placement?: VerticalSidePlacement; placementFixed?: boolean; arrow?: boolean; virtual?: boolean | number; escClosable?: boolean; zIndex?: number | string; popupRender?: (el: React.ReactElement) => React.ReactNode; onVisibleChange?: (visible: boolean) => void; afterVisibleChange?: (visible: boolean) => void; onClick?: (id: ID, origin: T) => void | false; }