Files
honeyDueKMP/iosApp/iosApp/MainTabView.swift
Trey t b260eaa821 Add 5 new themes to iOS app (Lavender, Crimson, Midnight, Desert, Mint)
Expanded the theming system from 5 to 10 total themes with comprehensive light/dark mode support. Each new theme includes unique color palettes optimized for visibility and WCAG contrast compliance.

New Themes:
- Lavender: Soft purple with pink accents
- Crimson: Bold red with warm highlights
- Midnight: Deep navy with sky blue tones
- Desert: Warm terracotta and sand palette
- Mint: Fresh green with turquoise accents

Technical Details:
- Created 45 new colorset files (9 colorsets × 5 themes)
- Each theme includes Primary, Secondary, Accent, 2 Backgrounds, and 4 Text colors
- Dark mode colors use 60-90% lightness for high visibility on dark backgrounds
- Consistent text colors across all themes for accessibility
- Updated ThemeManager.swift to include all 10 themes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 09:07:54 -06:00

72 lines
2.1 KiB
Swift

import SwiftUI
struct MainTabView: View {
@EnvironmentObject private var themeManager: ThemeManager
@State private var selectedTab = 0
@StateObject private var authManager = AuthenticationManager.shared
var refreshID: UUID
var body: some View {
TabView(selection: $selectedTab) {
NavigationView {
ResidencesListView()
}
.id(refreshID)
.tabItem {
Label("Residences", systemImage: "house.fill")
}
.tag(0)
.accessibilityIdentifier(AccessibilityIdentifiers.Navigation.residencesTab)
NavigationView {
AllTasksView()
}
.id(refreshID)
.tabItem {
Label("Tasks", systemImage: "checkmark.circle.fill")
}
.tag(1)
.accessibilityIdentifier(AccessibilityIdentifiers.Navigation.tasksTab)
NavigationView {
ContractorsListView()
}
.id(refreshID)
.tabItem {
Label("Contractors", systemImage: "wrench.and.screwdriver.fill")
}
.tag(2)
.accessibilityIdentifier(AccessibilityIdentifiers.Navigation.contractorsTab)
NavigationView {
DocumentsWarrantiesView(residenceId: nil)
}
.id(refreshID)
.tabItem {
Label("Documents", systemImage: "doc.text.fill")
}
.tag(3)
.accessibilityIdentifier(AccessibilityIdentifiers.Navigation.documentsTab)
NavigationView {
ProfileTabView()
}
.id(refreshID)
.tabItem {
Label("Profile", systemImage: "person.fill")
}
.tag(4)
.accessibilityIdentifier(AccessibilityIdentifiers.Navigation.profileTab)
}
.tint(Color.appPrimary)
.onChange(of: authManager.isAuthenticated) { _ in
selectedTab = 0
}
}
}
#Preview {
MainTabView(refreshID: UUID())
.environmentObject(ThemeManager.shared)
}