39 lines · 1.5 KB · Swift
RawDownload
import SwiftUI extension EnvironmentValues {    @Entry var menuItemHighlighted: Bool = false    /// Optional live-refresh monitor injected into menu card views so the provider card    /// subtitle can reflect the in-flight "Refreshing…" state in place while the NSMenu    /// stays open, without rebuilding the menu during AppKit tracking.    @Entry var menuCardRefreshMonitor: MenuCardRefreshMonitor?} enum MenuHighlightStyle {    static let selectionText = Color(nsColor: .selectedMenuItemTextColor)    static let normalPrimaryText = Color(nsColor: .controlTextColor)    static let normalSecondaryText = Color(nsColor: .secondaryLabelColor)     static func primary(_ highlighted: Bool) -> Color {        highlighted ? self.selectionText : self.normalPrimaryText    }     static func secondary(_ highlighted: Bool) -> Color {        highlighted ? self.selectionText : self.normalSecondaryText    }     static func error(_ highlighted: Bool) -> Color {        highlighted ? self.selectionText : Color(nsColor: .systemRed)    }     static func progressTrack(_ highlighted: Bool) -> Color {        highlighted ? self.selectionText.opacity(0.22) : Color(nsColor: .tertiaryLabelColor).opacity(0.22)    }     static func progressTint(_ highlighted: Bool, fallback: Color) -> Color {        highlighted ? self.selectionText : fallback    }     static func selectionBackground(_ highlighted: Bool) -> Color {        highlighted ? Color(nsColor: .selectedContentBackgroundColor) : .clear    }}