# 画面遷移図

## 全体概要

Windows Terminal は大きく2つのアプリケーション領域で構成される：
1. **TerminalApp** - メインのターミナルUI
2. **TerminalSettingsEditor** - 設定編集UI

---

## メインアプリケーション（TerminalApp）画面遷移

```mermaid
graph TD
    subgraph TerminalApp["TerminalApp（メインアプリケーション）"]
        App["App<br/>アプリケーションルート"]
        TP["TerminalPage<br/>メイン画面"]
        TRC["TabRowControl<br/>タブ行"]
        THC["TabHeaderControl<br/>タブヘッダー"]
        TBC["TitlebarControl<br/>タイトルバー"]
        MMC["MinMaxCloseControl<br/>ウィンドウ制御"]

        App --> TP
        TP --> TRC
        TP --> TBC
        TRC --> THC
        TBC --> MMC
    end

    subgraph ContentPane["コンテンツ/ペイン"]
        TC["TermControl<br/>ターミナル表示"]
        SBC["SearchBoxControl<br/>検索ボックス"]
        MPC["MarkdownPaneContent<br/>Markdownビューア"]
        SPC["SnippetsPaneContent<br/>スニペット管理"]

        TC --> SBC
    end

    subgraph Tools["ツール"]
        CP["CommandPalette<br/>コマンドパレット"]
        SC["SuggestionsControl<br/>サジェスト"]
        CPF["ColorPickupFlyout<br/>カラー選択"]
    end

    subgraph Dialogs["ダイアログ"]
        AD["AboutDialog<br/>バージョン情報"]
        QD["QuitDialog<br/>終了確認"]
        CAD["CloseAllDialog<br/>全タブ閉じ確認"]
        CRD["CloseReadOnlyDialog<br/>読み取り専用警告"]
        MLPD["MultiLinePasteDialog<br/>複数行貼り付け確認"]
        LPD["LargePasteDialog<br/>大量貼り付け確認"]
        CND["ControlNoticeDialog<br/>通知"]
        COUD["CouldNotOpenUriDialog<br/>URIエラー"]
    end

    THC -->|"タブ選択"| TC
    THC -->|"ペイン操作"| MPC
    THC -->|"ペイン操作"| SPC

    TP -->|"Ctrl+Shift+P"| CP
    TP -->|"入力時"| SC
    TP -->|"Helpメニュー"| AD
    TP -->|"ウィンドウ閉じ"| QD
    TP -->|"全タブ閉じ"| CAD
    TP -->|"読み取り専用タブ閉じ"| CRD
    TP -->|"複数行貼り付け"| MLPD
    TP -->|"大量テキスト貼り付け"| LPD
    TP -->|"通知イベント"| CND
    TP -->|"URI開くエラー"| COUD
    TP -->|"色設定"| CPF
```

---

## 設定画面（TerminalSettingsEditor）画面遷移

```mermaid
graph TD
    subgraph SettingsEditor["TerminalSettingsEditor（設定画面）"]
        MP["MainPage<br/>設定ナビゲーション"]

        subgraph GlobalSettings["グローバル設定"]
            LA["Launch<br/>起動設定"]
            INT["Interaction<br/>操作設定"]
            GA["GlobalAppearance<br/>外観設定"]
            RND["Rendering<br/>レンダリング設定"]
            CMP["Compatibility<br/>互換性設定"]
            CS["ColorSchemes<br/>配色一覧"]
            ECS["EditColorScheme<br/>配色編集"]
            ACT["Actions<br/>アクション一覧"]
            EA["EditAction<br/>アクション編集"]
            NTM["NewTabMenu<br/>新規タブメニュー設定"]
            EXT["Extensions<br/>拡張機能管理"]
        end

        subgraph ProfileSettings["プロファイル設定"]
            AP["AddProfile<br/>プロファイル追加"]
            PB["Profiles_Base<br/>基本設定"]
            PA["Profiles_Appearance<br/>外観設定"]
            PT["Profiles_Terminal<br/>ターミナル設定"]
            PAD["Profiles_Advanced<br/>詳細設定"]
            PBO["Profiles_Base_Orphaned<br/>孤立プロファイル"]
        end

        MP -->|"起動"| LA
        MP -->|"操作"| INT
        MP -->|"外観"| GA
        MP -->|"レンダリング"| RND
        MP -->|"互換性"| CMP
        MP -->|"配色"| CS
        MP -->|"アクション"| ACT
        MP -->|"新規タブメニュー"| NTM
        MP -->|"拡張機能"| EXT
        MP -->|"プロファイル追加"| AP
        MP -->|"プロファイル選択"| PB
        MP -->|"プロファイル選択"| PA
        MP -->|"プロファイル選択"| PT
        MP -->|"プロファイル選択"| PAD
        MP -->|"孤立プロファイル"| PBO

        CS -->|"編集"| ECS
        ECS -->|"戻る"| CS
        ACT -->|"編集"| EA
        EA -->|"戻る"| ACT
    end
```

---

## アプリケーション間の遷移

```mermaid
graph LR
    TP["TerminalPage<br/>メイン画面"]
    MP["MainPage<br/>設定画面"]

    TP -->|"設定を開く<br/>（Ctrl+,）"| MP
    MP -->|"設定を閉じる"| TP
```
