@aiquants/virtualscroll 3.7.0 → 3.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.
@@ -5,79 +5,79 @@ import { useFenwickMapTree } from './useFenwickMapTree.ts';
5
5
  import { VirtualScrollBehaviorOptions, VirtualScrollScrollBarOptions } from './VirtualScroll.tsx';
6
6
  /**
7
7
  * Hard per-track size cap (px) for both axes. Values above this are rejected with a RangeError
8
- * (fail-fast, no silent clamp): the §6 bounding contract `z × (ANCHOR_REBASE_DISTANCE +
9
- * windowSpan) <= 2^24` relies on every track being bounded, and a single oversized track would
10
- * let cell coordinates / the residual transform pierce the measured LayoutUnit wall (2^25).
8
+ * (fail-fast, no silent clamp): the bounding contract `z × (ANCHOR_REBASE_DISTANCE + windowSpan)
9
+ * <= 2^24` (z = ancestor scale, windowSpan <= viewport + (2 × overscan + 2) × MAX_TRACK_SIZE)
10
+ * relies on every track being bounded, and a single oversized track would let cell coordinates /
11
+ * the residual transform pierce the measured LayoutUnit wall (2^25).
11
12
  *
12
13
  * 両軸共通のトラックサイズ上限 (px)。超過は RangeError で fail-fast (暗黙 clamp なし):
13
- * §6 の有界化契約はトラック有界性に立脚し、1 本の過大トラックでセル座標 / 残差 transform が
14
- * 実測の LayoutUnit 壁 (2^25) を踏み抜くため。
14
+ * 有界化契約 `z × (ANCHOR_REBASE_DISTANCE + windowSpan) ≤ 2^24` (z = 祖先スケール、windowSpan ≤
15
+ * viewport + (2 × overscan + 2) × MAX_TRACK_SIZE) はトラック有界性に立脚し、1 本の過大トラックで
16
+ * セル座標 / 残差 transform が実測の LayoutUnit 壁 (2^25) を踏み抜くため。
15
17
  */
16
18
  export declare const MAX_TRACK_SIZE = 262144;
17
19
  /**
18
20
  * Safety cap for cell nodes materialized in one render pass (rendered rows × rendered cols).
19
21
  * Unlike the row-side MAX_RENDERED_ITEMS (a pathological-input guard), the 2D product can be
20
22
  * reached by LEGITIMATE configurations (min zoom on large displays), so truncation is never
21
- * silent — onRenderTruncated fires. Initial value assumes WQHD; §9-3 of the design plan owns
22
- * the final calibration (4K floor ≈ 55,955).
23
+ * silent — onRenderTruncated fires. The value covers a WQHD display at minimum zoom; the same
24
+ * configuration on a 4K display needs about 55,955 cells and is truncated there.
23
25
  *
24
26
  * 1 レンダーで具現化するセルノード数 (描画行 × 描画列) の安全上限。行側 MAX_RENDERED_ITEMS
25
27
  * (病的入力ガード) と違い、2D 積は正当な構成 (大型ディスプレイの最小ズーム) で到達し得るため
26
- * 打切りは無言にしない — onRenderTruncated が発火する。初期値は WQHD 前提で、最終確定は
27
- * 設計計画 §9-3 の所有 (4K の床 ≈ 55,955)。
28
+ * 打切りは無言にしない — onRenderTruncated が発火する。値は WQHD ディスプレイの最小ズームを
29
+ * 賄う大きさで、同じ構成の 4K ディスプレイでは約 55,955 セルが必要となり打ち切られる。
28
30
  */
29
31
  export declare const MAX_RENDERED_CELLS = 32768;
30
32
  /**
31
- * Hard cap for `frozenLeadingCols` (design §8). The frozen band is NOT windowed — every frozen
33
+ * Hard cap for `frozenLeadingCols`. The frozen band is NOT windowed — every frozen
32
34
  * column materializes in every rendered row and is EXEMPT from the MAX_RENDERED_CELLS
33
35
  * truncation (the scroll-band budget is reduced by the frozen count instead) — so the cap is
34
36
  * what bounds the band: worst case 128 x MAX_RENDERED_ITEMS rows, and W_F <= 128 x
35
37
  * MAX_TRACK_SIZE = 2^25 (the measured layout wall; practical W_F <= viewport << 2^24). Real
36
38
  * frozen panes are single-digit; violations fail fast with a RangeError.
37
39
  *
38
- * `frozenLeadingCols` の上限 (設計 §8)。凍結帯は窓化されず全描画行で具現化し、かつ
40
+ * `frozenLeadingCols` の上限。凍結帯は窓化されず全描画行で具現化し、かつ
39
41
  * MAX_RENDERED_CELLS の打切り対象外 (代わりにスクロール帯予算を凍結数ぶん控除) のため、帯を
40
42
  * 有界にするのはこの上限そのもの: 最悪 128 × MAX_RENDERED_ITEMS 行、W_F ≤ 128 × MAX_TRACK_SIZE
41
43
  * = 2^25 (実測壁ちょうど — 実運用は W_F ≤ viewport ≪ 2^24)。違反は fail-fast の RangeError。
42
44
  */
43
45
  export declare const MAX_FROZEN_LEADING_COLS = 128;
