import * as _angular_core from '@angular/core';
/**
* A single item in the breadcrumb trail.
*
* `id` is used as the `@for` track expression and emitted back on click.
* `name` is rendered as-is — no truncation, translation, or fallback applied.
* Position in the array determines the role: all items except the last are clickable links;
* the last item is rendered as non-clickable text representing the current location.
*/
interface BreadcrumbItem {
/** Unique identifier — emitted via `navigate` output when the item is activated. */
id: string;
/** Display label shown in the breadcrumb trail. */
name: string;
}
/**
* A generic, accessible breadcrumb navigation component.
*
* Renders a flat list of navigation items where the last item always represents
* the current location (non-clickable) and all preceding items are interactive links.
* Each link is individually focusable via standard Tab navigation.
*
* Key behaviors
* - Items are rendered left-to-right, separated by a `/` divider
* - The **last item** is always the current page — displayed as plain text (no link, no click handler)
* - All **preceding items** are rendered as `` links that emit the `navigate` output on click or Enter
* - The component performs **no routing** — the parent handles all navigation logic via the emitted `BreadcrumbItem`
* - Empty `items` array renders nothing (the host element stays in the DOM but is visually empty)
*
* Usage
*
* The parent builds the `BreadcrumbItem[]` and passes it as input. Typically this
* array mirrors the object hierarchy the user navigated through (e.g. Case → Phase → Document).
*
* ```ts
* // Parent component
* breadcrumbItems: BreadcrumbItem[] = [
* { id: 'case-42', name: 'Case #42' }, // ← clickable link
* { id: 'phase-3', name: 'Review' }, // ← clickable link
* { id: 'doc-7', name: 'Contract.pdf' } // ← current location (non-clickable)
* ];
*
* onBreadcrumbNavigate(item: BreadcrumbItem): void {
* // item.id is the domain-specific key — use it to navigate
* this.router.navigate(['/objects', item.id]);
* }
* ```
*
* ```html
*
* ```
*
* Renders visually as:
* ```
* Case #42 / Review / Contract.pdf
* [link] [link] [current]
* ```
*/
declare class YuuvisBreadcrumbComponent {
/**
* Ordered list of breadcrumb items to display.
*
* Each `BreadcrumbItem` has `{ id: string; name: string }` — where `id` is a unique key
* (typically an object/route ID) and `name` is the display label rendered in the trail.
*
* Position determines rendering behavior:
* - All items except the last → clickable `` links
* - Last item → non-clickable text (current location)
*
* Defaults to an empty array, which renders nothing.
*
* @example
* ```ts
* // Case → Document trail
* [items]="[
* { id: 'case-42', name: 'Case #42' },
* { id: 'doc-7', name: 'Invoice.pdf' }
* ]"
* ```
*/
items: _angular_core.InputSignal;
/**
* Emitted when the user activates a clickable breadcrumb item (click or Enter key).
*
* The emitted value is the full `BreadcrumbItem` object (`{ id, name }`) that was activated.
* Never emitted for the last item since it is non-clickable.
* The parent is responsible for performing the actual navigation using `item.id`.
*
* @example
* ```ts
* onBreadcrumbNavigate(item: BreadcrumbItem): void {
* // item = { id: 'case-42', name: 'Case #42' }
* this.router.navigate(['/objects', item.id]);
* }
* ```
*/
navigate: _angular_core.OutputEmitterRef;
/**
* Handles click on a breadcrumb link and forwards the item to the parent via `navigate` output.
* Called only for non-last items (the template guards against calling this for the current location).
*/
protected onItemClick(item: BreadcrumbItem): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration;
static ɵcmp: _angular_core.ɵɵComponentDeclaration;
}
export { YuuvisBreadcrumbComponent };
export type { BreadcrumbItem };