vlist 3.0.0 → 3.0.1-next.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 +25 -25
- package/README.md +25 -25
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/constants.d.ts +0 -16
- package/dist/core/adapter.d.ts +3 -3
- package/dist/core/create.d.ts +10 -5
- package/dist/core/fold.d.ts +3 -3
- package/dist/core/logical.d.ts +93 -0
- package/dist/core/runway.d.ts +20 -106
- package/dist/core/state.d.ts +2 -2
- package/dist/core/types.d.ts +4 -2
- package/dist/index.js +1 -1
- package/dist/internals.js +1 -1
- package/dist/plugins/carousel/plugin.d.ts +2 -3
- package/dist/size.json +1 -1
- package/dist/synthetic/driver.d.ts +26 -0
- package/dist/synthetic/handler.d.ts +4 -4
- package/dist/synthetic-driver.js +1 -0
- package/dist/synthetic.d.ts +7 -0
- package/dist/synthetic.js +1 -1
- package/dist/types.d.ts +22 -3
- package/dist/version.json +1 -0
- package/package.json +3 -2
package/dist/types.d.ts
CHANGED
|
@@ -294,15 +294,30 @@ export interface ScrollConfig {
|
|
|
294
294
|
* Useful for carousels, wizards, and circular navigation.
|
|
295
295
|
*/
|
|
296
296
|
wrap?: boolean;
|
|
297
|
-
/**
|
|
298
|
-
*
|
|
299
|
-
* scrollbar
|
|
297
|
+
/** "none": no scrollbar, the browser's or the one a synthetic list draws.
|
|
298
|
+
* "native" keeps the browser's, so it needs native input. Options configure
|
|
299
|
+
* the scrollbar a synthetic list draws, and vlist/config installs
|
|
300
|
+
* scrollbar() from them.
|
|
300
301
|
*/
|
|
301
302
|
scrollbar?: "native" | "none" | ScrollbarOptions;
|
|
302
303
|
/** External scroll element for window scrolling */
|
|
303
304
|
element?: Window;
|
|
304
305
|
/** Scroll idle detection timeout in ms (default: 150) */
|
|
305
306
|
idleTimeout?: number;
|
|
307
|
+
/**
|
|
308
|
+
* Who owns scroll input (RFC-015, default: `"auto"`).
|
|
309
|
+
* - `"auto"` — native scrolling; past the browser's element size limit
|
|
310
|
+
* (16,000,000 px of content) the list swaps to synthetic input in place,
|
|
311
|
+
* and back below 12,000,000 px.
|
|
312
|
+
* - `"native"` — always native; past the limit the last rows are out of reach.
|
|
313
|
+
* - `"synthetic"` — vlist owns wheel, touch and keys from the start.
|
|
314
|
+
*
|
|
315
|
+
* The synthetic driver is a separate chunk, downloaded the first time a
|
|
316
|
+
* list needs it; until then the list scrolls natively. A synthetic list
|
|
317
|
+
* draws a scrollbar, since the browser draws none: `scroll.scrollbar`
|
|
318
|
+
* configures it, "none" skips it, and a list with scrollbar() keeps that one.
|
|
319
|
+
*/
|
|
320
|
+
mode?: "auto" | "native" | "synthetic";
|
|
306
321
|
}
|
|
307
322
|
/** Custom scrollbar fine-tuning options */
|
|
308
323
|
export interface ScrollbarOptions {
|
|
@@ -534,6 +549,10 @@ export interface VListEvents<T extends VListItem = VListItem> extends EventMap {
|
|
|
534
549
|
"scroll:idle": {
|
|
535
550
|
scrollPosition: number;
|
|
536
551
|
};
|
|
552
|
+
/** Scroll input swapped in place (`scroll.mode`, RFC-015). */
|
|
553
|
+
"scroll:mode": {
|
|
554
|
+
mode: "native" | "synthetic";
|
|
555
|
+
};
|
|
537
556
|
/** Data changed — fired after item removal or other data mutations */
|
|
538
557
|
"data:change": {
|
|
539
558
|
type: "insert";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"3.0.1-next.1","commit":"75053a1","builtAt":"2026-09-27T20:48:01.516Z","released":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vlist",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1-next.1",
|
|
4
4
|
"description": "Lightweight, high-performance virtual list with zero dependencies",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Floor IO",
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
"dist/**/*.d.ts",
|
|
70
70
|
"dist/**/*.css",
|
|
71
71
|
"dist/size.json",
|
|
72
|
+
"dist/version.json",
|
|
72
73
|
"!dist/**/*.d.ts.map"
|
|
73
74
|
],
|
|
74
75
|
"sideEffects": [
|
|
@@ -79,7 +80,7 @@
|
|
|
79
80
|
"dev": "bun run build.ts --watch",
|
|
80
81
|
"test": "bun test",
|
|
81
82
|
"test:changed": "bun test --changed",
|
|
82
|
-
"test:browser": "bun scripts/rtl-cross-axis-browser.mjs && bun scripts/synthetic-browser.mjs && bun scripts/synthetic-carousel-browser.mjs && bun scripts/synthetic-sortable-browser.mjs && bun scripts/select-next-browser.mjs && bun scripts/item-fill-browser.mjs",
|
|
83
|
+
"test:browser": "bun scripts/rtl-cross-axis-browser.mjs && bun scripts/synthetic-browser.mjs && bun scripts/synthetic-carousel-browser.mjs && bun scripts/synthetic-sortable-browser.mjs && bun scripts/select-next-browser.mjs && bun scripts/item-fill-browser.mjs && bun scripts/scroll-mode-browser.mjs && bun scripts/native-cap-browser.mjs",
|
|
83
84
|
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.types.json && tsc --noEmit -p tsconfig.test.json",
|
|
84
85
|
"bench": "bun run scripts/bench.ts",
|
|
85
86
|
"bench:quick": "bun run scripts/bench.ts --quick",
|