vlist 3.1.0-next.3 → 3.1.1

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.
4
4
 
5
- **v3.1.0-next.3** (prerelease on the npm `next` tag) — Vue, Svelte, Solid and React entries in the package itself: `vlist/vue`, `vlist/svelte`, `vlist/solid` and `vlist/react`, feature-first and tree-shaken like the vanilla builder; the separate adapter packages are deprecated. With `scroll.mode` from 3.1.0-next.2: the default, `"auto"`, scrolls natively and hands a list past the browser's size limit to synthetic input. See the [changelog](https://github.com/floor/vlist/blob/next/CHANGELOG.md).
5
+ **v3.1.1** — `scroll.mode` on the one `vlist` entry: the default, `"auto"`, scrolls natively and hands a list past the browser's size limit to synthetic input, which draws its own scrollbar. Vue, Svelte, Solid and React entries in the package itself (`vlist/vue`, `vlist/svelte`, `vlist/solid`, `vlist/react`), feature-first and tree-shaken like the vanilla builder; the separate adapter packages are deprecated. See the [changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md).
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)
@@ -267,8 +267,8 @@ The touch-only `.vlist-item--touch-sort` class suppresses selection and callouts
267
267
  | **Base (`vlist`)** | 27.3 KB | 10.3 KB |
268
268
  | `vlist/synthetic` (deprecated) | 34.2 KB | 12.9 KB |
269
269
  | `vlist/native` (alias) | 27.3 KB | 10.3 KB |
270
- | `a11y()` | 31.2 KB | 11.7 KB |
271
- | `selection()` | 36.9 KB | 13.3 KB |
270
+ | `a11y()` | 32.0 KB | 12.0 KB |
271
+ | `selection()` | 37.8 KB | 13.6 KB |
272
272
  | `data()` | 41.0 KB | 15.1 KB |
273
273
  | `scrollbar()` | 35.5 KB | 13.2 KB |
274
274
  | `sortable()` | 39.2 KB | 13.9 KB |
@@ -278,9 +278,9 @@ The touch-only `.vlist-item--touch-sort` class suppresses selection and callouts
278
278
  | `transition()` | 34.1 KB | 12.3 KB |
279
279
  | `autosize()` | 30.6 KB | 11.5 KB |
280
280
  | `grid()` | 34.7 KB | 12.9 KB |
281
- | `table()` | 45.8 KB | 16.2 KB |
281
+ | `table()` | 46.3 KB | 16.4 KB |
282
282
  | `masonry()` | 39.4 KB | 14.7 KB |
283
- | `tree()` | 43.5 KB | 15.7 KB |
283
+ | `tree()` | 43.1 KB | 15.6 KB |
284
284
  | `search()` | 36.9 KB | 13.6 KB |
285
285
  | `carousel()` | 43.2 KB | 15.8 KB |
286
286
  | `vlist/synthetic` + `carousel()` | 49.3 KB | 18.1 KB |
@@ -321,10 +321,19 @@ const myTable = createVList({
321
321
  selection({ mode: 'single' }),
322
322
  ])
323
323
 
324
+ myTable.on('column:click', ({ key, index, event }) => { /* a header cell was clicked */ })
324
325
  myTable.on('column:sort', ({ key, direction }) => { /* re-sort data */ })
325
326
  myTable.on('column:resize', ({ key, width }) => { /* persist widths */ })
326
327
  ```
327
328
 
329
+ A control supplied in a header `label` that is not one of `a[href]`, `button`, `input`, `select`,
330
+ `textarea` or an element with `tabindex` — a custom element with a button in its shadow root, or a
331
+ `div` with `role="button"` and no `tabindex` — runs its own handler, and the click still reaches the
332
+ cell, which sorts the column when it is sortable: give the control `tabindex`, or call
333
+ `stopPropagation()` in its handler. `column:click` is emitted for a pointer click or tap only;
334
+ Enter and Space emit `column:sort` on a sortable header and never `column:click`, so an action a
335
+ keyboard user must reach should be a `button` supplied in the header label.
336
+
328
337
  ### Grid Layout
329
338
 
330
339
  ```typescript
@@ -423,9 +432,9 @@ adapter instead. It cannot be combined with `tree()` either: filtering a tree
423
432
  means keeping the ancestors of each match, which belongs to the plugin that
424
433
  owns the layout, and `tree()` offers no such hook.
425
434
 
426
- ## Custom scrollbar (3.0 preview)
435
+ ## Custom scrollbar
427
436
 
428
- On `next`, `scrollbar()` remains a plugin. macOS and Android default to thin,
437
+ `scrollbar()` is a plugin. macOS and Android default to thin,
429
438
  rounded, auto-hiding overlays; Windows defaults to a wider, square, always-visible
430
439
  bar. Set `gutter: true` to reserve space. The same behavior works horizontally.
431
440
 
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.
4
4
 
5
- **v3.1.0-next.3** (prerelease on the npm `next` tag) — Vue, Svelte, Solid and React entries in the package itself: `vlist/vue`, `vlist/svelte`, `vlist/solid` and `vlist/react`, feature-first and tree-shaken like the vanilla builder; the separate adapter packages are deprecated. With `scroll.mode` from 3.1.0-next.2: the default, `"auto"`, scrolls natively and hands a list past the browser's size limit to synthetic input. See the [changelog](https://github.com/floor/vlist/blob/next/CHANGELOG.md).
5
+ **v3.1.1** — `scroll.mode` on the one `vlist` entry: the default, `"auto"`, scrolls natively and hands a list past the browser's size limit to synthetic input, which draws its own scrollbar. Vue, Svelte, Solid and React entries in the package itself (`vlist/vue`, `vlist/svelte`, `vlist/solid`, `vlist/react`), feature-first and tree-shaken like the vanilla builder; the separate adapter packages are deprecated. See the [changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md).
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)
@@ -134,8 +134,8 @@ The touch-only `.vlist-item--touch-sort` class suppresses selection and callouts
134
134
  | **Base (`vlist`)** | 27.3 KB | 10.3 KB |
135
135
  | `vlist/synthetic` (deprecated) | 34.2 KB | 12.9 KB |
136
136
  | `vlist/native` (alias) | 27.3 KB | 10.3 KB |
137
- | `a11y()` | 31.2 KB | 11.7 KB |
138
- | `selection()` | 36.9 KB | 13.3 KB |
137
+ | `a11y()` | 32.0 KB | 12.0 KB |
138
+ | `selection()` | 37.8 KB | 13.6 KB |
139
139
  | `data()` | 41.0 KB | 15.1 KB |
140
140
  | `scrollbar()` | 35.5 KB | 13.2 KB |
141
141
  | `sortable()` | 39.2 KB | 13.9 KB |
@@ -145,9 +145,9 @@ The touch-only `.vlist-item--touch-sort` class suppresses selection and callouts
145
145
  | `transition()` | 34.1 KB | 12.3 KB |
146
146
  | `autosize()` | 30.6 KB | 11.5 KB |
147
147
  | `grid()` | 34.7 KB | 12.9 KB |
148
- | `table()` | 45.8 KB | 16.2 KB |
148
+ | `table()` | 46.3 KB | 16.4 KB |
149
149
  | `masonry()` | 39.4 KB | 14.7 KB |
150
- | `tree()` | 43.5 KB | 15.7 KB |
150
+ | `tree()` | 43.1 KB | 15.6 KB |
151
151
  | `search()` | 36.9 KB | 13.6 KB |
152
152
  | `carousel()` | 43.2 KB | 15.8 KB |
153
153
  | `vlist/synthetic` + `carousel()` | 49.3 KB | 18.1 KB |