export type MenuMode = 'static' | 'overlay' | 'horizontal' | 'slim' | 'slim-plus' | 'reveal' | 'drawer'; export interface LayoutConfig { preset: string; primary: string; surface: string | undefined | null; darkTheme: boolean; menuMode: MenuMode; } export interface LayoutState { staticMenuDesktopInactive: boolean; overlayMenuActive: boolean; configSidebarVisible: boolean; staticMenuMobileActive: boolean; menuHoverActive: boolean; rightMenuActive: boolean; sidebarActive: boolean; activeMenuItem: any; overlaySubmenuActive: boolean; anchored: boolean; rightMenuVisible: boolean; searchBarActive: boolean; } export interface MenuChangeEvent { key: string; routeEvent?: boolean; } export interface TabCloseEvent { tab: any; index: number; } export interface MenuItem { label?: string; icon?: string; routerLink?: string[]; url?: string[]; target?: '_blank' | '_self' | '_parent' | '_top'; routerLinkActiveOptions?: { [key: string]: any; }; items?: MenuItem[]; separator?: boolean; visible?: boolean; disabled?: boolean; command?: (event?: any) => void; class?: string; style?: string; styleClass?: string; id?: string; urlTarget?: '_blank' | '_self' | '_parent' | '_top'; } export interface Breadcrumb { label: string; url?: string; } export interface LayoutConfigOptions { logoUrl?: string; logoAlt?: string; /** Texto junto al logo (p. ej. nombre de la app), estilo corplan */ appName?: string; showBreadcrumb?: boolean; showProfileMenu?: boolean; showConfigurator?: boolean; showDarkModeToggle?: boolean; showNotifications?: boolean; menuItems?: MenuItem[]; profileMenuItems?: MenuItem[]; userDisplayName?: string; userSubtitle?: string; userAvatarUrl?: string; }