import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraOrientation}from'../../../internal/shared-unions.js';import type{LyraTimelineItem}from'./timeline-item.class.js'; /** How a timeline distributes its items along the main axis. */ export type LyraTimelineScale='flow'|'time'; /** How `scale="time"` handles items that land on (nearly) the same position. */ export type LyraTimelineCollision='overlap'|'stack'|'cluster';export interface LyraTimelineClusterActivateDetail{ /** The clustered `` elements, as a frozen snapshot in document order. */ readonly items:readonly LyraTimelineItem[];}export interface LyraTimelineEventMap{'lr-cluster-activate':CustomEvent;} /** * `` — an ordered, connected sequence of past-event rows (an audit trail, an agent * action history, a changelog) composed from `` light-DOM children, joined by a * continuous connecting rail. First-party invention: no Web Awesome/Shoelace counterpart exists, so * this follows the library's own established conventions rather than mirroring an upstream API. * * A read-only declarative display by default — same zero-interaction shape as ``/ * ``/``. The opt-in `scale="time" collision="cluster"` presentation is the * one exception: overlapping events collapse behind a native count button and activation emits * their exact element identities so the consumer can open its own popover, dialog, or detail * view. The component does not select, expand, reorder, or mutate the content of those items. * * No roving-tabindex or per-event selection model is introduced. Timeline items remain passive; * each cluster marker is an independent native `