@aiquants/virtualscroll 3.10.0 → 3.11.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/CHANGELOG.md CHANGED
@@ -2,6 +2,108 @@
2
2
 
3
3
  All notable changes to `@aiquants/virtualscroll` are documented here.
4
4
 
5
+ ## 3.11.1 (2026-10-06)
6
+
7
+ ### Fixed
8
+
9
+ - **スクロールバーの値の文字 (`aria-valuetext`) は着いたときだけ端を知らせる**: 割合を整数の百分率へ丸めていたので、200,000 行の
10
+ 一覧では 999 行がまだ窓の下に残る位置で `"100%"`、先頭から 1 px 下で `"0%"` を読み上げた。`"0%"` は先頭 (とスクロールできない
11
+ バー) だけ、`"100%"` は最大位置とそれを越えた位置だけで、その間のどの位置も丸める前に割合を [0.01, 0.99] へ留めて `"1%"`〜`"99%"`
12
+ を読む (バーもつまみも)。
13
+
14
+ ### Changed
15
+
16
+ - **`VirtualGrid` の `updateColSize` は、列が既に持つ幅なら何も描き直さない**: 幅木の内容の合図を、更新のたびに必ず進む幅のエポック
17
+ から、木の版 (`FenwickMapTree.revision`) が動いたときだけ進む版数へ替えた。幅を変える対呼び出し (相殺するバッチを含む) は従来どおり
18
+ 窓が動かなくてもセルを置き直す。同じ幅の `updateColSize` を、アクセサだけ変えた別の列を読み直させる合図に使っていた呼び出し側は、
19
+ その列の幅を対呼び出しで知らせる (対呼び出しの契約どおり)。
20
+ - **自己計測の `ScrollPane` は、中身の寸法の変化で測り直さない**: 帯の高さの読み取りはマウントの 1 回 (同期) と、ペインの生涯に 1 つの
21
+ `ResizeObserver` の通知だけになった。従来は中身の寸法が変わるたびに監視を作り直し、確定の中で `offsetHeight` を読み直して
22
+ レイアウトを強いていた (長い一覧の追記のたびの代価)。ホストが高さを与えないときの警告は、中身がマウントの後に届いた場合も DOM を
23
+ 読み直さずに 1 度だけ出る。
24
+ - **`VirtualGrid` のビューポートの自己計測は、ルートの ref コールバックで 1 つの監視**: 後始末を返す ref コールバック (React 19) が
25
+ ルートの取り付けで測り、ルートが付いている間ずっと 1 つの `ResizeObserver` で追う。バー幅は描画で引くので、`scrollBarOptions.width`
26
+ の変更は測り直さず監視も作り直さない。
27
+ - **`VirtualGrid` のハンドルの縦の読み取りと縦の差分は、タップの駆動と同じ継ぎ目を通る**: `getScrollPosition()` の y と
28
+ `scrollBy({ y })` は `getVy` / `applyVy` を通る (挙動は同じ)。グリッドのハンドルは React が埋め込みの行の一覧の後に取り付けるので
29
+ 未接続を返すことはなく、使われることの無かった未接続の番兵 `{ x: -1, y: -1 }` と、そのための接続の印を消した。アンマウントの後も
30
+ ホストが持ち続けたハンドルは最後の位置を返す (従来どおり)。
31
+ - **木の版数は 1 つの仕組み**: `VirtualScroll` の行の高さの木と `VirtualGrid` の列幅木は、同じ内部のフック (`useFenwickTreeRevision`)
32
+ で描画の外の変更を memo へ結ぶ。具現化しない木の読み取りはどれも凍結した 1 つの選択肢 (`FENWICK_LOOKUP_ONLY`) を渡す (どちらも
33
+ パッケージの内部用で、バレルからは公開しない)。
34
+
35
+ ### Documentation
36
+
37
+ - README の `scrollToIndex` の行を宣言どおりの型 (`{ align: "nearest"; offset?: never }` を含むユニオン) に直した。README の API の表の
38
+ 命令ハンドルのメンバーの行を、ソースの宣言と字面まで比べる spec (`src/readmeApiTable.spec.ts`) を足した。
39
+
40
+ ### Tests
41
+
42
+ - **docstring とコメントの言語の規則のつめ車**: `src` の下のどのソースも、違反 (英語と日本語の docstring の欠け、関数の本体の中の
43
+ 英語だけの `//` のコメント) の数が `docstring-baseline.json` の項目とちょうど等しいことを `src/docstring-languages.spec.ts` が確かめる
44
+ (項目の無いファイルは 0、項目は下がるだけ)。この版までに足した行の違反と、修正の履歴を書いたコメントは直した。
45
+ - **網羅率の下限を上げた**: `VirtualGrid.tsx` は分岐も関数も 100 (到達できない分岐は構造で消し — 自己計測の要素の無い場合・埋め込みの
46
+ ペインの未接続の番兵・使われない接続の印 — 末尾を越えた帯の先頭のアンカーは試験で通した)、`ScrollBar.tsx` の関数は 93。
47
+
48
+ ## 3.11.0 (2026-10-05)
49
+
50
+ ### Added
51
+
52
+ - **`scrollToIndex(index, { align: "nearest" })` — 行を見せる操作**: 行が表示域にまるごと入る最短の距離だけスクロールし、既に
53
+ まるごと入っていれば何もしない (状態を書かず、確定を足さない)。上にかかる行は上端を、下にかかる行は下端を表示域の端へ着地させ、
54
+ 表示域より高い行は上端を揃える。見えている端へ戻るピル (`enableScrollToTopBottomButtons`) が覆う端 (その端からピルの向こう側
55
+ まで。画面から測るので文字の大きさに従う — 既定の文字で 31px、200 % で 47px) は表示域に数えない。着地は `"top"` / `"bottom"`
56
+ の揃えとして保つので、後でピルが隠れても何も動かない。`"nearest"` は `offset` を取らない (型が許さず、型の無い呼び出しには
57
+ `RangeError`)。ホストが自分のフォーカスのモデルを持つまま、フォーカスした行を見せるのに使う (README「Revealing a row」)。
58
+ - **スクロールバーとつまみの値の文字 (`aria-valuetext`)**: `aria-valuenow` / `aria-valuemax` は論理 px のままで、長い一覧では
59
+ 数千万になり読み上げても位置が分からない。バー (`role="scrollbar"`) とつまみ (`role="slider"`) は、スクロールの割合を
60
+ `locale` の `Intl.NumberFormat` の小数なしの百分率で持つ (en・ja とも `"25%"`。スクロールできないバーは `"0%"`、中身が縮んで
61
+ 一時的に最大位置を越えた位置は `"100%"`)。数の書式なのでラベルのカタログのキーは足さない。ポインタ専用
62
+ (`enableArrowButtonTabStops: false`) のバーは支援技術から隠れるので持たない。
63
+ - **`FenwickMapTree.revision`**: 木が保持する値か要素数が変わるたびに上がり、それ以外では変わらない版。木は同一性を保ったまま
64
+ 中身が変わるので、接頭辞和から何かを導く呼び出し側は 2 回の読み取りを比べて古さを判定する。
65
+
66
+ ### Changed
67
+
68
+ - **フォーカスの移動と行のキー移動は、行を最短で見せる**: `focusItemAtIndex(index)` (`ensureVisible` 既定) と
69
+ `behaviorOptions.enableKeyboardNavigation` の矢印 / Page キー、Escape 行復帰は、`scrollToIndex(index, { align: "nearest" })` と
70
+ 同じ規則で行を見せる。従来は表示域の外へかかる行を上端へ揃えたので、下端の行から下へキーを押すと一覧が 1 画面ぶん飛んだ。
71
+ - **ポインタ専用の矢印はキーを受けない**: `enableArrowButtonTabStops: false` の下の矢印は、スクリプトがフォーカスしても Enter /
72
+ Space でスクロールせず、既定の動作も取り消さない (バーは支援技術から隠れ、キーボードのスクロールはホストが持つ)。既定の矢印は
73
+ 変わらない。
74
+ - **`ScrollBarProps["onScroll"]` の第 2 引数は必ず渡る**: バーは要求を解いた元の位置をいつも渡していたので、型を省略可から必須へ
75
+ 改めた (`onScroll` を実装する側は変更不要)。
76
+ - **網羅率のつめ車の対象に `scripts` を加えた**: `vitest.config.ts` の `COVERAGE_INCLUDE` は `src/**/*.{ts,tsx}` と
77
+ `scripts/**/*.mjs` で、つめ車のスクリプトと入口も分岐・関数とも 100 % の下限で測る。下限を上げた (`useFenwickMapTree.ts`・
78
+ `useLruCache.ts`・`logger.ts`・`cli.server.ts`・`tapScrollCircleSampleVisual.tsx` は 100、`VirtualGrid.tsx` は分岐 98 と関数 100、
79
+ `VirtualScroll.tsx` は分岐 95 と関数 96)。届かない分岐は試験を足し、到達しない分岐は消した (`getLowestSetBit` の 0 と、その呼び出し
80
+ 側の打ち切り・`_findIndexLarge` の空の木・`reset` の種の打ち切り・`_modeOrMedian` と標本化の空の入力・同じ計算どうしを比べる
81
+ 「Inconsistent Fenwick Tree state」の整合の検査・`useLruCache` の刈り込みの安全弁・`Logger` の使われない `setPrefix` と静的な
82
+ `info`・`VirtualGrid` の総幅と列の左端の死んだ既定値)。
83
+
84
+ ### Fixed
85
+
86
+ - **差の和が 0 の測り直しの組で、行が古い上端と高さのまま残っていた**: 描いた行を置き直す合図が中身の寸法 (総和) の変化だけ
87
+ だったので、同じバッチの `updateItemSize` の差が打ち消し合う (総和が変わらない) と、行は古い木の上端と高さで描かれたままになった
88
+ (例: 行 1 を +20、行 3 を −20 で、行 2〜4 が古い上端のまま)。描画範囲の memo は木に依存していなかったので、表示域の中の行が
89
+ 縮んでも新しく見える行が描かれず (overscan 0 で 300px の空白)、`getRange()` も古い範囲を返した。木を描画の外で変える経路
90
+ (`updateItemSize`・高さの照合・`scrollToIndex` の具現化) は木の版 (`FenwickMapTree.revision`) が動いたときだけ木の版数を進め、
91
+ 木を読む memo (描画範囲・描いた行・`getRange()`) はどれもそれに依存するので、総和が変わるかどうかによらず次の確定で置き直す。
92
+ 差の和が 0 のバッチが足す確定はちょうど 1 回。
93
+ - **端へ戻るピルが、キーで見せた端の行を覆っていた**: ピルは表示域の端の行の上に描かれ、行を見せる処理はピルを数えなかったので、
94
+ キーで端の行へ進むと行がピルの下に残った (320 × 640・文字 200 % で Bottom ピルが行の中心を覆った)。見せる処理はどれも
95
+ ピルが覆う端を表示域に数えない (上の Added と Changed)。
96
+ - **行が `Number.MAX_SAFE_INTEGER` 以上の一覧の描画範囲が、先頭の可視行を別の規則で決めていた**: 巨大な一覧の経路
97
+ (`computeRenderingRangesHuge`) は位置 0 では先頭の行を、末尾では最後の行を無条件に選び、先頭の行の隠れた量も数えなかったので、
98
+ 高さ 0 の先頭行・末尾の高さ 0 の行・行の途中の位置で通常の経路と違う範囲を返した。先頭の可視行を通常の経路と同じ
99
+ `resolveVisibleStartRow` で決め、前方の走査もその行の隠れた量から数える。
100
+ - **`VirtualGrid` がアンマウントの後に読み上げを予約していた**: 埋め込みの一覧はアンマウントで待っていた範囲の通知を同期で
101
+ 配り、それはグリッド自身の後始末の後に届くので、ライブリージョンがアンマウントの後に消費側の `buildMessage` を呼んでいた。
102
+ アンマウントの後は読み上げを予約しない。
103
+ - **文書**: `FenwickMapTree.rebuildTree({ materialize: true })` は全行ではなく初期の窓だけを具現化する (リセットと同じ) ことを
104
+ docstring に書いた。「`tabIndex=-1` の矢印もスクリプトからフォーカスすればキーで動く」という約束は、既定の矢印だけの約束へ
105
+ 改めた (上の Changed)。
106
+
5
107
  ## 3.10.0 (2026-10-05)
