mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-23 20:21:11 +00:00
* feat(ios): unify chat and voice experience * refactor(ios): finish unified chat ownership * fix(ios): unify chat and voice capture ownership * fix(ios): serialize Talk permission hydration * fix(ios): clear voice CI regressions * fix(ios): clear remaining unified chat CI failures * chore(i18n): sync native source inventory * refactor(ios): defer provider-only realtime voice * fix(ios): clean unified chat voice PR * fix(ios): localize unified voice controls * fix(ios): serialize composer audio controls * fix(ios): isolate dictation preparation lifecycle * fix(ios): key chat tab icons by appearance * fix(ios): preserve talk upgrade handshakes * fix(ios): refresh native i18n inventory * fix(ios): reconcile shared locale artifacts * fix(ios): satisfy chat view lint limit * fix(ios): reconcile shared composer implementation * test(apple): avoid XCTest actor deinit crash * fix(ios): satisfy SwiftFormat scope spacing * fix(ios): remove duplicate merged helper declarations
32 lines
781 B
Swift
32 lines
781 B
Swift
import SwiftUI
|
|
|
|
enum OpenClawActivityType {
|
|
static var eyebrow: Font {
|
|
body(size: 8).weight(.bold)
|
|
}
|
|
|
|
static var subheadSemiBold: Font {
|
|
display(size: 15, weight: .semibold)
|
|
}
|
|
|
|
static var subheadBold: Font {
|
|
display(size: 15, weight: .bold)
|
|
}
|
|
|
|
static var caption: Font {
|
|
body(size: 12)
|
|
}
|
|
|
|
static func symbol(size: CGFloat, weight: Font.Weight) -> Font {
|
|
.system(size: size, weight: weight)
|
|
}
|
|
|
|
private static func display(size: CGFloat, weight: Font.Weight) -> Font {
|
|
.custom("RedHatDisplay-Regular", size: size, relativeTo: .subheadline).weight(weight)
|
|
}
|
|
|
|
private static func body(size: CGFloat) -> Font {
|
|
.custom("Inter-Regular", size: size, relativeTo: .caption)
|
|
}
|
|
}
|