diff --git a/SwiftGen.playground/Pages/Colors-Demo.xcplaygroundpage/Contents.swift b/SwiftGen.playground/Pages/Colors-Demo.xcplaygroundpage/Contents.swift
index 5c7b13e8..62dc7406 100644
--- a/SwiftGen.playground/Pages/Colors-Demo.xcplaygroundpage/Contents.swift
+++ b/SwiftGen.playground/Pages/Colors-Demo.xcplaygroundpage/Contents.swift
@@ -1,62 +1,49 @@
//: #### Other pages
//:
-//: * [Demo for `swiftgen strings`](Strings-Demo)
-//: * [Demo for `swiftgen images`](Images-Demo)
-//: * [Demo for `swiftgen storyboards`](Storyboards-Demo)
//: * Demo for `swiftgen colors`
//: * [Demo for `swiftgen fonts`](Fonts-Demo)
+//: * [Demo for `swiftgen storyboards`](Storyboards-Demo)
+//: * [Demo for `swiftgen strings`](Strings-Demo)
+//: * [Demo for `swiftgen xcassets`](XCAssets-Demo)
//: #### Example of code generated by swiftgen-colors
import UIKit.UIColor
+typealias Color = UIColor
-extension UIColor {
- convenience init(rgbaValue: UInt32) {
- let red = CGFloat((rgbaValue >> 24) & 0xff) / 255.0
- let green = CGFloat((rgbaValue >> 16) & 0xff) / 255.0
- let blue = CGFloat((rgbaValue >> 8) & 0xff) / 255.0
- let alpha = CGFloat((rgbaValue ) & 0xff) / 255.0
-
- self.init(red: red, green: green, blue: blue, alpha: alpha)
- }
+extension Color {
+ convenience init(rgbaValue: UInt32) {
+ let red = CGFloat((rgbaValue >> 24) & 0xff) / 255.0
+ let green = CGFloat((rgbaValue >> 16) & 0xff) / 255.0
+ let blue = CGFloat((rgbaValue >> 8) & 0xff) / 255.0
+ let alpha = CGFloat((rgbaValue ) & 0xff) / 255.0
+
+ self.init(red: red, green: green, blue: blue, alpha: alpha)
+ }
}
-enum ColorName {
- ///
- /// Alpha: 100%
(0x339666ff)
- case articleBody
- ///
- /// Alpha: 100%
(0xff66ccff)
- case articleFootnote
- ///
- /// Alpha: 100%
(0x33fe66ff)
- case articleTitle
- ///
- /// Alpha: 100%
(0xff66ccff)
- case cyanColor
- ///
- /// Alpha: 80%
(0xffffffcc)
- case translucent
-
- var rgbaValue: UInt32 {
- switch self {
- case .articleBody: return 0x339666ff
- case .articleFootnote: return 0xff66ccff
- case .articleTitle: return 0x33fe66ff
- case .cyanColor: return 0xff66ccff
- case .translucent: return 0xffffffcc
- }
- }
-
- var color: UIColor {
- return UIColor(named: self)
- }
+struct ColorName {
+ let rgbaValue: UInt32
+ var color: Color { return Color(named: self) }
+
+ ///
+ /// Alpha: 100%
(0x339666ff)
+ static let articleBody = ColorName(rgbaValue: 0x339666ff)
+ ///
+ /// Alpha: 100%
(0xff66ccff)
+ static let articleFootnote = ColorName(rgbaValue: 0xff66ccff)
+ ///
+ /// Alpha: 100%
(0x33fe66ff)
+ static let articleTitle = ColorName(rgbaValue: 0x33fe66ff)
+ ///
+ /// Alpha: 80%
(0xffffffcc)
+ static let `private` = ColorName(rgbaValue: 0xffffffcc)
}
-extension UIColor {
- convenience init(named name: ColorName) {
- self.init(rgbaValue: name.rgbaValue)
- }
+extension Color {
+ convenience init(named color: ColorName) {
+ self.init(rgbaValue: color.rgbaValue)
+ }
}
//: #### Usage Example
@@ -64,7 +51,7 @@ extension UIColor {
UIColor(named: .articleTitle)
ColorName.articleBody.color
UIColor(named: .articleBody)
-UIColor(named: .translucent)
-/* Only possible if you used `enumBuilder.build(generateStringInit: true)` to generate the enum */
-//let orange = UIColor(hexString: "#ffcc88")
+UIColor(named: .private)
+
+/* convenience initializer */
let lightGreen = UIColor(rgbaValue: 0x00ff88ff)
diff --git a/SwiftGen.playground/Pages/Fonts-Demo.xcplaygroundpage/Contents.swift b/SwiftGen.playground/Pages/Fonts-Demo.xcplaygroundpage/Contents.swift
index 6fe21d68..60279d65 100644
--- a/SwiftGen.playground/Pages/Fonts-Demo.xcplaygroundpage/Contents.swift
+++ b/SwiftGen.playground/Pages/Fonts-Demo.xcplaygroundpage/Contents.swift
@@ -1,43 +1,66 @@
//: #### Other pages
-//: * [Demo for `swiftgen strings`](Colors-Demo)
-//: * [Demo for `swiftgen images`](Images-Demo)
-//: * [Demo for `swiftgen storyboards`](Storyboards-Demo)
+//:
//: * [Demo for `swiftgen colors`](Colors-Demo)
//: * Demo for `swiftgen fonts`
+//: * [Demo for `swiftgen storyboards`](Storyboards-Demo)
+//: * [Demo for `swiftgen strings`](Strings-Demo)
+//: * [Demo for `swiftgen xcassets`](XCAssets-Demo)
//: #### Example of code generated by swiftgen-fonts
import UIKit.UIFont
+typealias Font = UIFont
-protocol FontConvertible {
- func font(size: CGFloat) -> UIFont!
+struct FontConvertible {
+ let name: String
+ let family: String
+ let path: String
+
+ func font(size: CGFloat) -> Font! {
+ return Font(font: self, size: size)
+ }
+
+ func register() {
+ let bundle = Bundle(for: BundleToken.self)
+
+ guard let url = bundle.url(forResource: path, withExtension: nil) else {
+ return
+ }
+
+ var errorRef: Unmanaged?
+ CTFontManagerRegisterFontsForURL(url as CFURL, .process, &errorRef)
+ }
}
-extension FontConvertible where Self: RawRepresentable, Self.RawValue == String {
- func font(size: CGFloat) -> UIFont! {
- return UIFont(font: self, size: size)
+extension Font {
+ convenience init!(font: FontConvertible, size: CGFloat) {
+ #if os(iOS) || os(tvOS) || os(watchOS)
+ if UIFont.fontNames(forFamilyName: font.family).isEmpty {
+ font.register()
}
-}
+ #elseif os(OSX)
+ if NSFontManager.shared().availableMembers(ofFontFamily: font.family) == nil {
+ font.register()
+ }
+ #endif
-extension UIFont {
- convenience init!
- (font: FontType, size: CGFloat)
- where FontType: RawRepresentable, FontType.RawValue == String {
- self.init(name: font.rawValue, size: size)
- }
+ self.init(name: font.name, size: size)
+ }
}
struct FontFamily {
- enum Helvetica: String, FontConvertible {
- case regular = "Helvetica"
- case bold = "Helvetica-Bold"
+ enum Helvetica {
+ static let regular = FontConvertible(name: "Helvetica", family: "Helvetica", path: "Helvetica.ttf")
+ static let bold = FontConvertible(name: "Helvetica-Bold", family: "Helvetica", path: "Helvetica-Bold.ttf")
}
- enum HelveticaNeue: String, FontConvertible {
- case regular = "HelveticaNeue"
- case bold = "HelveticaNeue-Bold"
+ enum HelveticaNeue {
+ static let regular = FontConvertible(name: "HelveticaNeue", family: "HelveticaNeue", path: "HelveticaNeue.ttf")
+ static let bold = FontConvertible(name: "HelveticaNeue-Bold", family: "HelveticaNeue", path: "HelveticaNeue-Bold.ttf")
}
}
+private final class BundleToken {}
+
//: #### Usage Example
// Using the UIFont constructor…
let helvetica = UIFont(font: FontFamily.Helvetica.regular, size: 20.0)
diff --git a/SwiftGen.playground/Pages/Images-Demo.xcplaygroundpage/Contents.swift b/SwiftGen.playground/Pages/Images-Demo.xcplaygroundpage/Contents.swift
deleted file mode 100644
index 07650518..00000000
--- a/SwiftGen.playground/Pages/Images-Demo.xcplaygroundpage/Contents.swift
+++ /dev/null
@@ -1,40 +0,0 @@
-//: #### Other pages
-//:
-//: * [Demo for `swiftgen strings`](Strings-Demo)
-//: * Demo for `swiftgen images`
-//: * [Demo for `swiftgen storyboards`](Storyboards-Demo)
-//: * [Demo for `swiftgen colors`](Colors-Demo)
-//: * [Demo for `swiftgen fonts`](Fonts-Demo)
-
-//: #### Example of code generated by swiftgen-assets
-
-// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
-
-import UIKit
-
-enum Asset: String {
- case exoticBanana = "Exotic/Banana"
- case exoticMango = "Exotic/Mango"
- case lemon = "Lemon"
- case roundApricot = "Round/Apricot"
- case roundOrange = "Round/Orange"
- case roundApple = "Round/Apple"
- case roundDoubleCherry = "Round/Double/Cherry"
- case roundTomato = "Round/Tomato"
-
- var image: UIImage {
- return UIImage(asset: self)
- }
-}
-
-extension UIImage {
- convenience init!(asset: Asset) {
- self.init(named: asset.rawValue)
- }
-}
-
-//: #### Usage Example
-
-let image = UIImage(asset: .exoticBanana)
-
-Asset.roundTomato.image
diff --git a/SwiftGen.playground/Pages/Images-Demo.xcplaygroundpage/timeline.xctimeline b/SwiftGen.playground/Pages/Images-Demo.xcplaygroundpage/timeline.xctimeline
deleted file mode 100644
index eaf0a4c8..00000000
--- a/SwiftGen.playground/Pages/Images-Demo.xcplaygroundpage/timeline.xctimeline
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SwiftGen.playground/Pages/Storyboards-Demo.xcplaygroundpage/Contents.swift b/SwiftGen.playground/Pages/Storyboards-Demo.xcplaygroundpage/Contents.swift
index 9fe1a90d..4b142cce 100644
--- a/SwiftGen.playground/Pages/Storyboards-Demo.xcplaygroundpage/Contents.swift
+++ b/SwiftGen.playground/Pages/Storyboards-Demo.xcplaygroundpage/Contents.swift
@@ -1,107 +1,92 @@
//: #### Other pages
//:
-//: * [Demo for `swiftgen strings`](Strings-Demo)
-//: * [Demo for `swiftgen images`](Images-Demo)
-//: * Demo for `swiftgen storyboards`
//: * [Demo for `swiftgen colors`](Colors-Demo)
//: * [Demo for `swiftgen fonts`](Fonts-Demo)
+//: * Demo for `swiftgen storyboards`
+//: * [Demo for `swiftgen strings`](Strings-Demo)
+//: * [Demo for `swiftgen xcassets`](XCAssets-Demo)
class CreateAccViewController: UIViewController {}
-//: #### Example of code generated by swiftgen-storyboard
+//: #### Example of code generated by swiftgen-storyboards
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
import Foundation
import UIKit
-protocol StoryboardSceneType {
+protocol StoryboardType {
static var storyboardName: String { get }
}
-extension StoryboardSceneType {
- static func storyboard() -> UIStoryboard {
- return UIStoryboard(name: self.storyboardName, bundle: nil)
- }
-
- static func initialViewController() -> UIViewController {
- guard let vc = storyboard().instantiateInitialViewController() else {
- fatalError("Failed to instantiate initialViewController for \(self.storyboardName)")
- }
- return vc
- }
+extension StoryboardType {
+ static var storyboard: UIStoryboard {
+ return UIStoryboard(name: self.storyboardName, bundle: Bundle(for: BundleToken.self))
+ }
}
-extension StoryboardSceneType where Self: RawRepresentable, Self.RawValue == String {
- func viewController() -> UIViewController {
- return Self.storyboard().instantiateViewController(withIdentifier: self.rawValue)
- }
- static func viewController(identifier: Self) -> UIViewController {
- return identifier.viewController()
- }
+struct SceneType {
+ let storyboard: StoryboardType.Type
+ let identifier: String
+
+ var controller: T {
+ guard let controller = storyboard.storyboard.instantiateViewController(withIdentifier: identifier) as? T else {
+ fatalError("Controller '\(identifier)' is not of the expected class \(T.self).")
+ }
+ return controller
+ }
}
-protocol StoryboardSegueType: RawRepresentable { }
+struct InitialSceneType {
+ let storyboard: StoryboardType.Type
+
+ var controller: T {
+ guard let controller = storyboard.storyboard.instantiateInitialViewController() as? T else {
+ fatalError("Controller is not of the expected class \(T.self).")
+ }
+ return controller
+ }
+}
+
+protocol SegueType: RawRepresentable { }
extension UIViewController {
- func perform(segue: S, sender: Any? = nil) where S.RawValue == String {
- performSegue(withIdentifier: segue.rawValue, sender: sender)
- }
+ func perform(segue: S, sender: Any? = nil) where S.RawValue == String {
+ performSegue(withIdentifier: segue.rawValue, sender: sender)
+ }
}
struct StoryboardScene {
- enum Wizard: String, StoryboardSceneType {
+ enum Wizard: StoryboardType {
static let storyboardName = "Wizard"
- static func initialViewController() -> CreateAccViewController {
- guard let vc = storyboard().instantiateInitialViewController() as? CreateAccViewController else {
- fatalError("Failed to instantiate initialViewController for \(self.storyboardName)")
- }
- return vc
- }
+ static let initialScene = InitialSceneType(storyboard: Wizard.self)
- case acceptCGUScene = "Accept-CGU"
- static func instantiateAcceptCGU() -> UIViewController {
- return StoryboardScene.Wizard.acceptCGUScene.viewController()
- }
+ static let acceptCGU = SceneType(storyboard: Wizard.self, identifier: "Accept-CGU")
- case createAccountScene = "CreateAccount"
- static func instantiateCreateAccount() -> CreateAccViewController {
- guard let vc = StoryboardScene.Wizard.createAccountScene.viewController() as? CreateAccViewController
- else {
- fatalError("ViewController 'CreateAccount' is not of the expected class CreateAccViewController.")
- }
- return vc
- }
-
- case preferencesScene = "Preferences"
- static func instantiatePreferences() -> UITableViewController {
- guard let vc = StoryboardScene.Wizard.preferencesScene.viewController() as? UITableViewController
- else {
- fatalError("ViewController 'Preferences' is not of the expected class UITableViewController.")
- }
- return vc
- }
-
- case validatePasswordScene = "Validate_Password"
- static func instantiateValidatePassword() -> UIViewController {
- return StoryboardScene.Wizard.validatePasswordScene.viewController()
- }
+ static let createAccount = SceneType(storyboard: Wizard.self, identifier: "CreateAccount")
+
+ static let preferences = SceneType(storyboard: Wizard.self, identifier: "Preferences")
+
+ static let validatePassword = SceneType(storyboard: Wizard.self, identifier: "Validate_Password")
}
}
struct StoryboardSegue {
- enum Wizard: String, StoryboardSegueType {
+ enum Wizard: String, SegueType {
case showPassword = "ShowPassword"
}
}
+private final class BundleToken {}
+
//: #### Usage Example
-let createAccountVC = StoryboardScene.Wizard.createAccountScene.viewController()
+let createAccountVC = StoryboardScene.Wizard.createAccount.controller
+type(of: createAccountVC)
createAccountVC.title
-let validateVC = StoryboardScene.Wizard.validatePasswordScene.viewController()
+let validateVC = StoryboardScene.Wizard.validatePassword.controller
validateVC.title
let segue = StoryboardSegue.Wizard.showPassword
@@ -120,10 +105,10 @@ you can easily switch or directly compare the passed in `segue` with the corresp
segues for a specific storyboard.
*******************************************************************************/
//override func prepareForSegue(_ segue: UIStoryboardSegue, sender sender: AnyObject?) {
-// switch UIStoryboard.Segue.Message(rawValue: segue.identifier)! {
-// case .Custom:
+// switch UIStoryboard.Segue.Message(rawValue: segue.identifier ?? "")! {
+// case .custom:
// // Prepare for your custom segue transition
-// case .NonCustom:
+// case .nonCustom:
// // Pass in information to the destination View Controller
// }
//}
diff --git a/SwiftGen.playground/Pages/Strings-Demo.xcplaygroundpage/Contents.swift b/SwiftGen.playground/Pages/Strings-Demo.xcplaygroundpage/Contents.swift
index 1f48daf9..cb92974d 100644
--- a/SwiftGen.playground/Pages/Strings-Demo.xcplaygroundpage/Contents.swift
+++ b/SwiftGen.playground/Pages/Strings-Demo.xcplaygroundpage/Contents.swift
@@ -1,62 +1,47 @@
//: #### Other pages
//:
-//: * Demo for `swiftgen strings`
-//: * [Demo for `swiftgen images`](Images-Demo)
-//: * [Demo for `swiftgen storyboards`](Storyboards-Demo)
//: * [Demo for `swiftgen colors`](Colors-Demo)
//: * [Demo for `swiftgen fonts`](Fonts-Demo)
+//: * [Demo for `swiftgen storyboards`](Storyboards-Demo)
+//: * Demo for `swiftgen strings`
+//: * [Demo for `swiftgen xcassets`](XCAssets-Demo)
-//: #### Example of code generated by swiftgen-l10n
+//: #### Example of code generated by swiftgen-strings
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
import Foundation
enum L10n {
- case alertMessage
- case alertTitle
- case applesCount(Int)
- case bananasOwner(Int, String)
- case greetings(String, Int)
- case objectOwnership(Int, String, String)
-}
-// swiftlint:enable type_body_length
-
-extension L10n: CustomStringConvertible {
- var description: String { return self.string }
-
- var string: String {
- switch self {
- case .alertMessage:
- return L10n.tr(key: "alert_message")
- case .alertTitle:
- return L10n.tr(key: "alert_title")
- case .applesCount(let p0):
- return L10n.tr(key: "apples.count", p0)
- case .bananasOwner(let p0, let p1):
- return L10n.tr(key: "bananas.owner", p0, p1)
- case .greetings(let p0, let p1):
- return L10n.tr(key: "greetings", p0, p1)
- case .objectOwnership(let p0, let p1, let p2):
- return L10n.tr(key: "ObjectOwnership", p0, p1, p2)
- }
- }
-
- private static func tr(key: String, _ args: CVarArg...) -> String {
- let format = NSLocalizedString(key, comment: "")
- return String(format: format, locale: Locale.current, arguments: args)
- }
+ static let alertMessage = L10n.tr("Localizable", "alert_message")
+ static let alertTitle = L10n.tr("Localizable", "alert_title")
+ static func applesCount(_ p1: Int) -> String {
+ return L10n.tr("Localizable", "apples.count", p1)
+ }
+ static func bananasOwner(_ p1: Int, _ p2: String) -> String {
+ return L10n.tr("Localizable", "bananas.owner", p1, p2)
+ }
+ static func `private`(_ p1: String, _ p2: Int) -> String {
+ return L10n.tr("Localizable", "private", p1, p2)
+ }
+ static func objectOwnership(_ p1: Int, _ p2: String, _ p3: String) -> String {
+ return L10n.tr("Localizable", "ObjectOwnership", p1, p2, p3)
+ }
}
-func tr(_ key: L10n) -> String {
- return key.string
+extension L10n {
+ fileprivate static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String {
+ let format = NSLocalizedString(key, tableName: table, bundle: Bundle(for: BundleToken.self), comment: "")
+ return String(format: format, locale: Locale.current, arguments: args)
+ }
}
+private final class BundleToken {}
//: #### Usage example
-let alertTitle = tr(.alertTitle)
-let hello1 = tr(.greetings("David", 29))
-let hello2 = L10n.greetings("Olivier", 32) // Prints as a string in the console because it's CustomStringConvertible
+let alertTitle = L10n.alertTitle
+let hello1 = L10n.private("David", 29)
+let hello2 = L10n.private("Olivier", 32) // Prints as a string in the console because it's CustomStringConvertible
// note the inversion of parameters' order due to usage of %1$d, %2$@ and %1$@ in Localizable.strings
-tr(.objectOwnership(3, "Apples", "John"))
+L10n.objectOwnership(3, "Apples", "John")
diff --git a/SwiftGen.playground/Pages/XCAssets-Demo.xcplaygroundpage/Contents.swift b/SwiftGen.playground/Pages/XCAssets-Demo.xcplaygroundpage/Contents.swift
new file mode 100644
index 00000000..5b4d72f1
--- /dev/null
+++ b/SwiftGen.playground/Pages/XCAssets-Demo.xcplaygroundpage/Contents.swift
@@ -0,0 +1,81 @@
+//: #### Other pages
+//:
+//: * [Demo for `swiftgen colors`](Colors-Demo)
+//: * [Demo for `swiftgen fonts`](Fonts-Demo)
+//: * [Demo for `swiftgen storyboards`](Storyboards-Demo)
+//: * [Demo for `swiftgen strings`](Strings-Demo)
+//: * Demo for `swiftgen xcassets`
+
+//: #### Example of code generated by swiftgen-xcassets
+
+// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
+
+import UIKit
+typealias Image = UIImage
+
+struct AssetType: ExpressibleByStringLiteral {
+ fileprivate var value: String
+
+ var image: Image {
+ let bundle = Bundle(for: BundleToken.self)
+ #if os(iOS) || os(tvOS)
+ let image = Image(named: value, in: bundle, compatibleWith: nil)
+ #elseif os(OSX)
+ let image = bundle.image(forResource: value)
+ #elseif os(watchOS)
+ let image = Image(named: value)
+ #endif
+ guard let result = image else { fatalError("Unable to load image \(value).") }
+ return result
+ }
+
+ init(stringLiteral value: String) {
+ self.value = value
+ }
+
+ init(extendedGraphemeClusterLiteral value: String) {
+ self.init(stringLiteral: value)
+ }
+
+ init(unicodeScalarLiteral value: String) {
+ self.init(stringLiteral: value)
+ }
+}
+
+enum Asset {
+ enum Exotic {
+ static let banana: AssetType = "Exotic/Banana"
+ static let mango: AssetType = "Exotic/Mango"
+ }
+ static let `private`: AssetType = "private"
+ enum Round {
+ static let apricot: AssetType = "Round/Apricot"
+ static let orange: AssetType = "Round/Orange"
+ enum Red {
+ static let apple: AssetType = "Round/Apple"
+ enum Double {
+ static let cherry: AssetType = "Round/Double/Cherry"
+ }
+ static let tomato: AssetType = "Round/Tomato"
+ }
+ }
+}
+
+extension Image {
+ convenience init!(asset: AssetType) {
+ #if os(iOS) || os(tvOS)
+ let bundle = Bundle(for: BundleToken.self)
+ self.init(named: asset.value, in: bundle, compatibleWith: nil)
+ #elseif os(OSX) || os(watchOS)
+ self.init(named: asset.value)
+ #endif
+ }
+}
+
+private final class BundleToken {}
+
+//: #### Usage Example
+
+let image = UIImage(asset: Asset.Exotic.banana)
+
+Asset.Round.Red.tomato.image
diff --git a/SwiftGen.playground/Resources/Assets.car b/SwiftGen.playground/Resources/Assets.car
index 69a21e56..92e21d96 100644
Binary files a/SwiftGen.playground/Resources/Assets.car and b/SwiftGen.playground/Resources/Assets.car differ
diff --git a/SwiftGen.playground/Resources/Localizable.strings b/SwiftGen.playground/Resources/Localizable.strings
index 6c7cddc3..79fb563e 100644
Binary files a/SwiftGen.playground/Resources/Localizable.strings and b/SwiftGen.playground/Resources/Localizable.strings differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/30h-14-fok-view-rJE-c0-6Bp.nib b/SwiftGen.playground/Resources/Wizard.storyboardc/30h-14-fok-view-rJE-c0-6Bp.nib
index ba2d556a..a76eb417 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/30h-14-fok-view-rJE-c0-6Bp.nib and b/SwiftGen.playground/Resources/Wizard.storyboardc/30h-14-fok-view-rJE-c0-6Bp.nib differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/Accept-CGU.nib b/SwiftGen.playground/Resources/Wizard.storyboardc/Accept-CGU.nib
index 1d4b907f..83f9382e 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/Accept-CGU.nib and b/SwiftGen.playground/Resources/Wizard.storyboardc/Accept-CGU.nib differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/CreateAccount.nib b/SwiftGen.playground/Resources/Wizard.storyboardc/CreateAccount.nib
index 10cf1f93..849cf9c7 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/CreateAccount.nib and b/SwiftGen.playground/Resources/Wizard.storyboardc/CreateAccount.nib differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/Info.plist b/SwiftGen.playground/Resources/Wizard.storyboardc/Info.plist
index a923b335..209ef2a8 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/Info.plist and b/SwiftGen.playground/Resources/Wizard.storyboardc/Info.plist differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/Preferences.nib b/SwiftGen.playground/Resources/Wizard.storyboardc/Preferences.nib
index e5f41731..a6a02dfe 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/Preferences.nib and b/SwiftGen.playground/Resources/Wizard.storyboardc/Preferences.nib differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/Validate_Password.nib b/SwiftGen.playground/Resources/Wizard.storyboardc/Validate_Password.nib
index c7432eaf..d1bfdccd 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/Validate_Password.nib and b/SwiftGen.playground/Resources/Wizard.storyboardc/Validate_Password.nib differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/designable.storyboard b/SwiftGen.playground/Resources/Wizard.storyboardc/designable.storyboard
index aefc90eb..bc76b280 100644
--- a/SwiftGen.playground/Resources/Wizard.storyboardc/designable.storyboard
+++ b/SwiftGen.playground/Resources/Wizard.storyboardc/designable.storyboard
@@ -1,8 +1,11 @@
-
-
+
+
+
+
+
-
-
+
+
@@ -14,18 +17,18 @@
-
+
-
+
@@ -45,9 +48,9 @@
-
+
-
+
@@ -63,9 +66,9 @@
-
+
-
+
@@ -77,15 +80,15 @@
-
+
-
+
-
+
-
+
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/rJ7-m2-Mn7-view-wtR-sc-VB5.nib b/SwiftGen.playground/Resources/Wizard.storyboardc/rJ7-m2-Mn7-view-wtR-sc-VB5.nib
index 7b23ffac..4915dfee 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/rJ7-m2-Mn7-view-wtR-sc-VB5.nib and b/SwiftGen.playground/Resources/Wizard.storyboardc/rJ7-m2-Mn7-view-wtR-sc-VB5.nib differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/txY-Mc-CKa-view-wQH-MG-v6Y.nib b/SwiftGen.playground/Resources/Wizard.storyboardc/txY-Mc-CKa-view-wQH-MG-v6Y.nib
index d1416c63..5dad9e5f 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/txY-Mc-CKa-view-wQH-MG-v6Y.nib and b/SwiftGen.playground/Resources/Wizard.storyboardc/txY-Mc-CKa-view-wQH-MG-v6Y.nib differ
diff --git a/SwiftGen.playground/Resources/Wizard.storyboardc/w6o-YQ-YLg-view-N1u-m6-6Oc.nib b/SwiftGen.playground/Resources/Wizard.storyboardc/w6o-YQ-YLg-view-N1u-m6-6Oc.nib
index fc505175..cb86aae9 100644
Binary files a/SwiftGen.playground/Resources/Wizard.storyboardc/w6o-YQ-YLg-view-N1u-m6-6Oc.nib and b/SwiftGen.playground/Resources/Wizard.storyboardc/w6o-YQ-YLg-view-N1u-m6-6Oc.nib differ
diff --git a/SwiftGen.playground/contents.xcplayground b/SwiftGen.playground/contents.xcplayground
index 8445721f..705f0662 100644
--- a/SwiftGen.playground/contents.xcplayground
+++ b/SwiftGen.playground/contents.xcplayground
@@ -1,10 +1,10 @@
-
-
-
+
+
+
\ No newline at end of file