import { LitElement } from 'lit'; import '../../reusable/textInput'; export type HeaderLinkTarget = '_self' | '_blank' | '_parent' | '_top'; /** * Component for navigation links within the Header. * @fires on-click - Captures the click event and emits the original event details. `detail:{ origEvent: Event ,defaultPrevented: boolean}` * @slot unnamed - Slot for link text/content. * @slot links - Slot for sublinks (up to two levels). * @slot icon - Slot for icon. */ export declare class HeaderLink extends LitElement { static styles: import("lit").CSSResult; /** Link open state. * @internal */ accessor open: boolean; /** Link url. */ accessor href: string; /** Defines a target attribute for where to load the URL. Possible options include "_self" (default), "_blank", "_parent", "_top" */ accessor target: HeaderLinkTarget; /** Defines a relationship between a linked resource and the document. An empty string (default) means no particular relationship */ accessor rel: string; /** Link active state, for example when URL path matches link href. */ accessor isActive: boolean; /** Link level, supports two levels. * @ignore */ accessor level: number; /** DEPRECATED. Adds a 1px shadow to the bottom of the link. */ accessor divider: boolean; /** Label for sub-menu link search input, which is visible with > 5 sub-links. */ accessor searchLabel: string; /** Number of child links required to show search input. */ accessor searchThreshold: number; /** Maximum number of links per column in plain (non-categorical) flyouts. * When set to a positive number and the slotted link count exceeds this value, * additional columns are created automatically. Default 0 (auto — no column splitting). */ accessor linksPerColumn: number; /** Hide the search input regardless of the number of child links. */ accessor hideSearch: boolean; /** Text for mobile "Back" button. */ accessor backText: string; /** Add left padding when icon is not provided to align text with links that do have icons. */ accessor leftPadding: boolean; /** Title attribute for the link, shown as a tooltip on hover. Useful for truncated text. * @internal */ accessor linkTitle: string; /** When true, long text truncates with ellipsis. Default: false (text wraps normally). */ accessor truncate: boolean; /** Auto-derived title from slot content, used if linkTitle is not set. * @internal */ accessor _autoTitle: string; /** Indicates whether this link contains categorical navigation (kyn-header-categories or kyn-header-category). * @internal */ accessor hasCategorical: boolean; /** Indicates whether this link contains multi-column categorical navigation (kyn-header-categories wrapper). * Used to distinguish multi-column flyouts from single-column category lists. * @internal */ accessor hasMultiColumn: boolean; /** Number of columns in the categorical flyout (for width adjustment). * @internal */ accessor flyoutColumns: number; /** Mirrors `fixed-column-widths` from nested kyn-header-categories. * @internal */ accessor fixedColumnWidths: boolean; /** Current search term for filtering links in the flyout. * @internal */ accessor _searchTerm: string; /** Number of slotted plain links (non-categorical), used for column calculation. * @internal */ accessor _slottedLinkCount: number; /** * Queries any slotted HTML elements. * @ignore */ accessor slottedEls: Array; /** Timeout function to delay flyout open. * @internal */ _enterTimer: any; /** Timeout function to delay flyout close. * @internal */ accessor _leaveTimer: any; /** Suppresses pointer-leave close during internal view transitions (e.g. "More" click). * @internal */ private _viewChangeInProgress; private _viewChangeTimer; /** Cached truncation state from parent nav * @internal */ accessor _inheritedTruncate: boolean; /** Observer for `truncate-links` changes on the owning nav. * @internal */ private _truncateObserver?; private _observedNav; /** Menu positioning * @internal */ accessor menuPosition: any; render(): import("lit-html").TemplateResult<1>; /** Compute inline styles for the links-columns wrapper. * Only applies multi-column layout for plain (non-categorical) flyouts * when the number of links exceeds linksPerColumn. * @internal */ private get _linksColumnStyles(); private _handleSearch; private _searchFilter; /** Extract text content from the default slot to use as auto-title */ private _handleDefaultSlotChange; private _handleBack; private _handleLinksSlotChange; /** Handle column count changes from slotted kyn-header-categories * @internal */ private _handleColumnCountChange; private get _isDesktopViewport(); private handlePointerEnter; /** close other open header links at the same level * @internal */ private _closeOtherOpenLinks; private handlePointerLeave; /** Check if flyout should auto-collapse based on parent nav's autoOpenFlyout. * Only applies to links containing categorical nav (kyn-header-categories). * @internal */ private _shouldAutoCollapse; private handleClick; private handleClickOut; private determineLevel; private _positionMenu; /** @internal */ private _debounceResize; firstUpdated(): void; updated(changedProps: any): void; private _handleDocumentClick; /** Suppress pointer-leave close when categories switch views (root ↔ detail). * @internal */ private _handleNavChange; connectedCallback(): void; /** Find the closest owning nav across shadow boundaries. * @internal */ private _resolveOwningNav; /** Sync inherited truncate state with the owning nav. * @internal */ private _syncInheritedTruncate; /** Observe `truncate-links` changes on the owning nav. * @internal */ private _observeParentNavTruncate; /** Check if this link is inside a nav with truncate-links attribute * Uses getRootNode to traverse up through shadow DOM boundaries * @internal */ private _isInTruncatingNav; disconnectedCallback(): void; } declare global { interface HTMLElementTagNameMap { 'kyn-header-link': HeaderLink; } } //# sourceMappingURL=headerLink.d.ts.map