# XWUIVirtualScroller

Virtualized list: only visible items are rendered. Reuses concept from XWUIList.

## Basic Usage

A 1,000-row list where only the rows in view (plus a small overscan) are mounted in the DOM.

```example
file: examples/BasicUsage.ts
html: examples/BasicUsage.html
title: Basic Usage
description: 1,000-row list where only the visible rows are mounted in the DOM.
```

## Custom Rows

Pass a renderer via `setItemRenderer(item, index)` to build rich rows from object data - here a two-line contact card (name + email) instead of the default plain-text row.

```example
file: examples/CustomRows.ts
html: examples/CustomRows.html
title: Custom Rows
description: setItemRenderer builds a rich two-line row from object data instead of plain text.
```

## Large Dataset

100,000 rows with `overscan: 10`. Windowing keeps the rendered DOM tiny regardless of how large the underlying list grows, so scrolling stays smooth.

```example
file: examples/LargeDataset.ts
html: examples/LargeDataset.html
title: Large Dataset
description: 100,000 rows with overscan:10 - windowing keeps the DOM tiny no matter the list size.
```

```api
```
