diff --git a/Vault/Sources/VaultiOS/Views/Detail/EncryptedItemDetailView.swift b/Vault/Sources/VaultiOS/Views/Detail/EncryptedItemDetailView.swift index 10f825b8d..425a7a22a 100644 --- a/Vault/Sources/VaultiOS/Views/Detail/EncryptedItemDetailView.swift +++ b/Vault/Sources/VaultiOS/Views/Detail/EncryptedItemDetailView.swift @@ -81,29 +81,37 @@ struct EncryptedItemDetailView: View { } } + @ViewBuilder private var passwordEntrySection: some View { Section { FormRow(image: Image(systemName: "lock.fill"), color: .primary, style: .standard) { SecureField("Password...", text: $viewModel.enteredEncryptionPassword) } - } footer: { + } + .onChange(of: viewModel.enteredEncryptionPassword) { _, _ in + // When the text changes, reset the state. + viewModel.resetState() + } + + Section { AsyncButton { await viewModel.startDecryption() } label: { - Label("Decrypt", systemImage: "key.horizontal.fill") + decryptRow { + Text("Decrypt") + .foregroundStyle(Color.accentColor) + } } loading: { - ProgressView() - .tint(.white) + decryptRow { + ProgressView() + } } - .modifier(ProminentButtonModifier()) - .animation(.easeOut, value: viewModel.state) - .padding() - .frame(maxWidth: .infinity) .disabled(!viewModel.canStartDecryption) } - .onChange(of: viewModel.enteredEncryptionPassword) { _, _ in - // When the text changes, reset the state. - viewModel.resetState() - } + .animation(.easeOut, value: viewModel.state) + } + + private func decryptRow(@ViewBuilder content: @escaping () -> some View) -> some View { + FormRow(image: Image(systemName: "key.horizontal.fill"), color: .accentColor, content: content) } } diff --git a/Vault/Sources/VaultiOS/Views/Detail/OTP/OTPCodeDetailView.swift b/Vault/Sources/VaultiOS/Views/Detail/OTP/OTPCodeDetailView.swift index 266979438..aa9bd8334 100644 --- a/Vault/Sources/VaultiOS/Views/Detail/OTP/OTPCodeDetailView.swift +++ b/Vault/Sources/VaultiOS/Views/Detail/OTP/OTPCodeDetailView.swift @@ -335,6 +335,7 @@ struct OTPCodeDetailView VaultItemOnTapDecoratorViewGenerator { diff --git a/Vault/Sources/VaultiOS/Views/Detail/SecureNote/SecureNoteDetailView.swift b/Vault/Sources/VaultiOS/Views/Detail/SecureNote/SecureNoteDetailView.swift index d6d9a3397..4c9054f73 100644 --- a/Vault/Sources/VaultiOS/Views/Detail/SecureNote/SecureNoteDetailView.swift +++ b/Vault/Sources/VaultiOS/Views/Detail/SecureNote/SecureNoteDetailView.swift @@ -275,6 +275,7 @@ struct SecureNoteDetailView: View { } } + @ViewBuilder private var editingActionsSection: some View { Section { Picker(selection: $viewModel.editingModel.detail.textFormat) { @@ -382,12 +383,11 @@ struct SecureNoteDetailView: View { } } } - } footer: { - if viewModel.shouldShowDeleteButton { + } + + if viewModel.shouldShowDeleteButton { + Section { deleteButton - .padding(.horizontal) - .frame(maxWidth: .infinity) - .padding(.vertical, 12) } } } @@ -396,9 +396,11 @@ struct SecureNoteDetailView: View { Button { isShowingDeleteConfirmation = true } label: { - Label(localized(key: "action.delete.title"), systemImage: "trash.fill") + FormRow(image: Image(systemName: "trash.fill"), color: .red) { + Text(localized(key: "action.delete.title")) + .foregroundStyle(Color.red) + } } - .modifier(ProminentButtonModifier(color: .red)) } } diff --git a/Vault/Sources/VaultiOS/Views/Detail/VaultDetailEncryptionEditView.swift b/Vault/Sources/VaultiOS/Views/Detail/VaultDetailEncryptionEditView.swift index 117d0032a..9b3bb6816 100644 --- a/Vault/Sources/VaultiOS/Views/Detail/VaultDetailEncryptionEditView.swift +++ b/Vault/Sources/VaultiOS/Views/Detail/VaultDetailEncryptionEditView.swift @@ -51,6 +51,7 @@ struct VaultDetailEncryptionEditView: View { } } + @ViewBuilder private var createEncryptionSection: some View { Section { FormRow(image: Image(systemName: "lock.fill"), color: .primary, style: .standard) { @@ -68,22 +69,25 @@ struct VaultDetailEncryptionEditView: View { SecureField("Confirm Password", text: $newEncryptionPasswordConfirm) } } - } footer: { - if newEncryptionPassword.isNotBlank { + } + + if newEncryptionPassword.isNotBlank { + Section { Button { didSetNewEncryptionPassword(newEncryptionPassword) dismiss() } label: { - Label("Encrypt", systemImage: "checkmark.circle.fill") + FormRow(image: Image(systemName: "checkmark.circle.fill"), color: .accentColor) { + Text("Encrypt") + .foregroundStyle(Color.accentColor) + } } - .modifier(ProminentButtonModifier()) - .padding() - .frame(maxWidth: .infinity) .disabled(!doPasswordsMatch) } } } + @ViewBuilder private var removeEncryptionSection: some View { Section { Text(""" @@ -93,16 +97,18 @@ struct VaultDetailEncryptionEditView: View { """) .foregroundStyle(.secondary) .font(.caption) - } footer: { + } + + Section { Button { didRemoveEncryption() dismiss() } label: { - Label("Remove Encryption", systemImage: "xmark.circle.fill") + FormRow(image: Image(systemName: "xmark.circle.fill"), color: .red) { + Text("Remove Encryption") + .foregroundStyle(Color.red) + } } - .modifier(ProminentButtonModifier(color: .red)) - .padding() - .frame(maxWidth: .infinity) } } } diff --git a/Vault/Sources/VaultiOS/Views/Detail/VaultItemDetailView.swift b/Vault/Sources/VaultiOS/Views/Detail/VaultItemDetailView.swift index 291ffe019..991eb5d5b 100644 --- a/Vault/Sources/VaultiOS/Views/Detail/VaultItemDetailView.swift +++ b/Vault/Sources/VaultiOS/Views/Detail/VaultItemDetailView.swift @@ -97,19 +97,22 @@ struct VaultItemDetailView: ) .padding() .containerRelativeFrame(.horizontal) - } footer: { + } + + Section { AsyncButton { try await authenticationService.validateAuthentication(reason: "Unlock item") viewModel.isLocked = false } label: { - Label("Unlock", systemImage: "key.horizontal.fill") + unlockRow { + Text("Unlock") + .foregroundStyle(Color.accentColor) + } } loading: { - ProgressView() - .tint(.white) + unlockRow { + ProgressView() + } } - .modifier(ProminentButtonModifier()) - .containerRelativeFrame(.horizontal) - .padding() } } else { Section { @@ -128,19 +131,25 @@ struct VaultItemDetailView: .foregroundStyle(.secondary) } } - } footer: { + } + + Section { Button { viewModel.isLocked = false } label: { - Text("Dismiss") + FormRow(image: Image(systemName: "xmark.circle.fill"), color: .accentColor) { + Text("Dismiss") + .foregroundStyle(Color.accentColor) + } } - .modifier(ProminentButtonModifier()) - .containerRelativeFrame(.horizontal) - .padding() } } } + private func unlockRow(@ViewBuilder content: @escaping () -> some View) -> some View { + FormRow(image: Image(systemName: "key.horizontal.fill"), color: .accentColor, content: content) + } + private var cancelCreationItem: some ToolbarContent { // This button always dismisses immediately (without saving) if it's the initial creation. // (Dirty or not!) diff --git a/Vault/Sources/VaultiOS/Views/General/ProminentButtonModifier.swift b/Vault/Sources/VaultiOS/Views/General/ProminentButtonModifier.swift deleted file mode 100644 index 525f3722c..000000000 --- a/Vault/Sources/VaultiOS/Views/General/ProminentButtonModifier.swift +++ /dev/null @@ -1,30 +0,0 @@ -import Foundation -import SwiftUI - -/// Makes a button prominent with a standard background color and border. -public struct ProminentButtonModifier: ViewModifier { - var color: Color - public init(color: Color = Color.accentColor) { - self.color = color - } - - public func body(content: Content) -> some View { - content - .font(.headline) - .foregroundStyle(.white) - .buttonStyle(.borderless) - .padding(.horizontal, 16) - .padding(.vertical, 12) - .background(color) - .clipShape(RoundedRectangle(cornerRadius: 12)) - } -} - -#Preview { - Button { - // noop - } label: { - Text("Hello") - } - .modifier(ProminentButtonModifier()) -} diff --git a/Vault/Sources/VaultiOS/Views/Settings/SettingsDangerView.swift b/Vault/Sources/VaultiOS/Views/Settings/SettingsDangerView.swift index 9408f87e7..9468f5992 100644 --- a/Vault/Sources/VaultiOS/Views/Settings/SettingsDangerView.swift +++ b/Vault/Sources/VaultiOS/Views/Settings/SettingsDangerView.swift @@ -16,6 +16,7 @@ struct SettingsDangerView: View { var body: some View { Form { headerSection + deleteAllSection } .navigationBarTitleDisplayMode(.inline) .interactiveDismissDisabled(viewModel.isDeleting) @@ -31,16 +32,11 @@ struct SettingsDangerView: View { .padding() .containerRelativeFrame(.horizontal) .foregroundStyle(.red) - } footer: { - VStack(alignment: .center, spacing: 16) { - deleteAllButton - } - .padding(16) } } - private var deleteAllButton: some View { - VStack(alignment: .center, spacing: 8) { + private var deleteAllSection: some View { + Section { AsyncButton { do { withAnimation { @@ -56,21 +52,24 @@ struct SettingsDangerView: View { } } } label: { - Label("Delete All Data", systemImage: "trash.fill") + deleteAllRow { + Text("Delete All Data") + .foregroundStyle(Color.red) + } } loading: { - ProgressView() - .tint(.white) + deleteAllRow { + ProgressView() + } } - .modifier(ProminentButtonModifier(color: .red)) - + } footer: { if let deleteError { - Group { - Text(deleteError.userDescription ?? "Error deleting data.") - } - .font(.caption) - .foregroundStyle(.secondary) + Text(deleteError.userDescription ?? "Error deleting data.") + .foregroundStyle(.red) } } - .frame(maxWidth: .infinity) + } + + private func deleteAllRow(@ViewBuilder content: @escaping () -> some View) -> some View { + FormRow(image: Image(systemName: "trash.fill"), color: .red, content: content) } } diff --git a/Vault/Sources/VaultiOS/Views/Tags/VaultTagDetailView.swift b/Vault/Sources/VaultiOS/Views/Tags/VaultTagDetailView.swift index e8ca59aa6..bec822133 100644 --- a/Vault/Sources/VaultiOS/Views/Tags/VaultTagDetailView.swift +++ b/Vault/Sources/VaultiOS/Views/Tags/VaultTagDetailView.swift @@ -91,15 +91,20 @@ struct VaultTagDetailView: View { await viewModel.delete() dismiss() } label: { - Label("Delete Tag", systemImage: "trash.fill") + deleteRow { + Text("Delete Tag") + .foregroundStyle(Color.red) + } } loading: { - ProgressView() - .tint(.white) + deleteRow { + ProgressView() + } } - .modifier(ProminentButtonModifier(color: .red)) - .frame(maxWidth: .infinity) } - .listRowBackground(EmptyView()) + } + + private func deleteRow(@ViewBuilder content: @escaping () -> some View) -> some View { + FormRow(image: Image(systemName: "trash.fill"), color: .red, content: content) } } diff --git a/Vault/Sources/VaultiOSAutofill/Views/VaultAutofillConfigurationView.swift b/Vault/Sources/VaultiOSAutofill/Views/VaultAutofillConfigurationView.swift index 2110cd051..b30c309f1 100644 --- a/Vault/Sources/VaultiOSAutofill/Views/VaultAutofillConfigurationView.swift +++ b/Vault/Sources/VaultiOSAutofill/Views/VaultAutofillConfigurationView.swift @@ -57,10 +57,10 @@ struct VaultAutofillConfigurationView: View { viewModel.dismiss() } label: { Text("Continue") - .font(.headline) .frame(maxWidth: .infinity) } - .modifier(ProminentButtonModifier()) + .buttonStyle(.borderedProminent) + .controlSize(.large) } .multilineTextAlignment(.center) } diff --git a/Vault/Tests/VaultiOSAutofillTests/__Snapshots__/VaultAutofillConfigurationViewSnapshotTests/layout.1.png b/Vault/Tests/VaultiOSAutofillTests/__Snapshots__/VaultAutofillConfigurationViewSnapshotTests/layout.1.png index a0755b872..efe7fb56c 100644 Binary files a/Vault/Tests/VaultiOSAutofillTests/__Snapshots__/VaultAutofillConfigurationViewSnapshotTests/layout.1.png and b/Vault/Tests/VaultiOSAutofillTests/__Snapshots__/VaultAutofillConfigurationViewSnapshotTests/layout.1.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_medium.png index 31f61aa19..d2091edb9 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_xSmall.png index 87f74d4f8..7e50229de 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_xxLarge.png index 58f07947e..4b6aa9063 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.dark_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_medium.png index 31f61aa19..d2091edb9 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_xSmall.png index 87f74d4f8..7e50229de 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_xxLarge.png index 58f07947e..4b6aa9063 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/editMode_emptyState.light_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_medium.png index 7d65f4113..9cd86c12a 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_xSmall.png index a414059bf..4e855075b 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_xxLarge.png index 00a17bfff..16dcc30cd 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.dark_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_medium.png index 7d65f4113..9cd86c12a 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_xSmall.png index a414059bf..4e855075b 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_xxLarge.png index 00a17bfff..16dcc30cd 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedState.light_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_medium.png index e19f8d002..fafeb028f 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xSmall.png index 331aaff3d..c40843915 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xxLarge.png index d71585fb7..5f80559fb 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_medium.png index e19f8d002..fafeb028f 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_xSmall.png index 331aaff3d..c40843915 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_xxLarge.png index d71585fb7..5f80559fb 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/OTPCodeDetailViewSnapshotTests/lockedStateNoAuthentication.light_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_medium.png index a57d33784..5fa5b133e 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_xSmall.png index 36c0999a5..8d90ea9d0 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_xxLarge.png index 0612fe8e4..cfedac0ba 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.dark_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_medium.png index a57d33784..5fa5b133e 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_xSmall.png index 36c0999a5..8d90ea9d0 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_xxLarge.png index 0612fe8e4..cfedac0ba 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_editedContent.light_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_medium.png index 0fa2e6bc2..debac2d52 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_xSmall.png index 7d2d53e6d..9f2e12b76 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_xxLarge.png index 2eb1707c3..9ef9feb17 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.dark_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_medium.png index 0fa2e6bc2..debac2d52 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_xSmall.png index 7d2d53e6d..9f2e12b76 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_xxLarge.png index 2eb1707c3..9ef9feb17 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/editMode_emptyState.light_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_medium.png index 9333e7a6e..936313cf4 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_xSmall.png index 8a5adf08a..85c19e629 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_xxLarge.png index 573442747..3879f87f3 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.dark_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_medium.png index 9333e7a6e..936313cf4 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_xSmall.png index 8a5adf08a..85c19e629 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_xxLarge.png index 573442747..3879f87f3 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedState.light_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_medium.png index 5ee4abb83..eec90c08b 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xSmall.png index 177957be4..1a22818ef 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xxLarge.png index 7c1ab13cf..849ca0fc1 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.dark_xxLarge.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_medium.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_medium.png index 5ee4abb83..eec90c08b 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_medium.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_medium.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_xSmall.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_xSmall.png index 177957be4..1a22818ef 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_xSmall.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_xSmall.png differ diff --git a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_xxLarge.png b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_xxLarge.png index 7c1ab13cf..849ca0fc1 100644 Binary files a/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_xxLarge.png and b/Vault/Tests/VaultiOSTests/__Snapshots__/SecureNoteDetailViewSnapshotTests/lockedStateNoAuthentication.light_xxLarge.png differ