Build Information
Failed to build ActionMenu, reference main (e64f20), with Swift 6.2 for macOS (SPM) on 16 Aug 2026 12:28:53 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/peterfriese/ActionMenu.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/peterfriese/ActionMenu
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at e64f20d docs: bump SPM install version to 0.3.1
Cloned https://github.com/peterfriese/ActionMenu.git
Revision (git rev-parse @):
e64f20df67d18b6dcd4cb2fd94706b31fab0af65
SUCCESS checkout https://github.com/peterfriese/ActionMenu.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/peterfriese/ActionMenu.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.3.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--3CB7CFEC50E0D141.txt
[3/5] Compiling ActionMenu Styling.swift
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:21:11: error: 'PrimitiveButtonStyle' is only available in macOS 10.15 or newer
19 | import SwiftUI
20 |
21 | extension PrimitiveButtonStyle where Self == ActionMenuButtonStyle {
| | `- error: 'PrimitiveButtonStyle' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing extension
22 | /// A button style that dismisses the current view when the button is tapped.
23 | ///
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:40:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
38 | }
39 |
40 | extension EnvironmentValues {
| | `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing extension
41 | /// Whether the enclosing menu row represents a destructive action.
42 | var isDestructiveAction: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:49:18: error: 'dismiss' is only available in macOS 12.0 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
| `- error: 'dismiss' is only available in macOS 12.0 or newer
50 | @Binding var pendingAction: (() -> Void)?
51 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:49:4: error: 'Environment' is only available in macOS 10.15 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
| `- error: 'Environment' is only available in macOS 10.15 or newer
50 | @Binding var pendingAction: (() -> Void)?
51 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:50:4: error: 'Binding' is only available in macOS 10.15 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
50 | @Binding var pendingAction: (() -> Void)?
| `- error: 'Binding' is only available in macOS 10.15 or newer
51 |
52 | func makeBody(configuration: Configuration) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:52:55: error: 'View' is only available in macOS 10.15 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
50 | @Binding var pendingAction: (() -> Void)?
51 |
52 | func makeBody(configuration: Configuration) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
53 | Button {
54 | pendingAction = { configuration.trigger() }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:68:11: error: 'LabelStyle' is only available in macOS 11.0 or newer
66 | }
67 |
68 | extension LabelStyle where Self == MenuLabelStyle {
| | `- error: 'LabelStyle' is only available in macOS 11.0 or newer
| `- note: add '@available' attribute to enclosing extension
69 | /// A label style that displays the title on the left and the icon on the right.
70 | ///
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:77:4: error: 'Environment' is only available in macOS 10.15 or newer
74 | }
75 |
76 | struct MenuLabelStyle: LabelStyle {
| `- note: add '@available' attribute to enclosing struct
77 | @Environment(\.isDestructiveAction) private var isDestructiveAction
| `- error: 'Environment' is only available in macOS 10.15 or newer
78 | @ScaledMetric(relativeTo: .body) private var iconSize: CGFloat = 22.0
79 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:78:4: error: 'ScaledMetric' is only available in macOS 11.0 or newer
74 | }
75 |
76 | struct MenuLabelStyle: LabelStyle {
| `- note: add '@available' attribute to enclosing struct
77 | @Environment(\.isDestructiveAction) private var isDestructiveAction
78 | @ScaledMetric(relativeTo: .body) private var iconSize: CGFloat = 22.0
| `- error: 'ScaledMetric' is only available in macOS 11.0 or newer
79 |
80 | func makeBody(configuration: Configuration) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:80:55: error: 'View' is only available in macOS 10.15 or newer
74 | }
75 |
76 | struct MenuLabelStyle: LabelStyle {
| `- note: add '@available' attribute to enclosing struct
77 | @Environment(\.isDestructiveAction) private var isDestructiveAction
78 | @ScaledMetric(relativeTo: .body) private var iconSize: CGFloat = 22.0
79 |
80 | func makeBody(configuration: Configuration) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
81 | HStack(spacing: 22) {
82 | configuration.title
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:91:2: error: 'Preview(_:body:)' is only available in macOS 10.15 or newer
89 | }
90 |
91 | #Preview {
| `- error: 'Preview(_:body:)' is only available in macOS 10.15 or newer
92 | List {
93 | Section {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:3: error: 'List' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: 'List' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:3: error: 'init(content:)' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: 'init(content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:5: error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:5: error: 'Section' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: 'Section' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:5: error: 'init(content:)' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: 'init(content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:13: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:13: error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:13: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:13: error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:94:7: error: 'Button' is only available in macOS 10.15 or newer
92 | List {
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
| |- error: 'Button' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
95 | }
96 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:94:7: error: 'init(_:systemImage:action:)' is only available in macOS 11.0 or newer
92 | List {
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
| |- error: 'init(_:systemImage:action:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
95 | }
96 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:94:14: error: 'LocalizedStringKey' is only available in macOS 10.15 or newer
92 | List {
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
| |- error: 'LocalizedStringKey' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
95 | }
96 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:96:8: error: 'buttonStyle' is only available in macOS 10.15 or newer
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
96 | .buttonStyle(.action)
| |- error: 'buttonStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
97 | }
98 | Section {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:98:5: error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
96 | .buttonStyle(.action)
97 | }
98 | Section {
| |- error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
99 | Button("Delete item", role: .destructive) {
100 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:98:5: error: 'Section' is only available in macOS 10.15 or newer
96 | .buttonStyle(.action)
97 | }
98 | Section {
| |- error: 'Section' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
99 | Button("Delete item", role: .destructive) {
100 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:98:5: error: 'init(content:)' is only available in macOS 10.15 or newer
96 | .buttonStyle(.action)
97 | }
98 | Section {
| |- error: 'init(content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
99 | Button("Delete item", role: .destructive) {
100 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:98:13: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
96 | .buttonStyle(.action)
97 | }
98 | Section {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
99 | Button("Delete item", role: .destructive) {
100 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:99:7: error: 'Button' is only available in macOS 10.15 or newer
97 | }
98 | Section {
99 | Button("Delete item", role: .destructive) {
| |- error: 'Button' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
100 | }
101 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:99:7: error: 'init(_:role:action:)' is only available in macOS 12.0 or newer
97 | }
98 | Section {
99 | Button("Delete item", role: .destructive) {
| |- error: 'init(_:role:action:)' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
100 | }
101 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:99:14: error: 'LocalizedStringKey' is only available in macOS 10.15 or newer
97 | }
98 | Section {
99 | Button("Delete item", role: .destructive) {
| |- error: 'LocalizedStringKey' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
100 | }
101 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:101:8: error: 'buttonStyle' is only available in macOS 10.15 or newer
99 | Button("Delete item", role: .destructive) {
100 | }
101 | .buttonStyle(.action)
| |- error: 'buttonStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
102 | }
103 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:104:4: error: 'labelStyle' is only available in macOS 11.0 or newer
102 | }
103 | }
104 | .labelStyle(.menu)
| |- error: 'labelStyle' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
105 | }
106 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:248:4: error: 'Previewable()' is only available in macOS 14.0 or newer
246 | "Strawberry",
247 | ]
248 | @Previewable @State var isMoreActionTapped = false
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
249 | @Previewable @State var selectedFruit: String? = nil
250 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:249:4: error: 'Previewable()' is only available in macOS 14.0 or newer
247 | ]
248 | @Previewable @State var isMoreActionTapped = false
249 | @Previewable @State var selectedFruit: String? = nil
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
250 |
251 | Button(action: { isMoreActionTapped.toggle() }) {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:244:4: error: 'Previewable()' is only available in macOS 14.0 or newer
242 |
243 | #Preview {
244 | @Previewable @State var fruits = [
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
245 | "Apple", "Banana", "Orange", "Mango", "Pear", "Grape", "Pineapple",
246 | "Strawberry",
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:254:4: error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: required by instance method 'actionMenu(title:isPresented:content:)' where 'some View' = '()'
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
:
252 | Text("Show Action Menu")
253 | }
254 | .actionMenu(title: "Actions", isPresented: $isMoreActionTapped) {
| |- error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
| `- note: only concrete types such as structs, enums and classes can conform to protocols
255 | Section("Text Operations") {
256 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:292:4: error: 'Previewable()' is only available in macOS 14.0 or newer
290 | "Strawberry",
291 | ]
292 | @Previewable @State var selectedFruit: String? = nil
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
293 |
294 | ActionMenu(title: "Actions") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:288:4: error: 'Previewable()' is only available in macOS 14.0 or newer
286 |
287 | #Preview {
288 | @Previewable @State var fruits = [
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
289 | "Apple", "Banana", "Orange", "Mango", "Pear", "Grape", "Pineapple",
290 | "Strawberry",
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:294:3: error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: required by generic struct 'ActionMenu' where 'Content' = '()'
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
:
292 | @Previewable @State var selectedFruit: String? = nil
293 |
294 | ActionMenu(title: "Actions") {
| |- error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
| `- note: only concrete types such as structs, enums and classes can conform to protocols
295 | Section("Text Operations") {
296 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:59:33: error: extraneous argument label 'uiColor:' in call
57 | if configuration.role == .destructive {
58 | configuration.label
59 | .foregroundStyle(Color(uiColor: .systemRed))
| `- error: extraneous argument label 'uiColor:' in call
60 | .environment(\.isDestructiveAction, true)
61 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:85:53: error: extraneous argument label 'uiColor:' in call
83 | Spacer()
84 | configuration.icon
85 | .foregroundStyle(isDestructiveAction ? Color(uiColor: .systemRed) : Color.primary)
| `- error: extraneous argument label 'uiColor:' in call
86 | .font(.system(size: iconSize, weight: .light))
87 | }
[#ProtocolTypeNonConformance]: <https://docs.swift.org/compiler/documentation/diagnostics/protocol-type-non-conformance>
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/5] Emitting module ActionMenu
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:59:4: error: 'State' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
| `- error: 'State' is only available in macOS 10.15 or newer
60 |
61 | /// The bottom edge of the last menu row, in global coordinates.
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:62:4: error: 'Binding' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
60 |
61 | /// The bottom edge of the last menu row, in global coordinates.
62 | @Binding var rowsBottom: CGFloat
| `- error: 'Binding' is only available in macOS 10.15 or newer
63 |
64 | /// The leading edge of the menu rows, in global coordinates (their side margin).
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:65:4: error: 'Binding' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
63 |
64 | /// The leading edge of the menu rows, in global coordinates (their side margin).
65 | @Binding var sideMargin: CGFloat
| `- error: 'Binding' is only available in macOS 10.15 or newer
66 |
67 | /// The top edge of the sheet's root view, in global coordinates.
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:68:4: error: 'Binding' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
66 |
67 | /// The top edge of the sheet's root view, in global coordinates.
68 | @Binding var sheetTop: CGFloat
| `- error: 'Binding' is only available in macOS 10.15 or newer
69 |
70 | func body(content: Content) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:70:39: error: 'View' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
68 | @Binding var sheetTop: CGFloat
69 |
70 | func body(content: Content) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
71 | content
72 | .onScrollGeometryChange(for: ScrollGeometry.self, of: { $0 }, action: { _, newGeo in
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:97:18: error: 'dismiss' is only available in macOS 12.0 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
| `- error: 'dismiss' is only available in macOS 12.0 or newer
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:97:4: error: 'Environment' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
| `- error: 'Environment' is only available in macOS 10.15 or newer
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:98:4: error: 'State' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
| `- error: 'State' is only available in macOS 10.15 or newer
99 | @State private var rowsBottom: CGFloat = 0
100 | @State private var sideMargin: CGFloat = 0
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:99:4: error: 'State' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
| `- error: 'State' is only available in macOS 10.15 or newer
100 | @State private var sideMargin: CGFloat = 0
101 | @State private var sheetTop: CGFloat = 0
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:100:4: error: 'State' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
100 | @State private var sideMargin: CGFloat = 0
| `- error: 'State' is only available in macOS 10.15 or newer
101 | @State private var sheetTop: CGFloat = 0
102 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:101:4: error: 'State' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
100 | @State private var sideMargin: CGFloat = 0
101 | @State private var sheetTop: CGFloat = 0
| `- error: 'State' is only available in macOS 10.15 or newer
102 |
103 | let title: String
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:108:6: error: unknown attribute 'ContentBuilder'
106 | init(
107 | title: String = "Options",
108 | @ContentBuilder content: () -> Content
| `- error: unknown attribute 'ContentBuilder'
109 | ) {
110 | self.title = title
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:114:18: error: 'View' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
:
112 | }
113 |
114 | var body: some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
115 | NavigationStack {
116 | List {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:96:28: error: 'View' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:168:4: error: 'Binding' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
| `- error: 'Binding' is only available in macOS 10.15 or newer
169 | let menuContent: MenuContent
170 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:171:52: error: unknown attribute 'ContentBuilder'
169 | let menuContent: MenuContent
170 |
171 | init(title: String, isPresented: Binding<Bool>, @ContentBuilder menuContent: () -> MenuContent) {
| `- error: unknown attribute 'ContentBuilder'
172 | self.title = title
173 | self._isPresented = isPresented
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:171:36: error: 'Binding' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
169 | let menuContent: MenuContent
170 |
171 | init(title: String, isPresented: Binding<Bool>, @ContentBuilder menuContent: () -> MenuContent) {
| | `- error: 'Binding' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing initializer
172 | self.title = title
173 | self._isPresented = isPresented
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:177:39: error: 'View' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
:
175 | }
176 |
177 | func body(content: Content) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
178 | content
179 | .sheet(isPresented: $isPresented) {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:166:40: error: 'View' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:231:41: error: 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
| `- error: 'View' is only available in macOS 10.15 or newer
232 | ) -> some View {
233 | modifier(
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:230:45: error: 'Binding' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
| `- error: 'Binding' is only available in macOS 10.15 or newer
231 | @ContentBuilder content: () -> some View
232 | ) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:231:41: error: 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
| `- error: 'View' is only available in macOS 10.15 or newer
232 | ) -> some View {
233 | modifier(
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:232:13: error: 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
232 | ) -> some View {
| `- error: 'View' is only available in macOS 10.15 or newer
233 | modifier(
234 | ActionMenuModifier(
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:231:6: error: unknown attribute 'ContentBuilder'
229 | public func actionMenu(
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
| `- error: unknown attribute 'ContentBuilder'
232 | ) -> some View {
233 | modifier(
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:187:11: error: 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:248:4: error: 'Previewable()' is only available in macOS 14.0 or newer
246 | "Strawberry",
247 | ]
248 | @Previewable @State var isMoreActionTapped = false
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
249 | @Previewable @State var selectedFruit: String? = nil
250 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:249:4: error: 'Previewable()' is only available in macOS 14.0 or newer
247 | ]
248 | @Previewable @State var isMoreActionTapped = false
249 | @Previewable @State var selectedFruit: String? = nil
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
250 |
251 | Button(action: { isMoreActionTapped.toggle() }) {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:244:4: error: 'Previewable()' is only available in macOS 14.0 or newer
242 |
243 | #Preview {
244 | @Previewable @State var fruits = [
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
245 | "Apple", "Banana", "Orange", "Mango", "Pear", "Grape", "Pineapple",
246 | "Strawberry",
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:254:4: error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: required by instance method 'actionMenu(title:isPresented:content:)' where 'some View' = '()'
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
:
252 | Text("Show Action Menu")
253 | }
254 | .actionMenu(title: "Actions", isPresented: $isMoreActionTapped) {
| |- error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
| `- note: only concrete types such as structs, enums and classes can conform to protocols
255 | Section("Text Operations") {
256 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:292:4: error: 'Previewable()' is only available in macOS 14.0 or newer
290 | "Strawberry",
291 | ]
292 | @Previewable @State var selectedFruit: String? = nil
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
293 |
294 | ActionMenu(title: "Actions") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:288:4: error: 'Previewable()' is only available in macOS 14.0 or newer
286 |
287 | #Preview {
288 | @Previewable @State var fruits = [
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
289 | "Apple", "Banana", "Orange", "Mango", "Pear", "Grape", "Pineapple",
290 | "Strawberry",
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:294:3: error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: required by generic struct 'ActionMenu' where 'Content' = '()'
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
:
292 | @Previewable @State var selectedFruit: String? = nil
293 |
294 | ActionMenu(title: "Actions") {
| |- error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
| `- note: only concrete types such as structs, enums and classes can conform to protocols
295 | Section("Text Operations") {
296 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:21:11: error: 'PrimitiveButtonStyle' is only available in macOS 10.15 or newer
19 | import SwiftUI
20 |
21 | extension PrimitiveButtonStyle where Self == ActionMenuButtonStyle {
| | `- error: 'PrimitiveButtonStyle' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing extension
22 | /// A button style that dismisses the current view when the button is tapped.
23 | ///
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:40:11: error: 'EnvironmentValues' is only available in macOS 10.15 or newer
38 | }
39 |
40 | extension EnvironmentValues {
| | `- error: 'EnvironmentValues' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing extension
41 | /// Whether the enclosing menu row represents a destructive action.
42 | var isDestructiveAction: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:49:18: error: 'dismiss' is only available in macOS 12.0 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
| `- error: 'dismiss' is only available in macOS 12.0 or newer
50 | @Binding var pendingAction: (() -> Void)?
51 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:49:4: error: 'Environment' is only available in macOS 10.15 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
| `- error: 'Environment' is only available in macOS 10.15 or newer
50 | @Binding var pendingAction: (() -> Void)?
51 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:50:4: error: 'Binding' is only available in macOS 10.15 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
50 | @Binding var pendingAction: (() -> Void)?
| `- error: 'Binding' is only available in macOS 10.15 or newer
51 |
52 | func makeBody(configuration: Configuration) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:52:55: error: 'View' is only available in macOS 10.15 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
50 | @Binding var pendingAction: (() -> Void)?
51 |
52 | func makeBody(configuration: Configuration) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
53 | Button {
54 | pendingAction = { configuration.trigger() }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:68:11: error: 'LabelStyle' is only available in macOS 11.0 or newer
66 | }
67 |
68 | extension LabelStyle where Self == MenuLabelStyle {
| | `- error: 'LabelStyle' is only available in macOS 11.0 or newer
| `- note: add '@available' attribute to enclosing extension
69 | /// A label style that displays the title on the left and the icon on the right.
70 | ///
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:77:4: error: 'Environment' is only available in macOS 10.15 or newer
74 | }
75 |
76 | struct MenuLabelStyle: LabelStyle {
| `- note: add '@available' attribute to enclosing struct
77 | @Environment(\.isDestructiveAction) private var isDestructiveAction
| `- error: 'Environment' is only available in macOS 10.15 or newer
78 | @ScaledMetric(relativeTo: .body) private var iconSize: CGFloat = 22.0
79 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:78:4: error: 'ScaledMetric' is only available in macOS 11.0 or newer
74 | }
75 |
76 | struct MenuLabelStyle: LabelStyle {
| `- note: add '@available' attribute to enclosing struct
77 | @Environment(\.isDestructiveAction) private var isDestructiveAction
78 | @ScaledMetric(relativeTo: .body) private var iconSize: CGFloat = 22.0
| `- error: 'ScaledMetric' is only available in macOS 11.0 or newer
79 |
80 | func makeBody(configuration: Configuration) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:80:55: error: 'View' is only available in macOS 10.15 or newer
74 | }
75 |
76 | struct MenuLabelStyle: LabelStyle {
| `- note: add '@available' attribute to enclosing struct
77 | @Environment(\.isDestructiveAction) private var isDestructiveAction
78 | @ScaledMetric(relativeTo: .body) private var iconSize: CGFloat = 22.0
79 |
80 | func makeBody(configuration: Configuration) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
81 | HStack(spacing: 22) {
82 | configuration.title
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:91:2: error: 'Preview(_:body:)' is only available in macOS 10.15 or newer
89 | }
90 |
91 | #Preview {
| `- error: 'Preview(_:body:)' is only available in macOS 10.15 or newer
92 | List {
93 | Section {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:3: error: 'List' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: 'List' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:3: error: 'init(content:)' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: 'init(content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:5: error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:5: error: 'Section' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: 'Section' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:5: error: 'init(content:)' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: 'init(content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:13: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:13: error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:13: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:93:13: error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
91 | #Preview {
92 | List {
93 | Section {
| |- error: conformance of 'Image' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:94:7: error: 'Button' is only available in macOS 10.15 or newer
92 | List {
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
| |- error: 'Button' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
95 | }
96 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:94:7: error: 'init(_:systemImage:action:)' is only available in macOS 11.0 or newer
92 | List {
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
| |- error: 'init(_:systemImage:action:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
95 | }
96 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:94:14: error: 'LocalizedStringKey' is only available in macOS 10.15 or newer
92 | List {
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
| |- error: 'LocalizedStringKey' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
95 | }
96 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:96:8: error: 'buttonStyle' is only available in macOS 10.15 or newer
94 | Button("Uppercase", systemImage: "characters.uppercase") {
95 | }
96 | .buttonStyle(.action)
| |- error: 'buttonStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
97 | }
98 | Section {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:98:5: error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
96 | .buttonStyle(.action)
97 | }
98 | Section {
| |- error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
99 | Button("Delete item", role: .destructive) {
100 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:98:5: error: 'Section' is only available in macOS 10.15 or newer
96 | .buttonStyle(.action)
97 | }
98 | Section {
| |- error: 'Section' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
99 | Button("Delete item", role: .destructive) {
100 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:98:5: error: 'init(content:)' is only available in macOS 10.15 or newer
96 | .buttonStyle(.action)
97 | }
98 | Section {
| |- error: 'init(content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
99 | Button("Delete item", role: .destructive) {
100 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:98:13: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
96 | .buttonStyle(.action)
97 | }
98 | Section {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
99 | Button("Delete item", role: .destructive) {
100 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:99:7: error: 'Button' is only available in macOS 10.15 or newer
97 | }
98 | Section {
99 | Button("Delete item", role: .destructive) {
| |- error: 'Button' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
100 | }
101 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:99:7: error: 'init(_:role:action:)' is only available in macOS 12.0 or newer
97 | }
98 | Section {
99 | Button("Delete item", role: .destructive) {
| |- error: 'init(_:role:action:)' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
100 | }
101 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:99:14: error: 'LocalizedStringKey' is only available in macOS 10.15 or newer
97 | }
98 | Section {
99 | Button("Delete item", role: .destructive) {
| |- error: 'LocalizedStringKey' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
100 | }
101 | .buttonStyle(.action)
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:101:8: error: 'buttonStyle' is only available in macOS 10.15 or newer
99 | Button("Delete item", role: .destructive) {
100 | }
101 | .buttonStyle(.action)
| |- error: 'buttonStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
102 | }
103 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:92:8: error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
90 |
91 | #Preview {
92 | List {
| |- error: conformance of 'Section<Parent, Content, Footer>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
93 | Section {
94 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:104:4: error: 'labelStyle' is only available in macOS 11.0 or newer
102 | }
103 | }
104 | .labelStyle(.menu)
| |- error: 'labelStyle' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
105 | }
106 |
[#ProtocolTypeNonConformance]: <https://docs.swift.org/compiler/documentation/diagnostics/protocol-type-non-conformance>
[5/5] Compiling ActionMenu ActionMenu.swift
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:59:4: error: 'State' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
| `- error: 'State' is only available in macOS 10.15 or newer
60 |
61 | /// The bottom edge of the last menu row, in global coordinates.
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:62:4: error: 'Binding' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
60 |
61 | /// The bottom edge of the last menu row, in global coordinates.
62 | @Binding var rowsBottom: CGFloat
| `- error: 'Binding' is only available in macOS 10.15 or newer
63 |
64 | /// The leading edge of the menu rows, in global coordinates (their side margin).
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:65:4: error: 'Binding' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
63 |
64 | /// The leading edge of the menu rows, in global coordinates (their side margin).
65 | @Binding var sideMargin: CGFloat
| `- error: 'Binding' is only available in macOS 10.15 or newer
66 |
67 | /// The top edge of the sheet's root view, in global coordinates.
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:68:4: error: 'Binding' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
66 |
67 | /// The top edge of the sheet's root view, in global coordinates.
68 | @Binding var sheetTop: CGFloat
| `- error: 'Binding' is only available in macOS 10.15 or newer
69 |
70 | func body(content: Content) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:70:39: error: 'View' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
68 | @Binding var sheetTop: CGFloat
69 |
70 | func body(content: Content) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
71 | content
72 | .onScrollGeometryChange(for: ScrollGeometry.self, of: { $0 }, action: { _, newGeo in
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:97:18: error: 'dismiss' is only available in macOS 12.0 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
| `- error: 'dismiss' is only available in macOS 12.0 or newer
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:97:4: error: 'Environment' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
| `- error: 'Environment' is only available in macOS 10.15 or newer
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:98:4: error: 'State' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
| `- error: 'State' is only available in macOS 10.15 or newer
99 | @State private var rowsBottom: CGFloat = 0
100 | @State private var sideMargin: CGFloat = 0
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:99:4: error: 'State' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
| `- error: 'State' is only available in macOS 10.15 or newer
100 | @State private var sideMargin: CGFloat = 0
101 | @State private var sheetTop: CGFloat = 0
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:100:4: error: 'State' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
100 | @State private var sideMargin: CGFloat = 0
| `- error: 'State' is only available in macOS 10.15 or newer
101 | @State private var sheetTop: CGFloat = 0
102 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:101:4: error: 'State' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
99 | @State private var rowsBottom: CGFloat = 0
100 | @State private var sideMargin: CGFloat = 0
101 | @State private var sheetTop: CGFloat = 0
| `- error: 'State' is only available in macOS 10.15 or newer
102 |
103 | let title: String
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:108:6: error: unknown attribute 'ContentBuilder'
106 | init(
107 | title: String = "Options",
108 | @ContentBuilder content: () -> Content
| `- error: unknown attribute 'ContentBuilder'
109 | ) {
110 | self.title = title
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:114:18: error: 'View' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
:
112 | }
113 |
114 | var body: some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
115 | NavigationStack {
116 | List {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:96:28: error: 'View' is only available in macOS 10.15 or newer
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing generic struct
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:168:4: error: 'Binding' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
| `- error: 'Binding' is only available in macOS 10.15 or newer
169 | let menuContent: MenuContent
170 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:171:52: error: unknown attribute 'ContentBuilder'
169 | let menuContent: MenuContent
170 |
171 | init(title: String, isPresented: Binding<Bool>, @ContentBuilder menuContent: () -> MenuContent) {
| `- error: unknown attribute 'ContentBuilder'
172 | self.title = title
173 | self._isPresented = isPresented
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:171:36: error: 'Binding' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
169 | let menuContent: MenuContent
170 |
171 | init(title: String, isPresented: Binding<Bool>, @ContentBuilder menuContent: () -> MenuContent) {
| | `- error: 'Binding' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing initializer
172 | self.title = title
173 | self._isPresented = isPresented
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:177:39: error: 'View' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
:
175 | }
176 |
177 | func body(content: Content) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing instance method
178 | content
179 | .sheet(isPresented: $isPresented) {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:166:40: error: 'View' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:231:41: error: 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
| `- error: 'View' is only available in macOS 10.15 or newer
232 | ) -> some View {
233 | modifier(
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:230:45: error: 'Binding' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
| `- error: 'Binding' is only available in macOS 10.15 or newer
231 | @ContentBuilder content: () -> some View
232 | ) -> some View {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:231:41: error: 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
| `- error: 'View' is only available in macOS 10.15 or newer
232 | ) -> some View {
233 | modifier(
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:232:13: error: 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
232 | ) -> some View {
| `- error: 'View' is only available in macOS 10.15 or newer
233 | modifier(
234 | ActionMenuModifier(
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:231:6: error: unknown attribute 'ContentBuilder'
229 | public func actionMenu(
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
| `- error: unknown attribute 'ContentBuilder'
232 | ) -> some View {
233 | modifier(
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:187:11: error: 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:248:4: error: 'Previewable()' is only available in macOS 14.0 or newer
246 | "Strawberry",
247 | ]
248 | @Previewable @State var isMoreActionTapped = false
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
249 | @Previewable @State var selectedFruit: String? = nil
250 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:249:4: error: 'Previewable()' is only available in macOS 14.0 or newer
247 | ]
248 | @Previewable @State var isMoreActionTapped = false
249 | @Previewable @State var selectedFruit: String? = nil
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
250 |
251 | Button(action: { isMoreActionTapped.toggle() }) {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:244:4: error: 'Previewable()' is only available in macOS 14.0 or newer
242 |
243 | #Preview {
244 | @Previewable @State var fruits = [
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
245 | "Apple", "Banana", "Orange", "Mango", "Pear", "Grape", "Pineapple",
246 | "Strawberry",
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:254:4: error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: required by instance method 'actionMenu(title:isPresented:content:)' where 'some View' = '()'
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
:
252 | Text("Show Action Menu")
253 | }
254 | .actionMenu(title: "Actions", isPresented: $isMoreActionTapped) {
| |- error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
| `- note: only concrete types such as structs, enums and classes can conform to protocols
255 | Section("Text Operations") {
256 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:292:4: error: 'Previewable()' is only available in macOS 14.0 or newer
290 | "Strawberry",
291 | ]
292 | @Previewable @State var selectedFruit: String? = nil
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
293 |
294 | ActionMenu(title: "Actions") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:288:4: error: 'Previewable()' is only available in macOS 14.0 or newer
286 |
287 | #Preview {
288 | @Previewable @State var fruits = [
| |- error: 'Previewable()' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
289 | "Apple", "Banana", "Orange", "Mango", "Pear", "Grape", "Pineapple",
290 | "Strawberry",
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:294:3: error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
94 | }
95 |
96 | struct ActionMenu<Content: View>: View {
| `- note: required by generic struct 'ActionMenu' where 'Content' = '()'
97 | @Environment(\.dismiss) private var dismiss
98 | @State private var pendingAction: (() -> Void)? = nil
:
292 | @Previewable @State var selectedFruit: String? = nil
293 |
294 | ActionMenu(title: "Actions") {
| |- error: type '()' cannot conform to 'View' [#ProtocolTypeNonConformance]
| `- note: only concrete types such as structs, enums and classes can conform to protocols
295 | Section("Text Operations") {
296 | Button("Uppercase", systemImage: "characters.uppercase") {
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:72:8: error: 'onScrollGeometryChange(for:of:action:)' is only available in macOS 15.0 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
68 | @Binding var sheetTop: CGFloat
69 |
70 | func body(content: Content) -> some View {
| `- note: add '@available' attribute to enclosing instance method
71 | content
72 | .onScrollGeometryChange(for: ScrollGeometry.self, of: { $0 }, action: { _, newGeo in
| |- error: 'onScrollGeometryChange(for:of:action:)' is only available in macOS 15.0 or newer
| `- note: add 'if #available' version check
73 | // Skip until the List has laid out its content: the zero-sized first callback must not
74 | // collapse the sheet below the `.medium` fallback.
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:72:36: error: 'ScrollGeometry' is only available in macOS 15.0 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
68 | @Binding var sheetTop: CGFloat
69 |
70 | func body(content: Content) -> some View {
| `- note: add '@available' attribute to enclosing instance method
71 | content
72 | .onScrollGeometryChange(for: ScrollGeometry.self, of: { $0 }, action: { _, newGeo in
| |- error: 'ScrollGeometry' is only available in macOS 15.0 or newer
| `- note: add 'if #available' version check
73 | // Skip until the List has laid out its content: the zero-sized first callback must not
74 | // collapse the sheet below the `.medium` fallback.
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:85:11: error: setter for 'contentHeight' is only available in macOS 10.15 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
68 | @Binding var sheetTop: CGFloat
69 |
70 | func body(content: Content) -> some View {
| `- note: add '@available' attribute to enclosing instance method
71 | content
72 | .onScrollGeometryChange(for: ScrollGeometry.self, of: { $0 }, action: { _, newGeo in
:
83 | let target = rowsBottomInSheet + sideMargin - sheetTopChrome
84 | if contentHeight == 0 || abs(target - contentHeight) > 1 {
85 | contentHeight = target
| |- error: setter for 'contentHeight' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
86 | }
87 | })
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:88:8: error: 'presentationDetents' is only available in macOS 13.0 or newer
55 | /// not expand it; if the content is taller than the pinned height, the List scrolls within the
56 | /// sheet.
57 | struct SelfSizingSheetModifier: ViewModifier {
| `- note: add '@available' attribute to enclosing struct
58 | /// The currently applied detent height.
59 | @State private var contentHeight: CGFloat = 0
:
68 | @Binding var sheetTop: CGFloat
69 |
70 | func body(content: Content) -> some View {
| `- note: add '@available' attribute to enclosing instance method
71 | content
72 | .onScrollGeometryChange(for: ScrollGeometry.self, of: { $0 }, action: { _, newGeo in
:
86 | }
87 | })
88 | .presentationDetents(
| |- error: 'presentationDetents' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
89 | contentHeight == 0
90 | ? [.medium]
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/Styling.swift:49:18: error: 'dismiss' is only available in macOS 12.0 or newer
46 | }
47 |
48 | struct ActionMenuButtonStyle: PrimitiveButtonStyle {
| `- note: add '@available' attribute to enclosing struct
49 | @Environment(\.dismiss) private var dismiss
| `- error: 'dismiss' is only available in macOS 12.0 or newer
50 | @Binding var pendingAction: (() -> Void)?
51 |
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:121:15: error: no exact matches in call to initializer
119 | GeometryReader { proxy in
120 | let frame = proxy.frame(in: .global)
121 | Color(uiColor: .secondarySystemGroupedBackground) // restore the grouped card look
| |- error: no exact matches in call to initializer
| |- note: candidate has partially matching parameter list (importing: URL, contentType: UTType?)
| `- note: candidate has partially matching parameter list (importing: Data, contentType: UTType?)
122 | .preference(key: RowBoundsKey.self, value: RowBounds(minX: frame.minX, maxY: frame.maxY))
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:121:31: error: cannot infer contextual base in reference to member 'secondarySystemGroupedBackground'
119 | GeometryReader { proxy in
120 | let frame = proxy.frame(in: .global)
121 | Color(uiColor: .secondarySystemGroupedBackground) // restore the grouped card look
| `- error: cannot infer contextual base in reference to member 'secondarySystemGroupedBackground'
122 | .preference(key: RowBoundsKey.self, value: RowBounds(minX: frame.minX, maxY: frame.maxY))
123 | }
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:179:8: error: 'sheet(isPresented:onDismiss:content:)' is only available in macOS 10.15 or newer
164 | }
165 |
166 | struct ActionMenuModifier<MenuContent: View>: ViewModifier {
| `- note: add '@available' attribute to enclosing generic struct
167 | let title: String
168 | @Binding var isPresented: Bool
:
175 | }
176 |
177 | func body(content: Content) -> some View {
| `- note: add '@available' attribute to enclosing instance method
178 | content
179 | .sheet(isPresented: $isPresented) {
| |- error: 'sheet(isPresented:onDismiss:content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
180 | ActionMenu(title: title) {
181 | menuContent
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:233:5: error: conformance of 'ModifiedContent<Content, Modifier>' to 'View' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
232 | ) -> some View {
233 | modifier(
| |- error: conformance of 'ModifiedContent<Content, Modifier>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
234 | ActionMenuModifier(
235 | title: title,
/Users/admin/builder/spi-builder-workspace/Sources/ActionMenu/ActionMenu.swift:233:5: error: 'modifier' is only available in macOS 10.15 or newer
185 | }
186 |
187 | extension View {
| `- note: add '@available' attribute to enclosing extension
188 | /// Presents an action menu sheet when a binding to a Boolean value that you provide is true.
189 | ///
:
227 | /// - isPresented: A binding to a Boolean value that determines whether to present the action menu.
228 | /// - content: A `@ContentBuilder` closure that creates the content of the action menu. This is typically a list of `Button`s.
229 | public func actionMenu(
| `- note: add '@available' attribute to enclosing instance method
230 | title: String = "Options", isPresented: Binding<Bool>,
231 | @ContentBuilder content: () -> some View
232 | ) -> some View {
233 | modifier(
| |- error: 'modifier' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
234 | ActionMenuModifier(
235 | title: title,
[#ProtocolTypeNonConformance]: <https://docs.swift.org/compiler/documentation/diagnostics/protocol-type-non-conformance>
BUILD FAILURE 6.2 macosSpm