@aiquants/daily-report 0.11.0 → 0.12.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/dist/client.d.mts CHANGED
@@ -90,14 +90,22 @@ declare const DailyReportCommentForm: ({ reportHubId, businessDate, onAddComment
90
90
  * Scroll restore slot for DailyReportDetailList that survives tab unmounting.
91
91
  * タブアンマウントをまたいで DailyReportDetailList のスクロール位置を持ち回る共有スロット。
92
92
  *
93
- * offset VirtualScroll の論理座標。anchorReportHubId は「その offset を記録した時点の
94
- * 選択日報」。復元はアンカーが現在の選択と一致するときだけ行う: 選択が他ビューで変わって
95
- * いたら、復元よりも「選択日報へのスクロール」(既存 UX) を優先する。
96
- * measuredHeights は実測カード高さ (reportHubId → px)。ピクセル復元は「保存時と同じ高さ
97
- * 空間」でだけ正しいため、実測をアンマウント越しに持ち回って座標空間を保存する。
93
+ * topItem は先頭可視カードの**同一性アンカー** (reportHubId + 行内オフセット px + 保存時 index)。
94
+ * 生の論理 px を保存してはならない: 可変高さでは px→行変換が再マウントの推定空間で行われ、
95
+ * 深い位置で別のカードに着地する (実機で確定した実害バグ)。同一性アンカーは一覧が留守中に
96
+ * 変わっても findIndex で正しいカードへ再解決される。index は該当カードが消えていたときの
97
+ * 近似フォールバック。offsetPx はカード上端がビューポート上端より上に隠れている px (論理座標)。
98
+ * anchorReportHubId は「記録時点の選択日報」。復元はこれが現在の選択と一致するときだけ行う:
99
+ * 選択が他ビューで変わっていたら、復元よりも「選択日報へのスクロール」(既存 UX) を優先する。
100
+ * measuredHeights は実測カード高さ (reportHubId → px)。着地窓の行内オフセットの厳密さと
101
+ * 総高さ推定の質を保つため、実測をアンマウント越しに持ち回る。
98
102
  */
99
103
  type DailyReportDetailListScrollRestore = {
100
- offset: number;
104
+ topItem: {
105
+ reportHubId: number;
106
+ index: number;
107
+ offsetPx: number;
108
+ } | null;
101
109
  anchorReportHubId: number | null;
102
110
  measuredHeights: Map<number, number>;
103
111
  };
package/dist/client.d.ts CHANGED
@@ -90,14 +90,22 @@ declare const DailyReportCommentForm: ({ reportHubId, businessDate, onAddComment
90
90
  * Scroll restore slot for DailyReportDetailList that survives tab unmounting.
91
91
  * タブアンマウントをまたいで DailyReportDetailList のスクロール位置を持ち回る共有スロット。
92
92
  *
93
- * offset VirtualScroll の論理座標。anchorReportHubId は「その offset を記録した時点の
94
- * 選択日報」。復元はアンカーが現在の選択と一致するときだけ行う: 選択が他ビューで変わって
95
- * いたら、復元よりも「選択日報へのスクロール」(既存 UX) を優先する。
96
- * measuredHeights は実測カード高さ (reportHubId → px)。ピクセル復元は「保存時と同じ高さ
97
- * 空間」でだけ正しいため、実測をアンマウント越しに持ち回って座標空間を保存する。
93
+ * topItem は先頭可視カードの**同一性アンカー** (reportHubId + 行内オフセット px + 保存時 index)。
94
+ * 生の論理 px を保存してはならない: 可変高さでは px→行変換が再マウントの推定空間で行われ、
95
+ * 深い位置で別のカードに着地する (実機で確定した実害バグ)。同一性アンカーは一覧が留守中に
96
+ * 変わっても findIndex で正しいカードへ再解決される。index は該当カードが消えていたときの
97
+ * 近似フォールバック。offsetPx はカード上端がビューポート上端より上に隠れている px (論理座標)。
98
+ * anchorReportHubId は「記録時点の選択日報」。復元はこれが現在の選択と一致するときだけ行う:
99
+ * 選択が他ビューで変わっていたら、復元よりも「選択日報へのスクロール」(既存 UX) を優先する。
100
+ * measuredHeights は実測カード高さ (reportHubId → px)。着地窓の行内オフセットの厳密さと
101
+ * 総高さ推定の質を保つため、実測をアンマウント越しに持ち回る。
98
102
  */
99
103
  type DailyReportDetailListScrollRestore = {
100
- offset: number;
104
+ topItem: {
105
+ reportHubId: number;
106
+ index: number;
107
+ offsetPx: number;
108
+ } | null;
101
109
  anchorReportHubId: number | null;
102
110
  measuredHeights: Map<number, number>;
103
111
  };