From 186793ecb7cbb524394a0d4f9dcd9d6eff14f21b Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 28 Nov 2025 15:17:58 +0000 Subject: [PATCH 1/8] Improve dropdown chevron positioning --- .../DataImport/View/New/ImportSourcePickerView.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift b/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift index e622f41612d..30d66abe69d 100644 --- a/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift +++ b/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift @@ -72,7 +72,7 @@ struct ImportSourcePickerView: View { HoverButtonView { viewModel.showTypeSelectionSheet() } content: { - HStack(alignment: .lastTextBaseline, spacing: 1) { + HStack(alignment: .center, spacing: 4) { Text(viewModel.typeButtonTitle) .font(.system(size: 13, weight: .semibold)) Image(nsImage: DesignSystemImages.Glyphs.Size16.chevronRight) @@ -80,6 +80,7 @@ struct ImportSourcePickerView: View { .resizable() .frame(width: 10, height: 10) .rotationEffect(.degrees(90)) + .offset(y: 1) } } } From 9bd87a65ca9ac4d10fd6fb07af6b770f71ce0074 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 28 Nov 2025 15:18:10 +0000 Subject: [PATCH 2/8] Fix background colour of sync area --- .../DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift b/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift index 30d66abe69d..83a61ee89fa 100644 --- a/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift +++ b/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift @@ -126,7 +126,7 @@ struct ImportSourcePickerView: View { .padding(.horizontal, 12) .padding(.vertical, 14) .frame(width: 380, alignment: .center) - .background((Color(designSystemColor: .surfacePrimary))) + .background((Color(designSystemColor: .surfaceSecondary))) .cornerRadius(10) } .buttonStyle(.plain) From 52ba9a604abfd64f44f4ead2e1b88788a4799d46 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 28 Nov 2025 15:18:24 +0000 Subject: [PATCH 3/8] Standardize dropdown button styles --- .../DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift b/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift index 83a61ee89fa..575b514658f 100644 --- a/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift +++ b/macOS/DuckDuckGo/DataImport/View/New/ImportSourcePickerView.swift @@ -101,7 +101,7 @@ struct ImportSourcePickerView: View { viewModel.toggleExpansion() } content: { Text(UserText.importChooseSourceShowMoreButtonTitle) - .font(.system(size: 11, weight: .semibold)) + .font(.system(size: 13, weight: .semibold)) .multilineTextAlignment(.center) } .padding(.top, 10) From be2a145fd98726592a847c49cbd5a10514551b90 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 28 Nov 2025 15:18:36 +0000 Subject: [PATCH 4/8] Fix password explainer spacing --- macOS/DuckDuckGo/DataImport/View/DataImportView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macOS/DuckDuckGo/DataImport/View/DataImportView.swift b/macOS/DuckDuckGo/DataImport/View/DataImportView.swift index 4fbfdddfbc4..e40a996995e 100644 --- a/macOS/DuckDuckGo/DataImport/View/DataImportView.swift +++ b/macOS/DuckDuckGo/DataImport/View/DataImportView.swift @@ -196,7 +196,7 @@ struct DataImportView: ModalView { @State private var showPasswordsExplainerPopover = false private func passwordsExplainerView() -> some View { - HStack(spacing: 4) { + HStack(spacing: 8) { Image(nsImage: DesignSystemImages.Glyphs.Size16.lock) .renderingMode(.template) .foregroundColor(Color(designSystemColor: showPasswordsExplainerPopover ? .iconsPrimary : .iconsTertiary)) From 2407e2e76057262344b5efe8a3cc7206e2f65663 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 28 Nov 2025 15:19:32 +0000 Subject: [PATCH 5/8] Tweak show more button title --- macOS/DuckDuckGo/Common/Localizables/UserText.swift | 2 +- macOS/DuckDuckGo/Localization/Localizable.xcstrings | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/macOS/DuckDuckGo/Common/Localizables/UserText.swift b/macOS/DuckDuckGo/Common/Localizables/UserText.swift index 8c2927aa01a..8377b7bba95 100644 --- a/macOS/DuckDuckGo/Common/Localizables/UserText.swift +++ b/macOS/DuckDuckGo/Common/Localizables/UserText.swift @@ -1188,7 +1188,7 @@ struct UserText { // MARK: - Login Import & Export static let importChooseSourceTitle = NSLocalizedString("import.choose-source.title", value: "Choose where to import from", comment: "Title text for the import dialog, before the user selects a source") - static let importChooseSourceShowMoreButtonTitle = NSLocalizedString("import.choose-source.show-more-button.title", value: "Show More", comment: "Button text for showing more import options in the data import view") + static let importChooseSourceShowMoreButtonTitle = NSLocalizedString("import.choose-source.more-button.title", value: "More", comment: "Button text for showing more import options in the data import view") static let importChooseSourceSyncButtonTitle = NSLocalizedString("import.choose-source.sync-button.title", value: "Using DuckDuckGo on another device?", comment: "Button text for syncing from the data import view") static let importChooseSourceSyncButtonAction = NSLocalizedString("import.choose-source.sync-button.action", value: "Sync", comment: "Action text for syncing data with another device from the data import view") diff --git a/macOS/DuckDuckGo/Localization/Localizable.xcstrings b/macOS/DuckDuckGo/Localization/Localizable.xcstrings index c8f835f6bea..51cd3ec4ed4 100644 --- a/macOS/DuckDuckGo/Localization/Localizable.xcstrings +++ b/macOS/DuckDuckGo/Localization/Localizable.xcstrings @@ -42515,14 +42515,14 @@ } } }, - "import.choose-source.show-more-button.title" : { + "import.choose-source.more-button.title" : { "comment" : "Button text for showing more import options in the data import view", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "Show More" + "value" : "More" } } } From ace341d91a2a8f2d7e9cf49f250c61f53a0df817 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 28 Nov 2025 15:19:53 +0000 Subject: [PATCH 6/8] Update order of import sources (CSV / HTML before password managers) --- .../Sources/BrowserServicesKit/DataImport/DataImport.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SharedPackages/BrowserServicesKit/Sources/BrowserServicesKit/DataImport/DataImport.swift b/SharedPackages/BrowserServicesKit/Sources/BrowserServicesKit/DataImport/DataImport.swift index a551e4e161b..24588a016ac 100644 --- a/SharedPackages/BrowserServicesKit/Sources/BrowserServicesKit/DataImport/DataImport.swift +++ b/SharedPackages/BrowserServicesKit/Sources/BrowserServicesKit/DataImport/DataImport.swift @@ -40,12 +40,12 @@ public enum DataImport { case tor case vivaldi case yandex + case csv + case bookmarksHTML case onePassword8 case onePassword7 case bitwarden case lastPass - case csv - case bookmarksHTML static let preferredSources: [Self] = [.chrome, .safari] From 8cdc1e7243f03c5985f886739eb180ea84cb4712 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 28 Nov 2025 15:40:53 +0000 Subject: [PATCH 7/8] Fix scroll indicator positioning for import summary detail screen --- .../DataImport/View/New/DataImportSummaryDetailView.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/macOS/DuckDuckGo/DataImport/View/New/DataImportSummaryDetailView.swift b/macOS/DuckDuckGo/DataImport/View/New/DataImportSummaryDetailView.swift index fec7d269b74..923e5e32b85 100644 --- a/macOS/DuckDuckGo/DataImport/View/New/DataImportSummaryDetailView.swift +++ b/macOS/DuckDuckGo/DataImport/View/New/DataImportSummaryDetailView.swift @@ -34,6 +34,8 @@ struct DataImportSummaryDetailView: View { var body: some View { VStack(spacing: 0) { headerView + .padding(.horizontal, Metrics.outerPadding) + .padding(.top, Metrics.outerPadding) .padding(.bottom, 16) ScrollView { @@ -50,9 +52,10 @@ struct DataImportSummaryDetailView: View { } } } + .padding(.horizontal, Metrics.outerPadding) } + .padding(.bottom, Metrics.outerPadding) } - .padding(20) .frame(maxHeight: 600) } @@ -112,7 +115,7 @@ struct DataImportSummaryDetailView: View { @ViewBuilder private func duplicateRow(item: ImportItem) -> some View { - if case .password(let _, let domain, let username, _) = item { + if case .password(_, let domain, let username, _) = item { duplicateRowContent( icon: DesignSystemImages.Glyphs.Size16.globe, content: { From d17aaaafc7d9cb7f38b48ef64690d115026129ef Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 28 Nov 2025 16:37:58 +0000 Subject: [PATCH 8/8] Add constant value for padding --- .../DataImport/View/New/DataImportSummaryDetailView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/macOS/DuckDuckGo/DataImport/View/New/DataImportSummaryDetailView.swift b/macOS/DuckDuckGo/DataImport/View/New/DataImportSummaryDetailView.swift index 923e5e32b85..4a387d2e76a 100644 --- a/macOS/DuckDuckGo/DataImport/View/New/DataImportSummaryDetailView.swift +++ b/macOS/DuckDuckGo/DataImport/View/New/DataImportSummaryDetailView.swift @@ -276,6 +276,7 @@ struct DataImportSummaryDetailView: View { private enum Metrics { static let sectionInnerPadding: CGFloat = 10 static let mainStackViewSpacing: CGFloat = 20 + static let outerPadding: CGFloat = 20 static let iconSize: CGFloat = 16.0 static let sectionHeaderHeight: CGFloat = 44.0 static let innerRowSpacing: CGFloat = 8.0