import AppKitimport SwiftUI enum ProviderSettingsMetrics { static let rowSpacing: CGFloat = 12 static let rowInsets = EdgeInsets(top: 6, leading: 0, bottom: 6, trailing: 0) static let dividerBottomInset: CGFloat = 8 static let listTopPadding: CGFloat = 12 static let checkboxSize: CGFloat = 18 static let iconSize: CGFloat = 18 static let reorderHandleSize: CGFloat = 12 static let reorderDotSize: CGFloat = 2 static let reorderDotSpacing: CGFloat = 3 static let pickerLabelWidth: CGFloat = 92 static let sidebarWidth: CGFloat = 240 static let sidebarCornerRadius: CGFloat = 12 static let sidebarSubtitleHeight: CGFloat = { let font = NSFont.systemFont(ofSize: NSFont.smallSystemFontSize) let layout = NSLayoutManager() return ceil(layout.defaultLineHeight(for: font) * 2) }() static let detailMaxWidth: CGFloat = 640 static let metricLabelWidth: CGFloat = 120 static let metricBarWidth: CGFloat = 220 static func labelWidth(for labels: [String], font: NSFont, minimum: CGFloat = 0) -> CGFloat { let maxWidth = labels .filter { !$0.isEmpty } .map { ($0 as NSString).size(withAttributes: [.font: font]).width } .max() ?? 0 return max(minimum, ceil(maxWidth)) } static func metricLabelFont() -> NSFont { let baseSize = NSFont.preferredFont(forTextStyle: .subheadline).pointSize return NSFont.systemFont(ofSize: baseSize, weight: .semibold) } static func infoLabelFont() -> NSFont { NSFont.preferredFont(forTextStyle: .footnote) }}
import AppKit
import SwiftUI
enum ProviderSettingsMetrics {
static let rowSpacing: CGFloat = 12
static let rowInsets = EdgeInsets(top: 6, leading: 0, bottom: 6, trailing: 0)
static let dividerBottomInset: CGFloat = 8
static let listTopPadding: CGFloat = 12
static let checkboxSize: CGFloat = 18
static let iconSize: CGFloat = 18
static let reorderHandleSize: CGFloat = 12
static let reorderDotSize: CGFloat = 2
static let reorderDotSpacing: CGFloat = 3
static let pickerLabelWidth: CGFloat = 92
static let sidebarWidth: CGFloat = 240
static let sidebarCornerRadius: CGFloat = 12
static let sidebarSubtitleHeight: CGFloat = {
let font = NSFont.systemFont(ofSize: NSFont.smallSystemFontSize)
let layout = NSLayoutManager()
return ceil(layout.defaultLineHeight(for: font) * 2)
}()
static let detailMaxWidth: CGFloat = 640
static let metricLabelWidth: CGFloat = 120
static let metricBarWidth: CGFloat = 220
static func labelWidth(for labels: [String], font: NSFont, minimum: CGFloat = 0) -> CGFloat {
let maxWidth = labels
.filter { !$0.isEmpty }
.map { ($0 as NSString).size(withAttributes: [.font: font]).width }
.max() ?? 0
return max(minimum, ceil(maxWidth))
}
static func metricLabelFont() -> NSFont {
let baseSize = NSFont.preferredFont(forTextStyle: .subheadline).pointSize
return NSFont.systemFont(ofSize: baseSize, weight: .semibold)
}
static func infoLabelFont() -> NSFont {
NSFont.preferredFont(forTextStyle: .footnote)
}
}