6
108
 
7
109
  ### Added
package/README.md CHANGED
@@ -235,12 +235,12 @@ Measured in Chromium 148 (1280×800, ratio 1, overscan 15, rows whose text ends
235
235
  pixels, at most one blended pixel, floor(2 × ratio) gap pixels and floor(2 × ratio) outline pixels.
236
236
  - The scrollbar thumb moves the same way. Its wrapper stays at `top: 0` (`left: 0` on a horizontal bar) and is
237
237
  moved by a 2D translate (`translateY`, `translateX` on a horizontal bar) snapped to the same device-pixel
238
- grid, with no transition, so a step writes only that `transform` and the slider's `aria-valuenow`, and the
239
- thumb adds no layout. A thumb positioned by `top` adds a layout from the document root to every step: in
240
- Chromium, 60 steps of 40 px that kept the rendering window (200,000 rows of 160 px inside nested flex
241
- columns beside a 600-row sidebar) ran 60 layouts in 13.9 ms with the thumb moved by `top`, and 30 layouts in
242
- 9.1 ms with the thumb held still. `thumbPosition` in the `renderThumbOverlay` props stays the exact,
243
- unsnapped offset.
238
+ grid, with no transition, so a step writes only that `transform` and the slider's value attributes
239
+ (`aria-valuenow`, and `aria-valuetext` when the whole percent changes), and the thumb adds no layout. A
240
+ thumb positioned by `top` adds a layout from the document root to every step: in Chromium, 60 steps of
241
+ 40 px that kept the rendering window (200,000 rows of 160 px inside nested flex columns beside a 600-row
242
+ sidebar) ran 60 layouts in 13.9 ms with the thumb moved by `top`, and 30 layouts in 9.1 ms with the thumb
243
+ held still. `thumbPosition` in the `renderThumbOverlay` props stays the exact, unsnapped offset.
244
244
 
245
245
  ## Position changes the list makes on its own
246
246
 
@@ -523,6 +523,14 @@ for the bar and `verticalScrollThumb` / `horizontalScrollThumb` for the thumb (s
523
523
  [Localization](#localization)). Assistive technology appends the role itself, so the bar's name
524
524
  carries only what tells the two bars of a grid apart.
525
525
 
526
+ The value counts px, which runs to tens of millions on a long list, so the bar and the thumb also
527
+ carry `aria-valuetext`: the scroll fraction as a whole percent formatted for the bar's `locale`
528
+ (`Intl.NumberFormat` with `style: "percent"`, `"25%"` in `en` and `ja`). The two ends are announced only
529
+ when they are reached: `"0%"` at the top and for a bar with nothing to scroll, `"100%"` at the end and
530
+ for a position briefly past it (after the content shrinks), and every position in between reads from
531
+ `"1%"` to `"99%"` (a list of 200,000 rows with 999 still below the window reads `"99%"`, one pixel below
532
+ the top reads `"1%"`).
533
+
526
534
  The bar's two arrow buttons are Tab stops by default, because they are the only scrolling control a
527
535
  keyboard user can reach with Tab: the pane moves its content by transform (there is no native
528
536
  scroller for the browser to make focusable) and the rows are not Tab stops. Focus an arrow and
@@ -547,7 +555,9 @@ The bar then becomes what a native scrollbar is, a pointer-only control:
547
555
  - The bar carries `aria-hidden="true"`, so assistive technology meets no scrollbar and no slider for
548
556
  this viewport; your keyboard model is the one it announces.
549
557
  - Nothing in the bar is a Tab stop: the arrows get `tabIndex={-1}`, and the bar and the thumb wrapper
550
- carry no `tabindex`.
558
+ carry no `tabindex`. The arrows answer the pointer only: even when a script focuses one, Enter and
559
+ Space do nothing there (they are not default-prevented either), so the hidden bar never scrolls
560
+ alongside your keyboard model. The bar carries no `aria-valuetext` either.
551
561
  - A press anywhere on the bar, with any button and on a disabled arrow too, cancels the press's
552
562
  default action, so it never moves focus: neither onto a part of the bar nor away from where your
553
563
  app put it. The press itself, its pointer events and its click still reach the part.
@@ -560,6 +570,25 @@ The bar then becomes what a native scrollbar is, a pointer-only control:
560
570
  The option has one name and one meaning everywhere: `ScrollBar` and `ScrollPane` props, and
561
571
  `scrollBarOptions` of `VirtualScroll` and `VirtualGrid` (the grid applies it to both of its bars).
562
572
 
573
+ ## Revealing a row
574
+
575
+ One rule brings a row into view, whoever asks: `scrollToIndex(index, { align: "nearest" })`, `focusItemAtIndex(index)` and
576
+ the row keyboard steps of `behaviorOptions.enableKeyboardNavigation` (Arrow / Page keys, and the Escape row-return). It scrolls
577
+ the least distance that puts the row wholly inside the viewport, and nothing at all when it already is: a row above lands with
578
+ its top at the top, a row below with its bottom at the bottom, and a row taller than the viewport with its top at the top — the
579
+ way a native list scrolls to its focused option.
580
+
581
+ The auto-hiding Top / Bottom pills (`scrollBarOptions.enableScrollToTopBottomButtons`) are drawn over the first and last
582
+ visible rows. While a pill shows, the edge it covers — from that edge to the pill's far side, measured on screen and divided
583
+ back by any ancestor `transform` scale, so it follows the text size — does not count as inside: a row there is revealed below
584
+ the Top pill or above the Bottom pill. The landing is kept like a `"top"` / `"bottom"` alignment, so nothing moves when the
585
+ pill hides. `"top"`, `"bottom"` and `"center"` keep aligning to the viewport itself, pill or not.
586
+
587
+ ```tsx
588
+ // keep your own focus model, let the list bring the focused row into view
589
+ handle.scrollToIndex(focusedIndex, { align: "nearest" })
590
+ ```
591
+
563
592
  ## Screen-reader live region
564
593
 
565
594
  Virtualization removes off-screen rows from the DOM, so a screen-reader user scrolling the list
@@ -603,6 +632,9 @@ catalog in English (`"en"`, the default) and Japanese (`"ja"`):
603
632
  | `scrollToBottom` | VirtualScroll scroll-to-bottom pill (`enableScrollToTopBottomButtons`) | Bottom | 末尾へ |
604
633
  | `noItems` | VirtualScroll empty state (`itemCount === 0`; also VirtualGrid with no scroll rows) | No items | 項目がありません |
605
634
 
635
+ `locale` also formats the scroll bar's value text (`aria-valuetext`, the scroll fraction as a whole percent through
636
+ `Intl.NumberFormat`). That is a number format, not a catalog string, so it has no key and `labels` cannot override it.
637
+
606
638
  Pick the language with `locale` and override single keys with `labels`, which are laid over the
607
639
  catalog of `locale`:
608
640
 
@@ -882,7 +914,7 @@ exists in the DOM.
882
914
  | `enableTrackClick` | `boolean` | Enable clicking the scrollbar track (default: true) |
883
915
  | `enableArrowButtons` | `boolean` | Enable arrow buttons on the scrollbar (default: true) |
884
916
  | `enableArrowButtonTabStops` | `boolean` | Whether the scrollbar is the keyboard user's scrolling control (default: true: a named scrollbar and thumb, the two arrows in the Tab order). Set `false` when your app already owns keyboard scrolling of the list: the bar and the scroll-to-edge pills become pointer-only (`aria-hidden`, no Tab stop, a press never moves focus) and pointer scrolling is unchanged. See [Scrollbar accessibility and the Tab order](#scrollbar-accessibility-and-the-tab-order) |
885
- | `enableScrollToTopBottomButtons` | `boolean` | Enable the auto-hiding Top/Bottom pills (texts from `labels.scrollToTop` / `labels.scrollToBottom`; default: false) |
917
+ | `enableScrollToTopBottomButtons` | `boolean` | Enable the auto-hiding Top/Bottom pills (texts from `labels.scrollToTop` / `labels.scrollToBottom`; default: false). A pill is drawn over the rows at its edge; while it shows, every reveal keeps rows out from under it (see [Revealing a row](#revealing-a-row)) |
886
918
  | `renderThumbOverlay` | `(props: ScrollBarThumbOverlayRenderProps) => ReactNode` | Render prop to anchor custom UI near the scrollbar thumb |
887
919
  | `tapScrollCircleOptions` | `ScrollBarTapCircleOptions` | Customization for the auxiliary tap scroll circle |
888
920
 
@@ -892,7 +924,7 @@ exists in the DOM.
892
924
  | --- | --- | --- |
893
925
  | `enablePointerDrag` | `boolean` | Enable dragging the content area to scroll (default: true). ⚠️ Setting this to `false` removes the only way to scroll on touch devices — the pane is transform-based and has no native scroller. Use `pointerDragInputs` to exclude a single pointer type instead. |
894
926
  | `pointerDragInputs` | `readonly ("mouse" \| "pen" \| "touch")[]` | Pointer types allowed to drag-scroll the content area (default: all three). `touch-action: none` is applied only when `"touch"` or `"pen"` is included. |
895
- | `enableKeyboardNavigation` | `boolean` | Enable keyboard navigation (default: true). Arrow / Page keys move row focus. ⚠️ They fire **only when the row wrapper itself is the event target** — focus inside a row (a `role="slider"` cell, a link, a nested scroll region) keeps its own keys |
927
+ | `enableKeyboardNavigation` | `boolean` | Enable keyboard navigation (default: true). Arrow / Page keys move row focus and reveal the focused row (see [Revealing a row](#revealing-a-row)). ⚠️ They fire **only when the row wrapper itself is the event target** — focus inside a row (a `role="slider"` cell, a link, a nested scroll region) keeps its own keys |
896
928
  | `enableEscapeRowReturn` | `boolean` | Opt-in (default: false): pressing `Escape` while focus sits on an element **inside** a row returns focus to the row wrapper. Listens in the bubble phase and respects `preventDefault` / `stopPropagation` / IME composition, so widgets inside the row keep first claim on their own `Escape`. Requires `enableKeyboardNavigation` |
897
929
  | `wheelSpeedMultiplier` | `number` | Multiplier for mouse wheel scrolling speed (default: 1) |
898
930
  | `inertiaOptions` | `ScrollPaneInertiaOptions` | Physics tuning for drag inertia |
@@ -908,16 +940,16 @@ exists in the DOM.
908
940
  | `scrollBy` | `(delta: number) => number` | Scroll **by a delta** with the pane's own wheel semantics (float accumulation, no anchor). Use this — not `scrollTo` — to bridge continuous input from outside the pane. Returns the applied **logical** position |
909
941
  | `applyWheel` | `(event: WheelEvent) => boolean` | Apply one wheel event with the pane's own rules; returns whether it was consumed. The single entry point for wheel input originating outside the pane — normally reached through `useWheelBridge` |
910
942
  | *(ScrollPaneHandle only)* `scrollTo` | `(pos, dimsOverride?)` | The pane-level jump. `dimsOverride` is an explicit clamp-space for callers that know **fresher-than-committed** dims (the layout-shift compensation passes `committed + delta`). Do not pass it casually — a wrong override clamps against dims that are not on screen |
911
- | `scrollToIndex` | `(index: number, options?: { align?: "top" \| "bottom" \| "center"; offset?: number }) => void` | Scroll to specific item index with optional alignment and offset. Lands exactly on the aligned position (clamped to the content); a `"top"` (default) or `"bottom"` alignment is remembered there, so the device-pixel snap keeps that edge — see [Device-pixel snapping](#device-pixel-snapping) |
943
+ | `scrollToIndex` | `(index: number, options?: { align?: "top" \| "bottom" \| "center"; offset?: number } \| { align: "nearest"; offset?: never }) => void` | Scroll to specific item index with optional alignment and offset. Lands exactly on the aligned position (clamped to the content); a `"top"` (default) or `"bottom"` alignment is remembered there, so the device-pixel snap keeps that edge — see [Device-pixel snapping](#device-pixel-snapping). `"top"`, `"bottom"` and `"center"` align to the viewport itself. `"nearest"` is the reveal: the least scroll that brings the row wholly into view, keeping it out from under a visible scroll-to-edge pill, and nothing at all when the row is already wholly in view — see [Revealing a row](#revealing-a-row). `"nearest"` takes no `offset` (passing one throws a `RangeError`) |
912
944
  | `getScrollPosition` | `() => number` | Get current **logical** scroll position (2.0.0; `-1` when the pane is not connected) |
913
945
  | `getContentSize` | `() => number` | Get total content size (insets included). Returns the `-1` sentinel while the pane is unconnected |
914
946
  | `getViewportSize` | `() => number` | Get viewport size. Returns the `-1` sentinel while the pane is unconnected |
915
- | `focusItemAtIndex` | `(index: number, options?: { ensureVisible?: boolean }) => void` | Focus item at specific index |
947
+ | `focusItemAtIndex` | `(index: number, options?: { ensureVisible?: boolean }) => void` | Focus the row at an index (with `enableKeyboardNavigation`). With `ensureVisible` (default `true`) the row is first revealed exactly like `scrollToIndex(index, { align: "nearest" })`; with `false` a rendered row takes focus without scrolling |
916
948
  | `getRange` | `() => VirtualScrollRange` | Get current range information (updated one render behind) |
917
949
  | `getScrollAnchor` | `() => { index: number; offsetPx: number } \| null` | Capture the current top visible row anchor for exact restore via `initialScrollAnchor` (`null` when `itemCount` is 0) |
918
950
  | `getFenwickTreeTotalHeight` | `() => number` | Total content height managed by the Fenwick tree (insets excluded) |
919
951
  | `getFenwickSize` | `() => number` | Item count managed by the Fenwick tree |
920
- | `updateItemSize` | `(index: number, size: number) => void` | Manually update one item's size (with layout-shift compensation: a row above the first visible row moves the position by the same delta before this returns, reported through `onScrollAdjust` as `"item-resize"`). `getItemHeight(index)` must return the same value afterwards |
952
+ | `updateItemSize` | `(index: number, size: number) => void` | Manually update one item's size (with layout-shift compensation: a row above the first visible row moves the position by the same delta before this returns, reported through `onScrollAdjust` as `"item-resize"`). `getItemHeight(index)` must return the same value afterwards. Every change of a row height made through `updateItemSize` or found by the height reconciliation re-places the rendered rows and re-resolves the rendering range (and `getRange()`) in the next commit, whether or not the total changes — a batch of calls whose changes cancel out included, at the cost of one commit |
921
953
 
922
954
  **Coordinate system (2.0.0)**: every position the handle and callbacks accept or return is
923
955
  **logical** (content px, insets excluded) — `onScroll` / `onRangeChange` / `initialScroll*` /
@@ -72,8 +72,8 @@ export type ScrollBarProps = {
72
72
  viewportSize: number;
73
73
  /** The current scroll position. / 現在のスクロール位置。 */
74
74
  scrollPosition: number;
75
- /** A callback function invoked to adjust scroll position. Accepts next position or updater. / スクロール位置を調整するためのコールバック。次位置または更新関数を受け取る。 */
76
- onScroll?: (scrollPosition: number | ((prevPosition: number) => number), prevPosition?: number) => number | undefined;
75
+ /** A callback function invoked to adjust scroll position. Accepts next position or updater, and always receives the position the bar resolved the request from. / スクロール位置を調整するためのコールバック。次位置または更新関数と、バーが要求を解いた元の位置 (必ず渡す) を受け取る。 */
76
+ onScroll?: (scrollPosition: number | ((prevPosition: number) => number), prevPosition: number) => number | undefined;
77
77
  /** Whether grabbing the scrollbar thumb is allowed. / スクロールバーのつまみ操作を許可するかどうか。 */
78
78
  enableThumbDrag?: boolean;
79
79
  /** Whether clicking on the track moves the scrollbar. / スクロールバーのトラッククリック操作を許可するかどうか。 */
@@ -153,10 +153,11 @@ export type ScrollBarProps = {
153
153
  /** The index of the last visible item. / 最後の可視アイテムのインデックス。 */
154
154
  visibleEndIndex?: number;
155
155
  /**
156
- * UI chrome locale of the built-in accessible names of the bar, its thumb and its arrows (default `"en"`). An
157
- * unsupported value throws a RangeError at render; no language negotiation happens.
158
- * バー・つまみ・矢印の内蔵アクセシブルネームの UI クロームロケール (既定 `"en"`)。非対応値は描画時に RangeError、
159
- * 言語ネゴシエーションなし。
156
+ * UI chrome locale of the built-in accessible names of the bar, its thumb and its arrows, and of the percentage the bar
157
+ * and the thumb announce as their value text (default `"en"`). An unsupported value throws a RangeError at render; no
158
+ * language negotiation happens.
159
+ * バー・つまみ・矢印の内蔵アクセシブルネームと、バーとつまみが値の文字として知らせる百分率の UI クロームロケール (既定
160
+ * `"en"`)。非対応値は描画時に RangeError、言語ネゴシエーションなし。
160
161
  */
161
162
  locale?: VirtualScrollLocale;
162
163
  /**
@@ -72,8 +72,8 @@ export type ScrollBarProps = {
72
72
  viewportSize: number;
73
73
  /** The current scroll position. / 現在のスクロール位置。 */
74
74
  scrollPosition: number;
75
- /** A callback function invoked to adjust scroll position. Accepts next position or updater. / スクロール位置を調整するためのコールバック。次位置または更新関数を受け取る。 */
76
- onScroll?: (scrollPosition: number | ((prevPosition: number) => number), prevPosition?: number) => number | undefined;
75
+ /** A callback function invoked to adjust scroll position. Accepts next position or updater, and always receives the position the bar resolved the request from. / スクロール位置を調整するためのコールバック。次位置または更新関数と、バーが要求を解いた元の位置 (必ず渡す) を受け取る。 */
76
+ onScroll?: (scrollPosition: number | ((prevPosition: number) => number), prevPosition: number) => number | undefined;
77
77
  /** Whether grabbing the scrollbar thumb is allowed. / スクロールバーのつまみ操作を許可するかどうか。 */
78
78
  enableThumbDrag?: boolean;
79
79
  /** Whether clicking on the track moves the scrollbar. / スクロールバーのトラッククリック操作を許可するかどうか。 */
@@ -153,10 +153,11 @@ export type ScrollBarProps = {
153
153
  /** The index of the last visible item. / 最後の可視アイテムのインデックス。 */
154
154
  visibleEndIndex?: number;
155
155
  /**
156
- * UI chrome locale of the built-in accessible names of the bar, its thumb and its arrows (default `"en"`). An
157
- * unsupported value throws a RangeError at render; no language negotiation happens.
158
- * バー・つまみ・矢印の内蔵アクセシブルネームの UI クロームロケール (既定 `"en"`)。非対応値は描画時に RangeError、
159
- * 言語ネゴシエーションなし。
156
+ * UI chrome locale of the built-in accessible names of the bar, its thumb and its arrows, and of the percentage the bar
157
+ * and the thumb announce as their value text (default `"en"`). An unsupported value throws a RangeError at render; no
158
+ * language negotiation happens.
159
+ * バー・つまみ・矢印の内蔵アクセシブルネームと、バーとつまみが値の文字として知らせる百分率の UI クロームロケール (既定
160
+ * `"en"`)。非対応値は描画時に RangeError、言語ネゴシエーションなし。
160
161
  */
161
162
  locale?: VirtualScrollLocale;
162
163
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollBar.d.ts","sourceRoot":"","sources":["../src/ScrollBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScrollBar.d.ts","sourceRoot":"","sources":["../src/ScrollBar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollPane.d.ts","sourceRoot":"","sources":["../src/ScrollPane.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScrollPane.d.ts","sourceRoot":"","sources":["../src/ScrollPane.tsx"],"names":[],"mappings":"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"}
@@ -351,7 +351,13 @@ export type VirtualGridProps<T> = {
351
351
  className?: string;
352
352
  testId?: string;
353
353
  };
354
- /** Imperative handle (logical coordinates everywhere; -1 sentinels pre-attach — row-parity incl. return values). / 命令ハンドル (全て論理座標・未接続 -1 番兵 — 返り値契約まで行側と対称)。 */
354
+ /**
355
+ * Imperative handle (logical coordinates everywhere — row-parity incl. return values). React attaches it after the embedded
356
+ * row list, so it never reads as unconnected; a handle the host keeps after the grid unmounts reports the last position and
357
+ * never throws.
358
+ * 命令ハンドル (全て論理座標 — 返り値契約まで行側と対称)。React は埋め込みの行の一覧の後にこれを取り付けるので、未接続の値を返す
359
+ * ことはない。グリッドのアンマウントの後もホストが持ち続けたハンドルは最後の位置を返し、投げない。
360
+ */
355
361
  export type VirtualGridHandle = {
356
362
  /**
357
363
  * Jump API — do NOT use for continuous input (use scrollBy). Vertical delegates to the row
@@ -401,7 +407,7 @@ export type VirtualGridHandle = {
401
407
  offsetX?: number;
402
408
  offsetY?: number;
403
409
  }): void;
404
- /** Synchronous-fresh position read (internal refs — safe mid-event; {-1,-1} pre-attach). / 同期・最新の位置読み (内部 ref — イベント中も安全。未接続 {-1,-1})。 */
410
+ /** Synchronous-fresh position read (internal refs — safe mid-event; after the grid unmounts, the last position). / 同期・最新の位置読み (内部 ref — イベント中も安全。グリッドのアンマウントの後は最後の位置)。 */
405
411
  getScrollPosition(): {
406
412
  x: number;
407
413
  y: number;
@@ -425,14 +431,16 @@ export type VirtualGridHandle = {
425
431
  /** Pair-call seam: getRowHeight stays the truth. 3-way split — leading band rows bump the frozen-row epoch, trailing band rows bump the trailing-row epoch (accessor re-read; the bands hold no tree), scroll rows delegate to the row updateItemSize at −R. / 対呼び出しシーム (getRowHeight が正)。3 分岐 — 先頭帯行は凍結行 epoch、末尾帯行は末尾行 epoch の繰上げ (アクセサ再読 — 帯に木は無い)、スクロール行は −R で行 updateItemSize へ委譲。 */
426
432
  updateRowSize(row: number, px: number): void;
427
433
  /**
428
- * Column twin: validates (MAX_TRACK_SIZE fail-fast), updates the width tree, and bumps the
429
- * width epoch so committed cells REPAINT even when the window key is unchanged (small grids,
430
- * offsetting batch resizes). Multi-call batch loops coalesce into one recompute via React's
431
- * automatic state batching (one commit per synchronous batch — the design's rAF-coalescing
432
- * intent realized at commit granularity).
433
- * 列双子: 検証 (fail-fast) → 幅木更新 → 幅エポックの繰上げで、窓キー不変でもコミット済み
434
- * セルを再描画する (小さなグリッド・相殺バッチリサイズ)。連続呼び出しは React の自動
435
- * バッチングで 1 コミットに合流 (設計の rAF 合流意図のコミット粒度での実現)。
434
+ * Column twin: validates (MAX_TRACK_SIZE fail-fast) and updates the width tree. A width that
435
+ * changes advances the width tree's revision, so committed cells REPAINT even when the window
436
+ * key is unchanged (small grids, offsetting batch resizes); the width the column already has
437
+ * changes nothing and re-renders nothing. Multi-call batch loops coalesce into one recompute via
438
+ * React's automatic state batching (one commit per synchronous batch — the design's
439
+ * rAF-coalescing intent realized at commit granularity).
440
+ * 列双子: 検証 (fail-fast) → 幅木の更新。幅が変われば幅木の版数が進み、窓キー不変でもコミット済み
441
+ * セルを再描画する (小さなグリッド・相殺バッチリサイズ)。列が既に持つ幅は何も変えず、何も
442
+ * 再描画しない。連続呼び出しは React の自動バッチングで 1 コミットに合流 (設計の rAF 合流意図の
443
+ * コミット粒度での実現)。
436
444
  */
437
445
  updateColSize(col: number, px: number): void;
438
446
  /**
@@ -351,7 +351,13 @@ export type VirtualGridProps<T> = {
351
351
  className?: string;
352
352
  testId?: string;
353
353
  };
354
- /** Imperative handle (logical coordinates everywhere; -1 sentinels pre-attach — row-parity incl. return values). / 命令ハンドル (全て論理座標・未接続 -1 番兵 — 返り値契約まで行側と対称)。 */
354
+ /**
355
+ * Imperative handle (logical coordinates everywhere — row-parity incl. return values). React attaches it after the embedded
356
+ * row list, so it never reads as unconnected; a handle the host keeps after the grid unmounts reports the last position and
357
+ * never throws.
358
+ * 命令ハンドル (全て論理座標 — 返り値契約まで行側と対称)。React は埋め込みの行の一覧の後にこれを取り付けるので、未接続の値を返す
359
+ * ことはない。グリッドのアンマウントの後もホストが持ち続けたハンドルは最後の位置を返し、投げない。
360
+ */
355
361
  export type VirtualGridHandle = {
356
362
  /**
357
363
  * Jump API — do NOT use for continuous input (use scrollBy). Vertical delegates to the row
@@ -401,7 +407,7 @@ export type VirtualGridHandle = {
401
407
  offsetX?: number;
402
408
  offsetY?: number;
403
409
  }): void;
404
- /** Synchronous-fresh position read (internal refs — safe mid-event; {-1,-1} pre-attach). / 同期・最新の位置読み (内部 ref — イベント中も安全。未接続 {-1,-1})。 */
410
+ /** Synchronous-fresh position read (internal refs — safe mid-event; after the grid unmounts, the last position). / 同期・最新の位置読み (内部 ref — イベント中も安全。グリッドのアンマウントの後は最後の位置)。 */
405
411
  getScrollPosition(): {
406
412
  x: number;
407
413
  y: number;
@@ -425,14 +431,16 @@ export type VirtualGridHandle = {
425
431
  /** Pair-call seam: getRowHeight stays the truth. 3-way split — leading band rows bump the frozen-row epoch, trailing band rows bump the trailing-row epoch (accessor re-read; the bands hold no tree), scroll rows delegate to the row updateItemSize at −R. / 対呼び出しシーム (getRowHeight が正)。3 分岐 — 先頭帯行は凍結行 epoch、末尾帯行は末尾行 epoch の繰上げ (アクセサ再読 — 帯に木は無い)、スクロール行は −R で行 updateItemSize へ委譲。 */
426
432
  updateRowSize(row: number, px: number): void;
427
433
  /**
428
- * Column twin: validates (MAX_TRACK_SIZE fail-fast), updates the width tree, and bumps the
429
- * width epoch so committed cells REPAINT even when the window key is unchanged (small grids,
430
- * offsetting batch resizes). Multi-call batch loops coalesce into one recompute via React's
431
- * automatic state batching (one commit per synchronous batch — the design's rAF-coalescing
432
- * intent realized at commit granularity).
433
- * 列双子: 検証 (fail-fast) → 幅木更新 → 幅エポックの繰上げで、窓キー不変でもコミット済み
434
- * セルを再描画する (小さなグリッド・相殺バッチリサイズ)。連続呼び出しは React の自動
435
- * バッチングで 1 コミットに合流 (設計の rAF 合流意図のコミット粒度での実現)。
434
+ * Column twin: validates (MAX_TRACK_SIZE fail-fast) and updates the width tree. A width that
435
+ * changes advances the width tree's revision, so committed cells REPAINT even when the window
436
+ * key is unchanged (small grids, offsetting batch resizes); the width the column already has
437
+ * changes nothing and re-renders nothing. Multi-call batch loops coalesce into one recompute via
438
+ * React's automatic state batching (one commit per synchronous batch — the design's
439
+ * rAF-coalescing intent realized at commit granularity).
440
+ * 列双子: 検証 (fail-fast) → 幅木の更新。幅が変われば幅木の版数が進み、窓キー不変でもコミット済み
441
+ * セルを再描画する (小さなグリッド・相殺バッチリサイズ)。列が既に持つ幅は何も変えず、何も
442
+ * 再描画しない。連続呼び出しは React の自動バッチングで 1 コミットに合流 (設計の rAF 合流意図の
443
+ * コミット粒度での実現)。
436
444
  */
437
445
  updateColSize(col: number, px: number): void;
438
446
  /**
@@ -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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"}