vlist 2.7.1 → 2.8.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.
@@ -8,7 +8,7 @@
8
8
  * Because a pinned item cannot grow, content that changes size after the
9
9
  * measurement (an image that loads or fails, a font swap, lazy content)
10
10
  * needs a fresh measurement. `load` and `error` events from descendants
11
- * trigger one automatically.
11
+ * trigger one automatically; `list.remeasure(index?)` does it on demand.
12
12
  *
13
13
  * Priority 5 — runs before grid/masonry (10) so the measured cache
14
14
  * is in place before layout plugins consume it.
@@ -4,4 +4,6 @@ export interface ScalePluginConfig {
4
4
  force?: boolean;
5
5
  }
6
6
  export declare function scale<T extends VListItem = VListItem>(_config?: ScalePluginConfig): VListPlugin<T>;
7
+ /** Internal: the config entry installs the compatibility stub without warning. */
8
+ export declare function createScalePlugin<T extends VListItem = VListItem>(warn: boolean): VListPlugin<T>;
7
9
  //# sourceMappingURL=plugin.d.ts.map
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"27.8","gzipped":"9.9","minBytes":28421,"gzBytes":10106},"synthetic":{"minified":"35.0","gzipped":"12.5","minBytes":35888,"gzBytes":12764},"a11y":{"minified":"31.0","gzipped":"11.1","minBytes":31753,"gzBytes":11336},"selection":{"minified":"37.1","gzipped":"12.7","minBytes":38030,"gzBytes":12989},"data":{"minified":"41.4","gzipped":"14.7","minBytes":42378,"gzBytes":15034},"scrollbar":{"minified":"34.8","gzipped":"11.9","minBytes":35686,"gzBytes":12164},"sortable":{"minified":"37.2","gzipped":"12.9","minBytes":38099,"gzBytes":13194},"groups":{"minified":"43.7","gzipped":"15.2","minBytes":44759,"gzBytes":15564},"page":{"minified":"30.2","gzipped":"10.6","minBytes":30907,"gzBytes":10881},"snapshots":{"minified":"31.0","gzipped":"11.0","minBytes":31775,"gzBytes":11288},"transition":{"minified":"34.4","gzipped":"11.8","minBytes":35208,"gzBytes":12123},"autosize":{"minified":"30.7","gzipped":"10.9","minBytes":31411,"gzBytes":11143},"grid":{"minified":"34.8","gzipped":"12.3","minBytes":35665,"gzBytes":12628},"table":{"minified":"46.1","gzipped":"15.7","minBytes":47219,"gzBytes":16074},"masonry":{"minified":"39.0","gzipped":"14.0","minBytes":39947,"gzBytes":14298},"tree":{"minified":"43.0","gzipped":"14.9","minBytes":44006,"gzBytes":15252},"search":{"minified":"36.9","gzipped":"13.0","minBytes":37743,"gzBytes":13361},"carousel":{"minified":"37.2","gzipped":"13.3","minBytes":38126,"gzBytes":13644}}
1
+ {"base":{"minified":"27.8","gzipped":"9.9","minBytes":28421,"gzBytes":10106},"synthetic":{"minified":"35.0","gzipped":"12.5","minBytes":35888,"gzBytes":12764},"a11y":{"minified":"31.0","gzipped":"11.1","minBytes":31753,"gzBytes":11336},"selection":{"minified":"37.1","gzipped":"12.7","minBytes":38030,"gzBytes":12989},"data":{"minified":"41.4","gzipped":"14.7","minBytes":42378,"gzBytes":15034},"scrollbar":{"minified":"34.8","gzipped":"11.9","minBytes":35686,"gzBytes":12164},"sortable":{"minified":"37.2","gzipped":"12.9","minBytes":38099,"gzBytes":13194},"groups":{"minified":"43.7","gzipped":"15.2","minBytes":44759,"gzBytes":15564},"page":{"minified":"30.2","gzipped":"10.6","minBytes":30907,"gzBytes":10881},"snapshots":{"minified":"31.0","gzipped":"11.0","minBytes":31775,"gzBytes":11288},"transition":{"minified":"34.4","gzipped":"11.8","minBytes":35208,"gzBytes":12123},"autosize":{"minified":"30.8","gzipped":"10.9","minBytes":31529,"gzBytes":11174},"grid":{"minified":"34.8","gzipped":"12.3","minBytes":35665,"gzBytes":12628},"table":{"minified":"46.1","gzipped":"15.7","minBytes":47219,"gzBytes":16074},"masonry":{"minified":"39.0","gzipped":"14.0","minBytes":39947,"gzBytes":14298},"tree":{"minified":"43.0","gzipped":"14.9","minBytes":44065,"gzBytes":15269},"search":{"minified":"36.9","gzipped":"13.0","minBytes":37743,"gzBytes":13361},"carousel":{"minified":"37.2","gzipped":"13.3","minBytes":38126,"gzBytes":13644}}
package/dist/types.d.ts CHANGED
@@ -292,14 +292,22 @@ export interface ScrollConfig {
292
292
  */
293
293
  wrap?: boolean;
294
294
  /**
295
- * Scrollbar mode (default: custom scrollbar).
296
- *
297
- * - *omitted* Custom scrollbar (default), native scrollbar hidden via CSS
298
- * - `'native'` Browser native scrollbar
299
- * - `'none'` No scrollbar at all (native hidden, custom not created)
300
- * - `ScrollbarOptions` — Custom scrollbar with fine-tuning options
295
+ * Scrollbar selection depends on the entry:
296
+ * - Core reads only `'none'`, which hides the native scrollbar via CSS.
297
+ * Omission, `'native'` and options objects do not install a custom scrollbar.
298
+ * - `vlist/config` installs `scrollbar()` for omission or an options object;
299
+ * `'native'` and `'none'` skip that plugin. An explicit `scrollbar()` plugin
300
+ * controls its own native-scrollbar hiding independently.
301
301
  */
302
- scrollbar?: "native" | "none" | ScrollbarOptions;
302
+ scrollbar?:
303
+ /** @deprecated In 3.0, native scrollbar visibility belongs to `vlist/native`.
304
+ * Synthetic core has no native main-axis scrollbar; use `scrollbar()` instead.
305
+ * See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model */
306
+ "native"
307
+ /** @deprecated In 3.0, native scrollbar hiding belongs to `vlist/native`.
308
+ * Synthetic core needs no option to hide a native main-axis scrollbar.
309
+ * See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model */
310
+ | "none" | ScrollbarOptions;
303
311
  /** External scroll element for window scrolling */
304
312
  element?: Window;
305
313
  /** Scroll idle detection timeout in ms (default: 150) */
@@ -310,6 +318,10 @@ export interface ScrollConfig {
310
318
  * `"bounded"` sizes the content to a viewport-multiple runway and rebases a
311
319
  * logical origin near the edges, supporting unbounded item counts without
312
320
  * compressing the scroll space.
321
+ *
322
+ * @deprecated In 3.0 synthetic input is the only model in core, native scrolling
323
+ * moves to `vlist/native`, and bounded is removed. Bounded remains supported in 2.x.
324
+ * See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model
313
325
  */
314
326
  mode?: "native" | "bounded";
315
327
  /**
@@ -319,6 +331,9 @@ export interface ScrollConfig {
319
331
  * more native-scroll headroom and less frequent rebasing, at the cost of a
320
332
  * bigger content element. Clamped up to a minimum of 1.5 so native scroll and
321
333
  * touch momentum always have some room.
334
+ *
335
+ * @deprecated Removed with bounded scrolling in 3.0; synthetic core needs no runway.
336
+ * See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model
322
337
  */
323
338
  runway?: number;
324
339
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "2.7.1",
3
+ "version": "2.8.0",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",