44
46
  /**
45
- * Hard cap for `frozenLeadingRows` (frozen-rows design plan §4-1). The frozen-row band is
46
- * grid-owned and OUT of the embedded VirtualScroll (index-shift architecture — plan §2):
47
- * every band row materializes every rendered column and is exempt from MAX_RENDERED_CELLS
47
+ * Hard cap for `frozenLeadingRows`. The frozen-row band is grid-owned and OUT of the embedded
48
+ * VirtualScroll (the grid shifts the scroll rows' indices by the frozen count before handing them
49
+ * over): every band row materializes every rendered column and is exempt from MAX_RENDERED_CELLS
48
50
  * (the budget denominator counts band rows instead), so the cap bounds the band itself.
49
- * `frozenLeadingRows` の上限 (行凍結設計 §4-1)。凍結行帯はグリッド所有で埋め込み
50
- * VirtualScroll の外 (インデックスシフト方式 — 設計 §2)。帯行は描画列を全て具現化し
51
+ * Violations fail fast with a RangeError.
52
+ * `frozenLeadingRows` の上限。凍結行帯はグリッド所有で埋め込み VirtualScroll の外 (スクロール行の
53
+ * インデックスを凍結数ぶんずらしてから渡すインデックスシフト方式)。帯行は描画列を全て具現化し
51
54
  * MAX_RENDERED_CELLS の打切り対象外 (予算分母に帯行数を算入) のため、帯を有界にするのは
52
55
  * この上限そのもの。違反は fail-fast の RangeError。
53
56
  */
54
57
  export declare const MAX_FROZEN_LEADING_ROWS = 128;
55
58
  /**
56
- * Hard cap for `frozenTrailingCols` (v3.5.0 trailing-freeze plan §3). The trailing band is NOT
57
- * windowed — every trailing column materializes in every rendered row and is EXEMPT from the
58
- * MAX_RENDERED_CELLS truncation (the scroll-band budget is reduced by the trailing count
59
- * instead) — so the cap is what bounds the band: worst case 128 x MAX_RENDERED_ITEMS rows, and
60
- * W_T <= 128 x MAX_TRACK_SIZE = 2^25 (the measured layout wall; practical W_T <= viewport <<
61
- * 2^24). Violations fail fast with a RangeError.
59
+ * Hard cap for `frozenTrailingCols`. The trailing band is NOT windowed — every trailing column
60
+ * materializes in every rendered row and is EXEMPT from the MAX_RENDERED_CELLS truncation (the
61
+ * scroll-band budget is reduced by the trailing count instead) — so the cap is what bounds the
62
+ * band: worst case 128 x MAX_RENDERED_ITEMS rows, and W_T <= 128 x MAX_TRACK_SIZE = 2^25 (the
63
+ * measured layout wall; practical W_T <= viewport << 2^24). Violations fail fast with a
64
+ * RangeError.
62
65
  *
63
- * `frozenTrailingCols` の上限 (3.5.0 末尾凍結プラン §3)。末尾帯は窓化されず全描画行で具現化し、
64
- * かつ MAX_RENDERED_CELLS の打切り対象外 (代わりにスクロール帯予算を末尾数ぶん控除) のため、
65
- * 帯を有界にするのはこの上限そのもの: 最悪 128 × MAX_RENDERED_ITEMS 行、W_T ≤ 128 ×
66
- * MAX_TRACK_SIZE = 2^25 (実測壁ちょうど — 実運用は W_T ≤ viewport ≪ 2^24)。違反は fail-fast の
67
- * RangeError。
66
+ * `frozenTrailingCols` の上限。末尾帯は窓化されず全描画行で具現化し、かつ MAX_RENDERED_CELLS の
67
+ * 打切り対象外 (代わりにスクロール帯予算を末尾数ぶん控除) のため、帯を有界にするのはこの上限
68
+ * そのもの: 最悪 128 × MAX_RENDERED_ITEMS 行、W_T ≤ 128 × MAX_TRACK_SIZE = 2^25 (実測壁ちょうど —
69
+ * 実運用は W_T ≤ viewport ≪ 2^24)。違反は fail-fast の RangeError。
68
70
  */
69
71
  export declare const MAX_FROZEN_TRAILING_COLS = 128;
70
72
  /**
71
- * Hard cap for `frozenTrailingRows` (v3.5.0 trailing-freeze plan §3). The trailing-row band is
72
- * grid-owned and OUT of the embedded VirtualScroll (the SECOND out-of-pane band, below the
73
- * pane): every band row materializes every rendered column and is exempt from
74
- * MAX_RENDERED_CELLS (the budget denominator counts band rows instead), so the cap bounds the
75
- * band itself. Violations fail fast with a RangeError.
73
+ * Hard cap for `frozenTrailingRows`. The trailing-row band is grid-owned and OUT of the embedded
74
+ * VirtualScroll (the SECOND out-of-pane band, below the pane): every band row materializes every
75
+ * rendered column and is exempt from MAX_RENDERED_CELLS (the budget denominator counts band rows
76
+ * instead), so the cap bounds the band itself. Violations fail fast with a RangeError.
76
77
  *
77
- * `frozenTrailingRows` の上限 (3.5.0 末尾凍結プラン §3)。末尾行帯はグリッド所有で埋め込み
78
- * VirtualScroll の外 (ペインの**下**の第 2 帯外バンド)。帯行は描画列を全て具現化し
79
- * MAX_RENDERED_CELLS の打切り対象外 (予算分母に帯行数を算入) のため、帯を有界にするのは
80
- * この上限そのもの。違反は fail-fast の RangeError。
78
+ * `frozenTrailingRows` の上限。末尾行帯はグリッド所有で埋め込み VirtualScroll の外 (ペインの**下**の
79
+ * 第 2 帯外バンド)。帯行は描画列を全て具現化し MAX_RENDERED_CELLS の打切り対象外 (予算分母に
80
+ * 帯行数を算入) のため、帯を有界にするのはこの上限そのもの。違反は fail-fast の RangeError。
81
81
  */
