34 lines
815 B
TypeScript
34 lines
815 B
TypeScript
![]() |
import * as plugins from '../00plugins.js';
|
||
|
|
||
|
/**
|
||
|
* Divider menu item
|
||
|
*/
|
||
|
export interface IAppBarMenuDivider {
|
||
|
divider: true;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Regular menu item
|
||
|
*/
|
||
|
export interface IAppBarMenuItemRegular extends plugins.tsclass.website.IMenuItem {
|
||
|
id?: string;
|
||
|
shortcut?: string; // e.g., "Cmd+S" or "Ctrl+S"
|
||
|
submenu?: IAppBarMenuItem[];
|
||
|
disabled?: boolean;
|
||
|
checked?: boolean; // For checkbox menu items
|
||
|
radioGroup?: string; // For radio button menu items
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Extended menu item interface for app bar menus
|
||
|
* Can be either a regular menu item or a divider
|
||
|
*/
|
||
|
export type IAppBarMenuItem = IAppBarMenuItemRegular | IAppBarMenuDivider;
|
||
|
|
||
|
/**
|
||
|
* Interface for the menu bar configuration
|
||
|
*/
|
||
|
export interface IMenuBar {
|
||
|
menuItems: IAppBarMenuItem[];
|
||
|
onMenuSelect?: (item: IAppBarMenuItem) => void;
|
||
|
}
|