feat(keyboard): ship AI hint carousel, home library cards, and clipboard polish

Rotate AI idle suggestions with optional remote packs, move history/dictionary onto self-sizing Home preview cards, harden clipboard capture/prompting, and simplify keyboard chrome by dropping most liquid-glass shadows.
This commit is contained in:
Rocky
2026-08-13 01:00:51 +08:00
parent fd6e0d3e7e
commit 9f308fadd2
202 changed files with 10897 additions and 5962 deletions
+20 -8
View File
@@ -88,11 +88,16 @@ struct MacSettingsICloudSyncRow: View {
do {
try await MacICloudSyncBootstrap.dictionarySync.enableSync()
} catch let error as PersonalDictionaryCloudSyncError {
MacICloudSyncBootstrap.settingsSync.disableSync()
isEnabled = false
if case .payloadTooLarge = error {
syncErrorMessage = MacL10n.string("mac.sync.error.dictTooLarge", language: language)
} else {
do {
try MacICloudSyncBootstrap.settingsSync.disableSync()
isEnabled = false
if case .payloadTooLarge = error {
syncErrorMessage = MacL10n.string("mac.sync.error.dictTooLarge", language: language)
} else {
syncErrorMessage = MacL10n.string("mac.sync.error.generic", language: language)
}
} catch {
reloadFromStore()
syncErrorMessage = MacL10n.string("mac.sync.error.generic", language: language)
}
isApplyingToggle = false
@@ -100,7 +105,7 @@ struct MacSettingsICloudSyncRow: View {
}
reloadFromStore()
} catch {
isEnabled = false
reloadFromStore()
syncErrorMessage = MacL10n.string("mac.sync.error.generic", language: language)
}
isApplyingToggle = false
@@ -108,9 +113,16 @@ struct MacSettingsICloudSyncRow: View {
}
private func disableSync() {
MacICloudSyncBootstrap.settingsSync.disableSync()
isEnabled = false
syncErrorMessage = nil
isApplyingToggle = true
do {
try MacICloudSyncBootstrap.settingsSync.disableSync()
reloadFromStore()
} catch {
reloadFromStore()
syncErrorMessage = MacL10n.string("mac.sync.error.generic", language: language)
}
isApplyingToggle = false
}
private func syncNow() {