vlist 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.github.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in 8.0 KB.
4
4
 
5
- **v2.1.2** — [Changelog](./CHANGELOG.md) · Groups + masonry integration, grid render hot-path optimization, horizontal sticky group headers.
5
+ **v2.2.0** — [Changelog](./CHANGELOG.md) · Table `fillWidth` (fills the container by default), async loading resilience (reload keeps placeholders, auto-retry with backoff), table placeholder skeletons.
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/vlist.svg)](https://www.npmjs.com/package/vlist)
8
8
  [![bundle size](https://img.shields.io/bundlephobia/minzip/vlist)](https://bundlephobia.com/package/vlist)
@@ -95,7 +95,7 @@ const list = createVList({
95
95
  | Plugin | Size | Description |
96
96
  |--------|------|-------------|
97
97
  | **Base** | 8.0 KB | Virtualization, ARIA, keyboard nav, gap, padding |
98
- | `data()` | +4.7 KB | Lazy loading with velocity-aware fetching |
98
+ | `data()` | +4.8 KB | Lazy loading with velocity-aware fetching |
99
99
  | `selection()` | +2.5 KB | Single/multiple selection with 2D keyboard nav |
100
100
  | `scale()` | +3.9 KB | 1M+ items via scroll compression |
101
101
  | `groups()` | +5.2 KB | Sticky/inline headers with grid + masonry + table + data integration |
@@ -103,11 +103,11 @@ const list = createVList({
103
103
  | `scrollbar()` | +2.0 KB | Custom scrollbar UI |
104
104
  | `grid()` | +2.9 KB | 2D grid layout |
105
105
  | `masonry()` | +3.7 KB | Pinterest-style masonry with lane-aware keyboard nav |
106
- | `table()` | +6.1 KB | Data table with columns, resize, sort |
106
+ | `table()` | +6.2 KB | Data table with columns, resize, sort |
107
107
  | `tree()` | +5.3 KB | Collapsible tree with async loading and indent guides |
108
108
  | `page()` | +0.8 KB | Window-level scrolling |
109
109
  | `sortable()` | +2.9 KB | Drag-and-drop reordering with auto-scroll |
110
- | `snapshots()` | +1.2 KB | Scroll position save/restore |
110
+ | `snapshots()` | +1.3 KB | Scroll position save/restore |
111
111
  | `transition()` | +1.8 KB | FLIP-based enter/exit animations for insert & remove |
112
112
 
113
113
  ## Examples
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in 8.0 KB.
4
4
 
5
- **v2.1.2** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · **New:** groups + masonry integration, grid render hot-path optimization, and horizontal sticky group headers.
5
+ **v2.2.0** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · **New:** table `fillWidth` (fills the container by default), async loading resilience (reload keeps placeholders, auto-retry with backoff), and table placeholder skeletons.
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/vlist.svg)](https://www.npmjs.com/package/vlist)
8
8
  [![bundle size](https://img.shields.io/bundlephobia/minzip/vlist)](https://bundlephobia.com/package/vlist)
@@ -57,7 +57,7 @@ const list = createVList({ container: '#app', items, item: { height: 200, templa
57
57
  | Plugin | Size | Description |
58
58
  |--------|------|-------------|
59
59
  | **Base** | 8.0 KB | Virtualization, ARIA, keyboard nav, gap, padding |
60
- | `data()` | +4.7 KB | Lazy loading with velocity-aware fetching |
60
+ | `data()` | +4.8 KB | Lazy loading with velocity-aware fetching |
61
61
  | `selection()` | +2.5 KB | Single/multiple selection with 2D keyboard nav |
62
62
  | `scale()` | +3.9 KB | 1M+ items via scroll compression |
63
63
  | `groups()` | +5.2 KB | Sticky/inline headers with grid + masonry + table + data integration |
@@ -65,10 +65,10 @@ const list = createVList({ container: '#app', items, item: { height: 200, templa
65
65
  | `scrollbar()` | +2.0 KB | Custom scrollbar UI |
66
66
  | `grid()` | +2.9 KB | 2D grid layout |
67
67
  | `masonry()` | +3.7 KB | Pinterest-style masonry with lane-aware keyboard nav |
68
- | `table()` | +6.1 KB | Data table with columns, resize, sort |
68
+ | `table()` | +6.2 KB | Data table with columns, resize, sort |
69
69
  | `page()` | +0.8 KB | Window-level scrolling |
70
70
  | `sortable()` | +2.9 KB | Drag-and-drop reordering with auto-scroll |
71
- | `snapshots()` | +1.2 KB | Scroll position save/restore |
71
+ | `snapshots()` | +1.3 KB | Scroll position save/restore |
72
72
  | `transition()` | +1.8 KB | FLIP-based enter/exit animations for insert & remove |
73
73
 
74
74
  ## Framework Adapters
@@ -27,6 +27,11 @@ export declare const PRELOAD_VELOCITY_THRESHOLD = 2;
27
27
  export declare const LOAD_VELOCITY_THRESHOLD = 15;
28
28
  /** Maximum concurrent chunk requests (0 = unlimited) */
29
29
  export declare const MAX_CONCURRENT_LOADS = 6;
30
+ /** Initial delay before auto-retrying a failed load (ms) */
31
+ export declare const LOAD_RETRY_BASE_DELAY = 2000;
32
+ /** Maximum delay between auto-retries of a failed load (ms) — caps the
33
+ * exponential backoff so recovery stays responsive once the network returns */
34
+ export declare const LOAD_RETRY_MAX_DELAY = 30000;
30
35
  /**
31
36
  * Maximum virtual size in pixels along the main axis
32
37
  * Most browsers support ~16.7M pixels, we use 16M for safety margin