import SwiftUI

/// T-iPad-2 · 自适应根视图的布局模式。
public enum LayoutMode: Equatable {
    /// 现有 iPhone 路径：`NavigationStack`（列表 → push 终端）。
    case stack
    /// iPad 分栏：`NavigationSplitView`（sidebar 会话列表 + detail 终端）。
    case split
}

/// T-iPad-2 · **唯一** size-class 决策点（仿 `PrivacyShadePolicy` 的纯谓词
/// 先例）。视图内严禁散落 `if sizeClass == …`（PLAN_IOS_IPAD §4）—— 所有
/// 分支只从这里读一次，故可 100% 单测。
///
/// regular 宽度（iPad 全屏 / 大分屏 / Stage Manager 大窗）→ `.split`；
/// compact 或 nil（iPhone / iPad Slide Over / 小分屏 / size class 未定）→
/// `.stack`。nil 走最保守回退：退到现有已测的 iPhone 路径，绝不误判成分栏。
public enum LayoutPolicy {
    public static func mode(horizontalSizeClass: UserInterfaceSizeClass?) -> LayoutMode {
        horizontalSizeClass == .regular ? .split : .stack
    }
}
