The Swift Package Index logo.Swift Package Index

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 arm64

Build 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