mistui-kit
Version:
**👉 [Try MistUi Live](https://gilded-tanuki-0eb52b.netlify.app/) — interactive playground & docs**
58 lines (57 loc) • 1.75 kB
TypeScript
import { Variants } from '../theme/default';
export type ItemDropMenu = {
id: string | number;
label: string | React.ReactElement;
};
export type DropMenuProps = {
style?: React.CSSProperties & {
positionAnchor?: string;
};
id?: string;
onSelect?: (select: string | number | ItemDropMenu) => void;
items?: string[] | ItemDropMenu[];
onlyId?: boolean;
};
export type PopUpMenuProps = {
style?: React.CSSProperties & {
positionAnchor?: string;
};
id?: string;
isHover?: boolean;
children: React.ReactElement | string;
content: React.ReactElement;
};
export type AccordionItem = {
/** label аккордеона */
title: React.ReactElement;
/** тело аккордеона */
content: React.ReactElement;
};
export type NavItem = {
id?: string;
label?: string | React.ReactNode;
title?: string | React.ReactNode;
icon?: React.ReactElement;
/** expanded submenu */
open?: boolean;
action?: React.ReactNode;
/** if true then display separator under element */
divider?: boolean | React.CSSProperties;
/** nested */
children?: NavItem[];
/** custom comand handle click element */
comand?: (item: NavItem) => void;
/** dot stylization inline item */
style?: React.CSSProperties;
};
export type MainListProps = {
onSelect?: (select: NavItem | NavItem['id']) => void;
className?: React.HTMLAttributes<HTMLElement>['className'];
style?: React.CSSProperties;
isNested?: boolean;
items: NavItem[];
size?: 'auto' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
color?: Variants | (string & {});
shadow?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
select?: NavItem | NavItem['id'];
};