115 lines · 3.6 KB · Swift
RawDownload
import SwiftUIimport WidgetKit @mainstruct CodexBarWidgetBundle: WidgetBundle {    var body: some Widget {        CodexBarSwitcherWidget()        CodexBarUsageWidget()        CodexBarHistoryWidget()        CodexBarCompactWidget()        CodexBarBurnDownWidget()        CodexBarCombinedBurnDownWidget()    }} struct CodexBarSwitcherWidget: Widget {    private let kind = "CodexBarSwitcherWidget"     var body: some WidgetConfiguration {        StaticConfiguration(            kind: self.kind,            provider: CodexBarSwitcherTimelineProvider())        { entry in            CodexBarSwitcherWidgetView(entry: entry)        }        .configurationDisplayName("CodexBar Switcher")        .description("Usage widget with a provider switcher.")        .supportedFamilies([.systemSmall, .systemMedium, .systemLarge])    }} struct CodexBarUsageWidget: Widget {    private let kind = "CodexBarUsageWidget"     var body: some WidgetConfiguration {        AppIntentConfiguration(            kind: self.kind,            intent: ProviderSelectionIntent.self,            provider: CodexBarTimelineProvider())        { entry in            CodexBarUsageWidgetView(entry: entry)        }        .configurationDisplayName("CodexBar Usage")        .description("Session and weekly usage with credits and costs.")        .supportedFamilies([.systemSmall, .systemMedium, .systemLarge])    }} struct CodexBarHistoryWidget: Widget {    private let kind = "CodexBarHistoryWidget"     var body: some WidgetConfiguration {        AppIntentConfiguration(            kind: self.kind,            intent: ProviderSelectionIntent.self,            provider: CodexBarTimelineProvider())        { entry in            CodexBarHistoryWidgetView(entry: entry)        }        .configurationDisplayName("CodexBar History")        .description("Usage history chart with recent totals.")        .supportedFamilies([.systemMedium, .systemLarge])    }} struct CodexBarCompactWidget: Widget {    private let kind = "CodexBarCompactWidget"     var body: some WidgetConfiguration {        AppIntentConfiguration(            kind: self.kind,            intent: CompactMetricSelectionIntent.self,            provider: CodexBarCompactTimelineProvider())        { entry in            CodexBarCompactWidgetView(entry: entry)        }        .configurationDisplayName("CodexBar Metric")        .description("Compact widget for credits or cost.")        .supportedFamilies([.systemSmall])    }} struct CodexBarBurnDownWidget: Widget {    private let kind = "CodexBarBurnDownWidget"     var body: some WidgetConfiguration {        AppIntentConfiguration(            kind: self.kind,            intent: BurnDownSelectionIntent.self,            provider: BurnDownTimelineProvider())        { entry in            BurnDownWidgetView(entry: entry)        }        .configurationDisplayName("CodexBar Burn Down")        .description("Remaining budget compared with an ideal steady burn rate.")        .supportedFamilies([.systemMedium])    }} struct CodexBarCombinedBurnDownWidget: Widget {    private let kind = "CodexBarCombinedBurnDownWidget"     var body: some WidgetConfiguration {        AppIntentConfiguration(            kind: self.kind,            intent: BurnProviderSelectionIntent.self,            provider: CombinedBurnDownTimelineProvider())        { entry in            CombinedBurnDownWidgetView(entry: entry)        }        .configurationDisplayName("CodexBar Burn Down (Combined)")        .description("Session and weekly burn-down charts in one tile.")        .supportedFamilies([.systemMedium])    }}