vlist 2.1.1 → 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.1** — [Changelog](./CHANGELOG.md) · Native groups + table + data + grid cross-plugin integration, pixel-perfect snapshot restore, keyboard nav fixes.
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,15 +95,15 @@ 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
- | `groups()` | +4.8 KB | Sticky/inline headers with grid + table + data integration |
101
+ | `groups()` | +5.2 KB | Sticky/inline headers with grid + masonry + table + data integration |
102
102
  | `autosize()` | +0.8 KB | Auto-measure items via ResizeObserver |
103
103
  | `scrollbar()` | +2.0 KB | Custom scrollbar UI |
104
- | `grid()` | +2.8 KB | 2D grid layout |
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 |
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.0** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · **New:** [`tree()`](https://vlist.io/docs/plugins/tree) plugin virtualized collapsible trees with async loading, indent guides, and WAI-ARIA treeview keyboard nav.
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)
@@ -56,16 +56,16 @@ const list = createVList({ container: '#app', items, item: { height: 200, templa
56
56
 
57
57
  | Plugin | Size | Description |
58
58
  |--------|------|-------------|
59
- | **Base** | 7.9 KB | Virtualization, ARIA, keyboard nav, gap, padding |
60
- | `data()` | +4.6 KB | Lazy loading with velocity-aware fetching |
61
- | `selection()` | +2.4 KB | Single/multiple selection with 2D keyboard nav |
59
+ | **Base** | 8.0 KB | Virtualization, ARIA, keyboard nav, gap, padding |
60
+ | `data()` | +4.8 KB | Lazy loading with velocity-aware fetching |
61
+ | `selection()` | +2.5 KB | Single/multiple selection with 2D keyboard nav |
62
62
  | `scale()` | +3.9 KB | 1M+ items via scroll compression |
63
- | `groups()` | +3.7 KB | Sticky/inline headers with async group discovery |
63
+ | `groups()` | +5.2 KB | Sticky/inline headers with grid + masonry + table + data integration |
64
64
  | `autosize()` | +0.8 KB | Auto-measure items via ResizeObserver |
65
65
  | `scrollbar()` | +2.0 KB | Custom scrollbar UI |
66
- | `grid()` | +2.7 KB | 2D grid layout |
67
- | `masonry()` | +3.6 KB | Pinterest-style masonry with lane-aware keyboard nav |
68
- | `table()` | +6.1 KB | Data table with columns, resize, sort |
66
+ | `grid()` | +2.9 KB | 2D grid layout |
67
+ | `masonry()` | +3.7 KB | Pinterest-style masonry with lane-aware keyboard nav |
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
71
  | `snapshots()` | +1.3 KB | Scroll position save/restore |
@@ -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