antd
Version:
An enterprise-class UI design language and React components implementation
75 lines (74 loc) • 2.72 kB
TypeScript
import * as React from 'react';
import type { MenuProps as RcMenuProps, MenuRef as RcMenuRef } from '@rc-component/menu';
import type { SiderContextProps } from '../layout/Sider';
import type { ItemType } from './interface';
import type { MenuTheme } from './MenuContext';
export type MenuSemanticName = keyof MenuSemanticClassNames & keyof MenuSemanticStyles;
export type MenuSemanticClassNames = {
root?: string;
itemTitle?: string;
list?: string;
item?: string;
itemIcon?: string;
itemContent?: string;
};
export type MenuSemanticStyles = {
root?: React.CSSProperties;
itemTitle?: React.CSSProperties;
list?: React.CSSProperties;
item?: React.CSSProperties;
itemIcon?: React.CSSProperties;
itemContent?: React.CSSProperties;
};
export type SubMenuSemanticName = keyof SubMenuSemanticClassNames & keyof SubMenuSemanticStyles;
export type SubMenuSemanticClassNames = {
item?: string;
itemTitle?: string;
list?: string;
itemContent?: string;
itemIcon?: string;
};
export type SubMenuSemanticStyles = {
item?: React.CSSProperties;
itemTitle?: React.CSSProperties;
list?: React.CSSProperties;
itemContent?: React.CSSProperties;
itemIcon?: React.CSSProperties;
};
export type MenuPopupSemanticName = keyof MenuPopupSemanticClassNames & keyof MenuPopupSemanticStyles;
export type MenuPopupSemanticClassNames = {
root?: string;
};
export type MenuPopupSemanticStyles = {
root?: React.CSSProperties;
};
type MenuClassNamesSchemaType = MenuSemanticClassNames & {
popup?: MenuPopupSemanticClassNames | string;
subMenu?: SubMenuSemanticClassNames;
};
type MenuStylesSchemaType = MenuSemanticStyles & {
popup?: MenuPopupSemanticStyles | React.CSSProperties;
subMenu?: SubMenuSemanticStyles;
};
export type MenuClassNamesType = MenuClassNamesSchemaType | ((info: {
props: MenuProps;
}) => MenuClassNamesSchemaType);
export type MenuStylesType = MenuStylesSchemaType | ((info: {
props: MenuProps;
}) => MenuStylesSchemaType);
export interface MenuProps extends Omit<RcMenuProps, 'items' | '_internalComponents' | 'classNames' | 'styles' | 'activeKey' | 'defaultActiveFirst'> {
theme?: MenuTheme;
inlineIndent?: number;
/**
* @private Internal Usage. Not promise crash if used in production. Connect with chenshuai2144
* for removing.
*/
_internalDisableMenuItemTitleTooltip?: boolean;
items?: ItemType[];
classNames?: MenuClassNamesType;
styles?: MenuStylesType;
}
declare const InternalMenu: React.ForwardRefExoticComponent<MenuProps & SiderContextProps & {
collapsedWidth?: string | number;
} & React.RefAttributes<RcMenuRef>>;
export default InternalMenu;