diff --git a/Package.swift b/Package.swift index 300e441..8bf63af 100644 --- a/Package.swift +++ b/Package.swift @@ -7,7 +7,7 @@ let package = Package( name: "Roadmap", platforms: [ .iOS(.v17), - .macOS(.v14), + .macOS(.v12), .visionOS(.v1) ], products: [ diff --git a/Sources/Roadmap/RoadmapFeatureView.swift b/Sources/Roadmap/RoadmapFeatureView.swift index 21c5fa9..535b034 100644 --- a/Sources/Roadmap/RoadmapFeatureView.swift +++ b/Sources/Roadmap/RoadmapFeatureView.swift @@ -7,6 +7,7 @@ import SwiftUI +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) struct RoadmapFeatureView: View { @Environment(\.dynamicTypeSize) var typeSize @State var viewModel: RoadmapFeatureViewModel @@ -110,6 +111,7 @@ struct RoadmapFeatureView: View { } } +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) #Preview { RoadmapFeatureView(viewModel: .init(feature: .sample(), configuration: .sampleURL())) } diff --git a/Sources/Roadmap/RoadmapFeatureViewModel.swift b/Sources/Roadmap/RoadmapFeatureViewModel.swift index 30a8737..3a8411e 100644 --- a/Sources/Roadmap/RoadmapFeatureViewModel.swift +++ b/Sources/Roadmap/RoadmapFeatureViewModel.swift @@ -8,6 +8,7 @@ import Foundation import SwiftUI +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) @MainActor @Observable final class RoadmapFeatureViewModel { diff --git a/Sources/Roadmap/RoadmapView.swift b/Sources/Roadmap/RoadmapView.swift index fcbd23e..11e896d 100644 --- a/Sources/Roadmap/RoadmapView.swift +++ b/Sources/Roadmap/RoadmapView.swift @@ -7,6 +7,7 @@ import SwiftUI +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) public struct RoadmapView: View { @State var viewModel: RoadmapViewModel let header: Header @@ -37,7 +38,7 @@ public struct RoadmapView: View { .listStyle(.plain) .conditionalSearchable(if: viewModel.allowSearching, text: $viewModel.searchText) } - + var featuresList: some View { VStack { if viewModel.allowsFilterByStatus { @@ -76,32 +77,35 @@ public struct RoadmapView: View { } } +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) public extension RoadmapView where Header == EmptyView, Footer == EmptyView { init(configuration: RoadmapConfiguration) { self.init(viewModel: .init(configuration: configuration), header: EmptyView(), footer: EmptyView(), selectedFilter: RoadmapViewModel.allStatusFilter) } } +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) public extension RoadmapView where Header: View, Footer == EmptyView { init(configuration: RoadmapConfiguration, @ViewBuilder header: () -> Header) { self.init(viewModel: .init(configuration: configuration), header: header(), footer: EmptyView(), selectedFilter: RoadmapViewModel.allStatusFilter) } } +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) public extension RoadmapView where Header == EmptyView, Footer: View { init(configuration: RoadmapConfiguration, @ViewBuilder footer: () -> Footer) { self.init(viewModel: .init(configuration: configuration), header: EmptyView(), footer: footer(), selectedFilter: RoadmapViewModel.allStatusFilter) } } +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) public extension RoadmapView where Header: View, Footer: View { init(configuration: RoadmapConfiguration, @ViewBuilder header: () -> Header, @ViewBuilder footer: () -> Footer) { self.init(viewModel: .init(configuration: configuration), header: header(), footer: footer(), selectedFilter: RoadmapViewModel.allStatusFilter) } } -struct RoadmapView_Previews: PreviewProvider { - static var previews: some View { - RoadmapView(configuration: .sampleURL()) - } +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) +#Preview { + RoadmapView(configuration: .sampleURL()) } diff --git a/Sources/Roadmap/RoadmapViewModel.swift b/Sources/Roadmap/RoadmapViewModel.swift index 90e0b81..e319d53 100644 --- a/Sources/Roadmap/RoadmapViewModel.swift +++ b/Sources/Roadmap/RoadmapViewModel.swift @@ -7,6 +7,7 @@ import Foundation +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) @MainActor @Observable final class RoadmapViewModel { diff --git a/Sources/Roadmap/RoadmapVoteButton.swift b/Sources/Roadmap/RoadmapVoteButton.swift index 32f55a0..0cad27c 100644 --- a/Sources/Roadmap/RoadmapVoteButton.swift +++ b/Sources/Roadmap/RoadmapVoteButton.swift @@ -7,6 +7,7 @@ import SwiftUI +@available(macOS 14.0, iOS 17.0, visionOS 1.0, *) struct RoadmapVoteButton: View { @State var viewModel: RoadmapFeatureViewModel @Environment(\.dynamicTypeSize) private var typeSize