import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js'; /** A projected embedding point. Coordinates must already be projected by the host. */ export interface EmbeddingPoint{id:string;x:number;y:number;label?:string;sourceId?:string;cluster?:string|number;}export interface LyraEmbeddingExplorerEventMap{'lr-point-select':CustomEvent<{point:EmbeddingPoint;}>;} /** * `` — a dependency-free, accessible 2D embedding projection viewer. It * normalizes host-provided coordinates into an SVG plot, colors optional clusters, and exposes * click/keyboard selection. Pointer, script, and assistive-technology focus all synchronize the * single roving tab stop. It does not run PCA/UMAP/t-SNE, fetch chunks, or mutate points. * * 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. * Points with non-finite coordinates or blank ids and later valid duplicates are ignored before * focus, selection, rendering, or activation. The first valid point for an id wins. * Optional cluster membership is exposed both through the plot options' descriptions and a * visible text legend, so cluster meaning never depends on color alone. * * @customElement lr-embedding-explorer * @event lr-point-select - A point was activated. `detail: { point }`. * @csspart base - The root wrapper. * @csspart plot - The SVG projection plot. * @csspart point - One focusable embedding point. * @csspart legend - The visible cluster-name list. * @csspart legend-item - One cluster's legend entry. * @csspart legend-swatch - One cluster's decorative color swatch. * @csspart legend-label - One cluster's visible name. * @csspart empty - The empty state. * @cssprop [--lr-embedding-explorer-selected-stroke=var(--lr-color-brand)] - Stroke color of the selected point. * @cssprop [--lr-embedding-explorer-height=360px] - The plot's `block-size`. Set on the host from * the `height` property, whose default supplies the `360px`; a value the browser cannot parse as * a `block-size` is dropped, leaving the `viewBox`-derived aspect-ratio size. A consumer's own * `::part(plot) { block-size: ... }` rule still overrides it, and the narrow-allocation * `min-block-size` floor still raises it. * @cssprop [--lr-color-chart-1=var(--lr-theme-color-chart-1,#0e006e)] - First cluster color. * @cssprop [--lr-color-chart-2=var(--lr-theme-color-chart-2,#4d011a)] - Second cluster color. * @cssprop [--lr-color-chart-3=var(--lr-theme-color-chart-3,#862002)] - Third cluster color. * @cssprop [--lr-color-chart-4=var(--lr-theme-color-chart-4,#503983)] - Fourth cluster color. * @cssprop [--lr-color-chart-5=var(--lr-theme-color-chart-5,#315fdd)] - Fifth cluster color. * @cssprop [--lr-color-chart-6=var(--lr-theme-color-chart-6,#935e7c)] - Sixth cluster color. * @cssprop [--lr-color-chart-7=var(--lr-theme-color-chart-7,#de6906)] - Seventh cluster color. * @cssprop [--lr-color-chart-8=var(--lr-theme-color-chart-8,#8f81d3)] - Eighth cluster color; * later clusters wrap through the same ordered palette. * @status stable * @since 6.2.0 */ export declare class LyraEmbeddingExplorer extends LyraElement{protected static readonly ownedCollectionProperties:readonly string[];static styles:import("lit").CSSResultGroup[]; /** Projected points in host order. Non-finite coordinates are omitted. */ points:readonly EmbeddingPoint[]; /** The selected point id. Controlled by the host. */ selectedPointId:string; /** * The plot's block size, as any CSS length the browser accepts for `block-size` — including * `auto`, which restores the aspect-ratio-preserved size derived from the `viewBox`. It is * applied through `--lr-embedding-explorer-height`; an unparseable value leaves that property * unset, so the plot falls back to `auto` rather than collapsing. */ height:string; /** JS-only accessible name for the plot while no host `aria-label` is authored. An authored host * label governs the plot's name too (including an explicitly empty value), avoiding a competing * generic plot label while still naming the shadow-internal `listbox` itself. */ accessibleLabel:string|null;private activeIndex;private refocusAfterUpdate;private get validPoints();protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void; /** * Publishes `height` as `--lr-embedding-explorer-height`, which `[part='plot']`'s `block-size` * reads. It has to land on the host: custom properties cascade downward into the shadow tree, * never upward from a shadow-tree node. Routing it through a custom property rather than an * inline `block-size` also keeps the value visible to a consumer retheming the property. */ private applyHeight;private position;private announceLabel;private select;private activatePoint;private onPointKeyDown;private renderPoint;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-embedding-explorer':LyraEmbeddingExplorer;}}