From 0bdb6a626d8fee151777781d4fad6c66f51dfd6c Mon Sep 17 00:00:00 2001 From: Rokas Ambrazevicius Date: Wed, 27 Dec 2023 16:12:41 +0200 Subject: [PATCH] Setup packages --- nym-vpn/ios/.gitignore | 7 +++ nym-vpn/ios/.swiftlint.yml | 5 +- nym-vpn/ios/Home/Package.swift | 11 ++-- nym-vpn/ios/Home/Sources/Home/HomeView.swift | 21 +++++++- nym-vpn/ios/NymVPN.xcodeproj/project.pbxproj | 2 + .../xcschemes/xcschememanagement.plist | 14 ----- .../contents.xcworkspacedata | 3 ++ nym-vpn/ios/NymVPN/NymVPNApp.swift | 9 +++- nym-vpn/ios/Theme/Package.swift | 12 +++-- .../Theme/Colors/Color+Extensions.swift | 11 ++++ .../Theme/Sources/Theme/Colors/NymColor.swift | 10 ++++ .../Theme/Sources/Theme/Fonts/NymFont.swift | 33 ++++++++++++ .../Sources/Theme/Fonts/NymFontStyle.swift | 6 +++ .../Sources/Theme/Fonts/NymTextStyle.swift | 21 ++++++++ .../Theme/Fonts/NymTextStyleModifier.swift | 20 +++++++ .../Assets.xcassets/Colors/Contents.json | 6 +++ .../Colors/background.colorset/Contents.json | 38 ++++++++++++++ .../Contents.json | 38 ++++++++++++++ .../Contents.json | 38 ++++++++++++++ .../Resources/Assets.xcassets/Contents.json | 6 +++ .../Theme/Resources/Fonts/Lato-Bold.ttf | Bin 0 -> 73332 bytes .../Theme/Resources/Fonts/Lato-Regular.ttf | Bin 0 -> 75152 bytes nym-vpn/ios/Theme/Sources/Theme/Theme.swift | 2 - .../Sources/Theme/ThemeConfiguration.swift | 7 +++ nym-vpn/ios/UIComponents/.gitignore | 8 +++ nym-vpn/ios/UIComponents/Package.swift | 35 +++++++++++++ .../Navigation/CustomNavBar.swift | 49 ++++++++++++++++++ .../Navigation/CustomNavBarButtonConfig.swift | 17 ++++++ .../Resources/Assets.xcassets/Contents.json | 6 +++ .../Assets.xcassets/Icons/Contents.json | 6 +++ .../Icons/settingsGear.imageset/Contents.json | 16 ++++++ .../settingsGear.imageset/settings_24px.svg | 5 ++ .../UIComponentsTests/UIComponentsTests.swift | 4 ++ 33 files changed, 436 insertions(+), 30 deletions(-) create mode 100644 nym-vpn/ios/.gitignore delete mode 100644 nym-vpn/ios/NymVPN.xcodeproj/xcuserdata/Rokas.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Colors/Color+Extensions.swift create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Colors/NymColor.swift create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Fonts/NymFont.swift create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Fonts/NymFontStyle.swift create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Fonts/NymTextStyle.swift create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Fonts/NymTextStyleModifier.swift create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/Contents.json create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/background.colorset/Contents.json create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/navigationBarBackground.colorset/Contents.json create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/navigationBarSettingsGear.colorset/Contents.json create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Contents.json create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Resources/Fonts/Lato-Bold.ttf create mode 100644 nym-vpn/ios/Theme/Sources/Theme/Resources/Fonts/Lato-Regular.ttf delete mode 100644 nym-vpn/ios/Theme/Sources/Theme/Theme.swift create mode 100644 nym-vpn/ios/Theme/Sources/Theme/ThemeConfiguration.swift create mode 100644 nym-vpn/ios/UIComponents/.gitignore create mode 100644 nym-vpn/ios/UIComponents/Package.swift create mode 100644 nym-vpn/ios/UIComponents/Sources/UIComponents/Navigation/CustomNavBar.swift create mode 100644 nym-vpn/ios/UIComponents/Sources/UIComponents/Navigation/CustomNavBarButtonConfig.swift create mode 100644 nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Contents.json create mode 100644 nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/Contents.json create mode 100644 nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/settingsGear.imageset/Contents.json create mode 100644 nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/settingsGear.imageset/settings_24px.svg create mode 100644 nym-vpn/ios/UIComponents/Tests/UIComponentsTests/UIComponentsTests.swift diff --git a/nym-vpn/ios/.gitignore b/nym-vpn/ios/.gitignore new file mode 100644 index 0000000000..7b4768e4b6 --- /dev/null +++ b/nym-vpn/ios/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +/.build +/Packages +/*.xcodeproj +xcuserdata/ +DerivedData/ +.swiftpm \ No newline at end of file diff --git a/nym-vpn/ios/.swiftlint.yml b/nym-vpn/ios/.swiftlint.yml index 79b36f79f6..3e9ab2a365 100644 --- a/nym-vpn/ios/.swiftlint.yml +++ b/nym-vpn/ios/.swiftlint.yml @@ -20,7 +20,6 @@ opt_in_rules: - contains_over_filter_is_empty - contains_over_first_not_nil - contains_over_range_nil_comparison - - convenience_type - discouraged_none_name - discouraged_object_literal - empty_collection_literal @@ -56,7 +55,6 @@ opt_in_rules: - multiline_literal_brackets - multiline_parameters - multiline_parameters_brackets - - no_extension_access_modifier - operator_usage_whitespace - overridden_super_call - pattern_matching_keywords @@ -126,6 +124,9 @@ line_length: multiline_parameters: allowsSingleLine: false +nesting: + type_level: 3 + private_outlet: allow_private_set: true diff --git a/nym-vpn/ios/Home/Package.swift b/nym-vpn/ios/Home/Package.swift index 062eb069ac..4490861917 100644 --- a/nym-vpn/ios/Home/Package.swift +++ b/nym-vpn/ios/Home/Package.swift @@ -6,20 +6,21 @@ import PackageDescription let package = Package( name: "Home", platforms: [ - .iOS(.v15) + .iOS(.v16) ], products: [ - // Products define the executables and libraries a package produces, making them visible to other packages. .library( name: "Home", targets: ["Home"] ) ], + dependencies: [ + .package(path: "../UIComponents") + ], targets: [ - // Targets are the basic building blocks of a package, defining a module or a test suite. - // Targets can depend on other targets in this package and products from dependencies. .target( - name: "Home" + name: "Home", + dependencies: ["UIComponents"] ), .testTarget( name: "HomeTests", diff --git a/nym-vpn/ios/Home/Sources/Home/HomeView.swift b/nym-vpn/ios/Home/Sources/Home/HomeView.swift index 2b7c313a19..a34529ef01 100644 --- a/nym-vpn/ios/Home/Sources/Home/HomeView.swift +++ b/nym-vpn/ios/Home/Sources/Home/HomeView.swift @@ -1,9 +1,28 @@ import SwiftUI +import UIComponents +import Theme public struct HomeView: View { public init() {} public var body: some View { - Text("NymVPN") + VStack { + CustomNavBar( + title: "NymVPN", + rightButtonConfig: settingsButtonConfig() + ) + Spacer() + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background { + NymColor.background + .ignoresSafeArea() + } + } +} + +private extension HomeView { + func settingsButtonConfig() -> CustomNavBarButtonConfig { + CustomNavBarButtonConfig(type: .settingsGear) {} } } diff --git a/nym-vpn/ios/NymVPN.xcodeproj/project.pbxproj b/nym-vpn/ios/NymVPN.xcodeproj/project.pbxproj index d983c5dfd5..db8df6c21e 100644 --- a/nym-vpn/ios/NymVPN.xcodeproj/project.pbxproj +++ b/nym-vpn/ios/NymVPN.xcodeproj/project.pbxproj @@ -317,6 +317,7 @@ INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -349,6 +350,7 @@ INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/nym-vpn/ios/NymVPN.xcodeproj/xcuserdata/Rokas.xcuserdatad/xcschemes/xcschememanagement.plist b/nym-vpn/ios/NymVPN.xcodeproj/xcuserdata/Rokas.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index af66423eb1..0000000000 --- a/nym-vpn/ios/NymVPN.xcodeproj/xcuserdata/Rokas.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - NymVPN.xcscheme_^#shared#^_ - - orderHint - 1 - - - - diff --git a/nym-vpn/ios/NymVPN.xcworkspace/contents.xcworkspacedata b/nym-vpn/ios/NymVPN.xcworkspace/contents.xcworkspacedata index 9d63eefb4e..5932a7fff4 100644 --- a/nym-vpn/ios/NymVPN.xcworkspace/contents.xcworkspacedata +++ b/nym-vpn/ios/NymVPN.xcworkspace/contents.xcworkspacedata @@ -7,6 +7,9 @@ + + diff --git a/nym-vpn/ios/NymVPN/NymVPNApp.swift b/nym-vpn/ios/NymVPN/NymVPNApp.swift index 412b25e7f3..408d7f907a 100644 --- a/nym-vpn/ios/NymVPN/NymVPNApp.swift +++ b/nym-vpn/ios/NymVPN/NymVPNApp.swift @@ -1,11 +1,18 @@ import SwiftUI import Home +import Theme @main struct NymVPNApp: App { + init() { + ThemeConfiguration.setup() + } + var body: some Scene { WindowGroup { - HomeView() + NavigationStack { + HomeView() + } } } } diff --git a/nym-vpn/ios/Theme/Package.swift b/nym-vpn/ios/Theme/Package.swift index b61a3b2bad..0922947b42 100644 --- a/nym-vpn/ios/Theme/Package.swift +++ b/nym-vpn/ios/Theme/Package.swift @@ -6,20 +6,22 @@ import PackageDescription let package = Package( name: "Theme", platforms: [ - .iOS(.v15) + .iOS(.v16) ], products: [ - // Products define the executables and libraries a package produces, making them visible to other packages. .library( name: "Theme", targets: ["Theme"] ) ], targets: [ - // Targets are the basic building blocks of a package, defining a module or a test suite. - // Targets can depend on other targets in this package and products from dependencies. .target( - name: "Theme" + name: "Theme", + resources: [ + .copy("Resources/Fonts/Lato-Bold.ttf"), + .copy("Resources/Fonts/Lato-Regular.ttf"), + .process("Resources/Assets.xcassets") + ] ), .testTarget( name: "ThemeTests", diff --git a/nym-vpn/ios/Theme/Sources/Theme/Colors/Color+Extensions.swift b/nym-vpn/ios/Theme/Sources/Theme/Colors/Color+Extensions.swift new file mode 100644 index 0000000000..0efbd1aff9 --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Colors/Color+Extensions.swift @@ -0,0 +1,11 @@ +import SwiftUI + +extension Color { + init(_ name: String) { + guard let namedColor = UIColor(named: name, in: Bundle.module, compatibleWith: nil) + else { + fatalError("Could not load color from Theme module") + } + self.init(namedColor) + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Colors/NymColor.swift b/nym-vpn/ios/Theme/Sources/Theme/Colors/NymColor.swift new file mode 100644 index 0000000000..200bb9964d --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Colors/NymColor.swift @@ -0,0 +1,10 @@ +import SwiftUI + +public struct NymColor { + // MARK: - Navigation bar - + public static let navigationBarBackground = Color(.navigationBarBackground) + public static let navigationBarSettingsGear = Color(.navigationBarSettingsGear) + + // MARK: - Background + public static let background = Color(.background) +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymFont.swift b/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymFont.swift new file mode 100644 index 0000000000..c3a937b2ad --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymFont.swift @@ -0,0 +1,33 @@ +import SwiftUI + +public enum NymFont { + case lato(size: CGFloat, weight: LatoWeight) + + public var font: Font { + switch self { + case let .lato(size, weight): + Font.custom("Lato-\(weight.rawValue)", size: size) + } + } +} + +// MARK: - Weights - + +extension NymFont { + public enum LatoWeight: String, CaseIterable { + case regular = "Regular" + case bold = "Bold" + } +} + +// MARK: - Register fonts - + +extension NymFont { + public static func register() { + for latoWeight in NymFont.LatoWeight.allCases { + let fontName = "Lato-\(latoWeight.rawValue)" + guard let fontURL = Bundle.module.url(forResource: fontName, withExtension: "ttf") else { continue } + CTFontManagerRegisterFontsForURL(fontURL as CFURL, .process, nil) + } + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymFontStyle.swift b/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymFontStyle.swift new file mode 100644 index 0000000000..ad828607c1 --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymFontStyle.swift @@ -0,0 +1,6 @@ +import Foundation + +public enum NymFontStyle { + case titleLarge + case titleMedium +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymTextStyle.swift b/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymTextStyle.swift new file mode 100644 index 0000000000..d014e3aef1 --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymTextStyle.swift @@ -0,0 +1,21 @@ +import SwiftUI + +public struct NymTextStyle { + let nymFont: NymFont + let lineSpacing: CGFloat + + init(nymFont: NymFont, lineSpacing: CGFloat = 0) { + self.nymFont = nymFont + self.lineSpacing = lineSpacing + } +} + +extension NymTextStyle { + public struct Title { + public struct Large { + public static var primary: NymTextStyle { + NymTextStyle(nymFont: .lato(size: 22, weight: .regular)) + } + } + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymTextStyleModifier.swift b/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymTextStyleModifier.swift new file mode 100644 index 0000000000..f59009631e --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Fonts/NymTextStyleModifier.swift @@ -0,0 +1,20 @@ +import SwiftUI + +public struct NymTextStyleModifier: ViewModifier { + public let textStyle: NymTextStyle + + public init(textStyle: NymTextStyle) { + self.textStyle = textStyle + } + + public func body(content: Content) -> some View { + content + .font(textStyle.nymFont.font) + } +} + +public extension View { + func textStyle(_ textStyle: NymTextStyle) -> some View { + modifier(NymTextStyleModifier(textStyle: textStyle)) + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/Contents.json b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/background.colorset/Contents.json b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/background.colorset/Contents.json new file mode 100644 index 0000000000..762c035d4a --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/background.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0.965", + "green" : "0.957", + "red" : "0.949" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0.122", + "green" : "0.106", + "red" : "0.110" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/navigationBarBackground.colorset/Contents.json b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/navigationBarBackground.colorset/Contents.json new file mode 100644 index 0000000000..99da44bb22 --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/navigationBarBackground.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0.192", + "green" : "0.157", + "red" : "0.165" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/navigationBarSettingsGear.colorset/Contents.json b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/navigationBarSettingsGear.colorset/Contents.json new file mode 100644 index 0000000000..8ff96a549a --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Colors/navigationBarSettingsGear.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0.122", + "green" : "0.106", + "red" : "0.110" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0.812", + "green" : "0.769", + "red" : "0.788" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Contents.json b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/nym-vpn/ios/Theme/Sources/Theme/Resources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nym-vpn/ios/Theme/Sources/Theme/Resources/Fonts/Lato-Bold.ttf b/nym-vpn/ios/Theme/Sources/Theme/Resources/Fonts/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..016068b486e1bd1d73743185c2752b7b1b843701 GIT binary patch literal 73332 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 some View { + Button { + config?.action?() + } label: { + if let type = config?.type { + Image(type.imageName) + .tint(NymColor.navigationBarSettingsGear) + } + } + .frame(width: 48, height: 48) + } +} diff --git a/nym-vpn/ios/UIComponents/Sources/UIComponents/Navigation/CustomNavBarButtonConfig.swift b/nym-vpn/ios/UIComponents/Sources/UIComponents/Navigation/CustomNavBarButtonConfig.swift new file mode 100644 index 0000000000..4a9dc1278c --- /dev/null +++ b/nym-vpn/ios/UIComponents/Sources/UIComponents/Navigation/CustomNavBarButtonConfig.swift @@ -0,0 +1,17 @@ +public struct CustomNavBarButtonConfig { + public enum ButtonType: String { + case settingsGear + + var imageName: String { + self.rawValue + } + } + + public init(type: ButtonType? = nil, action: (() -> Void)?) { + self.type = type + self.action = action + } + + public let type: ButtonType? + public let action: (() -> Void)? +} diff --git a/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Contents.json b/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/Contents.json b/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/settingsGear.imageset/Contents.json b/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/settingsGear.imageset/Contents.json new file mode 100644 index 0000000000..9ad81c9a88 --- /dev/null +++ b/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/settingsGear.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "settings_24px.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/settingsGear.imageset/settings_24px.svg b/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/settingsGear.imageset/settings_24px.svg new file mode 100644 index 0000000000..9f8b7a06c9 --- /dev/null +++ b/nym-vpn/ios/UIComponents/Sources/UIComponents/Resources/Assets.xcassets/Icons/settingsGear.imageset/settings_24px.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/nym-vpn/ios/UIComponents/Tests/UIComponentsTests/UIComponentsTests.swift b/nym-vpn/ios/UIComponents/Tests/UIComponentsTests/UIComponentsTests.swift new file mode 100644 index 0000000000..ef1cd66825 --- /dev/null +++ b/nym-vpn/ios/UIComponents/Tests/UIComponentsTests/UIComponentsTests.swift @@ -0,0 +1,4 @@ +import XCTest +@testable import UIComponents + +final class UIComponentsTests: XCTestCase {}