diff --git a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Modules.swift b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Modules.swift index 53f6421..bb5bfe7 100644 --- a/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Modules.swift +++ b/Plugins/DependencyPlugin/ProjectDescriptionHelpers/Modules.swift @@ -83,6 +83,7 @@ public extension ModulePath { public extension ModulePath { enum WatchShared: String, CaseIterable { + case Util case DesignSystem case ThirdPartyLib diff --git a/Projects/App/WatchExtension/Sources/App/RootApp.swift b/Projects/App/WatchExtension/Sources/App/RootApp.swift index 5f80df0..0b9a10f 100644 --- a/Projects/App/WatchExtension/Sources/App/RootApp.swift +++ b/Projects/App/WatchExtension/Sources/App/RootApp.swift @@ -6,41 +6,24 @@ // import SwiftUI + import ComposableArchitecture +import WatchSharedDesignSystem + @main struct RootApp: App { - @StateObject private var workoutDelegate = WorkoutDelegate() - @StateObject private var watchConnectivityDelegate = WatchConnectivityDelegate() + private var workoutDelegate = WorkoutDelegate() + private var watchConnectivityDelegate = WatchConnectivityDelegate() @SceneBuilder var body: some Scene { WindowGroup { RootView(store: .init(initialState: RootStore.State(), reducer: RootStore()._printChanges())) .environmentObject(workoutDelegate) .environmentObject(watchConnectivityDelegate) + .onAppear { + WatchSharedDesignSystemFontFamily.registerAllCustomFonts() + } } } } - -//TODO: workout session 으로 마이그레이션 후 주석 제거 - -//@main -//struct RootApp: App { -// @StateObject private var workoutManager = WorkoutManager() -// -// @SceneBuilder var body: some Scene { -// WindowGroup { -// NavigationStack { -// StartView() -// } -// .onAppear { -// workoutManager.requestAuthorization() -// } -// .sheet(isPresented: $workoutManager.showingSummaryView) { -// SummaryView() -// } -// .environmentObject(workoutManager) -// } -// } -//} -// diff --git a/Projects/App/WatchExtension/Sources/App/WatchConnectivityDelegate.swift b/Projects/App/WatchExtension/Sources/App/WatchConnectivityDelegate.swift index a913718..54260bb 100644 --- a/Projects/App/WatchExtension/Sources/App/WatchConnectivityDelegate.swift +++ b/Projects/App/WatchExtension/Sources/App/WatchConnectivityDelegate.swift @@ -13,6 +13,8 @@ import ComposableArchitecture public class WatchConnectivityDelegate: NSObject, ObservableObject, WCSessionDelegate { public weak var session: WCSession? + @Published public var pumpingTimerData: PumpingTimerData = .init(timers: [], updatedTime: Date().timeIntervalSince1970) + init(session: WCSession = .default) { self.session = session @@ -23,14 +25,34 @@ public class WatchConnectivityDelegate: NSObject, ObservableObject, WCSessionDel } public func sendMessage(key: String, value: Double) { - self.session?.sendMessage([key: value], replyHandler: nil) + DispatchQueue.main.async { + self.session?.sendMessage([key: value], replyHandler: nil) + debugPrint("watchOS send key: \(key) value: \(value)") + } } - public func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { + public func sendPumpingTimerData() { } + public func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { + } + public func session(_ session: WCSession, didReceiveMessage message: [String : Any]) { - debugPrint("watchOS recieved \(message)") + DispatchQueue.main.async { + debugPrint("watchOS recieved \(message)") + } + } + + public func session(_ session: WCSession, didReceiveMessageData messageData: Data) { + DispatchQueue.main.async { + do { + let pumpingTimerData = try JSONDecoder().decode(PumpingTimerData.self, from: messageData) + self.pumpingTimerData = pumpingTimerData + debugPrint("watchOS recieved \(pumpingTimerData)") + } catch { + debugPrint(error) + } + } } } diff --git a/Projects/App/WatchExtension/Sources/App/WorkoutDelegate.swift b/Projects/App/WatchExtension/Sources/App/WorkoutDelegate.swift index aa76fcb..d61c245 100644 --- a/Projects/App/WatchExtension/Sources/App/WorkoutDelegate.swift +++ b/Projects/App/WatchExtension/Sources/App/WorkoutDelegate.swift @@ -62,7 +62,7 @@ public class WorkoutDelegate: NSObject, ObservableObject { } } - func requestAuth() { + func requestAuthorization(completion: @escaping (Bool, Error?) -> Void) { let typesToShare: Set = [ HKQuantityType.workoutType() ] @@ -70,22 +70,9 @@ public class WorkoutDelegate: NSObject, ObservableObject { let typesToRead: Set = [ HKQuantityType.quantityType(forIdentifier: .heartRate)!, HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned)!, - HKObjectType.activitySummaryType() ] - healthStore.requestAuthorization(toShare: typesToShare, read: typesToRead) { (success, error) in - DispatchQueue.main.async { - if error != nil { - print(error.debugDescription) - } else { - if success { - print("권한이 허락되었습니다") - } else { - print("권한이 없습니다") - } - } - } - } + healthStore.requestAuthorization(toShare: typesToShare, read: typesToRead, completion: completion) } } diff --git a/Projects/App/WatchExtension/Sources/Domain/HealthClient.swift b/Projects/App/WatchExtension/Sources/Domain/HealthClient.swift deleted file mode 100644 index 0f75906..0000000 --- a/Projects/App/WatchExtension/Sources/Domain/HealthClient.swift +++ /dev/null @@ -1,9 +0,0 @@ -// -// HealthClient.swift -// AppWatchExtension -// -// Created by 송영모 on 2023/06/26. -// - -import Foundation - diff --git a/Projects/App/WatchExtension/Sources/Domain/PumpingTimer.swift b/Projects/App/WatchExtension/Sources/Domain/PumpingTimer.swift new file mode 100644 index 0000000..913dd12 --- /dev/null +++ b/Projects/App/WatchExtension/Sources/Domain/PumpingTimer.swift @@ -0,0 +1,41 @@ +// +// PumpingTimer.swift +// AppWatchExtension +// +// Created by 송영모 on 2023/07/04. +// + +import Foundation + +public struct PumpingTimer: Codable, Equatable { + public let id: UUID + public let workoutCategoryIdentifier: WorkoutCategoryIdentifier + public var time: Int + + public var heartRateSum: Double + public var heartRateCount: Int + public var calorie: Double + + public var pinTime: Int + public var isActive: Bool + + public init( + id: UUID, + workoutCategoryIdentifier: WorkoutCategoryIdentifier, + time: Int = 0, + heartRateSum: Double = 0.0, + heartRateCount: Int = 0, + calorie: Double = 0, + pinTime: Int = 0, + isActive: Bool = false + ) { + self.id = id + self.workoutCategoryIdentifier = workoutCategoryIdentifier + self.time = time + self.heartRateSum = heartRateSum + self.heartRateCount = heartRateCount + self.calorie = calorie + self.pinTime = pinTime + self.isActive = isActive + } +} diff --git a/Projects/App/WatchExtension/Sources/Domain/PumpingTimerData.swift b/Projects/App/WatchExtension/Sources/Domain/PumpingTimerData.swift new file mode 100644 index 0000000..223ce7f --- /dev/null +++ b/Projects/App/WatchExtension/Sources/Domain/PumpingTimerData.swift @@ -0,0 +1,23 @@ +// +// PumpingTimerData.swift +// AppWatchExtension +// +// Created by 송영모 on 2023/07/04. +// + +import Foundation + +public struct PumpingTimerData: Codable, Equatable { + public let timers: [PumpingTimer] + public let updatedTime: Double + public let isHardPush: Bool + + public init( + timers: [PumpingTimer], + updatedTime: Double, + isHardPush: Bool = false) { + self.timers = timers + self.updatedTime = updatedTime + self.isHardPush = isHardPush + } +} diff --git a/Projects/App/WatchExtension/Sources/Domain/WorkoutCategory.swift b/Projects/App/WatchExtension/Sources/Domain/WorkoutCategory.swift new file mode 100644 index 0000000..b731ab7 --- /dev/null +++ b/Projects/App/WatchExtension/Sources/Domain/WorkoutCategory.swift @@ -0,0 +1,51 @@ +// +// WorkoutCategory.swift +// AppWatchExtension +// +// Created by 송영모 on 2023/07/04. +// + +import Foundation + +//MARK: WorkoutCategoryIdentifierType +public enum WorkoutCategoryIdentifierType: String, CaseIterable { + case whole = "전신" + case upper = "상체" + case lower = "하체" +} + +public extension WorkoutCategoryIdentifierType { + var identifiers: [WorkoutCategoryIdentifier] { + switch self { + case .whole: + return [.aerobic] + case .upper: + return [.shoulder, .chest, .arms, .back] + case .lower: + return [.butt] + } + } +} + +//MARK: WorkoutCategoryIdentifier +public enum WorkoutCategoryIdentifier: String, Codable, CaseIterable, Equatable { + case aerobic = "유산소" + case shoulder = "어깨" + case chest = "가슴" + case arms = "팔" + case back = "등" + case butt = "엉덩이" +} + +public extension WorkoutCategoryIdentifier { + var type: WorkoutCategoryIdentifierType { + switch self { + case .aerobic: + return .whole + case .shoulder, .chest, .arms, .back: + return .upper + case .butt: + return .lower + } + } +} diff --git a/Projects/App/WatchExtension/Sources/Domain/WorkoutClient.swift b/Projects/App/WatchExtension/Sources/Domain/WorkoutClient.swift deleted file mode 100644 index 340244b..0000000 --- a/Projects/App/WatchExtension/Sources/Domain/WorkoutClient.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// WorkoutClient.swift -// AppWatchExtension -// -// Created by 송영모 on 2023/06/29. -// - -import Foundation diff --git a/Projects/App/WatchExtension/Sources/Feature/Home/Components/Cells/TimerCellStore.swift b/Projects/App/WatchExtension/Sources/Feature/Home/Components/Cells/TimerCellStore.swift new file mode 100644 index 0000000..9dd004f --- /dev/null +++ b/Projects/App/WatchExtension/Sources/Feature/Home/Components/Cells/TimerCellStore.swift @@ -0,0 +1,77 @@ +// +// TimerCellStore.swift +// Pumping +// +// Created by 송영모 on 2023/07/05. +// + +import SwiftUI + +import ComposableArchitecture + +import WatchSharedDesignSystem +import WatchSharedUtil + +public struct TimerCellStore: ReducerProtocol { + public enum ResultType { + case time, heatRate, calorie + + public var title: String { + switch self { + case .time: return "총 시간" + case .heatRate: return "심박수" + case .calorie: return "총 칼로리" + } + } + + public var image: Image { + switch self { + case .time: return PumpingImages.iconTimer.swiftUIImage + case .heatRate: return PumpingImages.iconHeartbeat.swiftUIImage + case .calorie: return PumpingImages.iconFire.swiftUIImage + } + } + + public func toSyntax(value: Double) -> String { + switch self { + case .time: + return DateManager.toClockString(from: Int(value)) + + case .heatRate: + if value == 0 { + return "-" + } else { + return String(describing: "\(Int(value))bpm") + } + + case .calorie: + if value == 0 { + return "-" + } else { + return String(describing: "\(Int(value))Kcal") + } + } + } + } + + public struct State: Equatable, Identifiable { + public let id: UUID + public let timer: PumpingTimer + + public init(id: UUID, timer: PumpingTimer) { + self.id = id + self.timer = timer + } + } + + public enum Action: Equatable { + case tapped + } + + public func reduce(into state: inout State, action: Action) -> EffectTask { + switch action { + case .tapped: + return .none + } + } +} diff --git a/Projects/App/WatchExtension/Sources/Feature/Home/Components/Cells/TimerCellView.swift b/Projects/App/WatchExtension/Sources/Feature/Home/Components/Cells/TimerCellView.swift new file mode 100644 index 0000000..574e080 --- /dev/null +++ b/Projects/App/WatchExtension/Sources/Feature/Home/Components/Cells/TimerCellView.swift @@ -0,0 +1,68 @@ +// +// TimerCellView.swift +// Pumping +// +// Created by 송영모 on 2023/07/05. +// + +import SwiftUI + +import ComposableArchitecture +import WatchSharedDesignSystem + +public struct TimerCellView: View { + public let store: StoreOf + + public init(store: StoreOf) { + self.store = store + } + + public var body: some View { + WithViewStore(self.store) { viewStore in + VStack(alignment: .center) { + Text("\(viewStore.timer.workoutCategoryIdentifier.rawValue)") + + Spacer() + + HStack { + Spacer() + + resultListView(viewStore: viewStore) + + Spacer() + } + + Spacer() + } + } + } + + private func resultListView(viewStore: ViewStoreOf) -> some View { + VStack(alignment: .leading, spacing: 16) { + resultView(type: .time, value: Double(viewStore.state.timer.time)) + resultView(type: .heatRate, value: viewStore.state.timer.heartRateSum / Double(viewStore.state.timer.heartRateCount == 0 ? 1 : viewStore.state.timer.heartRateCount)) + resultView(type: .calorie, value: viewStore.state.timer.calorie) + } + } + + private func resultView(type: TimerCellStore.ResultType, value: Double) -> some View { + HStack(spacing: 12) { + type.image + .resizable() + .frame(width: 25, height: 25) + .offset(x: 0, y: 3) //FIXME: 폰트 버그 해결 후 제거 + + Text(type.toSyntax(value: value)) + .font(.tenada(size: 20)) + .baselineOffset(-10) + .foregroundColor({switch type { + case .time: + return PumpingColors.colorCyan200.swiftUIColor + case .heatRate: + return PumpingColors.colorTeal300.swiftUIColor + case .calorie: + return PumpingColors.colorGreen400.swiftUIColor + }}()) + } + } +} diff --git a/Projects/App/WatchExtension/Sources/Feature/Home/HomeStore.swift b/Projects/App/WatchExtension/Sources/Feature/Home/HomeStore.swift new file mode 100644 index 0000000..e65a657 --- /dev/null +++ b/Projects/App/WatchExtension/Sources/Feature/Home/HomeStore.swift @@ -0,0 +1,92 @@ +// +// HomeStore.swift +// AppWatchExtension +// +// Created by 송영모 on 2023/06/26. +// + +import SwiftUI +import HealthKit + +import ComposableArchitecture + +import WatchSharedDesignSystem +import WatchSharedUtil + +public struct HomeStore: ReducerProtocol { + + public init() {} + + public struct State: Equatable { + @BindingState public var pumpingTimerData: PumpingTimerData = .init(timers: [], updatedTime: Date().timeIntervalSince1970) + @BindingState public var pumpingTimers: [PumpingTimer] = [] + @BindingState public var timerCells: IdentifiedArrayOf = [] + + public var heartRate: Int = 0 + public var calorie: Int = 0 + + public init() { } + } + + public enum Action: BindableAction, Equatable { + case binding(BindingAction) + + case setPumpingTimerData(PumpingTimerData) + case setPumpingTimers([PumpingTimer]) + case setTimerCells(IdentifiedArrayOf) + case setHeartRate(Int) + case setCalorie(Int) + + case sinkPumpingTimerData(PumpingTimerData) + + case timerCell(id: UUID, action: TimerCellStore.Action) + } + + public var body: some ReducerProtocol { + BindingReducer() + + Reduce { state, action in + switch action { + case .binding: + return .none + + case let .setPumpingTimerData(pumpingTimerData): + state.pumpingTimerData = pumpingTimerData + return .send(.sinkPumpingTimerData(pumpingTimerData)) + + case let .setPumpingTimers(pumpingTimers): + state.pumpingTimers = pumpingTimers + + let timerCells: IdentifiedArrayOf = .init(uniqueElements: pumpingTimers.map { + .init(id: $0.id, timer: $0) + }) + + return .send(.setTimerCells(timerCells)) + + case let .setTimerCells(timerCells): + state.timerCells = timerCells + return .none + + case let .setHeartRate(heartRate): + state.heartRate = heartRate + return .none + + case let .setCalorie(calorie): + state.calorie = calorie + return .none + + case let .sinkPumpingTimerData(pumpingTimerData): + if state.pumpingTimerData.updatedTime < pumpingTimerData.updatedTime + 1000 || state.pumpingTimerData.isHardPush { + if !pumpingTimerData.timers.isEmpty { + state.pumpingTimerData = pumpingTimerData + return .send(.setPumpingTimers(pumpingTimerData.timers)) + } + } + return .none + + case .timerCell: + return .none + } + } + } +} diff --git a/Projects/App/WatchExtension/Sources/Feature/HomeView.swift b/Projects/App/WatchExtension/Sources/Feature/Home/HomeView.swift similarity index 62% rename from Projects/App/WatchExtension/Sources/Feature/HomeView.swift rename to Projects/App/WatchExtension/Sources/Feature/Home/HomeView.swift index 767fbd1..883daf6 100644 --- a/Projects/App/WatchExtension/Sources/Feature/HomeView.swift +++ b/Projects/App/WatchExtension/Sources/Feature/Home/HomeView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import UIKit import ComposableArchitecture @@ -21,17 +22,15 @@ public struct HomeView: View { public var body: some View { WithViewStore(self.store, observe: { $0 }) { viewStore in - VStack(spacing: .zero) { - Text("heartrate: \(viewStore.heartRate)") - - Text("calorie: \(viewStore.calorie)") - - Button("start") { - workoutDelegate.startWorkout(workoutType: .functionalStrengthTraining) + TabView { + endView() + + timerListView() } - } .onAppear { - workoutDelegate.requestAuth() + workoutDelegate.requestAuthorization { (success, errorOrNil) in + workoutDelegate.startWorkout(workoutType: .functionalStrengthTraining) + } } .onReceive(workoutDelegate.$heartRate, perform: { heartRate in viewStore.send(.setHeartRate(Int(heartRate))) @@ -41,7 +40,25 @@ public struct HomeView: View { viewStore.send(.setCalorie(Int(calorie))) watchConnectivityDelegate.sendMessage(key: "calorie", value: calorie) }) + .onReceive(watchConnectivityDelegate.$pumpingTimerData) { pumpingTimerData in + viewStore.send(.sinkPumpingTimerData(pumpingTimerData)) + } .ignoresSafeArea() } } + + //TODO: 모든 운동 종료 기능 추가 + private func endView() -> some View { + VStack { + Button("종료") { + + } + } + } + + private func timerListView() -> some View { + ForEachStore(self.store.scope(state: \.timerCells, action: HomeStore.Action.timerCell(id:action:))) { + TimerCellView(store: $0) + } + } } diff --git a/Projects/App/WatchExtension/Sources/Feature/HomeStore.swift b/Projects/App/WatchExtension/Sources/Feature/HomeStore.swift deleted file mode 100644 index 620b16c..0000000 --- a/Projects/App/WatchExtension/Sources/Feature/HomeStore.swift +++ /dev/null @@ -1,49 +0,0 @@ -// -// HomeStore.swift -// AppWatchExtension -// -// Created by 송영모 on 2023/06/26. -// - -import Foundation - -import ComposableArchitecture -import HealthKit - -public struct HomeStore: ReducerProtocol { - - public init() {} - - public struct State: Equatable { - public var heartRate: Int = 0 - public var calorie: Int = 0 - - public init() { } - } - - public enum Action: BindableAction, Equatable { - case binding(BindingAction) - - case setHeartRate(Int) - case setCalorie(Int) - } - - public var body: some ReducerProtocol { - BindingReducer() - - Reduce { state, action in - switch action { - case .binding: - return .none - - case let .setHeartRate(heartRate): - state.heartRate = heartRate - return .none - - case let .setCalorie(calorie): - state.calorie = calorie - return .none - } - } - } -} diff --git a/Projects/Domain/Workout/Interface/Sources/Models/PumpingTimer.swift b/Projects/Domain/Workout/Interface/Sources/Models/PumpingTimer.swift index 2e53f6a..5b67ead 100644 --- a/Projects/Domain/Workout/Interface/Sources/Models/PumpingTimer.swift +++ b/Projects/Domain/Workout/Interface/Sources/Models/PumpingTimer.swift @@ -7,12 +7,13 @@ import Foundation -public struct PumpingTimer: Equatable { +public struct PumpingTimer: Codable, Equatable { public let id: UUID public let workoutCategoryIdentifier: WorkoutCategoryIdentifier public var time: Int - public var heartRates: [Double] + public var heartRateSum: Double + public var heartRateCount: Int public var calorie: Double public var pinTime: Int @@ -22,7 +23,8 @@ public struct PumpingTimer: Equatable { id: UUID, workoutCategoryIdentifier: WorkoutCategoryIdentifier, time: Int = 0, - heartRates: [Double] = [], + heartRateSum: Double = 0.0, + heartRateCount: Int = 0, calorie: Double = 0, pinTime: Int = 0, isActive: Bool = false @@ -30,7 +32,8 @@ public struct PumpingTimer: Equatable { self.id = id self.workoutCategoryIdentifier = workoutCategoryIdentifier self.time = time - self.heartRates = heartRates + self.heartRateSum = heartRateSum + self.heartRateCount = heartRateCount self.calorie = calorie self.pinTime = pinTime self.isActive = isActive diff --git a/Projects/Domain/Workout/Interface/Sources/Models/PumpingTimerData.swift b/Projects/Domain/Workout/Interface/Sources/Models/PumpingTimerData.swift new file mode 100644 index 0000000..d5abca1 --- /dev/null +++ b/Projects/Domain/Workout/Interface/Sources/Models/PumpingTimerData.swift @@ -0,0 +1,23 @@ +// +// PumpingTimerData.swift +// DomainWorkoutInterface +// +// Created by 송영모 on 2023/07/04. +// + +import Foundation + +public struct PumpingTimerData: Codable, Equatable { + public let timers: [PumpingTimer] + public let updatedTime: Double + public let isHardPush: Bool + + public init( + timers: [PumpingTimer], + updatedTime: Double, + isHardPush: Bool = false) { + self.timers = timers + self.updatedTime = updatedTime + self.isHardPush = isHardPush + } +} diff --git a/Projects/Domain/Workout/Interface/Sources/Models/WorkoutCategory.swift b/Projects/Domain/Workout/Interface/Sources/Models/WorkoutCategory.swift index 345cc7f..7819e5a 100644 --- a/Projects/Domain/Workout/Interface/Sources/Models/WorkoutCategory.swift +++ b/Projects/Domain/Workout/Interface/Sources/Models/WorkoutCategory.swift @@ -8,6 +8,7 @@ import Foundation //MARK: WorkoutCategoryIdentifierType + public enum WorkoutCategoryIdentifierType: String, CaseIterable { case whole = "전신" case upper = "상체" @@ -28,6 +29,7 @@ public extension WorkoutCategoryIdentifierType { } //MARK: WorkoutCategoryIdentifier + public enum WorkoutCategoryIdentifier: String, CaseIterable, Equatable { case aerobic = "AEROBIC" case shoulder = "SHOULDER" diff --git a/Projects/Feature/Workout/Interface/Sources/Root/WatchConnectivityDelegate.swift b/Projects/Feature/Workout/Interface/Sources/Root/WatchConnectivityDelegate.swift index e45b941..33e9b1d 100644 --- a/Projects/Feature/Workout/Interface/Sources/Root/WatchConnectivityDelegate.swift +++ b/Projects/Feature/Workout/Interface/Sources/Root/WatchConnectivityDelegate.swift @@ -7,8 +7,11 @@ import Foundation import WatchConnectivity + import ComposableArchitecture +import Domain + public class WatchConnectivityDelegate: NSObject, ObservableObject ,WCSessionDelegate { public weak var session: WCSession? @@ -24,6 +27,29 @@ public class WatchConnectivityDelegate: NSObject, ObservableObject ,WCSessionDel self.session?.activate() } + public func sendMessage(key: String, value: Any) { + DispatchQueue.main.async { + self.session?.sendMessage([key: value], replyHandler: nil) + debugPrint("iOS send key: \(key) value: \(value)") + } + } + + public func sendPumpingTimerData(from timers: [PumpingTimer], isHardPush: Bool = false) { + DispatchQueue.main.async { + do { + let pumpingTimerData = PumpingTimerData( + timers: timers, + updatedTime: Date().timeIntervalSince1970, + isHardPush: true) + let data = try JSONEncoder().encode(pumpingTimerData) + self.session?.sendMessageData(data, replyHandler: nil) + debugPrint("iOS send data: \(data)") + } catch { + print(error) + } + } + } + public func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { } @@ -36,6 +62,12 @@ public class WatchConnectivityDelegate: NSObject, ObservableObject ,WCSessionDel } + public func session(_ session: WCSession, didReceiveMessageData messageData: Data) { + DispatchQueue.main.async { + debugPrint("iOS recieved \(messageData)") + } + } + public func session(_ session: WCSession, didReceiveMessage message: [String : Any]) { DispatchQueue.main.async { for m in message { diff --git a/Projects/Feature/Workout/Interface/Sources/Timer/WorkoutTimerView.swift b/Projects/Feature/Workout/Interface/Sources/Timer/WorkoutTimerView.swift index e38390a..672e029 100644 --- a/Projects/Feature/Workout/Interface/Sources/Timer/WorkoutTimerView.swift +++ b/Projects/Feature/Workout/Interface/Sources/Timer/WorkoutTimerView.swift @@ -32,7 +32,7 @@ public struct WorkoutTimerView: View { titleView(viewStore: viewStore) .padding(.top, 16) - resultView(viewStore: viewStore) + resultListView(viewStore: viewStore) .padding(.top, 64) PumpingSubmitButton(title: "종료", completion: { @@ -40,11 +40,15 @@ public struct WorkoutTimerView: View { }) .padding() } + .onChange(of: viewStore.state.time) { _ in + watchConnectivityDelegate.sendPumpingTimerData(from: viewStore.state.timers) + } .onReceive(watchConnectivityDelegate.$heartRate) { heartRate in viewStore.send(.updateHeartRate(heartRate)) } .onReceive(watchConnectivityDelegate.$calorie) { calorie in viewStore.send(.updateCalorie(calorie)) + watchConnectivityDelegate.sendMessage(key: "timer", value: viewStore.state.timers) } .background(Color.colorGrey000) .navigationBarBackButtonHidden(true) @@ -81,15 +85,15 @@ public struct WorkoutTimerView: View { .background(Color.colorGrey100) } - private func resultView(viewStore: ViewStoreOf) -> some View { + private func resultListView(viewStore: ViewStoreOf) -> some View { VStack { - resultTextView(type: .time, value: Double(viewStore.state.time)) - resultTextView(type: .heatRate, value: viewStore.state.heartRateToShow) - resultTextView(type: .calorie, value: viewStore.state.calorieToShow) + resultView(type: .time, value: Double(viewStore.state.time)) + resultView(type: .heatRate, value: viewStore.state.heartRateToShow) + resultView(type: .calorie, value: viewStore.state.calorieToShow) } } - private func resultTextView(type: WorkoutTimerStore.ResultType, value: Double) -> some View { + private func resultView(type: WorkoutTimerStore.ResultType, value: Double) -> some View { VStack(spacing: 16) { HStack(spacing: 8) { type.image diff --git a/Projects/Feature/Workout/Sources/Timer/WorkoutTimerStore.swift b/Projects/Feature/Workout/Sources/Timer/WorkoutTimerStore.swift index 9ccbe92..b36e4fb 100644 --- a/Projects/Feature/Workout/Sources/Timer/WorkoutTimerStore.swift +++ b/Projects/Feature/Workout/Sources/Timer/WorkoutTimerStore.swift @@ -89,7 +89,8 @@ extension WorkoutTimerStore { state.heartRateToShow = heartRate guard let timerIndex = state.timerCells.firstIndex(where: { $0.id == id }) else { return .none } var targetTimer = state.timers[timerIndex] - targetTimer.heartRates.append(heartRate) + targetTimer.heartRateSum += heartRate + targetTimer.heartRateCount += 1 return .send(.updateTimer(index: timerIndex, timer: targetTimer)) } diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue100.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue100.colorset/Contents.json new file mode 100644 index 0000000..6ad0f29 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue100.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.859", + "green" : "0.169", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.800", + "red" : "0.784" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.859", + "green" : "0.169", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue200.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue200.colorset/Contents.json new file mode 100644 index 0000000..14f40d5 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue200.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.220", + "red" : "0.012" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.667", + "red" : "0.635" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.220", + "red" : "0.012" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue300.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue300.colorset/Contents.json new file mode 100644 index 0000000..ed3f9ef --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue300.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.953", + "green" : "0.267", + "red" : "0.110" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.533", + "red" : "0.463" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.953", + "green" : "0.267", + "red" : "0.110" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue400.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue400.colorset/Contents.json new file mode 100644 index 0000000..8fd9d8c --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue400.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.302", + "red" : "0.129" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.420", + "red" : "0.318" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.302", + "red" : "0.129" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue50.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue50.colorset/Contents.json new file mode 100644 index 0000000..c26dc9c --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue50.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.796", + "green" : "0.024", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.922", + "red" : "0.918" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.796", + "green" : "0.024", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue500.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue500.colorset/Contents.json new file mode 100644 index 0000000..6fd97d6 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue500.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.420", + "red" : "0.318" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.302", + "red" : "0.129" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.420", + "red" : "0.318" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue600.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue600.colorset/Contents.json new file mode 100644 index 0000000..251090e --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue600.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.533", + "red" : "0.463" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.953", + "green" : "0.267", + "red" : "0.110" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.533", + "red" : "0.463" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue700.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue700.colorset/Contents.json new file mode 100644 index 0000000..22b7172 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue700.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.667", + "red" : "0.635" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.220", + "red" : "0.012" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.667", + "red" : "0.635" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue800.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue800.colorset/Contents.json new file mode 100644 index 0000000..c6eb923 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue800.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.800", + "red" : "0.784" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.859", + "green" : "0.169", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.800", + "red" : "0.784" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue900.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue900.colorset/Contents.json new file mode 100644 index 0000000..8c20573 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBlue900.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.922", + "red" : "0.918" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.796", + "green" : "0.024", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.922", + "red" : "0.918" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBluePrimary.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBluePrimary.colorset/Contents.json new file mode 100644 index 0000000..81e16f0 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorBluePrimary.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.302", + "red" : "0.129" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.302", + "red" : "0.129" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.302", + "red" : "0.129" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan100.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan100.colorset/Contents.json new file mode 100644 index 0000000..d7644db --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan100.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.353", + "green" : "0.349", + "red" : "0.020" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.949", + "green" : "0.957", + "red" : "0.588" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.353", + "green" : "0.349", + "red" : "0.020" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan200.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan200.colorset/Contents.json new file mode 100644 index 0000000..ba208d0 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan200.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.686", + "green" : "0.659", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.686", + "green" : "0.659", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan300.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan300.colorset/Contents.json new file mode 100644 index 0000000..cdc22d9 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan300.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.796", + "green" : "0.745", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.796", + "green" : "0.745", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan400.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan400.colorset/Contents.json new file mode 100644 index 0000000..08f6f58 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan400.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.871", + "green" : "0.812", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.878", + "green" : "0.847", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.871", + "green" : "0.812", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan50.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan50.colorset/Contents.json new file mode 100644 index 0000000..d1c960d --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan50.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.404", + "green" : "0.435", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.980", + "green" : "0.984", + "red" : "0.839" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.404", + "green" : "0.435", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan500.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan500.colorset/Contents.json new file mode 100644 index 0000000..4d4b3e6 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan500.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.878", + "green" : "0.847", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.871", + "green" : "0.812", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.878", + "green" : "0.847", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan600.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan600.colorset/Contents.json new file mode 100644 index 0000000..f939fdd --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan600.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.796", + "green" : "0.745", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan700.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan700.colorset/Contents.json new file mode 100644 index 0000000..63e0e65 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan700.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.686", + "green" : "0.659", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan800.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan800.colorset/Contents.json new file mode 100644 index 0000000..9fc1152 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan800.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.949", + "green" : "0.957", + "red" : "0.588" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.353", + "green" : "0.349", + "red" : "0.020" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.949", + "green" : "0.957", + "red" : "0.588" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan900.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan900.colorset/Contents.json new file mode 100644 index 0000000..1ee018a --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyan900.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.980", + "green" : "0.984", + "red" : "0.839" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.404", + "green" : "0.435", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.980", + "green" : "0.984", + "red" : "0.839" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyanPrimary.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyanPrimary.colorset/Contents.json new file mode 100644 index 0000000..5d783d3 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorCyanPrimary.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.902", + "green" : "0.882", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen100.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen100.colorset/Contents.json new file mode 100644 index 0000000..14cfd7e --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen100.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.729", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.741", + "green" : "0.996", + "red" : "0.847" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.729", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen200.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen200.colorset/Contents.json new file mode 100644 index 0000000..bad90fa --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen200.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.808", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.561", + "green" : "0.996", + "red" : "0.737" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.808", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen300.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen300.colorset/Contents.json new file mode 100644 index 0000000..fec3f92 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen300.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.894", + "red" : "0.184" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.341", + "green" : "0.988", + "red" : "0.596" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.894", + "red" : "0.184" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen400.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen400.colorset/Contents.json new file mode 100644 index 0000000..cfb76b4 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen400.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.965", + "red" : "0.294" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.008", + "green" : "0.976", + "red" : "0.459" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.965", + "red" : "0.294" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen50.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen50.colorset/Contents.json new file mode 100644 index 0000000..ed754de --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen50.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.584", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.898", + "green" : "1.000", + "red" : "0.941" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.584", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen500.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen500.colorset/Contents.json new file mode 100644 index 0000000..59f9c85 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen500.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.008", + "green" : "0.976", + "red" : "0.459" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.965", + "red" : "0.294" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.008", + "green" : "0.976", + "red" : "0.459" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen600.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen600.colorset/Contents.json new file mode 100644 index 0000000..7dc3363 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen600.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.341", + "green" : "0.988", + "red" : "0.596" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.894", + "red" : "0.184" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.341", + "green" : "0.988", + "red" : "0.596" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen700.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen700.colorset/Contents.json new file mode 100644 index 0000000..2d6b3f5 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen700.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.561", + "green" : "0.996", + "red" : "0.737" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.808", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.561", + "green" : "0.996", + "red" : "0.737" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen800.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen800.colorset/Contents.json new file mode 100644 index 0000000..c63c107 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen800.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.741", + "green" : "0.996", + "red" : "0.847" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.729", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.741", + "green" : "0.996", + "red" : "0.847" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen900.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen900.colorset/Contents.json new file mode 100644 index 0000000..d496443 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreen900.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.898", + "green" : "1.000", + "red" : "0.941" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.584", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.898", + "green" : "1.000", + "red" : "0.941" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreenPrimary.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreenPrimary.colorset/Contents.json new file mode 100644 index 0000000..cfb76b4 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGreenPrimary.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.965", + "red" : "0.294" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.008", + "green" : "0.976", + "red" : "0.459" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.965", + "red" : "0.294" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey000.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey000.colorset/Contents.json new file mode 100644 index 0000000..e6c2886 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey000.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.133", + "green" : "0.110", + "red" : "0.110" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.133", + "green" : "0.110", + "red" : "0.110" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey100.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey100.colorset/Contents.json new file mode 100644 index 0000000..1927a69 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey100.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.176", + "green" : "0.145", + "red" : "0.145" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.965", + "green" : "0.957", + "red" : "0.949" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.176", + "green" : "0.145", + "red" : "0.145" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey200.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey200.colorset/Contents.json new file mode 100644 index 0000000..3ffd24e --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey200.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.278", + "green" : "0.235", + "red" : "0.235" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.922", + "green" : "0.910", + "red" : "0.898" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.278", + "green" : "0.235", + "red" : "0.235" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey300.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey300.colorset/Contents.json new file mode 100644 index 0000000..a273910 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey300.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.349", + "green" : "0.302", + "red" : "0.302" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.859", + "green" : "0.839", + "red" : "0.820" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.349", + "green" : "0.302", + "red" : "0.302" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey400.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey400.colorset/Contents.json new file mode 100644 index 0000000..1a9c7cd --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey400.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.427", + "green" : "0.384", + "red" : "0.384" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.788", + "green" : "0.757", + "red" : "0.725" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.427", + "green" : "0.384", + "red" : "0.384" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey50.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey50.colorset/Contents.json new file mode 100644 index 0000000..4fbf67c --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey50.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.153", + "green" : "0.125", + "red" : "0.125" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.984", + "green" : "0.980", + "red" : "0.976" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.153", + "green" : "0.125", + "red" : "0.125" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey500.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey500.colorset/Contents.json new file mode 100644 index 0000000..39b9439 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey500.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.529", + "green" : "0.494", + "red" : "0.494" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.631", + "green" : "0.584", + "red" : "0.545" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.529", + "green" : "0.494", + "red" : "0.494" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey600.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey600.colorset/Contents.json new file mode 100644 index 0000000..4394828 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey600.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.643", + "green" : "0.620", + "red" : "0.620" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.518", + "green" : "0.463", + "red" : "0.420" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.643", + "green" : "0.620", + "red" : "0.620" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey700.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey700.colorset/Contents.json new file mode 100644 index 0000000..4c08350 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey700.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.776", + "green" : "0.765", + "red" : "0.765" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.408", + "green" : "0.349", + "red" : "0.306" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.776", + "green" : "0.765", + "red" : "0.765" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey800.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey800.colorset/Contents.json new file mode 100644 index 0000000..4dbd748 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey800.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.898", + "green" : "0.894", + "red" : "0.894" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.294", + "green" : "0.239", + "red" : "0.200" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.898", + "green" : "0.894", + "red" : "0.894" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey900.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey900.colorset/Contents.json new file mode 100644 index 0000000..baa2288 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorGrey900.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.157", + "green" : "0.122", + "red" : "0.098" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal100.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal100.colorset/Contents.json new file mode 100644 index 0000000..d8b890f --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal100.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.867", + "green" : "0.000", + "red" : "0.690" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.984", + "green" : "0.737", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.867", + "green" : "0.000", + "red" : "0.690" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal200.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal200.colorset/Contents.json new file mode 100644 index 0000000..5d7b416 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal200.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.886", + "green" : "0.000", + "red" : "0.773" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.980", + "green" : "0.545", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.886", + "green" : "0.000", + "red" : "0.773" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal300.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal300.colorset/Contents.json new file mode 100644 index 0000000..82d476a --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal300.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.906", + "green" : "0.000", + "red" : "0.871" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.976", + "green" : "0.282", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.906", + "green" : "0.000", + "red" : "0.871" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal400.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal400.colorset/Contents.json new file mode 100644 index 0000000..7c93215 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal400.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.925", + "green" : "0.000", + "red" : "0.941" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.965", + "green" : "0.000", + "red" : "0.988" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.925", + "green" : "0.000", + "red" : "0.941" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal50.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal50.colorset/Contents.json new file mode 100644 index 0000000..b51e19e --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal50.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.831", + "green" : "0.000", + "red" : "0.529" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.996", + "green" : "0.898", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.831", + "green" : "0.000", + "red" : "0.529" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal500.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal500.colorset/Contents.json new file mode 100644 index 0000000..4871255 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal500.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.965", + "green" : "0.000", + "red" : "0.988" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.925", + "green" : "0.000", + "red" : "0.941" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.965", + "green" : "0.000", + "red" : "0.988" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal600.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal600.colorset/Contents.json new file mode 100644 index 0000000..e059e1e --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal600.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.976", + "green" : "0.282", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.906", + "green" : "0.000", + "red" : "0.871" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.976", + "green" : "0.282", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal700.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal700.colorset/Contents.json new file mode 100644 index 0000000..fde87fe --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal700.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.980", + "green" : "0.545", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.886", + "green" : "0.000", + "red" : "0.773" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.980", + "green" : "0.545", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal800.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal800.colorset/Contents.json new file mode 100644 index 0000000..5a01e79 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal800.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.984", + "green" : "0.737", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.867", + "green" : "0.000", + "red" : "0.690" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.984", + "green" : "0.737", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal900.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal900.colorset/Contents.json new file mode 100644 index 0000000..f472fc1 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTeal900.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.996", + "green" : "0.898", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.831", + "green" : "0.000", + "red" : "0.529" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.996", + "green" : "0.898", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTealPrimary.colorset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTealPrimary.colorset/Contents.json new file mode 100644 index 0000000..d1788f4 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/ColorTealPrimary.colorset/Contents.json @@ -0,0 +1,56 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.976", + "green" : "0.282", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "light" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.976", + "green" : "0.282", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.976", + "green" : "0.282", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Colors.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Black.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Black.otf new file mode 100644 index 0000000..04cc09d Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Black.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Bold.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Bold.otf new file mode 100644 index 0000000..a52ef39 Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Bold.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-ExtraBold.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-ExtraBold.otf new file mode 100644 index 0000000..33d4371 Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-ExtraBold.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-ExtraLight.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-ExtraLight.otf new file mode 100644 index 0000000..8952156 Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-ExtraLight.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Light.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Light.otf new file mode 100644 index 0000000..fefa785 Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Light.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Medium.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Medium.otf new file mode 100644 index 0000000..a2dc009 Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Medium.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Regular.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Regular.otf new file mode 100644 index 0000000..c940185 Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Regular.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-SemiBold.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-SemiBold.otf new file mode 100644 index 0000000..c375b54 Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-SemiBold.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Thin.otf b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Thin.otf new file mode 100644 index 0000000..a8c24dd Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Pretendard/Pretendard-Thin.otf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/Font/Tenada/Tenada.ttf b/Projects/WatchShared/DesignSystem/Resources/Font/Tenada/Tenada.ttf new file mode 100644 index 0000000..7ee73a5 Binary files /dev/null and b/Projects/WatchShared/DesignSystem/Resources/Font/Tenada/Tenada.ttf differ diff --git a/Projects/WatchShared/DesignSystem/Resources/HomeInterfaceSample.swift b/Projects/WatchShared/DesignSystem/Resources/HomeInterfaceSample.swift deleted file mode 100644 index c3ae52d..0000000 --- a/Projects/WatchShared/DesignSystem/Resources/HomeInterfaceSample.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// HomeInterfaceSample.swift -// FeatureHome -// -// Created by 송영모 on 2023/04/26. -// - -import Foundation diff --git a/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_fire.imageset/Component 5.svg b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_fire.imageset/Component 5.svg new file mode 100644 index 0000000..a2205cc --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_fire.imageset/Component 5.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_fire.imageset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_fire.imageset/Contents.json new file mode 100644 index 0000000..d7ad9cf --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_fire.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Component 5.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_heartbeat.imageset/Component 4.svg b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_heartbeat.imageset/Component 4.svg new file mode 100644 index 0000000..c117ad1 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_heartbeat.imageset/Component 4.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_heartbeat.imageset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_heartbeat.imageset/Contents.json new file mode 100644 index 0000000..4acfce8 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_heartbeat.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Component 4.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_timer.imageset/Component 6.svg b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_timer.imageset/Component 6.svg new file mode 100644 index 0000000..bfb0a8e --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_timer.imageset/Component 6.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_timer.imageset/Contents.json b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_timer.imageset/Contents.json new file mode 100644 index 0000000..6a901bf --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Resources/Images.xcassets/icon_timer.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Component 6.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Projects/WatchShared/DesignSystem/Sources/Colors.swift b/Projects/WatchShared/DesignSystem/Sources/Colors.swift new file mode 100644 index 0000000..91b97d9 --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Sources/Colors.swift @@ -0,0 +1,10 @@ +// +// Colors.swift +// WatchSharedDesignSystem_WatchSharedDesignSystem +// +// Created by 송영모 on 2023/07/05. +// + +import Foundation + +public typealias PumpingColors = WatchSharedDesignSystemAsset.Colors diff --git a/Projects/WatchShared/DesignSystem/Sources/Font.swift b/Projects/WatchShared/DesignSystem/Sources/Font.swift new file mode 100644 index 0000000..5ec12ae --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Sources/Font.swift @@ -0,0 +1,51 @@ +// +// Font.swift +// WatchSharedDesignSystem +// +// Created by 송영모 on 2023/07/05. +// + +import SwiftUI + +public extension Font { + + enum FontType { + case black + case bold + case extraBold + case extraLight + case light + case medium + case semiBold + case thin + + var name : String { + switch self { + case .black: + return "Pretendard-Black" + case .bold: + return "Pretendard-Bold" + case .extraBold: + return "Pretendard-ExtraBold" + case .extraLight: + return "Pretendard-ExtraLight" + case .light: + return "Pretendard-Light" + case .medium: + return "Pretendard-Medium" + case .semiBold: + return "Pretendard-SemiBold" + case .thin: + return "Pretendard-Thin" + } + } + } + + static func pretendard(size fontSize: CGFloat, type: FontType) -> Font { + return .custom("\(type.name)", size: fontSize) + } + + static func tenada(size fontSize: CGFloat) -> Font { + return .custom("Tenada", size: fontSize) + } +} diff --git a/Projects/WatchShared/DesignSystem/Sources/Images.swift b/Projects/WatchShared/DesignSystem/Sources/Images.swift new file mode 100644 index 0000000..b08607d --- /dev/null +++ b/Projects/WatchShared/DesignSystem/Sources/Images.swift @@ -0,0 +1,10 @@ +// +// Images.swift +// WatchSharedDesignSystem +// +// Created by 송영모 on 2023/07/05. +// + +import Foundation + +public typealias PumpingImages = WatchSharedDesignSystemAsset.Images diff --git a/Projects/WatchShared/Project.swift b/Projects/WatchShared/Project.swift index e7f6573..24c7651 100644 --- a/Projects/WatchShared/Project.swift +++ b/Projects/WatchShared/Project.swift @@ -13,6 +13,7 @@ let targets: [Target] = [ .watchShared( factory: .init( dependencies: [ + .watchShared(implements: .Util), .watchShared(implements: .DesignSystem), .watchShared(implements: .ThirdPartyLib) ] diff --git a/Projects/WatchShared/ThirdPartyLib/Sources/DateManager.swift b/Projects/WatchShared/ThirdPartyLib/Sources/DateManager.swift new file mode 100644 index 0000000..437080d --- /dev/null +++ b/Projects/WatchShared/ThirdPartyLib/Sources/DateManager.swift @@ -0,0 +1,18 @@ +// +// DateManager.swift +// WatchSharedThirdPartyLib +// +// Created by 송영모 on 2023/07/05. +// + +import Foundation + +public struct DateManager { + public static func toClockString(from second: Int) -> String { + let h = String(format: "%02d", second / 3600) + let m = String(format: "%02d", (second % 3600) / 60) + let s = String(format: "%02d", (second % 3600) % 60) + + return "\(h):\(m):\(s)" + } +} diff --git a/Projects/WatchShared/Util/Project.swift b/Projects/WatchShared/Util/Project.swift new file mode 100644 index 0000000..5462ef0 --- /dev/null +++ b/Projects/WatchShared/Util/Project.swift @@ -0,0 +1,20 @@ +// +// Project.swift +// ProjectDescriptionHelpers +// +// Created by 송영모 on 2023/07/05. +// + +import ProjectDescription +import ProjectDescriptionHelpers +import DependencyPlugin + +let project = Project.makeModule( + name: ModulePath.WatchShared.name+ModulePath.WatchShared.Util.rawValue, + targets: [ + .watchShared( + implements: .Util, + factory: .init() + ), + ] +) diff --git a/Projects/WatchShared/Util/Sources/Extensions/Array.swift b/Projects/WatchShared/Util/Sources/Extensions/Array.swift new file mode 100644 index 0000000..69b763d --- /dev/null +++ b/Projects/WatchShared/Util/Sources/Extensions/Array.swift @@ -0,0 +1,14 @@ +// +// Array.swift +// SharedUtil +// +// Created by 송영모 on 2023/06/18. +// + +import Foundation + +public extension Array { + subscript (safe index: Int) -> Element? { + return indices ~= index ? self[index] : nil + } +} diff --git a/Projects/WatchShared/Util/Sources/Extensions/Date.swift b/Projects/WatchShared/Util/Sources/Extensions/Date.swift new file mode 100644 index 0000000..94417b8 --- /dev/null +++ b/Projects/WatchShared/Util/Sources/Extensions/Date.swift @@ -0,0 +1,17 @@ +// +// Date.swift +// SharedUtil +// +// Created by 박현우 on 2023/06/29. +// + +import Foundation + +public extension Date { + func toStringWithCustomFormat(_ format: String) -> String { + let formatter = DateFormatter() + formatter.dateFormat = format + formatter.locale = Locale(identifier: "ko_kr") + return formatter.string(from: self) + } +} diff --git a/Projects/WatchShared/Util/Sources/Extensions/String.swift b/Projects/WatchShared/Util/Sources/Extensions/String.swift new file mode 100644 index 0000000..4203f5f --- /dev/null +++ b/Projects/WatchShared/Util/Sources/Extensions/String.swift @@ -0,0 +1,17 @@ +// +// String.swift +// SharedUtil +// +// Created by 박현우 on 2023/06/29. +// + +import Foundation + +public extension String { + func toDateWithCustomFormat(_ format: String) -> Date { + let formatter = DateFormatter() + formatter.dateFormat = format + formatter.locale = Locale(identifier: "ko_kr") + return formatter.date(from: self) ?? .init() + } +} diff --git a/Projects/WatchShared/Util/Sources/Managers/DateManager.swift b/Projects/WatchShared/Util/Sources/Managers/DateManager.swift new file mode 100644 index 0000000..da3cd97 --- /dev/null +++ b/Projects/WatchShared/Util/Sources/Managers/DateManager.swift @@ -0,0 +1,18 @@ +// +// DateManager.swift +// SharedUtilInterface +// +// Created by 송영모 on 2023/06/18. +// + +import Foundation + +public struct DateManager { + public static func toClockString(from second: Int) -> String { + let h = String(format: "%02d", second / 3600) + let m = String(format: "%02d", (second % 3600) / 60) + let s = String(format: "%02d", (second % 3600) % 60) + + return "\(h):\(m):\(s)" + } +} diff --git a/Tuist/ProjectDescriptionHelpers/Target+Templates.swift b/Tuist/ProjectDescriptionHelpers/Target+Templates.swift index 43de197..b42754d 100644 --- a/Tuist/ProjectDescriptionHelpers/Target+Templates.swift +++ b/Tuist/ProjectDescriptionHelpers/Target+Templates.swift @@ -312,7 +312,6 @@ public extension Target { newFactory.product = .staticFramework newFactory.deploymentTarget = Project.Environment.watchDeploymentTarget - return make(factory: newFactory) } @@ -322,7 +321,7 @@ public extension Target { newFactory.platform = .watchOS newFactory.deploymentTarget = Project.Environment.watchDeploymentTarget newFactory.product = .staticFramework - newFactory.sources = nil + newFactory.sources = .sources if module == .DesignSystem { newFactory.resources = ["Resources/**"]