82
82
  export declare const MAX_FROZEN_TRAILING_ROWS = 128;
83
83
  /**
@@ -150,10 +150,10 @@ export type VirtualGridBehaviorOptions = VirtualScrollBehaviorOptions & {
150
150
  */
151
151
  resetOnGetColWidthChange?: boolean;
152
152
  /**
153
- * Explicit Fenwick baseValue for the column width tree (design §3.4): skips the stride
153
+ * Explicit Fenwick baseValue for the column width tree: skips the stride
154
154
  * sampling of getColWidth at construction, so unmaterialized columns are estimated at exactly
155
155
  * this width. Integer in [0, MAX_TRACK_SIZE] — RangeError otherwise (fail-fast, no clamp).
156
- * 列幅木の Fenwick baseValue の明示指定 (設計 §3.4): 構築時の getColWidth ストライド
156
+ * 列幅木の Fenwick baseValue の明示指定: 構築時の getColWidth ストライド
157
157
  * サンプリングを省略し、未具現化列をこの幅で見積もる。[0, MAX_TRACK_SIZE] の整数 —
158
158
  * 違反は RangeError (fail-fast、clamp なし)。
159
159
  */
@@ -235,14 +235,14 @@ export type VirtualGridProps<T> = {
235
235
  offsetX: number;
236
236
  };
237
237
  /**
238
- * Number of leading columns frozen at the left edge (design §8; default 0). The frozen band
238
+ * Number of leading columns frozen at the left edge (default 0). The frozen band
239
239
  * lives OUTSIDE the anchor machinery: tree coordinates [0, W_F) render as direct static
240
240
  * lefts (safe — W_F <= viewport << 2^24), the scroll band's window search starts at the
241
241
  * W_F offset, and its residual transform carries the -W_F origin-shift term. Non-negative
242
242
  * integer <= MAX_FROZEN_LEADING_COLS — RangeError otherwise (fail-fast); values beyond the
243
243
  * CURRENT colCount freeze every column (documented dynamic clamp, not a fallback — the
244
244
  * scroll band then reports the EMPTY window start > end and renders no scroll cells).
245
- * 左端に凍結する先頭列数 (設計 §8。既定 0)。凍結帯はアンカー機構の**外**: 木座標 [0, W_F)
245
+ * 左端に凍結する先頭列数 (既定 0)。凍結帯はアンカー機構の**外**: 木座標 [0, W_F)
246
246
  * を静的 left で直接描画 (W_F は上限 128 × 2^18 = 2^25 で有界 — 実運用は viewport ≪ 2^24)、
247
247
  * スクロール帯の窓探索は W_F
248
248
  * オフセット始まり、残差 transform は −W_F の原点シフト項を持つ。0 以上の整数かつ
@@ -251,14 +251,14 @@ export type VirtualGridProps<T> = {
251
251
  */
252
252
  frozenLeadingCols?: number;
253
253
  /**
254
- * Number of leading rows pinned at the top (frozen-rows design plan — default 0). The band
254
+ * Number of leading rows pinned at the top (default 0). The band
255
255
  * is grid-owned and OUT of the embedded VirtualScroll: the scroll rows live in a SHIFTED
256
256
  * index space (itemCount = rowCount − R, getItem = i + R), so vy is the scroll-band
257
257
  * logical position and the vertical bar maps the band naturally. Non-negative integer <=
258
258
  * MAX_FROZEN_LEADING_ROWS — RangeError otherwise (fail-fast); values beyond the CURRENT
259
259
  * rowCount freeze every row (documented dynamic clamp — the scroll rows then report the
260
260
  * canonical EMPTY window start > end and render nothing).
261
- * 上端に凍結する先頭行数 (行凍結設計 — 既定 0)。帯はグリッド所有で埋め込み VirtualScroll
261
+ * 上端に凍結する先頭行数 (既定 0)。帯はグリッド所有で埋め込み VirtualScroll
262
262
  * の外: スクロール行は**シフト済みインデックス空間** (itemCount = rowCount − R、getItem =
263
263
  * i + R) に住み、vy はスクロール帯の論理位置・縦バーは帯を自然に写像する。0 以上の整数
264
264
  * かつ MAX_FROZEN_LEADING_ROWS 以下 — 違反は RangeError (fail-fast)。現在の rowCount を
@@ -267,14 +267,14 @@ export type VirtualGridProps<T> = {
267
267
  */
268
268
  frozenLeadingRows?: number;
269
269
  /**
270
- * Number of trailing columns frozen at the right edge (v3.5.0 trailing-freeze plan §3;
271
- * default 0). Integer in [0, MAX_FROZEN_TRAILING_COLS] — RangeError otherwise (fail-fast).
270
+ * Number of trailing columns frozen at the right edge (default 0). Integer in
271
+ * [0, MAX_FROZEN_TRAILING_COLS] — RangeError otherwise (fail-fast).
272
272
  * Dynamic clamp (documented contract): min(T, colCount − effectiveFrozenCols) — the LEADING
273
273
  * band wins the count space. Trailing cells render in a right-anchored clip outside the
274
274
  * anchor machinery (band-local lefts); `--aqvs-grid-trailing-width` is written iff T > 0.
275
275
  * `scrollToCell` / `initialScrollAnchor` targeting a trailing column are horizontal no-ops
276
276
  * (always visible). T = 0 is structurally identical to the pre-trailing DOM.
277
- * 右端に凍結する末尾列数 (3.5.0 末尾凍結プラン §3。既定 0)。[0, MAX_FROZEN_TRAILING_COLS]
277
+ * 右端に凍結する末尾列数 (既定 0)。[0, MAX_FROZEN_TRAILING_COLS]
278
278
  * の整数 — 違反は RangeError (fail-fast)。動的クランプ (文書化契約): min(T, colCount −
279
279
  * effectiveFrozenCols) — カウント空間は**先頭が勝つ**。末尾セルはアンカー機構の外の
280
280
  * 右アンカークリップに帯ローカル left で描画し、`--aqvs-grid-trailing-width` は T > 0 の
@@ -283,19 +283,19 @@ export type VirtualGridProps<T> = {
283
283
  */
