import { LitElement, PropertyValues } from "lit"; import type { SkyListitem } from "../sky-listitem/sky-listitem.js"; export type SkyListSelectionMode = "none" | "single" | "multiple"; export type SkyListChangeDetail = { selectedItems: SkyListitem[]; /** Values from each selected item's `value` (empty string if unset). */ selectedValues: string[]; }; /** * @element sky-list * * @summary Styled list container for `sky-listitem` with selection modes and keyboard navigation. * * @status stable * @since 1.0.0 * * @documentation https://sky-ui.com/components/list * * @uiVModel selectedValues list-change detail=selectedValues * * @slot - Default slot for `` children. * @property {SkyListSelectionMode} selection - Selection mode (`none`, `single`, `multiple`). * @property {string[]} selectedValues - Selected item `value`s (mirror for `v-model`; set each ``). Default: `[]`. * @property {string} preset - Named prop preset from nearest `sky-config-provider`. Default: `""`. * @fires {CustomEvent} list-change - Fired when selected items change. * @method focusListItem Focuses a list item by index. * @method getItems Returns current slotted list items. * * @csspart list-container - The main container wrapping slotted list items. * * @Behavior * - Manages activation and selection state for slotted `sky-listitem` children. * - Supports keyboard navigation (`ArrowUp/Down`, `Home/End`, `Enter`, `Space`). * - Emits a normalized selected-items payload on each selection update. * * @example * ```html * * Option A * Option B * Option C * * ``` * ```vue * * ``` * ```jsx * export default function Demo() { * return ( * * Option A * Option B * Option C * * ); * } * ``` */ export declare class SkyList extends LitElement { /** Named prop preset from nearest `sky-config-provider`. */ preset: string; private _presets; static styles: import("lit").CSSResult; selection: SkyListSelectionMode; private _selectedValues; /** Bound selection as item `value` strings (requires `value` on items). Coerces null to `[]`. */ get selectedValues(): string[]; set selectedValues(value: string[] | null | undefined); private items; private currentIndex; /** Avoid feedback when syncing selection from the `selectedValues` prop. */ private _syncingSelectedValues; private _onItemActivate; private _onSlotChange; firstUpdated(): void; disconnectedCallback(): void; private syncAriaRole; private navigableItems; private isNavigableItem; private itemIndex; private onItemActivate; /** Applies `selectedValues` from the host to child items. */ private _applySelectedValuesFromProp; updated(changed: PropertyValues): void; private onKeydown; private focusStep; private _focusFirstNavigable; private focusItem; focusListItem(index: number): void; getItems(): SkyListitem[]; render(): import("lit-html").TemplateResult<1>; }