import type { ClickEvent, ClickEventProps, ClickEventState, GlobalProps, GlobalState, IconProps, InitializedState, NavigationBackButtonProps, NavigationBehaviorState, ShowIconProps, TextProps, WidthProps, WrapProps } from '../../shared/model.js'; import type { NavigationItemSafeTriangle } from '../../utils/navigation.js'; export type DBNavigationItemDefaultProps = { /** * Alternative indicator for active navigation item (bold font). In contrast to the use of aria-current="page" on the contained anchor, this does not guarantee correct a11y. */ active?: boolean; /** * The disabled attribute can be set to [keep a user from clicking on the item](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled). */ disabled?: boolean | string; /** * React-specific property to pass in a slot for sub-navigation */ subNavigation?: any; /** * This is for mobile navigation only, if it is set the sub-navigation is a static overlay */ subNavigationExpanded?: boolean | string; /** * Force hide sub-navigation - for web component output */ hideSubNavigation?: boolean | string; }; export type DBNavigationItemProps = DBNavigationItemDefaultProps & GlobalProps & ClickEventProps & IconProps & WidthProps & WrapProps & NavigationBackButtonProps & ShowIconProps & TextProps; export type DBNavigationItemDefaultState = { handleBackClick: (event: ClickEvent) => void; hasAreaPopup: boolean; isSubNavigationExpanded: boolean; /** * Internal state property to show/hide sub-navigation button */ hasSubNavigation?: boolean; navigationItemSafeTriangle?: NavigationItemSafeTriangle; autoClose?: boolean; subNavigationId?: string; subNavigationToggleId?: string; }; export type DBNavigationItemState = DBNavigationItemDefaultState & ClickEventState & GlobalState & InitializedState & NavigationBehaviorState;