- Default-Titelfarbe primary (Akzent) -> foreground (monochrom). Der unterstrichene Marken-Titel wirkt jetzt ruhig/einheitlich auf Haupt- und Unterseiten; Akzent bleibt Aktionen/Icons vorbehalten. - Neu in ManaComponentsUI: ManaScreenHeaderRow (Header als erste, randlos mitscrollende List-/Form-Zeile) + View.manaScreenHeaderTitleHidden() (versteckt System-navigationTitle, Zurueck-Pfeil bleibt). - ManaAccountView: optionaler title: -> traegt Konto-Titel ueber den globalen Header statt System-Titel (Default nil = altes Verhalten). - ManaView (Mana-Guthaben): globaler Header statt navigationTitle. - Package.swift: ManaComponentsUI-Dep fuer ManaAuthUI + ManaCreditsUI. CHANGELOG bewusst ausgelassen (Parallel-Session-WIP in der Datei). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
174 lines
6.7 KiB
Swift
174 lines
6.7 KiB
Swift
// swift-tools-version: 6.0
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "mana-swift-ui",
|
|
defaultLocalization: "de",
|
|
platforms: [
|
|
.iOS(.v18),
|
|
.macOS(.v15),
|
|
],
|
|
products: [
|
|
.library(name: "ManaAuthUI", targets: ["ManaAuthUI"]),
|
|
.library(name: "ManaWebShell", targets: ["ManaWebShell"]),
|
|
.library(name: "ManaLLMUI", targets: ["ManaLLMUI"]),
|
|
.library(name: "ManaFeedbackUI", targets: ["ManaFeedbackUI"]),
|
|
.library(name: "ManaThemeUI", targets: ["ManaThemeUI"]),
|
|
.library(name: "ManaComponentsUI", targets: ["ManaComponentsUI"]),
|
|
.library(name: "ManaOnboardingUI", targets: ["ManaOnboardingUI"]),
|
|
.library(name: "ManaCreditsUI", targets: ["ManaCreditsUI"]),
|
|
.library(name: "ManaTransparencyUI", targets: ["ManaTransparencyUI"]),
|
|
],
|
|
dependencies: [
|
|
// Lokaler Dev-Pfad. Apps konsumieren beide Pakete parallel über
|
|
// `path: ../mana-swift-core` bzw. `path: ../mana-swift-ui`.
|
|
// Release-Wechsel auf `from: "1.1.0"` kommt mit Phase 4.
|
|
.package(path: "../mana-swift-core"),
|
|
// ManaLLMUI baut auf den Backend-Schicht aus mana-swift-llm.
|
|
// Apps die nur die Backends headless brauchen, importieren
|
|
// weiter direkt `ManaLLM` — ManaLLMUI ist additiv für die
|
|
// Settings-Schicht (Picker, Prepare, Cellular-Toggle).
|
|
.package(path: "../mana-swift-llm"),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "ManaAuthUI",
|
|
dependencies: [
|
|
.product(name: "ManaCore", package: "mana-swift-core"),
|
|
.product(name: "ManaTokens", package: "mana-swift-core"),
|
|
// Feedback-Karte an fester Position im Konto-Tab (ManaAccountView).
|
|
"ManaFeedbackUI",
|
|
// Geteiltes Karten-Chrome (.manaCard) für ManaSignInCTA.
|
|
"ManaThemeUI",
|
|
// Opt-in Gesamt-Mana-Anzeige (ManaAccountView.Config.showManaBalance).
|
|
"ManaCreditsUI",
|
|
// Globaler Seiten-Header (ManaScreenHeaderRow) für den optionalen
|
|
// Konto-Titel statt System-navigationTitle.
|
|
"ManaComponentsUI",
|
|
],
|
|
path: "Sources/ManaAuthUI",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
name: "ManaWebShell",
|
|
path: "Sources/ManaWebShell",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
name: "ManaLLMUI",
|
|
dependencies: [
|
|
.product(name: "ManaLLM", package: "mana-swift-llm"),
|
|
.product(name: "ManaLLMShared", package: "mana-swift-llm"),
|
|
],
|
|
path: "Sources/ManaLLMUI",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
name: "ManaFeedbackUI",
|
|
dependencies: [
|
|
.product(name: "ManaCore", package: "mana-swift-core"),
|
|
.product(name: "ManaTokens", package: "mana-swift-core"),
|
|
// Geteiltes Karten-Chrome (.manaCard) für ManaFeedbackCard.
|
|
"ManaThemeUI",
|
|
],
|
|
path: "Sources/ManaFeedbackUI",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
name: "ManaThemeUI",
|
|
dependencies: [
|
|
.product(name: "ManaTokens", package: "mana-swift-core"),
|
|
],
|
|
path: "Sources/ManaThemeUI",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
name: "ManaComponentsUI",
|
|
dependencies: [
|
|
.product(name: "ManaTokens", package: "mana-swift-core"),
|
|
],
|
|
path: "Sources/ManaComponentsUI",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
name: "ManaCreditsUI",
|
|
dependencies: [
|
|
// Nutzt den ManaCreditsClient aus ManaCore; System-Styling
|
|
// (app-agnostisch).
|
|
.product(name: "ManaCore", package: "mana-swift-core"),
|
|
// Globaler Seiten-Header (ManaScreenHeaderRow) statt System-
|
|
// navigationTitle — zieht ManaTokens transitiv mit (Theme-
|
|
// getönter, monochromer Titel).
|
|
"ManaComponentsUI",
|
|
],
|
|
path: "Sources/ManaCreditsUI",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
name: "ManaOnboardingUI",
|
|
dependencies: [
|
|
.product(name: "ManaTokens", package: "mana-swift-core"),
|
|
// Geteiltes Karten-Chrome (.manaCard) für die Permission-
|
|
// und Konto-Karten am Ende des Flows.
|
|
"ManaThemeUI",
|
|
],
|
|
path: "Sources/ManaOnboardingUI",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.target(
|
|
// „Danke & Transparenz" — Open-Source-Dank + Stack-Offenlegung.
|
|
// Pure SwiftUI, app-agnostisch (System-Styling), keine Deps.
|
|
// Daten kommen aus der generierten JSON (scripts/transparenz/).
|
|
name: "ManaTransparencyUI",
|
|
path: "Sources/ManaTransparencyUI",
|
|
swiftSettings: [
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
]
|
|
),
|
|
.testTarget(
|
|
name: "ManaOnboardingUITests",
|
|
dependencies: ["ManaOnboardingUI"],
|
|
path: "Tests/ManaOnboardingUITests"
|
|
),
|
|
.testTarget(
|
|
name: "ManaTransparencyUITests",
|
|
dependencies: ["ManaTransparencyUI"],
|
|
path: "Tests/ManaTransparencyUITests"
|
|
),
|
|
.testTarget(
|
|
name: "ManaAuthUITests",
|
|
dependencies: ["ManaAuthUI"],
|
|
path: "Tests/ManaAuthUITests"
|
|
),
|
|
.testTarget(
|
|
name: "ManaWebShellTests",
|
|
dependencies: ["ManaWebShell"],
|
|
path: "Tests/ManaWebShellTests"
|
|
),
|
|
.testTarget(
|
|
name: "ManaComponentsUITests",
|
|
dependencies: ["ManaComponentsUI"],
|
|
path: "Tests/ManaComponentsUITests"
|
|
),
|
|
// ManaLLMUITests: deklariert, aber `Tests/ManaLLMUITests/`
|
|
// wurde nie angelegt — SPM verweigert Resolve. Entfernt
|
|
// 2026-05-22, wieder einfügen sobald die ersten ViewModel-
|
|
// Tests stehen.
|
|
]
|
|
)
|