284
284
  frozenTrailingCols?: number;
285
285
  /**
286
- * Number of trailing rows pinned at the bottom (v3.5.0 trailing-freeze plan §3; default 0).
286
+ * Number of trailing rows pinned at the bottom (default 0).
287
287
  * Integer in [0, MAX_FROZEN_TRAILING_ROWS] — RangeError otherwise (fail-fast). Dynamic
288
288
  * clamp (documented contract): min(T, rowCount − effectiveFrozenRows) — leading wins. The
289
289
  * band is grid-owned BELOW the pane; the embedded scroll rows shrink at the TAIL only
290
290
  * (itemCount = rowCount − R − T, getItem = i + R unchanged), so a runtime T change does NOT
291
- * remount the embedded VirtualScroll (ADR-23). `scrollToCell` / `initialScrollAnchor`
291
+ * remount the embedded VirtualScroll. `scrollToCell` / `initialScrollAnchor`
292
292
  * targeting a trailing row are vertical no-ops (always visible). T = 0 is structurally
293
293
  * identical to the pre-trailing DOM.
294
- * 下端に凍結する末尾行数 (3.5.0 末尾凍結プラン §3。既定 0)。[0, MAX_FROZEN_TRAILING_ROWS]
294
+ * 下端に凍結する末尾行数 (既定 0)。[0, MAX_FROZEN_TRAILING_ROWS]
295
295
  * の整数 — 違反は RangeError (fail-fast)。動的クランプ (文書化契約): min(T, rowCount −
296
296
  * effectiveFrozenRows) — 先頭が勝つ。帯はペインの**下**のグリッド所有バンドで、埋め込み
297
297
  * スクロール行は**末尾**だけが伸縮する (itemCount = rowCount − R − T、getItem = i + R
298
- * 不変) — T の実行時変更は埋め込み VirtualScroll を再マウントしない (ADR-23)。
298
+ * 不変) — T の実行時変更は埋め込み VirtualScroll を再マウントしない。
299
299
  * `scrollToCell` / `initialScrollAnchor` の末尾行狙いは縦 no-op (常時可視)。T = 0 は
300
300
  * DOM 構造まで従来と恒等。
301
301
  */
