@gulibs/vgrove-ui
Version:
VGrove UI component library built with HeroUI and React
41 lines • 1.78 kB
TypeScript
import { type Selection, type TooltipProps } from '@heroui/react';
import type { Key } from '@react-types/shared';
import React from 'react';
import { type To } from 'react-router';
import { Listbox, ListboxItem, ListboxSection } from '../listbox';
import type { Collapseable } from '../types';
export type BaseMenuItemType = {
key: Key;
to: To;
title?: string;
icon?: string;
tooltip?: TooltipProps;
access?: string;
hideInMenu?: boolean;
description?: string;
badge?: string;
badgePlacement?: 'left' | 'right' | 'top' | 'bottom';
shortcut?: string;
};
export type SidebarMenuItem = Omit<React.ComponentProps<typeof ListboxItem>, "children" | "href"> & BaseMenuItemType;
export type SidebarMenuItems = SidebarMenuItem[];
export type SidebarMenuGroupItem = Omit<React.ComponentProps<typeof ListboxSection>, "items" | "children"> & {
key: Key;
items: SidebarMenuItems;
description?: string;
};
export type SidebarMenuGroupItems = SidebarMenuGroupItem[];
export type SidebarMenuItemsType = SidebarMenuItems | SidebarMenuGroupItems;
export interface SidebarMenusProps extends Omit<React.ComponentProps<typeof Listbox>, "children" | "items" | "onAction" | "topContent" | "bottomContent" | "onSelectionChange">, Collapseable {
items: SidebarMenuItemsType;
defaultSelectionKey?: Key;
topContent?: ((isCollapsed?: boolean) => React.ReactNode) | React.ReactNode;
bottomContent?: ((isCollapsed?: boolean) => React.ReactNode) | React.ReactNode;
onSelectionChange?: (keys: Selection) => void;
showTooltips?: boolean;
enableAnimations?: boolean;
enableBadges?: boolean;
enableShortcuts?: boolean;
}
export declare const SidebarMenus: React.FC<SidebarMenusProps>;
//# sourceMappingURL=SidebarMenus.d.ts.map