import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraEntity}from'../entity-card/entity-card.class.js';import'../../layout/scroller/scroller.class.js';export type LyraPathElement={kind:'node';node:LyraEntity;}|{kind:'edge';relation:string;directed?:boolean;reverse?:boolean;};export interface LyraPathStripEventMap{'lr-entity-activate':CustomEvent<{entityId:string;occurrenceIndex:number;}>;'lr-relation-activate':CustomEvent<{relation:string;sourceNodeId?:string;targetNodeId?:string;occurrenceIndex:number;}>;} /** * `` — a linear node -> relation -> node chain rendering "why A connects to B" * (GraphRAG local-search reasoning paths) as a compact, horizontally scrollable strip. * One-dimensional and presentational: no path finding, no branching, no per-element popovers. * * Public collection properties take bounded, clone-owned readonly snapshots. Create a new * collection and reassign it after changes; mutating the assigned array does not update the view. * * @customElement lr-path-strip * @event lr-entity-activate - A node element activated. `detail: { entityId, occurrenceIndex }`. * @event lr-relation-activate - An edge element activated. `detail: { relation, sourceNodeId?, * targetNodeId?, occurrenceIndex }` — source/target resolved from the adjacent retained node * elements, `undefined` when the path is malformed at that position. `occurrenceIndex` is the * element's index in the supplied path, so deliberately repeated identities remain distinct. * @csspart base - The root wrapper, hosting the delegated roving-tabindex keydown handler. * @csspart node - One `node`-kind element (a `