Files
openclaw/apps/ios/ActivityWidget/OpenClawActivityTypography.swift
Colin Johnson 1ca6b6ff67 feat(ios): unify chat and voice experience (#107879)
* 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
2026-07-18 14:30:10 -04:00

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)
}
}