@aiquants/virtualscroll 3.4.0 → 3.5.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.
package/src/index.ts CHANGED
@@ -15,7 +15,20 @@ export { useHeightCache } from "./useHeightCache.ts"
15
15
  export { useLruCache } from "./useLruCache.ts"
16
16
  export { useWheelBridge, type WheelBridgeOptions, type WheelBridgeTarget } from "./useWheelBridge.ts"
17
17
  export { minmax } from "./utils.ts"
18
- export { MAX_FROZEN_LEADING_COLS, MAX_FROZEN_LEADING_ROWS, MAX_RENDERED_CELLS, MAX_TRACK_SIZE, VirtualGrid, type VirtualGridBehaviorOptions, type VirtualGridHandle, type VirtualGridLiveRegionOptions, type VirtualGridProps, type VirtualGridRange } from "./VirtualGrid.tsx"
18
+ export {
19
+ MAX_FROZEN_LEADING_COLS,
20
+ MAX_FROZEN_LEADING_ROWS,
21
+ MAX_FROZEN_TRAILING_COLS,
22
+ MAX_FROZEN_TRAILING_ROWS,
23
+ MAX_RENDERED_CELLS,
24
+ MAX_TRACK_SIZE,
25
+ VirtualGrid,
26
+ type VirtualGridBehaviorOptions,
27
+ type VirtualGridHandle,
28
+ type VirtualGridLiveRegionOptions,
29
+ type VirtualGridProps,
30
+ type VirtualGridRange,
31
+ } from "./VirtualGrid.tsx"
19
32
  export {
20
33
  VirtualScroll,
21
34
  type VirtualScrollBehaviorOptions,
@@ -372,6 +372,16 @@
372
372
  grid-template-rows: auto minmax(0, 1fr) auto;
373
373
  }
374
374
 
375
+ /* 末尾行帯 (3.5.0): T > 0 のときだけ最終 hbar 行の直前に auto 行を足す。テンプレート合成は
376
+ * 4 通り — 基本 / 先頭のみ (既存) / 末尾のみ / 両方。行高そのものはインライン H_T_vis
377
+ * (高さの CSS 変数は存在しない — 帯寸の変数は幅 2 つのみ。残差 var --aqvs-grid-hx-residual は別系)。 */
378
+ .aqvs-grid-has-trailing-rows {
379
+ grid-template-rows: minmax(0, 1fr) auto auto;
380
+ }
381
+ .aqvs-grid-has-frozen-rows.aqvs-grid-has-trailing-rows {
382
+ grid-template-rows: auto minmax(0, 1fr) auto auto;
383
+ }
384
+
375
385
  .aqvs-grid-frozen-rows {
376
386
  position: relative;
377
387
  min-width: 0;
@@ -388,6 +398,29 @@
388
398
  overflow: hidden;
389
399
  }
390
400
 
401
+ /* 末尾行帯のクリップ (テンプレート行 = H_T_vis インライン) と bottom 定着 inner (木高 H_T
402
+ * インライン)。inner の bottom: 0 が「帯上端 = extent − H_T_vis」を全構成で成立させ、
403
+ * 重複縮退では帯の末尾行が可視に残る (フロー配置帯の誤登録クラスの構造的封鎖)。 */
404
+ .aqvs-grid-trailing-rows {
405
+ position: relative;
406
+ min-width: 0;
407
+ overflow: hidden;
408
+ }
409
+ .aqvs-grid-trailing-rows-inner {
410
+ position: absolute;
411
+ bottom: 0;
412
+ left: 0;
413
+ right: 0;
414
+ }
415
+
416
+ /* 帯行の実クリップ器 (先頭帯行 .aqvs-grid-frozen-band-row の転置 — right はインライン
417
+ * scrollBarWidth のコーナー予約)。 */
418
+ .aqvs-grid-trailing-band-row {
419
+ position: absolute;
420
+ left: 0;
421
+ overflow: hidden;
422
+ }
423
+
391
424
  .aqvs-grid-main {
392
425
  position: relative;
393
426
  min-width: 0;
@@ -432,7 +465,9 @@
432
465
  top: 0;
433
466
  height: 100%;
434
467
  left: var(--aqvs-grid-frozen-width, 0px);
435
- right: 0;
468
+ /* 末尾凍結 (3.5.0): 右インセット = W_T。変数不在 (T = 0) は 0px フォールバックで
469
+ * 計算結果・出力ともバイト恒等 (T = 0 恒等契約)。 */
470
+ right: var(--aqvs-grid-trailing-width, 0px);
436
471
  overflow: hidden;
437
472
  }
438
473
 
@@ -447,6 +482,29 @@
447
482
  transform: translateX(calc(var(--aqvs-grid-hx-residual, 0px) - var(--aqvs-grid-frozen-width, 0px)));
448
483
  }
449
484
 
485
+ /* 末尾列クリップ (3.5.0 — ADR-19-3): left の max() は先頭優先の CSS エンコード。
486
+ * ❗ この max() 形は trailingVisibleSize の calc() 版そのもの (クリップ左端 = extent − W_T_vis
487
+ * が恒等) — CSS は JS ヘルパーを読めないための登記済み例外 (単一情報源レジスタのエントリ 1)。 */
488
+ .aqvs-grid-row-trailing {
489
+ position: absolute;
490
+ top: 0;
491
+ height: 100%;
492
+ left: max(var(--aqvs-grid-frozen-width, 0px), calc(100% - var(--aqvs-grid-trailing-width, 0px)));
493
+ right: 0;
494
+ overflow: hidden;
495
+ }
496
+
497
+ /* 右アンカーの座標ホルダー — 末尾セルは帯ローカル left で置かれ、inner の右定着が
498
+ * 「末尾が 2 番目に潰れる」を幾何で成立させる (クリップ / transform 分離の恒久契約に従い
499
+ * transform は持たない)。 */
500
+ .aqvs-grid-row-trailing-inner {
501
+ position: absolute;
502
+ top: 0;
503
+ height: 100%;
504
+ right: 0;
505
+ width: var(--aqvs-grid-trailing-width, 0px);
506
+ }
507
+
450
508
  /* 横バー帯。 */
451
509
  .aqvs-grid-hbar-strip {
452
510
  position: relative;