import type { FaSize, IconName, IconStyle } from '../icon'; import type { FoundationRoute } from './types'; /** * FoundationRouteNavItem * @remarks * Many of the properties are dynamically assigned if not set explicitly. * @beta */ export type FoundationRouteNavItem = { title: string; icon?: { name: IconName; size?: FaSize; variant?: IconStyle; }; /** * @remarks * Defaults to 'header'. */ navId?: string; /** * @remarks * Allows nav items to appear conditionally based on the permissions held by the current user. * @beta */ permission?: string; /** * @remarks * Lower numbers move items earlier in navs. If not explicitly assigned, this value defaults to the route mapping * order and has automatic index padding applied which defaults to 10. Results in, 10, 20, 30... */ placementIndex?: number; /** * @remarks * Defaults to the route details, but can be set to target elsewhere. */ routePath?: string; routeName?: string; /** * @remarks * When set, this routing item will have nested submenu items. Used to create hierarchical navigation structures. */ navItems?: FoundationRouteNavItem[]; /** * @remarks * Used to override the default navigation action. When provided, this callback will be executed instead of the standard route navigation. */ onClick?: (e: { item: FoundationRouteNavItem; context: any; }) => void; /** * @remarks * When true, indicates this nav item controls a layout item (tab) rather than a route. * Used to apply different styling for layout items vs route items. * @beta */ isLayoutItem?: boolean; /** * @remarks * Unique identifier for layout items. Used with layoutItemCheck callback to determine if item is active in layout. * @beta */ layoutRegistration?: string; }; /** * @beta */ export type NavItemPredicate = (item: FoundationRouteNavItem) => boolean; /** * @beta */ export declare const defaultNavItemPredicate: NavItemPredicate; /** * @beta */ export declare const defaultPlacementIndexPadding = 10; /** * Get navigation items from routes. * @beta */ export declare function getNavItems(routes: Pick[], predicate?: NavItemPredicate, placementIndexPadding?: number): FoundationRouteNavItem[]; //# sourceMappingURL=navItems.d.ts.map