From 4b6e51ab0395a84a5e85ccce450d5dd39faaa57c Mon Sep 17 00:00:00 2001 From: Nucleic Date: Fri, 26 Jun 2026 20:22:11 -0700 Subject: [PATCH] Release Keyboard Release Nucleic-Session: FD190A87-E8F7-4C72-A15E-E35B88EF5921 --- NucleicRemote/NucleicRemote/Views/Theme.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/NucleicRemote/NucleicRemote/Views/Theme.swift b/NucleicRemote/NucleicRemote/Views/Theme.swift index 454e55c..feff49f 100644 --- a/NucleicRemote/NucleicRemote/Views/Theme.swift +++ b/NucleicRemote/NucleicRemote/Views/Theme.swift @@ -120,6 +120,10 @@ extension View { func card(padding: CGFloat = 14) -> some View { modifier(CardBackground(padding: padding)) } /// Apply the teal accent app-wide. func nucleicTint() -> some View { tint(Palette.accent) } + /// Give a text field a way to release the keyboard. Without this, iOS leaves a focused + /// composer no dismiss affordance (no Return key on a vertical/multiline field, nothing to + /// tap) and the keyboard stays up. See `KeyboardDismissable`. + func keyboardDismissable() -> some View { modifier(KeyboardDismissable()) } /// Wrap a composer field in the orchestra purple ring while `active` (mirrors the Mac's /// animated composer glow, lighter touch). func orchestraGlow(active: Bool, cornerRadius: CGFloat = 8) -> some View {