@@ -318,6 +318,19 @@ export type VirtualGridProps<T> = {
318
318
  /** TEST-ONLY seam: overrides MAX_RENDERED_CELLS so the truncation path is gateable without materializing 32k DOM nodes in jsdom. / テスト専用シーム: 打切り経路を jsdom で 32k ノード無しにゲート化するための上限上書き。 */
319
319
  __maxRenderedCells?: number;
320
320
  behaviorOptions?: VirtualGridBehaviorOptions;
321
+ /**
322
+ * Scrollbar options. The bar-local members — `width`, `enableThumbDrag`, `enableTrackClick`,
323
+ * `enableArrowButtons` and `enableArrowButtonTabStops` — reach BOTH bars alike (the embedded
324
+ * vertical bar and the horizontal bar), so no setting ever covers only half of the grid.
325
+ * `tapScrollCircleOptions` configures the grid's single two-axis circle (the per-bar circles are
326
+ * suppressed); the row-axis features `renderThumbOverlay` (fed with visible row indices) and
327
+ * `enableScrollToTopBottomButtons` (the Top / Bottom pills) belong to the embedded VirtualScroll.
328
+ * スクロールバー設定。バー固有のメンバー (`width` / `enableThumbDrag` / `enableTrackClick` /
329
+ * `enableArrowButtons` / `enableArrowButtonTabStops`) は内包の縦バーと横バーの両方へ同じく届き、
330
+ * 設定がグリッドの片側にだけ効くことは無い。`tapScrollCircleOptions` はグリッド唯一の 2 軸サークルの
331
+ * 設定 (バーごとのサークルは抑止)、行軸の機能である `renderThumbOverlay` (可視行インデックスを
332
+ * 受け取る) と `enableScrollToTopBottomButtons` (Top / Bottom ピル) は内包 VirtualScroll の所有。
333
+ */
321
334
  scrollBarOptions?: VirtualScrollScrollBarOptions;
322
335
  liveRegion?: VirtualGridLiveRegionOptions;
323
336
  /**
@@ -370,17 +383,17 @@ export type VirtualGridHandle = {
370
383
  * frozen column is a horizontal no-op that leaves any previously armed column anchor in
371
384
  * place (the visual status quo is preserved; manual horizontal input clears anchors as
372
385
  * usual); targeting a leading/trailing frozen row is a vertical no-op. Band membership is
373
- * judged at CALL time — a T change AFTER arming follows the ADR-23 clamp semantics: a
374
- * pending row anchor whose target row lands inside the trailing band after a T increase
375
- * clamps to the last scroll row. Overlap registration (ADR-19-1): when the leading +
376
- * trailing band extents exceed the viewport, occluded trailing cells cannot be scrolled
377
- * into view — the no-op is exact there too.
386
+ * judged at CALL time — a T change AFTER arming clamps instead of remounting: a pending row
387
+ * anchor whose target row lands inside the trailing band after a T increase clamps to the
388
+ * last scroll row. Overlapping bands: when the leading + trailing band extents exceed the
389
+ * viewport, occluded trailing cells cannot be scrolled into view — the no-op is exact there
390
+ * too.
378
391
  * セル狙いジャンプ。"nearest" は無し。先頭 / 末尾凍結列狙いの横成分は no-op で、既存の
379
392
  * 列アンカーはそのまま残る (視覚的現状維持 — 手動横入力が従来どおり解除する)。先頭 /
380
393
  * 末尾凍結行狙いの縦成分も no-op。帯所属の判定は**呼出し時** — 張った後の T 変更は
381
- * ADR-23 のクランプ意味論 (T 増加で末尾帯入りする行を狙った保留行アンカーは最終
382
- * スクロール行へクランプ) に従う。重複登記 (ADR-19-1): 先頭 + 末尾の帯寸がビューポートを
383
- * 超えるとき、隠れた末尾セルはどのスクロール位置でも可視化できない — no-op はそこでも正確。
394
+ * 再マウントせずクランプする (T 増加で末尾帯入りする行を狙った保留行アンカーは最終
395
+ * スクロール行へクランプ)。帯の重なり: 先頭 + 末尾の帯寸がビューポートを超えるとき、
396
+ * 隠れた末尾セルはどのスクロール位置でも可視化できない — no-op はそこでも正確。
384
397
  */
385
398
  scrollToCell(row: number, col: number, options?: {
386
399
  alignY?: "top" | "bottom" | "center";
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualGrid.d.ts","sourceRoot":"","sources":["../src/VirtualGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VirtualGrid.d.ts","sourceRoot":"","sources":["../src/VirtualGrid.tsx"],"names":[],"mappings":"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"}
@@ -130,13 +130,49 @@ export type VirtualScrollHandle = {
130
130
  */
131
131
  updateItemSize: (index: number, size: number) => void;
132
132
  };
133
+ /**
134
+ * Scrollbar options of `VirtualScroll` (forwarded to its ScrollPane and bar) and of `VirtualGrid`
135
+ * (see `VirtualGridProps["scrollBarOptions"]` for which members reach which of the grid's two bars).
136
+ *
137
+ * `VirtualScroll` のスクロールバー設定 (ScrollPane とそのバーへ転送) であり、`VirtualGrid` の
138
+ * スクロールバー設定でもある (グリッドの 2 本のバーのどちらへ届くかは `VirtualGridProps["scrollBarOptions"]` 参照)。
139
+ */
133
140
  export type VirtualScrollScrollBarOptions = {
141
+ /** Scrollbar thickness in px (default 12). / スクロールバーの太さ (px、既定 12)。 */
134
142
  width?: number;
143
+ /** Whether dragging the thumb scrolls (default `true`). / つまみのドラッグ操作を許可するかどうか (既定 `true`)。 */
135
144
  enableThumbDrag?: boolean;
145
+ /** Whether pressing the track scrolls there (default `true`). / トラックの押下によるスクロールを許可するかどうか (既定 `true`)。 */
136
146
  enableTrackClick?: boolean;
147
+ /** Whether the arrow buttons scroll (default `true`). / 矢印ボタンによるスクロールを許可するかどうか (既定 `true`)。 */
137
148
  enableArrowButtons?: boolean;
149
+ /**
150
+ * Whether the scrollbar's arrow buttons are Tab stops (default `true`). Set it to `false` when
151
+ * the host already provides keyboard scrolling (roving row focus with Arrow / Page / Home / End):
152
+ * the arrows then only add two redundant Tab stops per bar — native scrollbars are never Tab
153
+ * stops either. `false` changes `tabIndex` alone (`-1`): the arrows stay pointer-operable and
154
+ * named, and Enter / Space still scroll when one is focused from script.
155
+ * The default stays `true` because the rows are not Tab stops, so without a host keyboard model
156
+ * the arrows are the only scrolling control a keyboard user can reach with Tab. Full contract:
157
+ * `ScrollBarProps["enableArrowButtonTabStops"]`.
158
+ * スクロールバーの矢印ボタンを Tab の止まり先にするかどうか (既定 `true`)。ホストがキーボード
159
+ * スクロールを既に提供する場合 (行のロービングフォーカスと矢印 / Page / Home / End) に `false` —
160
+ * 矢印はバー 1 本あたり冗長な Tab の止まり先を 2 つ足すだけになるため (ネイティブのスクロールバーも
161
+ * Tab の止まり先にならない)。`false` が変えるのは `tabIndex` (`-1`) だけで、ポインタ操作・
162
+ * アクセシブルネームと、スクリプトからフォーカスした矢印の Enter / Space は維持。既定が `true`
163
+ * なのは、行が Tab の止まり先ではないため、ホストのキーボードモデルが無ければ矢印がキーボード
164
+ * 利用者の Tab で届く唯一のスクロール操作部品だから。契約の全文は
165
+ * `ScrollBarProps["enableArrowButtonTabStops"]`。
166
+ */
167
+ enableArrowButtonTabStops?: boolean;
168
+ /**
169
+ * Whether to show the auto-hiding Top / Bottom pills (default `false`; texts from `labels.scrollToTop` / `labels.scrollToBottom`).
170
+ * 自動で隠れる Top / Bottom ピルを表示するかどうか (既定 `false`。文言は `labels.scrollToTop` / `labels.scrollToBottom`)。
171
+ */
138
172
  enableScrollToTopBottomButtons?: boolean;
173
+ /** Renderer for UI anchored near the thumb. / つまみ付近に重ねる UI のレンダラー。 */
139
174
  renderThumbOverlay?: ScrollPaneProps["renderThumbOverlay"];
175
+ /** Tap-scroll circle options (VirtualGrid: its single two-axis circle). / タップスクロールサークルの設定 (VirtualGrid では唯一の 2 軸サークル)。 */
140
176
  tapScrollCircleOptions?: ScrollPaneProps["tapScrollCircleOptions"];
141
177
  };
142
178
  export type VirtualScrollBehaviorOptions = {
@@ -468,11 +504,11 @@ export type VirtualScrollProps<T> = {
468
504
  * Maximum run length of consecutive zero-height rows scanned linearly before attempting an
469
505
  * O(log n) jump to the next non-zero row via the Fenwick tree. Module-level export (NOT in the
470
506
  * package barrel) so VirtualGrid's column axis shares the SAME constant instead of duplicating
471
- * the value (the §5 no-copy rule — same treatment as ANCHOR_REBASE_DISTANCE).
507
+ * the value (a shared constant is never copied — same treatment as ANCHOR_REBASE_DISTANCE).
472
508
  *
473
509
  * 高さ 0 行の連続をこの件数まで線形走査し、超えたら Fenwick 木で次の非 0 行へ O(log n) ジャンプ
474
510
  * する閾値。モジュールレベル export (バレル非公開) — VirtualGrid 列軸が値の複製でなく同一定数を
475
- * 共有するため (§5 複製禁止規範 — ANCHOR_REBASE_DISTANCE と同じ扱い)。
511
+ * 共有するため (共有定数は複製しない — ANCHOR_REBASE_DISTANCE と同じ扱い)。
476
512
  */
477
513
  export declare const ZERO_HEIGHT_RUN_LIMIT = 1000;
478
514
  /**
@@ -497,6 +533,27 @@ export declare const MAX_RENDERED_ITEMS = 2000;
497
533
  * compositor の f32 精度内に収めるための量子化距離。
498
534
  */
499
535
  export declare const ANCHOR_REBASE_DISTANCE = 1048576;
536
+ /**
537
+ * Snaps a CSS-px offset to the device-pixel grid of a window: the nearest offset whose device-px value is a
538
+ * whole number, `Math.round(cssPx × ratio) / ratio` (an exact half rounds toward +∞, as `Math.round` does). The items-wrapper translate goes through it: a composited layer moved by a fraction of a
539
+ * device pixel is resampled as a whole (2-px outlines, gaps and rings smear across neighbouring device rows and
540
+ * text blurs), while fractional layout positions inside the layer are painted on whole pixels already.
541
+ * Idempotent: a snapped value snaps to itself. A non-finite `cssPx` propagates (`NaN` in, `NaN` out).
542
+ * Module-level export (NOT in the package barrel).
543
+ *
544
+ * CSS px のオフセットをウィンドウの装置の画素の格子へ揃える処理。装置 px で整数になる最も近いオフセット
545
+ * `Math.round(cssPx × ratio) / ratio` (ちょうど半分は `Math.round` どおり +∞ 側)。
546
+ * 行ラッパーの平行移動はここを通す — 合成層を装置の画素の端数だけ動かすとブラウザは層全体を再標本化し
547
+ * (2px の輪郭・隙間・輪が隣の装置の行へ滲み、文字もぼける)、層の中の端数のレイアウト位置は描画が既に画素へ
548
+ * 揃えるため。冪等 (揃えた値はそのまま)。有限でない `cssPx` はそのまま伝わる (`NaN` は `NaN`)。
549
+ * モジュールレベル export (バレル非公開)。
550
+ *
551
+ * @param cssPx - Offset in CSS px; negative and fractional values included / CSS px のオフセット (負・小数を含む)
552
+ * @param ratio - Device px per CSS px of the window that paints the offset (its `devicePixelRatio`); a finite number > 0 / オフセットを描くウィンドウの CSS px あたりの装置 px (そのウィンドウの `devicePixelRatio`。0 より大きい有限数)
553
+ * @returns The snapped offset in CSS px / 揃えたオフセット (CSS px)
554
+ * @throws {RangeError} When `ratio` is not a finite number greater than 0 / `ratio` が 0 より大きい有限数でないとき
555
+ */
556
+ export declare const snapToDevicePixelGrid: (cssPx: number, ratio: number) => number;
500
557
  /**
501
558
  * Retrieves a high-resolution timestamp when available.
502
559
  *
@@ -130,13 +130,49 @@ export type VirtualScrollHandle = {
130
130
  */
131
131
  updateItemSize: (index: number, size: number) => void;
132
132
  };
133
+ /**
134
+ * Scrollbar options of `VirtualScroll` (forwarded to its ScrollPane and bar) and of `VirtualGrid`
135
+ * (see `VirtualGridProps["scrollBarOptions"]` for which members reach which of the grid's two bars).
136
+ *
137
+ * `VirtualScroll` のスクロールバー設定 (ScrollPane とそのバーへ転送) であり、`VirtualGrid` の
138
+ * スクロールバー設定でもある (グリッドの 2 本のバーのどちらへ届くかは `VirtualGridProps["scrollBarOptions"]` 参照)。
139
+ */
133
140
  export type VirtualScrollScrollBarOptions = {
141
+ /** Scrollbar thickness in px (default 12). / スクロールバーの太さ (px、既定 12)。 */
134
142
  width?: number;
143
+ /** Whether dragging the thumb scrolls (default `true`). / つまみのドラッグ操作を許可するかどうか (既定 `true`)。 */
135
144
  enableThumbDrag?: boolean;
145
+ /** Whether pressing the track scrolls there (default `true`). / トラックの押下によるスクロールを許可するかどうか (既定 `true`)。 */
136
146
  enableTrackClick?: boolean;
147
+ /** Whether the arrow buttons scroll (default `true`). / 矢印ボタンによるスクロールを許可するかどうか (既定 `true`)。 */
137
148
  enableArrowButtons?: boolean;
149
+ /**
150
+ * Whether the scrollbar's arrow buttons are Tab stops (default `true`). Set it to `false` when
151
+ * the host already provides keyboard scrolling (roving row focus with Arrow / Page / Home / End):
152
+ * the arrows then only add two redundant Tab stops per bar — native scrollbars are never Tab
153
+ * stops either. `false` changes `tabIndex` alone (`-1`): the arrows stay pointer-operable and
154
+ * named, and Enter / Space still scroll when one is focused from script.
155
+ * The default stays `true` because the rows are not Tab stops, so without a host keyboard model
156
+ * the arrows are the only scrolling control a keyboard user can reach with Tab. Full contract:
157
+ * `ScrollBarProps["enableArrowButtonTabStops"]`.
158
+ * スクロールバーの矢印ボタンを Tab の止まり先にするかどうか (既定 `true`)。ホストがキーボード
159
+ * スクロールを既に提供する場合 (行のロービングフォーカスと矢印 / Page / Home / End) に `false` —
160
+ * 矢印はバー 1 本あたり冗長な Tab の止まり先を 2 つ足すだけになるため (ネイティブのスクロールバーも
161
+ * Tab の止まり先にならない)。`false` が変えるのは `tabIndex` (`-1`) だけで、ポインタ操作・
162
+ * アクセシブルネームと、スクリプトからフォーカスした矢印の Enter / Space は維持。既定が `true`
163
+ * なのは、行が Tab の止まり先ではないため、ホストのキーボードモデルが無ければ矢印がキーボード
164
+ * 利用者の Tab で届く唯一のスクロール操作部品だから。契約の全文は
165
+ * `ScrollBarProps["enableArrowButtonTabStops"]`。
166
+ */
167
+ enableArrowButtonTabStops?: boolean;
168
+ /**
169
+ * Whether to show the auto-hiding Top / Bottom pills (default `false`; texts from `labels.scrollToTop` / `labels.scrollToBottom`).
170
+ * 自動で隠れる Top / Bottom ピルを表示するかどうか (既定 `false`。文言は `labels.scrollToTop` / `labels.scrollToBottom`)。
171
+ */
138
172
  enableScrollToTopBottomButtons?: boolean;
173
+ /** Renderer for UI anchored near the thumb. / つまみ付近に重ねる UI のレンダラー。 */
139
174
  renderThumbOverlay?: ScrollPaneProps["renderThumbOverlay"];
175
+ /** Tap-scroll circle options (VirtualGrid: its single two-axis circle). / タップスクロールサークルの設定 (VirtualGrid では唯一の 2 軸サークル)。 */
140
176
  tapScrollCircleOptions?: ScrollPaneProps["tapScrollCircleOptions"];
141
177
  };
142
178
  export type VirtualScrollBehaviorOptions = {
@@ -468,11 +504,11 @@ export type VirtualScrollProps<T> = {
468
504
  * Maximum run length of consecutive zero-height rows scanned linearly before attempting an
469
505
  * O(log n) jump to the next non-zero row via the Fenwick tree. Module-level export (NOT in the
470
506
  * package barrel) so VirtualGrid's column axis shares the SAME constant instead of duplicating
471
- * the value (the §5 no-copy rule — same treatment as ANCHOR_REBASE_DISTANCE).
507
+ * the value (a shared constant is never copied — same treatment as ANCHOR_REBASE_DISTANCE).
472
508
  *
473
509
  * 高さ 0 行の連続をこの件数まで線形走査し、超えたら Fenwick 木で次の非 0 行へ O(log n) ジャンプ
474
510
  * する閾値。モジュールレベル export (バレル非公開) — VirtualGrid 列軸が値の複製でなく同一定数を
475
- * 共有するため (§5 複製禁止規範 — ANCHOR_REBASE_DISTANCE と同じ扱い)。
511
+ * 共有するため (共有定数は複製しない — ANCHOR_REBASE_DISTANCE と同じ扱い)。
476
512
  */
477
513
  export declare const ZERO_HEIGHT_RUN_LIMIT = 1000;
478
514
  /**
@@ -497,6 +533,27 @@ export declare const MAX_RENDERED_ITEMS = 2000;
497
533
  * compositor の f32 精度内に収めるための量子化距離。
498
534
  */
499
535
  export declare const ANCHOR_REBASE_DISTANCE = 1048576;
536
+ /**
537
+ * Snaps a CSS-px offset to the device-pixel grid of a window: the nearest offset whose device-px value is a
538
+ * whole number, `Math.round(cssPx × ratio) / ratio` (an exact half rounds toward +∞, as `Math.round` does). The items-wrapper translate goes through it: a composited layer moved by a fraction of a
539
+ * device pixel is resampled as a whole (2-px outlines, gaps and rings smear across neighbouring device rows and
540
+ * text blurs), while fractional layout positions inside the layer are painted on whole pixels already.
541
+ * Idempotent: a snapped value snaps to itself. A non-finite `cssPx` propagates (`NaN` in, `NaN` out).
542
+ * Module-level export (NOT in the package barrel).
543
+ *
544
+ * CSS px のオフセットをウィンドウの装置の画素の格子へ揃える処理。装置 px で整数になる最も近いオフセット
545
+ * `Math.round(cssPx × ratio) / ratio` (ちょうど半分は `Math.round` どおり +∞ 側)。
546
+ * 行ラッパーの平行移動はここを通す — 合成層を装置の画素の端数だけ動かすとブラウザは層全体を再標本化し
547
+ * (2px の輪郭・隙間・輪が隣の装置の行へ滲み、文字もぼける)、層の中の端数のレイアウト位置は描画が既に画素へ
548
+ * 揃えるため。冪等 (揃えた値はそのまま)。有限でない `cssPx` はそのまま伝わる (`NaN` は `NaN`)。
549
+ * モジュールレベル export (バレル非公開)。
550
+ *
551
+ * @param cssPx - Offset in CSS px; negative and fractional values included / CSS px のオフセット (負・小数を含む)
552
+ * @param ratio - Device px per CSS px of the window that paints the offset (its `devicePixelRatio`); a finite number > 0 / オフセットを描くウィンドウの CSS px あたりの装置 px (そのウィンドウの `devicePixelRatio`。0 より大きい有限数)
553
+ * @returns The snapped offset in CSS px / 揃えたオフセット (CSS px)
554
+ * @throws {RangeError} When `ratio` is not a finite number greater than 0 / `ratio` が 0 より大きい有限数でないとき
555
+ */
556
+ export declare const snapToDevicePixelGrid: (cssPx: number, ratio: number) => number;
500
557
  /**
501
558
  * Retrieves a high-resolution timestamp when available.
502
559
  *
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualScroll.d.ts","sourceRoot":"","sources":["../src/VirtualScroll.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VirtualScroll.d.ts","sourceRoot":"","sources":["../src/VirtualScroll.tsx"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ export type TapScrollVelocityInput = {
59
59
  * so never assert bit-equality (`toBe` / `Object.is`) of a pure-axis component against
60
60
  * `computeTapScrollSpeed` outside the committed exact fixtures. The rejected order
61
61
  * `s * (o / r)` would be bit-exact on pure axes (`o / r = ±1` exactly); the pin below
62
- * trades that for fixture-order independence (plan §4.2 T1 / §4.3).
62
+ * trades that for fixture-order independence (see the evaluation-order pin below).
63
63
  * - D2 (radial law under isotropy): when `s_x = s_y = s`, `|v| = s(r)` at every angle.
64
64
  * - D3 (separability): `v_a = s_a(r) * u_a(theta)` for a direction-only unit field `u`.
65
65
  * - D4 (isotropic direction fidelity — a CHOSEN axiom, not derived): when `s_x = s_y`,
@@ -68,8 +68,8 @@ export type TapScrollVelocityInput = {
68
68
  * D1-D3 alone do NOT force this law: they admit the whole family
69
69
  * `u = (cos phi(theta), sin phi(theta))` for any continuous strictly increasing angle remap
70
70
  * `phi` fixing the four cardinal angles (e.g. `phi(theta) = theta - epsilon * sin(4 theta)`).
71
- * D4 pins `phi = id`. That family is the registered invariant-preserving tuning point for
72
- * near-axis leakage (plan §4.4); v3.6.0 ships `phi = id`.
71
+ * D4 pins `phi = id`. That family is the invariant-preserving tuning point for near-axis
72
+ * leakage; the package ships `phi = id`.
73
73
  *
74
74
  * Evaluation-order pin: each component is computed literally as `s_a(r) * o_a / r`
75
75
  * (left-to-right, i.e. `(s * o) / r`). The two orders differ by 1 ulp for SOME inputs —
@@ -59,7 +59,7 @@ export type TapScrollVelocityInput = {
59
59
  * so never assert bit-equality (`toBe` / `Object.is`) of a pure-axis component against
60
60
  * `computeTapScrollSpeed` outside the committed exact fixtures. The rejected order
61
61
  * `s * (o / r)` would be bit-exact on pure axes (`o / r = ±1` exactly); the pin below
62
- * trades that for fixture-order independence (plan §4.2 T1 / §4.3).
62
+ * trades that for fixture-order independence (see the evaluation-order pin below).
63
63
  * - D2 (radial law under isotropy): when `s_x = s_y = s`, `|v| = s(r)` at every angle.
64
64
  * - D3 (separability): `v_a = s_a(r) * u_a(theta)` for a direction-only unit field `u`.
65
65
  * - D4 (isotropic direction fidelity — a CHOSEN axiom, not derived): when `s_x = s_y`,
@@ -68,8 +68,8 @@ export type TapScrollVelocityInput = {
68
68
  * D1-D3 alone do NOT force this law: they admit the whole family
69
69
  * `u = (cos phi(theta), sin phi(theta))` for any continuous strictly increasing angle remap
70
70
  * `phi` fixing the four cardinal angles (e.g. `phi(theta) = theta - epsilon * sin(4 theta)`).
71
- * D4 pins `phi = id`. That family is the registered invariant-preserving tuning point for
72
- * near-axis leakage (plan §4.4); v3.6.0 ships `phi = id`.
71
+ * D4 pins `phi = id`. That family is the invariant-preserving tuning point for near-axis
72
+ * leakage; the package ships `phi = id`.
73
73
  *
74
74
  * Evaluation-order pin: each component is computed literally as `s_a(r) * o_a / r`
75
75
  * (left-to-right, i.e. `(s * o) / r`). The two orders differ by 1 ulp for SOME inputs —