A virtualised, infinitely loading collection for mailboxes, file browsers, record queues, and other high-volume selectable data. It follows familiar desktop selection conventions without coupling the primitive to email.
onItemActivate.Set selectionIndicator to "none", "checkbox", or "radio". Checkbox and radio are visual treatments for multiple selection; both retain the full desktop multi-selection model. The complete row is the toggle target, so releasing slightly beside the glyph cannot clear earlier selections. The indicator is rendered by the component, so row renderers do not need to recreate ticks or choice controls. onSelectionChange returns every selected ID and every corresponding loaded item.
The host owns items and appends the next page in onLoadMore. By default the scrollbar represents the rows loaded so far. Pass totalItemCount only when the server knows the total and the scrollbar should represent the complete result set. Selection callbacks return both stable IDs and the corresponding loaded items.
Uses a labelled multi-select listbox, option rows, aria-selected, aria-activedescendant, roving visual focus, keyboard selection, and a polite loading status. Disabled IDs are exposed with aria-disabled and excluded from ranges and select-all.
| Prop | Type | Default | Description |
|---|---|---|---|
hasMore | boolean | true | Configures has more. |
scrollbarSizing | string | loaded | Configures scrollbar sizing. |
selectionIndicator | string | none | Configures selection indicator. |
virtualItemCount | number | 5000 | Configures virtual item count. |
Copy this complete component into a page file. Edit and run it in the Playground.
Loading editor…