57 lines
1.2 KiB
Swift
57 lines
1.2 KiB
Swift
//
|
|
// Card.swift
|
|
// MacBackend
|
|
//
|
|
// Created by david-swift on 05.01.2025.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
/// The card wrapper.
|
|
public struct Card: SwiftUIWidget {
|
|
|
|
/// The wrapped view.
|
|
var content: Body
|
|
|
|
/// The wrapped views.
|
|
public var wrappedViews: [String: Meta.AnyView] {
|
|
[.mainContent: content]
|
|
}
|
|
|
|
/// Initialize a card view.
|
|
/// - Parameter content: The card's content.
|
|
public init(@Meta.ViewBuilder content: () -> Body) {
|
|
self.content = content()
|
|
}
|
|
|
|
/// Get the SwiftUI view.
|
|
/// - Parameter properties: The widget data.
|
|
/// - Returns: The SwiftUI view.
|
|
public static func view(properties: Self) -> some SwiftUI.View {
|
|
CardView()
|
|
}
|
|
|
|
}
|
|
|
|
/// The card view in SwiftUI.
|
|
struct CardView: SwiftUI.View {
|
|
|
|
/// The color scheme.
|
|
@SwiftUI.Environment(\.colorScheme)
|
|
var colorScheme
|
|
|
|
/// The view's body.
|
|
var body: some SwiftUI.View {
|
|
MacBackendView(.mainContent)
|
|
.padding(20)
|
|
.background(
|
|
Color(
|
|
colorScheme == .dark ? NSColor.darkGray : NSColor.lightGray
|
|
)
|
|
.opacity(colorScheme == .dark ? 0.3 : 0.1),
|
|
in: .rect(cornerRadius: 10)
|
|
)
|
|
}
|
|
|
|
}
|