import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type LyraSpan}from'../trace-tree/span.js';export type{LyraSpan}from'../trace-tree/span.js';export interface LyraSpanWaterfallEventMap{'lr-span-select':CustomEvent<{spanId:string;}>;} /** * `` — the horizontal-timeline projection of the same * `LyraSpan[]` `` consumes: a time axis, one row per span * in start order, status-toned bars (Langfuse timeline / Temporal * event-history style). * * Public collection properties take bounded readonly snapshots. `spans` keeps admitted item * identities only long enough for the shared descriptor-safe projection to copy its closed * display schema; later rendering never re-reads an admitted source row. Create a new collection * and reassign it after changes; mutating the assigned array does not update the view. * * The time axis always scales to the whole trace, including spans the 500-row ceiling drops, so a * truncated tail never stretches the surviving bars across the track. * * @customElement lr-span-waterfall * @event lr-span-select - `detail: { spanId }` — a bar/row was activated (click, Enter, Space). * @csspart base - The root wrapper. * @csspart axis - The time-ruler row, hidden when `hideAxis`. * @csspart tick - One axis tick mark. * @csspart tick-label - An axis tick's formatted duration label. * @csspart row - One span's row. * @csspart name - The span's name (the row's name gutter). * @csspart bar-track - The bar's positioning track. * @csspart bar - The interactive, focusable status-toned bar (`role` via `