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/virtual-list/virtual-list.class.js';import'../../overlays/empty/empty.class.js';export interface LyraNeighborRow{ /** Edge label, e.g. `'works_for'`. */ relation:string;direction:'in'|'out'|'both';node:LyraEntity;}export interface LyraNeighborListEventMap{ /** Canonical name for the "user picked this entity" gesture. */ 'lr-entity-select':CustomEvent<{entityId:string;}>; /** Deliberately the *same name and detail* as the `lr-graph` event, so one host handler * serves both ("expand this node's neighborhood"). */ 'lr-node-expand':CustomEvent<{nodeId:string;}>;} /** * `` — one entity's relationship rows: relation, direction, neighbor, with * per-row navigate and expand-in-graph affordances. Never computes neighbors itself (the host * derives rows from its own graph data) and never mutates a graph. * * 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-neighbor-list * @event lr-entity-select - A row's node button was activated. `detail: { entityId }`. * @event lr-node-expand - A row's expand button was activated (only rendered when `expandable`). * `detail: { nodeId }`. * @csspart base - The stable root wrapper across empty, populated and virtualized states. It owns * `role="group"` and the fallback name unless a non-empty host `aria-label` owns the component; * a nested list owns the row semantics in non-virtualized mode. * @csspart group-header - A relation group header, only rendered when `groupByRelation`. Above * `virtualizeAt` this is the internal virtual-list's own group label, re-exported under the same * name so both paths present identically. * @csspart row - One relationship row (`role="listitem"`). Above `virtualizeAt` this is the * internal virtual-list's own row wrapper, re-exported under the same name. * @csspart direction - The `aria-hidden` direction glyph. * @csspart relation - The relation text. * @csspart node-label - The row's node `