Extract core target
Some checks failed
Deploy Docs / publish (push) Successful in 3m4s
SwiftLint / SwiftLint (push) Failing after 9s

This commit is contained in:
david-swift 2024-12-04 21:16:04 +01:00
parent 47fe78f4ba
commit 3d2ef52cc8
34 changed files with 69 additions and 33 deletions

View File

@ -16,6 +16,10 @@ let package = Package(
.library(
name: "MacBackend",
targets: ["MacBackend"]
),
.library(
name: "Core",
targets: ["Core"]
)
],
dependencies: [
@ -25,13 +29,17 @@ let package = Package(
],
targets: [
.target(
name: "MacBackend",
name: "Core",
dependencies: [
.product(name: "Meta", package: "Meta"),
.product(name: "MetaSQLite", package: "meta-sqlite"),
.product(name: "LevenshteinTransformations", package: "levenshtein-transformations")
]
),
.target(
name: "MacBackend",
dependencies: ["Core"]
),
.executableTarget(
name: "Demo",
dependencies: ["MacBackend"]

View File

@ -26,6 +26,19 @@ public struct Alert: SwiftUIWidget {
[.mainContent: child]
}
/// Initialize the alert.
/// - Parameters:
/// - title: The alert's title.
/// - description: The alert's description.
/// - isPresented: Whether the alert is presented.
/// - child: The wrapped view.
public init(title: String, description: String, isPresented: Meta.Binding<Bool>, child: Meta.AnyView) {
self.title = title
self.description = description
self.isPresented = isPresented
self.child = child
}
/// An alert action.
enum Action {
@ -146,19 +159,3 @@ public struct Alert: SwiftUIWidget {
}
}
extension Meta.AnyView {
// swiftlint:disable function_default_parameter_at_end
/// Add an alert to a view.
/// - Parameters:
/// - title: The title.
/// - description: The description.
/// - isPresented: Whether the alert is visible.
/// - Returns: The alert.
public func alert(_ title: String, description: String = "", isPresented: Meta.Binding<Bool>) -> Alert {
.init(title: title, description: description, isPresented: isPresented, child: self)
}
// swiftlint:enable function_default_parameter_at_end
}

View File

@ -8,7 +8,7 @@
import SwiftUI
/// The padding view.
struct PaddingView: SwiftUIWidget {
public struct PaddingView: SwiftUIWidget {
/// The padding.
var padding: Double
@ -18,29 +18,27 @@ struct PaddingView: SwiftUIWidget {
var child: Meta.AnyView
/// The wrapped views.
var wrappedViews: [String: Meta.AnyView] {
public var wrappedViews: [String: Meta.AnyView] {
[.mainContent: child]
}
/// Initialize the padding view.
/// - Parameters:
/// - padding: The padding.
/// - edges: The edges.
/// - child: The wrapped view.
public init(padding: Double, edges: Set<Edge>, child: Meta.AnyView) {
self.padding = padding
self.edges = edges
self.child = child
}
/// Get the SwiftUI view.
/// - Parameter properties: The widget data.
/// - Returns: The SwiftUI view.
static func view(properties: Self) -> some SwiftUI.View {
public static func view(properties: Self) -> some SwiftUI.View {
MacBackendView(.mainContent)
.padding(properties.edges.swiftUI, properties.padding)
}
}
extension Meta.AnyView {
/// Set the padding.
/// - Parameters:
/// - padding: The padding.
/// - edges: The edges.
/// - Returns: The view.
public func padding(_ padding: Double, edges: Set<Edge> = .all) -> Meta.AnyView {
PaddingView(padding: padding, edges: edges, child: self)
}
}

View File

@ -0,0 +1,33 @@
//
// AnyView.swift
// MacBackend
//
// Created by david-swift on 04.12.2024.
//
@_exported import Core
extension AnyView {
// swiftlint:disable function_default_parameter_at_end
/// Add an alert to a view.
/// - Parameters:
/// - title: The title.
/// - description: The description.
/// - isPresented: Whether the alert is visible.
/// - Returns: The alert.
public func alert(_ title: String, description: String = "", isPresented: Meta.Binding<Bool>) -> Alert {
.init(title: title, description: description, isPresented: isPresented, child: self)
}
// swiftlint:enable function_default_parameter_at_end
/// Set the padding.
/// - Parameters:
/// - padding: The padding.
/// - edges: The edges.
/// - Returns: The view.
public func padding(_ padding: Double, edges: Set<Edge> = .all) -> Meta.AnyView {
PaddingView(padding: padding, edges: edges, child: self)
}
}