diff --git a/provisional/decisions.md b/provisional/decisions.md index b450b91..ba9f84b 100644 --- a/provisional/decisions.md +++ b/provisional/decisions.md @@ -71,6 +71,37 @@ KLE本家の挙動の確認は、既存の検証ハーネスで本家の `serial 入力は [phy-editor-feedback.md](phy-editor-feedback.md) と [phy-editor-keybindings.md](phy-editor-keybindings.md)。 理由: 所感はすべて画面の操作と表示に関するもので、データモデル側に作り直す理由がない。 +### T-30 作り直し1回目の所感への対応 + +T-29 のコードを作り直さず、[phy-editor-feedback.md](phy-editor-feedback.md)「作り直し1回目(T-29)を触った所感」を下の単位で順に直す。 +1単位1コミットとし、各単位で既存の Vitest・Playwright を通してから次へ進む。 +理由: 所感はどれも局所的な修正か機能の追加で、T-29 の構成(composable・純粋モジュールの分離)のまま入る。 + +| 順 | 単位 | 内容 | 主な箇所 | +| --- | --- | --- | --- | +| 1 | 選択の描画層 | 選択枠を太くし、`NodeSvg` の再帰から外して最前面の層に描く。以後のオーバーレイ(5・8)もこの層に載せる | `NodeSvg.vue`、`PhyEditor.vue` | +| 2 | パネルの幅 | 階層パネルを閉じたら、キャンバスが空いた幅を埋める | `PhyEditor.vue` の `grid-template-columns` | +| 3 | バリアント | ポップオーバーの印を「既定」と分かる見た目にする。バッジの名前のはみ出しを直す。クラスター内のキーから作ったバリアントグループは、そのクラスターの中に作る | `NodeSvg.vue`、`usePhyCommands.ts` | +| 4 | ドラッグ中の自動スクロール | キーを画面の端へ寄せると、キャンバスがスクロールする | `usePhyCanvasPointer.ts`、`usePhyCanvasView.ts` | +| 5 | クラスターの原点 | 選択中のクラスターにだけ、原点に丸を出す | 1の層 | +| 6 | キー追加の位置 | 選択中のキーの行の右端に追加する。行の判定は `domain/` に純粋関数として実装してテストし、のちにIDX Editorでも使う | `domain/`、`usePhyCommands.ts` | +| 7a | 長押しの切り出し | 長押しの処理を composable に切り出す。挙動は変えない | `usePhyCanvasPointer.ts` | +| 7b | 長押しの2方式 | ループ方式(間隔を延ばし、円形インジケータと選択先のリストを付ける)と、長押しでリストを出して選ぶ方式を入れ、切り替えて比べる | 7aの composable | +| 8 | スイッチ・スタビライザーの表示 | 既定は非表示にし、トグルで色違いの十字を出す。プロパティ欄に `switchOffset` の入力欄を置く | 1の層、`PhyProperties.vue` | + +順番の理由: 1で作る層を5と8が使う。2〜5は小さく独立しているので先に片付ける。 +6・7・8は、着手前に下の点を決める必要がある。7は最も大きく、試して比べる部分なので、挙動を変えない切り出しを先に入れる。 + +着手前に決めること: + +- 3: バッジは名前を書かないのか、バッジの中に名前を収めるのか。 +- 6: 行の判定は idx-editor-feedback.md の規則(そろっている軸は座標でまとめ、ずれている軸は隣とのつながりでたどる)をそのまま使ってよいか。 + もう1つ、キーを選んでいない・複数選んでいるときにどこへ追加するか。 +- 7b: 長押しの間隔の値。リスト方式でどう選ぶか(離した位置で決めるのか、リストを出したあとにクリックするのか)。 +- 8: スタビライザーを付けるキー幅と、幅ごとの位置。これは事実なので、出典で裏取りしてから決める。推測で実装しない。 + +覆すときに影響する箇所: `mock/src/ui/phy/`、6の行判定の関数とそのテスト。 + ## B. 明示的な未決事項 ### 未確認事項