Repository: thinkclay/FlourishUI Branch: master Commit: b56def2de553 Files: 57 Total size: 162.7 KB Directory structure: gitextract_sc4dhe13/ ├── .gitignore ├── .swift-version ├── .travis.yml ├── Example/ │ ├── FlourishUI/ │ │ ├── AppDelegate.swift │ │ ├── Base.lproj/ │ │ │ └── LaunchScreen.xib │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Main.storyboard │ │ └── ViewController.swift │ ├── FlourishUI.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── FlourishUI-Example.xcscheme │ ├── FlourishUI.xcworkspace/ │ │ └── contents.xcworkspacedata │ ├── Podfile │ ├── Pods/ │ │ ├── Local Podspecs/ │ │ │ └── FlourishUI.podspec.json │ │ ├── Pods.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ └── FlourishUI.xcscheme │ │ └── Target Support Files/ │ │ ├── FlourishUI/ │ │ │ ├── FlourishUI-dummy.m │ │ │ ├── FlourishUI-prefix.pch │ │ │ ├── FlourishUI-umbrella.h │ │ │ ├── FlourishUI.modulemap │ │ │ ├── FlourishUI.xcconfig │ │ │ ├── Info.plist │ │ │ └── ResourceBundle-FlourishUI-Info.plist │ │ ├── Pods-FlourishUI_Example/ │ │ │ ├── Info.plist │ │ │ ├── Pods-FlourishUI_Example-acknowledgements.markdown │ │ │ ├── Pods-FlourishUI_Example-acknowledgements.plist │ │ │ ├── Pods-FlourishUI_Example-dummy.m │ │ │ ├── Pods-FlourishUI_Example-frameworks.sh │ │ │ ├── Pods-FlourishUI_Example-resources.sh │ │ │ ├── Pods-FlourishUI_Example-umbrella.h │ │ │ ├── Pods-FlourishUI_Example.debug.xcconfig │ │ │ ├── Pods-FlourishUI_Example.modulemap │ │ │ └── Pods-FlourishUI_Example.release.xcconfig │ │ └── Pods-FlourishUI_Tests/ │ │ ├── Info.plist │ │ ├── Pods-FlourishUI_Tests-acknowledgements.markdown │ │ ├── Pods-FlourishUI_Tests-acknowledgements.plist │ │ ├── Pods-FlourishUI_Tests-dummy.m │ │ ├── Pods-FlourishUI_Tests-frameworks.sh │ │ ├── Pods-FlourishUI_Tests-resources.sh │ │ ├── Pods-FlourishUI_Tests-umbrella.h │ │ ├── Pods-FlourishUI_Tests.debug.xcconfig │ │ ├── Pods-FlourishUI_Tests.modulemap │ │ └── Pods-FlourishUI_Tests.release.xcconfig │ └── Tests/ │ └── Info.plist ├── FlourishUI.podspec ├── LICENSE ├── Pod/ │ ├── Assets/ │ │ └── .gitkeep │ └── Classes/ │ ├── .gitkeep │ ├── Button.swift │ ├── InputText.swift │ ├── Modal.swift │ ├── ToggleSwitch.swift │ └── UIColor.swift └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ # OS X .DS_Store # Xcode build/ *.pbxuser !default.pbxuser *.mode1v3 !default.mode1v3 *.mode2v3 !default.mode2v3 *.perspectivev3 !default.perspectivev3 xcuserdata *.xccheckout profile *.moved-aside DerivedData *.hmap *.ipa .tags* # Bundler .bundle Carthage # We recommend against adding the Pods directory to your .gitignore. However # you should judge for yourself, the pros and cons are mentioned at: # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control # # Note: if you ignore the Pods directory, make sure to uncomment # `pod install` in .travis.yml # # Pods/ ================================================ FILE: .swift-version ================================================ 3.0 ================================================ FILE: .travis.yml ================================================ # references: # * http://www.objc.io/issue-6/travis-ci.html # * https://github.com/supermarin/xcpretty#usage language: objective-c # cache: cocoapods # podfile: Example/Podfile # before_install: # - gem install cocoapods # Since Travis is not always on latest version # - pod install --project-directory=Example script: - set -o pipefail && xcodebuild test -workspace Example/FlourishUI.xcworkspace -scheme FlourishUI-Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty - pod lib lint ================================================ FILE: Example/FlourishUI/AppDelegate.swift ================================================ // // AppDelegate.swift // FlourishUI // // Created by Clay McIlrath on 01/22/2016. // Copyright (c) 2016 Clay McIlrath. All rights reserved. // import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true } func applicationWillResignActive(_ application: UIApplication) { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } func applicationDidEnterBackground(_ application: UIApplication) { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } func applicationWillEnterForeground(_ application: UIApplication) { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } func applicationDidBecomeActive(_ application: UIApplication) { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } func applicationWillTerminate(_ application: UIApplication) { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } } ================================================ FILE: Example/FlourishUI/Base.lproj/LaunchScreen.xib ================================================ ================================================ FILE: Example/FlourishUI/Images.xcassets/AppIcon.appiconset/Contents.json ================================================ { "images" : [ { "idiom" : "iphone", "size" : "29x29", "scale" : "2x" }, { "idiom" : "iphone", "size" : "29x29", "scale" : "3x" }, { "idiom" : "iphone", "size" : "40x40", "scale" : "2x" }, { "idiom" : "iphone", "size" : "40x40", "scale" : "3x" }, { "idiom" : "iphone", "size" : "60x60", "scale" : "2x" }, { "idiom" : "iphone", "size" : "60x60", "scale" : "3x" } ], "info" : { "version" : 1, "author" : "xcode" } } ================================================ FILE: Example/FlourishUI/Info.plist ================================================ CFBundleDevelopmentRegion en CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType APPL CFBundleShortVersionString 1.0 CFBundleSignature ???? CFBundleVersion 1 LSRequiresIPhoneOS UILaunchStoryboardName LaunchScreen UIMainStoryboardFile Main UIRequiredDeviceCapabilities armv7 UISupportedInterfaceOrientations UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft ================================================ FILE: Example/FlourishUI/Main.storyboard ================================================ ================================================ FILE: Example/FlourishUI/ViewController.swift ================================================ // // ViewController.swift // FlourishUI // // Created by Clay McIlrath on 01/22/2016. // Copyright (c) 2016 Clay McIlrath. All rights reserved. // import UIKit import FlourishUI class ViewController: UIViewController { let body = "This is a modal example with some pretty funky rad text in it!! You better not make fun of me, scro" override func viewDidLoad() { super.viewDidLoad() // // Toggle switch with callback // let toggle1 = ToggleSwitch() toggle1.frame = CGRect(x: 20, y: view.frame.height - 50, width: view.frame.width - 40, height: 24) toggle1.active = true toggle1.toggleCallback = { Modal(title: "Don't toggle me bro!", body: "This was triggered by the toggle callback", status: .success).show() } toggle1.label.setTitle("Callback", for: .normal) view.addSubview(toggle1) // // Customizing toggle switches // let greenColor = UIColor(hex: "#3D8C8E") let toggle2 = ToggleSwitch() toggle2.frame = CGRect(x: 20, y: view.frame.height - 100, width: view.frame.width - 40, height: 24) toggle2.label.setTitle("Custom styled toggle", for: .normal) toggle2.active = true // Customize the label associated with the toggle switch toggle2.label.frame.size.width = 200 toggle2.label.titleLabel?.textColor = .black // Customize the background which the toggle button slides across toggle2.slide.activeBackgroundColor = greenColor.adjustValue(percentage: 1.4) toggle2.slide.activeBorderColor = greenColor.adjustValue(percentage: 1.0) toggle2.slide.disabledBackgroundColor = UIColor(hex: "#99896F") toggle2.slide.disabledBorderColor = UIColor(hex: "#99896F").adjustValue(percentage: 0.5) // Customize the round toggle button toggle2.button.activeBackgroundColor = greenColor.adjustValue(percentage: 1.3) toggle2.button.activeBorderColor = greenColor.adjustValue(percentage: 1.1) toggle2.button.disabledBackgroundColor = UIColor(rgba: [153, 137, 111, 0.8]) toggle2.button.disabledBorderColor = UIColor(rgba: [153, 137, 111, 0.8]).adjustValue(percentage: 0.5) view.addSubview(toggle2) } @IBAction func showModalExamples(_ sender: UIButton) { switch sender.tag { case 1 : Modal(title: sender.titleLabel?.text, body: body, status: .success).show() case 2 : var settings = Modal.Settings() settings.backgroundColor = .white settings.shadowType = .hover settings.shadowRadius = CGFloat(5) settings.shadowOffset = CGSize(width: 0, height: 0) settings.shadowOpacity = 0.1 settings.overlayBlurStyle = .extraLight Modal(title: sender.titleLabel?.text, body: body, status: .warning, settings: settings).show() case 3 : var settings = Modal.Settings() settings.borderRadius = 0 settings.shadowType = .curl settings.shadowOffset = CGSize(width: 0, height: -3) Modal(title: sender.titleLabel?.text, body: body, status: .error, settings: settings).show() case 4 : var settings = Modal.Settings() settings.overlayBlurStyle = .dark settings.backgroundColor = UIColor(red: 200/255, green: 203/255, blue: 177/255, alpha: 0.5) settings.bodyColor = .white Modal(title: sender.titleLabel?.text, body: body, status: .notice, settings: settings).show() case 5 : var settings = Modal.Settings() settings.overlayColor = UIColor(red: 40/255, green: 102/255, blue: 191/255, alpha: 0.25) settings.backgroundColor = UIColor(red: 40/255, green: 102/255, blue: 191/255, alpha: 0.25) settings.borderColor = .white settings.titleColor = .white settings.bodyColor = .blue Modal(title: sender.titleLabel?.text, body: body, status: .info, settings: settings).show() default : Modal(title: sender.titleLabel?.text, body: body, status: .info).show() } } } ================================================ FILE: Example/FlourishUI.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 0D51B8A66C1E21B25D26C364 /* Pods_FlourishUI_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90EF26BE1975FE9D85A2D21B /* Pods_FlourishUI_Example.framework */; }; 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 6F7A7ADD1C533D5D004BAAFD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6F7A7ADC1C533D5D004BAAFD /* Main.storyboard */; }; 6F7A7ADE1C533D5D004BAAFD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6F7A7ADC1C533D5D004BAAFD /* Main.storyboard */; }; A97863D74703EF6C42CA5B8F /* Pods_FlourishUI_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3FE82ABCCE0622BDF141786 /* Pods_FlourishUI_Tests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 607FACC81AFB9204008FA782 /* Project object */; proxyType = 1; remoteGlobalIDString = 607FACCF1AFB9204008FA782; remoteInfo = FlourishUI; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 580F72798ABBD68494928AFF /* Pods-FlourishUI_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FlourishUI_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests.release.xcconfig"; sourceTree = ""; }; 5A0D7118F85C6B7F574111B0 /* Pods-FlourishUI_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FlourishUI_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example.debug.xcconfig"; sourceTree = ""; }; 607FACD01AFB9204008FA782 /* FlourishUI_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FlourishUI_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 607FACE51AFB9204008FA782 /* FlourishUI_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FlourishUI_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 6F7A7ADC1C533D5D004BAAFD /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; 90EF26BE1975FE9D85A2D21B /* Pods_FlourishUI_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FlourishUI_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 95BA2521B765777EEB81DA4F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 987CD5A654F85292870A5F58 /* Pods-FlourishUI_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FlourishUI_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example.release.xcconfig"; sourceTree = ""; }; D3FE82ABCCE0622BDF141786 /* Pods_FlourishUI_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FlourishUI_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D7DB8137FF7CA2778BFA5B81 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; FA75B9D0514350481E4B5ED5 /* Pods-FlourishUI_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FlourishUI_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests.debug.xcconfig"; sourceTree = ""; }; FEAA74E24B42741AC0A0C93A /* FlourishUI.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = FlourishUI.podspec; path = ../FlourishUI.podspec; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 607FACCD1AFB9204008FA782 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 0D51B8A66C1E21B25D26C364 /* Pods_FlourishUI_Example.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; 607FACE21AFB9204008FA782 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( A97863D74703EF6C42CA5B8F /* Pods_FlourishUI_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 33D826F169EA6A92756CB55A /* Frameworks */ = { isa = PBXGroup; children = ( 90EF26BE1975FE9D85A2D21B /* Pods_FlourishUI_Example.framework */, D3FE82ABCCE0622BDF141786 /* Pods_FlourishUI_Tests.framework */, ); name = Frameworks; sourceTree = ""; }; 607FACC71AFB9204008FA782 = { isa = PBXGroup; children = ( 607FACF51AFB993E008FA782 /* Podspec Metadata */, 607FACD21AFB9204008FA782 /* Example for FlourishUI */, 607FACE81AFB9204008FA782 /* Tests */, 607FACD11AFB9204008FA782 /* Products */, D8223DB2CE2A5919563D7848 /* Pods */, 33D826F169EA6A92756CB55A /* Frameworks */, ); sourceTree = ""; }; 607FACD11AFB9204008FA782 /* Products */ = { isa = PBXGroup; children = ( 607FACD01AFB9204008FA782 /* FlourishUI_Example.app */, 607FACE51AFB9204008FA782 /* FlourishUI_Tests.xctest */, ); name = Products; sourceTree = ""; }; 607FACD21AFB9204008FA782 /* Example for FlourishUI */ = { isa = PBXGroup; children = ( 607FACD51AFB9204008FA782 /* AppDelegate.swift */, 607FACD71AFB9204008FA782 /* ViewController.swift */, 6F7A7ADC1C533D5D004BAAFD /* Main.storyboard */, 607FACDC1AFB9204008FA782 /* Images.xcassets */, 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, 607FACD31AFB9204008FA782 /* Supporting Files */, ); name = "Example for FlourishUI"; path = FlourishUI; sourceTree = ""; }; 607FACD31AFB9204008FA782 /* Supporting Files */ = { isa = PBXGroup; children = ( 607FACD41AFB9204008FA782 /* Info.plist */, ); name = "Supporting Files"; sourceTree = ""; }; 607FACE81AFB9204008FA782 /* Tests */ = { isa = PBXGroup; children = ( 607FACE91AFB9204008FA782 /* Supporting Files */, ); path = Tests; sourceTree = ""; }; 607FACE91AFB9204008FA782 /* Supporting Files */ = { isa = PBXGroup; children = ( 607FACEA1AFB9204008FA782 /* Info.plist */, ); name = "Supporting Files"; sourceTree = ""; }; 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { isa = PBXGroup; children = ( FEAA74E24B42741AC0A0C93A /* FlourishUI.podspec */, D7DB8137FF7CA2778BFA5B81 /* README.md */, 95BA2521B765777EEB81DA4F /* LICENSE */, ); name = "Podspec Metadata"; sourceTree = ""; }; D8223DB2CE2A5919563D7848 /* Pods */ = { isa = PBXGroup; children = ( 5A0D7118F85C6B7F574111B0 /* Pods-FlourishUI_Example.debug.xcconfig */, 987CD5A654F85292870A5F58 /* Pods-FlourishUI_Example.release.xcconfig */, FA75B9D0514350481E4B5ED5 /* Pods-FlourishUI_Tests.debug.xcconfig */, 580F72798ABBD68494928AFF /* Pods-FlourishUI_Tests.release.xcconfig */, ); name = Pods; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 607FACCF1AFB9204008FA782 /* FlourishUI_Example */ = { isa = PBXNativeTarget; buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "FlourishUI_Example" */; buildPhases = ( 10F33CEDC5647494EB4C96CB /* Check Pods Manifest.lock */, 607FACCC1AFB9204008FA782 /* Sources */, 607FACCD1AFB9204008FA782 /* Frameworks */, 607FACCE1AFB9204008FA782 /* Resources */, E59DE92998462B2F2734EAC8 /* Embed Pods Frameworks */, DDA3A04418B1A16D9CF72CC0 /* Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); name = FlourishUI_Example; productName = FlourishUI; productReference = 607FACD01AFB9204008FA782 /* FlourishUI_Example.app */; productType = "com.apple.product-type.application"; }; 607FACE41AFB9204008FA782 /* FlourishUI_Tests */ = { isa = PBXNativeTarget; buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "FlourishUI_Tests" */; buildPhases = ( 971C6B455753240F8D828AC4 /* Check Pods Manifest.lock */, 607FACE11AFB9204008FA782 /* Sources */, 607FACE21AFB9204008FA782 /* Frameworks */, 607FACE31AFB9204008FA782 /* Resources */, 8E35BE56C8C845EFA9C513A4 /* Embed Pods Frameworks */, 7271DD531923F76AD80D17D5 /* Copy Pods Resources */, ); buildRules = ( ); dependencies = ( 607FACE71AFB9204008FA782 /* PBXTargetDependency */, ); name = FlourishUI_Tests; productName = Tests; productReference = 607FACE51AFB9204008FA782 /* FlourishUI_Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 607FACC81AFB9204008FA782 /* Project object */ = { isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; LastUpgradeCheck = 0800; ORGANIZATIONNAME = CocoaPods; TargetAttributes = { 607FACCF1AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; LastSwiftMigration = 0800; }; 607FACE41AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; LastSwiftMigration = 0800; TestTargetID = 607FACCF1AFB9204008FA782; }; }; }; buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "FlourishUI" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); mainGroup = 607FACC71AFB9204008FA782; productRefGroup = 607FACD11AFB9204008FA782 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 607FACCF1AFB9204008FA782 /* FlourishUI_Example */, 607FACE41AFB9204008FA782 /* FlourishUI_Tests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 607FACCE1AFB9204008FA782 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 6F7A7ADD1C533D5D004BAAFD /* Main.storyboard in Resources */, 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; 607FACE31AFB9204008FA782 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 6F7A7ADE1C533D5D004BAAFD /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ 10F33CEDC5647494EB4C96CB /* Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; 7271DD531923F76AD80D17D5 /* Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests-resources.sh\"\n"; showEnvVarsInLog = 0; }; 8E35BE56C8C845EFA9C513A4 /* Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 971C6B455753240F8D828AC4 /* Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; DDA3A04418B1A16D9CF72CC0 /* Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example-resources.sh\"\n"; showEnvVarsInLog = 0; }; E59DE92998462B2F2734EAC8 /* Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 607FACCC1AFB9204008FA782 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 607FACE11AFB9204008FA782 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 607FACCF1AFB9204008FA782 /* FlourishUI_Example */; targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { isa = PBXVariantGroup; children = ( 607FACDF1AFB9204008FA782 /* Base */, ); name = LaunchScreen.xib; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ 607FACED1AFB9204008FA782 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.3; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; 607FACEE1AFB9204008FA782 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.3; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; VALIDATE_PRODUCT = YES; }; name = Release; }; 607FACF01AFB9204008FA782 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5A0D7118F85C6B7F574111B0 /* Pods-FlourishUI_Example.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = FlourishUI/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; }; name = Debug; }; 607FACF11AFB9204008FA782 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 987CD5A654F85292870A5F58 /* Pods-FlourishUI_Example.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = FlourishUI/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; }; name = Release; }; 607FACF31AFB9204008FA782 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = FA75B9D0514350481E4B5ED5 /* Pods-FlourishUI_Tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)/Developer/Library/Frameworks", "$(inherited)", ); GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FlourishUI_Example.app/FlourishUI_Example"; }; name = Debug; }; 607FACF41AFB9204008FA782 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 580F72798ABBD68494928AFF /* Pods-FlourishUI_Tests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)/Developer/Library/Frameworks", "$(inherited)", ); INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FlourishUI_Example.app/FlourishUI_Example"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "FlourishUI" */ = { isa = XCConfigurationList; buildConfigurations = ( 607FACED1AFB9204008FA782 /* Debug */, 607FACEE1AFB9204008FA782 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "FlourishUI_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( 607FACF01AFB9204008FA782 /* Debug */, 607FACF11AFB9204008FA782 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "FlourishUI_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( 607FACF31AFB9204008FA782 /* Debug */, 607FACF41AFB9204008FA782 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 607FACC81AFB9204008FA782 /* Project object */; } ================================================ FILE: Example/FlourishUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: Example/FlourishUI.xcodeproj/xcshareddata/xcschemes/FlourishUI-Example.xcscheme ================================================ ================================================ FILE: Example/FlourishUI.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: Example/Podfile ================================================ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! target 'FlourishUI_Example' do pod "FlourishUI", :path => "../" end target 'FlourishUI_Tests' do pod "FlourishUI", :path => "../" end ================================================ FILE: Example/Pods/Local Podspecs/FlourishUI.podspec.json ================================================ { "name": "FlourishUI", "version": "2.1.0", "summary": "FlourishUI is a nice clean user interface framework", "description": "FlourishUI is a user interface framework for making good looking iOS applications", "homepage": "https://github.com/thinkclay/FlourishUI", "license": "MIT", "authors": { "Clay McIlrath": "clay.mcilrath@gmail.com" }, "source": { "git": "https://github.com/thinkclay/FlourishUI.git", "tag": "2.1.0" }, "platforms": { "ios": "8.0" }, "requires_arc": true, "source_files": "Pod/Classes/**/*", "resource_bundles": { "FlourishUI": [ "Pod/Assets/*.png" ] } } ================================================ FILE: Example/Pods/Pods.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 1845DC4DDCDA7C782037109AE12A043C /* InputText.swift in Sources */ = {isa = PBXBuildFile; fileRef = F084ED9F417A6F5B007162A44B77C2FB /* InputText.swift */; }; 43813CC7F074C7CB36B3D8CFB6646AC9 /* FlourishUI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 72E14E18DC7340DF461D575CE606C8E6 /* FlourishUI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 51911BC335E266AF0EAA433209EECE43 /* Pods-FlourishUI_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 477BE24D7EEBD8BB48131D87D3BE1D6C /* Pods-FlourishUI_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6A4212D4341A3A2C84ED9A90DEB66A55 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */; }; 6F84FEF41DBF37A70070ECAE /* ToggleSwitch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F84FEF31DBF37A70070ECAE /* ToggleSwitch.swift */; }; 6FA102001FD23C72E20F8793A6D18856 /* Pods-FlourishUI_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FD825C082557220DCA82CCFBCCE171E7 /* Pods-FlourishUI_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8C798947AB448B83D3650788881D63CB /* FlourishUI.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4326120A0C1B04F418482EDD8D4A9EC5 /* FlourishUI.bundle */; }; 94292B1508F489120F1B04EB5989F778 /* Pods-FlourishUI_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 64DBFCDCE95FB2DFB5F76A6E0E3DB652 /* Pods-FlourishUI_Tests-dummy.m */; }; 9FC0A904B59691F805F4F881D4CE897A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */; }; A44BBA668719BFD9018282A3722E56C2 /* FlourishUI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B41984558661C395B931BF5759619AB3 /* FlourishUI-dummy.m */; }; B1B2FCF9D6601917210A3B09D4F0EE04 /* Pods-FlourishUI_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 00FE8E66EF83D6EBCCCFB434356201A1 /* Pods-FlourishUI_Example-dummy.m */; }; C14492F3FD177BEFE9ADC9925A6F90B5 /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD1F33BDDC80E7001B7BC6BA3055E98D /* Button.swift */; }; EF5B675F3A1666D52EFE8AAEE8216FDA /* Modal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BC5B9DD56A04186E56AE4BA4B929B9C /* Modal.swift */; }; F073329E27CA9C44A23C5415B0261ABB /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4010ED2F35C8BBCB4267182E485938E /* UIColor.swift */; }; FCFE22BDCAF9B6FAC85BB236F0D5A1AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 18CE7DEB9F27F500AD0CD5594CDA5EC2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 71AD24E1005B528B8AD2A22053560ED7; remoteInfo = FlourishUI; }; 22C950EA1A9D43DDACB74C8EC18181DA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 71AD24E1005B528B8AD2A22053560ED7; remoteInfo = FlourishUI; }; 22E33D797E656E686F7EBA110EDDB042 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 628215558E5F3719B4D5AC4D4B7C5165; remoteInfo = "FlourishUI-FlourishUI"; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 00FE8E66EF83D6EBCCCFB434356201A1 /* Pods-FlourishUI_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-FlourishUI_Example-dummy.m"; sourceTree = ""; }; 0E618F5BCA2D6CCCE71E1010822A5340 /* Pods-FlourishUI_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FlourishUI_Example-resources.sh"; sourceTree = ""; }; 1987AFE75B788B46FAE98B32C1AF3EAE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 1BC5B9DD56A04186E56AE4BA4B929B9C /* Modal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Modal.swift; sourceTree = ""; }; 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 3E95C60FC11F7C9CAEF48636747D59F3 /* Pods-FlourishUI_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FlourishUI_Tests-frameworks.sh"; sourceTree = ""; }; 3F62854F94FA322C24D6923FDDDAF577 /* Pods-FlourishUI_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FlourishUI_Tests.debug.xcconfig"; sourceTree = ""; }; 40A9787AAFF811E63E34BAB29C02230D /* Pods-FlourishUI_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FlourishUI_Example-frameworks.sh"; sourceTree = ""; }; 4326120A0C1B04F418482EDD8D4A9EC5 /* FlourishUI.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FlourishUI.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 45E9BCEE838280B1F8A0E679BB287685 /* Pods-FlourishUI_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FlourishUI_Example.debug.xcconfig"; sourceTree = ""; }; 477BE24D7EEBD8BB48131D87D3BE1D6C /* Pods-FlourishUI_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-FlourishUI_Tests-umbrella.h"; sourceTree = ""; }; 50132C66C6C099C04AD511657496E062 /* Pods-FlourishUI_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-FlourishUI_Tests-acknowledgements.markdown"; sourceTree = ""; }; 506EA0D4059D3B018EF14A344BFBE378 /* Pods-FlourishUI_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FlourishUI_Example-acknowledgements.plist"; sourceTree = ""; }; 552088DDC34C898C1C4694C4196E1A57 /* FlourishUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FlourishUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 64DBFCDCE95FB2DFB5F76A6E0E3DB652 /* Pods-FlourishUI_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-FlourishUI_Tests-dummy.m"; sourceTree = ""; }; 6A07DF211D14C28BD702B9A4DC603196 /* Pods_FlourishUI_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FlourishUI_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 6F84FEF31DBF37A70070ECAE /* ToggleSwitch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToggleSwitch.swift; sourceTree = ""; }; 72E14E18DC7340DF461D575CE606C8E6 /* FlourishUI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FlourishUI-umbrella.h"; sourceTree = ""; }; 7992A77D3BFC605D7F9CCA0F127A44EA /* FlourishUI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FlourishUI-prefix.pch"; sourceTree = ""; }; 8F3921ABC2E94B744A54D6519E6DCD94 /* FlourishUI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = FlourishUI.modulemap; sourceTree = ""; }; 933008C1C251F5BCC66204DEEB8E5038 /* Pods-FlourishUI_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FlourishUI_Example.release.xcconfig"; sourceTree = ""; }; 95A313C6B096C1B8BAE1F4261F3850DB /* Pods-FlourishUI_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FlourishUI_Tests.release.xcconfig"; sourceTree = ""; }; 9C44CFC818027697A41F67C938A3E809 /* FlourishUI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FlourishUI.xcconfig; sourceTree = ""; }; 9D5CA895A34DB0F962797CFFF3197647 /* Pods-FlourishUI_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-FlourishUI_Example.modulemap"; sourceTree = ""; }; A3A007597CF14082B3A149EC9F97485D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; A6072313AD4B4C1536E4FDFCE618F340 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; A679B03D0DF84C18D092B9DBEFCA5726 /* Pods-FlourishUI_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FlourishUI_Tests-resources.sh"; sourceTree = ""; }; B32325831BD7B8485764C3E091F9294D /* Pods-FlourishUI_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-FlourishUI_Example-acknowledgements.markdown"; sourceTree = ""; }; B41984558661C395B931BF5759619AB3 /* FlourishUI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FlourishUI-dummy.m"; sourceTree = ""; }; BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; C2C4A5F7AD00026E4D368F0E1EB0FAA4 /* Pods_FlourishUI_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FlourishUI_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D4010ED2F35C8BBCB4267182E485938E /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; E035C137C8BC0019E8EB423D2403056B /* Pods-FlourishUI_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-FlourishUI_Tests.modulemap"; sourceTree = ""; }; E4CD32076961FA1B4F2ED6D4381422EF /* Pods-FlourishUI_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FlourishUI_Tests-acknowledgements.plist"; sourceTree = ""; }; F084ED9F417A6F5B007162A44B77C2FB /* InputText.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InputText.swift; sourceTree = ""; }; F47D68629F37F285220781B599693CA9 /* ResourceBundle-FlourishUI-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-FlourishUI-Info.plist"; sourceTree = ""; }; FD1F33BDDC80E7001B7BC6BA3055E98D /* Button.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = ""; }; FD825C082557220DCA82CCFBCCE171E7 /* Pods-FlourishUI_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-FlourishUI_Example-umbrella.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 25B6B1B88954D3E4672FFF6F85CBC239 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 940BBECA369012DEC39EC59DA305F28D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 6A4212D4341A3A2C84ED9A90DEB66A55 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; E985E1BE55F0D5F87AC9197AA5861F6F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 9FC0A904B59691F805F4F881D4CE897A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; EE8DC23C58E1490E37D0B5542F3F5106 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( FCFE22BDCAF9B6FAC85BB236F0D5A1AA /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 07411180E2ABBA56FDECAB9B07F69F4B /* Pod */ = { isa = PBXGroup; children = ( F00C0CFA15FFA5F423454CA3936835E9 /* Classes */, ); path = Pod; sourceTree = ""; }; 112C7921E3A497328D11F4930CBBC9CA /* iOS */ = { isa = PBXGroup; children = ( 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */, ); name = iOS; sourceTree = ""; }; 1FB3AC722E977E45FE135DD50DF22ACB /* Products */ = { isa = PBXGroup; children = ( 4326120A0C1B04F418482EDD8D4A9EC5 /* FlourishUI.bundle */, 552088DDC34C898C1C4694C4196E1A57 /* FlourishUI.framework */, C2C4A5F7AD00026E4D368F0E1EB0FAA4 /* Pods_FlourishUI_Example.framework */, 6A07DF211D14C28BD702B9A4DC603196 /* Pods_FlourishUI_Tests.framework */, ); name = Products; sourceTree = ""; }; 3863AC9B582BEF62629FAA044ECE36A9 /* Development Pods */ = { isa = PBXGroup; children = ( A851BC4401003121760A1B857D995291 /* FlourishUI */, ); name = "Development Pods"; sourceTree = ""; }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, 3863AC9B582BEF62629FAA044ECE36A9 /* Development Pods */, BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 1FB3AC722E977E45FE135DD50DF22ACB /* Products */, 8A9C25901FEB38BE2AE1796B4AFF36E0 /* Targets Support Files */, ); sourceTree = ""; }; 8A9C25901FEB38BE2AE1796B4AFF36E0 /* Targets Support Files */ = { isa = PBXGroup; children = ( 94A065B533A4C09654BFC67A09A6A082 /* Pods-FlourishUI_Example */, EB78767B7B874033F1AB2DB3906C2B8C /* Pods-FlourishUI_Tests */, ); name = "Targets Support Files"; sourceTree = ""; }; 94A065B533A4C09654BFC67A09A6A082 /* Pods-FlourishUI_Example */ = { isa = PBXGroup; children = ( 1987AFE75B788B46FAE98B32C1AF3EAE /* Info.plist */, 9D5CA895A34DB0F962797CFFF3197647 /* Pods-FlourishUI_Example.modulemap */, B32325831BD7B8485764C3E091F9294D /* Pods-FlourishUI_Example-acknowledgements.markdown */, 506EA0D4059D3B018EF14A344BFBE378 /* Pods-FlourishUI_Example-acknowledgements.plist */, 00FE8E66EF83D6EBCCCFB434356201A1 /* Pods-FlourishUI_Example-dummy.m */, 40A9787AAFF811E63E34BAB29C02230D /* Pods-FlourishUI_Example-frameworks.sh */, 0E618F5BCA2D6CCCE71E1010822A5340 /* Pods-FlourishUI_Example-resources.sh */, FD825C082557220DCA82CCFBCCE171E7 /* Pods-FlourishUI_Example-umbrella.h */, 45E9BCEE838280B1F8A0E679BB287685 /* Pods-FlourishUI_Example.debug.xcconfig */, 933008C1C251F5BCC66204DEEB8E5038 /* Pods-FlourishUI_Example.release.xcconfig */, ); name = "Pods-FlourishUI_Example"; path = "Target Support Files/Pods-FlourishUI_Example"; sourceTree = ""; }; A851BC4401003121760A1B857D995291 /* FlourishUI */ = { isa = PBXGroup; children = ( 07411180E2ABBA56FDECAB9B07F69F4B /* Pod */, B3AAC6B9D31E438736A088A0BF482CC7 /* Support Files */, ); name = FlourishUI; path = ../..; sourceTree = ""; }; B3AAC6B9D31E438736A088A0BF482CC7 /* Support Files */ = { isa = PBXGroup; children = ( 8F3921ABC2E94B744A54D6519E6DCD94 /* FlourishUI.modulemap */, 9C44CFC818027697A41F67C938A3E809 /* FlourishUI.xcconfig */, B41984558661C395B931BF5759619AB3 /* FlourishUI-dummy.m */, 7992A77D3BFC605D7F9CCA0F127A44EA /* FlourishUI-prefix.pch */, 72E14E18DC7340DF461D575CE606C8E6 /* FlourishUI-umbrella.h */, A3A007597CF14082B3A149EC9F97485D /* Info.plist */, F47D68629F37F285220781B599693CA9 /* ResourceBundle-FlourishUI-Info.plist */, ); name = "Support Files"; path = "Example/Pods/Target Support Files/FlourishUI"; sourceTree = ""; }; BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( 112C7921E3A497328D11F4930CBBC9CA /* iOS */, ); name = Frameworks; sourceTree = ""; }; EB78767B7B874033F1AB2DB3906C2B8C /* Pods-FlourishUI_Tests */ = { isa = PBXGroup; children = ( A6072313AD4B4C1536E4FDFCE618F340 /* Info.plist */, E035C137C8BC0019E8EB423D2403056B /* Pods-FlourishUI_Tests.modulemap */, 50132C66C6C099C04AD511657496E062 /* Pods-FlourishUI_Tests-acknowledgements.markdown */, E4CD32076961FA1B4F2ED6D4381422EF /* Pods-FlourishUI_Tests-acknowledgements.plist */, 64DBFCDCE95FB2DFB5F76A6E0E3DB652 /* Pods-FlourishUI_Tests-dummy.m */, 3E95C60FC11F7C9CAEF48636747D59F3 /* Pods-FlourishUI_Tests-frameworks.sh */, A679B03D0DF84C18D092B9DBEFCA5726 /* Pods-FlourishUI_Tests-resources.sh */, 477BE24D7EEBD8BB48131D87D3BE1D6C /* Pods-FlourishUI_Tests-umbrella.h */, 3F62854F94FA322C24D6923FDDDAF577 /* Pods-FlourishUI_Tests.debug.xcconfig */, 95A313C6B096C1B8BAE1F4261F3850DB /* Pods-FlourishUI_Tests.release.xcconfig */, ); name = "Pods-FlourishUI_Tests"; path = "Target Support Files/Pods-FlourishUI_Tests"; sourceTree = ""; }; F00C0CFA15FFA5F423454CA3936835E9 /* Classes */ = { isa = PBXGroup; children = ( 6F84FEF31DBF37A70070ECAE /* ToggleSwitch.swift */, FD1F33BDDC80E7001B7BC6BA3055E98D /* Button.swift */, F084ED9F417A6F5B007162A44B77C2FB /* InputText.swift */, 1BC5B9DD56A04186E56AE4BA4B929B9C /* Modal.swift */, D4010ED2F35C8BBCB4267182E485938E /* UIColor.swift */, ); path = Classes; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ 0A98BACF1ABB0F7E71419AF4D3A5DA52 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( 43813CC7F074C7CB36B3D8CFB6646AC9 /* FlourishUI-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; 658B9C487607C55E0269CF918F02D8A6 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( 51911BC335E266AF0EAA433209EECE43 /* Pods-FlourishUI_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; A3FD3CED72DC44857768EF85B0AA3DAB /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( 6FA102001FD23C72E20F8793A6D18856 /* Pods-FlourishUI_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ 628215558E5F3719B4D5AC4D4B7C5165 /* FlourishUI-FlourishUI */ = { isa = PBXNativeTarget; buildConfigurationList = 1A0247048F4838EA10204F853691F249 /* Build configuration list for PBXNativeTarget "FlourishUI-FlourishUI" */; buildPhases = ( 2C3B381FA7E0A9F0B9597B1EA8A5E866 /* Sources */, 25B6B1B88954D3E4672FFF6F85CBC239 /* Frameworks */, 27C2853B229DDC5268990EEA5EC2B34E /* Resources */, ); buildRules = ( ); dependencies = ( ); name = "FlourishUI-FlourishUI"; productName = "FlourishUI-FlourishUI"; productReference = 4326120A0C1B04F418482EDD8D4A9EC5 /* FlourishUI.bundle */; productType = "com.apple.product-type.bundle"; }; 71AD24E1005B528B8AD2A22053560ED7 /* FlourishUI */ = { isa = PBXNativeTarget; buildConfigurationList = 6CB8C05ECCAFD76133C05F8AEFABE86B /* Build configuration list for PBXNativeTarget "FlourishUI" */; buildPhases = ( AA64F0A32E85004A3584FB6BA98FFB7A /* Sources */, EE8DC23C58E1490E37D0B5542F3F5106 /* Frameworks */, 490569BBD60D577541B4D242E8399AC6 /* Resources */, 0A98BACF1ABB0F7E71419AF4D3A5DA52 /* Headers */, ); buildRules = ( ); dependencies = ( 4CF725553E090C64E8AB1B6539DCD2FA /* PBXTargetDependency */, ); name = FlourishUI; productName = FlourishUI; productReference = 552088DDC34C898C1C4694C4196E1A57 /* FlourishUI.framework */; productType = "com.apple.product-type.framework"; }; 9E4162F8B5EACC109629B468516763EA /* Pods-FlourishUI_Example */ = { isa = PBXNativeTarget; buildConfigurationList = 0B05AF04D6E05E88BDF95D4B82D91665 /* Build configuration list for PBXNativeTarget "Pods-FlourishUI_Example" */; buildPhases = ( 27A19764634C40DBCAAF5127D3EBF035 /* Sources */, E985E1BE55F0D5F87AC9197AA5861F6F /* Frameworks */, A3FD3CED72DC44857768EF85B0AA3DAB /* Headers */, ); buildRules = ( ); dependencies = ( 0F1689EBD21934895DF63507F28041F8 /* PBXTargetDependency */, ); name = "Pods-FlourishUI_Example"; productName = "Pods-FlourishUI_Example"; productReference = C2C4A5F7AD00026E4D368F0E1EB0FAA4 /* Pods_FlourishUI_Example.framework */; productType = "com.apple.product-type.framework"; }; DBDE47919DC6FEFD8459F0B6F24A2689 /* Pods-FlourishUI_Tests */ = { isa = PBXNativeTarget; buildConfigurationList = 4AC32AD6DFB8857DC690C4D5FA514603 /* Build configuration list for PBXNativeTarget "Pods-FlourishUI_Tests" */; buildPhases = ( C1F04F4358F055AADDCE319DFA9B96F2 /* Sources */, 940BBECA369012DEC39EC59DA305F28D /* Frameworks */, 658B9C487607C55E0269CF918F02D8A6 /* Headers */, ); buildRules = ( ); dependencies = ( 3D0D32F1F045DEF3AF96F7CF79E42263 /* PBXTargetDependency */, ); name = "Pods-FlourishUI_Tests"; productName = "Pods-FlourishUI_Tests"; productReference = 6A07DF211D14C28BD702B9A4DC603196 /* Pods_FlourishUI_Tests.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; LastUpgradeCheck = 0700; TargetAttributes = { 71AD24E1005B528B8AD2A22053560ED7 = { LastSwiftMigration = 0800; }; 9E4162F8B5EACC109629B468516763EA = { LastSwiftMigration = 0800; }; DBDE47919DC6FEFD8459F0B6F24A2689 = { LastSwiftMigration = 0800; }; }; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; productRefGroup = 1FB3AC722E977E45FE135DD50DF22ACB /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 71AD24E1005B528B8AD2A22053560ED7 /* FlourishUI */, 628215558E5F3719B4D5AC4D4B7C5165 /* FlourishUI-FlourishUI */, 9E4162F8B5EACC109629B468516763EA /* Pods-FlourishUI_Example */, DBDE47919DC6FEFD8459F0B6F24A2689 /* Pods-FlourishUI_Tests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 27C2853B229DDC5268990EEA5EC2B34E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 490569BBD60D577541B4D242E8399AC6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 8C798947AB448B83D3650788881D63CB /* FlourishUI.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 27A19764634C40DBCAAF5127D3EBF035 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( B1B2FCF9D6601917210A3B09D4F0EE04 /* Pods-FlourishUI_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 2C3B381FA7E0A9F0B9597B1EA8A5E866 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; AA64F0A32E85004A3584FB6BA98FFB7A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( C14492F3FD177BEFE9ADC9925A6F90B5 /* Button.swift in Sources */, 6F84FEF41DBF37A70070ECAE /* ToggleSwitch.swift in Sources */, A44BBA668719BFD9018282A3722E56C2 /* FlourishUI-dummy.m in Sources */, 1845DC4DDCDA7C782037109AE12A043C /* InputText.swift in Sources */, EF5B675F3A1666D52EFE8AAEE8216FDA /* Modal.swift in Sources */, F073329E27CA9C44A23C5415B0261ABB /* UIColor.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; C1F04F4358F055AADDCE319DFA9B96F2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 94292B1508F489120F1B04EB5989F778 /* Pods-FlourishUI_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 0F1689EBD21934895DF63507F28041F8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FlourishUI; target = 71AD24E1005B528B8AD2A22053560ED7 /* FlourishUI */; targetProxy = 18CE7DEB9F27F500AD0CD5594CDA5EC2 /* PBXContainerItemProxy */; }; 3D0D32F1F045DEF3AF96F7CF79E42263 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FlourishUI; target = 71AD24E1005B528B8AD2A22053560ED7 /* FlourishUI */; targetProxy = 22C950EA1A9D43DDACB74C8EC18181DA /* PBXContainerItemProxy */; }; 4CF725553E090C64E8AB1B6539DCD2FA /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "FlourishUI-FlourishUI"; target = 628215558E5F3719B4D5AC4D4B7C5165 /* FlourishUI-FlourishUI */; targetProxy = 22E33D797E656E686F7EBA110EDDB042 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 047FABCDFA216C068F819EDE6388CCC0 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 9C44CFC818027697A41F67C938A3E809 /* FlourishUI.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/FlourishUI/ResourceBundle-FlourishUI-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; PRODUCT_NAME = FlourishUI; SDKROOT = iphoneos; SKIP_INSTALL = YES; WRAPPER_EXTENSION = bundle; }; name = Release; }; 333F3AD9645ADDCB204FA1C0712B30A1 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 3F62854F94FA322C24D6923FDDDAF577 /* Pods-FlourishUI_Tests.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-FlourishUI_Tests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Pods_FlourishUI_Tests; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; 372FF5048FF42C3A7A18B70A30D785C1 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_RELEASE=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.3; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; VALIDATE_PRODUCT = YES; }; name = Release; }; 472D54A5CD382A5750793FCB9A48AF9B /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 933008C1C251F5BCC66204DEEB8E5038 /* Pods-FlourishUI_Example.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-FlourishUI_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Pods_FlourishUI_Example; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; 51DC246E89D07E02442C4B2D0C5D4B65 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 45E9BCEE838280B1F8A0E679BB287685 /* Pods-FlourishUI_Example.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-FlourishUI_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Pods_FlourishUI_Example; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; 70F0378D63DE3D2DCC739550669BD46A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_DEBUG=1", "DEBUG=1", "$(inherited)", ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.3; ONLY_ACTIVE_ARCH = YES; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; }; name = Debug; }; 8E334D2C886FAB934FA98671B87BB889 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 9C44CFC818027697A41F67C938A3E809 /* FlourishUI.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/FlourishUI/FlourishUI-prefix.pch"; INFOPLIST_FILE = "Target Support Files/FlourishUI/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/FlourishUI/FlourishUI.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = FlourishUI; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; 94875EC2E1D1DAD69F4D1F51BE3D0D60 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 9C44CFC818027697A41F67C938A3E809 /* FlourishUI.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/FlourishUI/FlourishUI-prefix.pch"; INFOPLIST_FILE = "Target Support Files/FlourishUI/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/FlourishUI/FlourishUI.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_NAME = FlourishUI; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; AE784CD8DC04A7880C2CCDF34C15B11B /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 9C44CFC818027697A41F67C938A3E809 /* FlourishUI.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/FlourishUI/ResourceBundle-FlourishUI-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; PRODUCT_NAME = FlourishUI; SDKROOT = iphoneos; SKIP_INSTALL = YES; WRAPPER_EXTENSION = bundle; }; name = Debug; }; EC79A2EE70F48EF1A5B3BCE5FF620A35 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 95A313C6B096C1B8BAE1F4261F3850DB /* Pods-FlourishUI_Tests.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-FlourishUI_Tests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Pods_FlourishUI_Tests; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 0B05AF04D6E05E88BDF95D4B82D91665 /* Build configuration list for PBXNativeTarget "Pods-FlourishUI_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( 51DC246E89D07E02442C4B2D0C5D4B65 /* Debug */, 472D54A5CD382A5750793FCB9A48AF9B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1A0247048F4838EA10204F853691F249 /* Build configuration list for PBXNativeTarget "FlourishUI-FlourishUI" */ = { isa = XCConfigurationList; buildConfigurations = ( AE784CD8DC04A7880C2CCDF34C15B11B /* Debug */, 047FABCDFA216C068F819EDE6388CCC0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( 70F0378D63DE3D2DCC739550669BD46A /* Debug */, 372FF5048FF42C3A7A18B70A30D785C1 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 4AC32AD6DFB8857DC690C4D5FA514603 /* Build configuration list for PBXNativeTarget "Pods-FlourishUI_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( 333F3AD9645ADDCB204FA1C0712B30A1 /* Debug */, EC79A2EE70F48EF1A5B3BCE5FF620A35 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 6CB8C05ECCAFD76133C05F8AEFABE86B /* Build configuration list for PBXNativeTarget "FlourishUI" */ = { isa = XCConfigurationList; buildConfigurations = ( 94875EC2E1D1DAD69F4D1F51BE3D0D60 /* Debug */, 8E334D2C886FAB934FA98671B87BB889 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; } ================================================ FILE: Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist ================================================ IDEDidComputeMac32BitWarning ================================================ FILE: Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/FlourishUI.xcscheme ================================================ ================================================ FILE: Example/Pods/Target Support Files/FlourishUI/FlourishUI-dummy.m ================================================ #import @interface PodsDummy_FlourishUI : NSObject @end @implementation PodsDummy_FlourishUI @end ================================================ FILE: Example/Pods/Target Support Files/FlourishUI/FlourishUI-prefix.pch ================================================ #ifdef __OBJC__ #import #endif ================================================ FILE: Example/Pods/Target Support Files/FlourishUI/FlourishUI-umbrella.h ================================================ #import FOUNDATION_EXPORT double FlourishUIVersionNumber; FOUNDATION_EXPORT const unsigned char FlourishUIVersionString[]; ================================================ FILE: Example/Pods/Target Support Files/FlourishUI/FlourishUI.modulemap ================================================ framework module FlourishUI { umbrella header "FlourishUI-umbrella.h" export * module * { export * } } ================================================ FILE: Example/Pods/Target Support Files/FlourishUI/FlourishUI.xcconfig ================================================ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_ROOT = ${SRCROOT} PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES ================================================ FILE: Example/Pods/Target Support Files/FlourishUI/Info.plist ================================================ CFBundleDevelopmentRegion en CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier ${PRODUCT_BUNDLE_IDENTIFIER} CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType FMWK CFBundleShortVersionString 2.1.0 CFBundleSignature ???? CFBundleVersion ${CURRENT_PROJECT_VERSION} NSPrincipalClass ================================================ FILE: Example/Pods/Target Support Files/FlourishUI/ResourceBundle-FlourishUI-Info.plist ================================================ CFBundleDevelopmentRegion en CFBundleIdentifier ${PRODUCT_BUNDLE_IDENTIFIER} CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType BNDL CFBundleShortVersionString 2.1.0 CFBundleSignature ???? CFBundleVersion ${CURRENT_PROJECT_VERSION} NSPrincipalClass ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Info.plist ================================================ CFBundleDevelopmentRegion en CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier ${PRODUCT_BUNDLE_IDENTIFIER} CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType FMWK CFBundleShortVersionString 1.0.0 CFBundleSignature ???? CFBundleVersion ${CURRENT_PROJECT_VERSION} NSPrincipalClass ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example-acknowledgements.markdown ================================================ # Acknowledgements This application makes use of the following third party libraries: ## FlourishUI Copyright (c) 2016 Clay McIlrath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Generated by CocoaPods - https://cocoapods.org ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example-acknowledgements.plist ================================================ PreferenceSpecifiers FooterText This application makes use of the following third party libraries: Title Acknowledgements Type PSGroupSpecifier FooterText Copyright (c) 2016 Clay McIlrath <clay.mcilrath@gmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Title FlourishUI Type PSGroupSpecifier FooterText Generated by CocoaPods - https://cocoapods.org Title Type PSGroupSpecifier StringsTable Acknowledgements Title Acknowledgements ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example-dummy.m ================================================ #import @interface PodsDummy_Pods_FlourishUI_Example : NSObject @end @implementation PodsDummy_Pods_FlourishUI_Example @end ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example-frameworks.sh ================================================ #!/bin/sh set -e echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then local source="${BUILT_PRODUCTS_DIR}/$1" elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" elif [ -r "$1" ]; then local source="$1" fi local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then echo "Symlinked..." source="$(readlink "${source}")" fi # use filter instead of exclude so missing patterns dont' throw errors echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" binary="${destination}/${basename}.framework/${basename}" if ! [ -r "$binary" ]; then binary="${destination}/${basename}" fi # Strip invalid architectures so "fat" simulator / device frameworks work on device if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then strip_invalid_archs "$binary" fi # Resign the code if required by the build settings to avoid unstable apps code_sign_if_enabled "${destination}/$(basename "$1")" # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then local swift_runtime_libs swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" code_sign_if_enabled "${destination}/${lib}" done fi } # Signs a framework with the provided identity code_sign_if_enabled() { if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" fi } # Strip invalid architectures strip_invalid_archs() { binary="$1" # Get architectures for current file archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" stripped="" for arch in $archs; do if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" fi done if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi } if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "Pods-FlourishUI_Example/FlourishUI.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "Pods-FlourishUI_Example/FlourishUI.framework" fi ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example-resources.sh ================================================ #!/bin/sh set -e mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt > "$RESOURCES_TO_COPY" XCASSET_FILES=() realpath() { DIRECTORY="$(cd "${1%/*}" && pwd)" FILENAME="${1##*/}" echo "$DIRECTORY/$FILENAME" } install_resource() { if [[ "$1" = /* ]] ; then RESOURCE_PATH="$1" else RESOURCE_PATH="${PODS_ROOT}/$1" fi if [[ ! -e "$RESOURCE_PATH" ]] ; then cat << EOM error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. EOM exit 1 fi case $RESOURCE_PATH in *.storyboard) echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT}" ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ;; *.xib) echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}" ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ;; *.framework) echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" echo "rsync -av $RESOURCE_PATH ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" rsync -av "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) echo "xcrun mapc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" xcrun mapc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) echo "$RESOURCE_PATH" echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac } mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi rm -f "$RESOURCES_TO_COPY" if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] then case "${TARGETED_DEVICE_FAMILY}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; 1) TARGET_DEVICE_ARGS="--target-device iphone" ;; 2) TARGET_DEVICE_ARGS="--target-device ipad" ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; esac # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) while read line; do if [[ $line != "`realpath $PODS_ROOT`*" ]]; then XCASSET_FILES+=("$line") fi done <<<"$OTHER_XCASSETS" printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example-umbrella.h ================================================ #import FOUNDATION_EXPORT double Pods_FlourishUI_ExampleVersionNumber; FOUNDATION_EXPORT const unsigned char Pods_FlourishUI_ExampleVersionString[]; ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example.debug.xcconfig ================================================ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/FlourishUI.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "FlourishUI" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-FlourishUI_Example PODS_ROOT = ${SRCROOT}/Pods ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example.modulemap ================================================ framework module Pods_FlourishUI_Example { umbrella header "Pods-FlourishUI_Example-umbrella.h" export * module * { export * } } ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Example/Pods-FlourishUI_Example.release.xcconfig ================================================ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/FlourishUI.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "FlourishUI" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-FlourishUI_Example PODS_ROOT = ${SRCROOT}/Pods ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Info.plist ================================================ CFBundleDevelopmentRegion en CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier ${PRODUCT_BUNDLE_IDENTIFIER} CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType FMWK CFBundleShortVersionString 1.0.0 CFBundleSignature ???? CFBundleVersion ${CURRENT_PROJECT_VERSION} NSPrincipalClass ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests-acknowledgements.markdown ================================================ # Acknowledgements This application makes use of the following third party libraries: ## FlourishUI Copyright (c) 2016 Clay McIlrath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Generated by CocoaPods - https://cocoapods.org ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests-acknowledgements.plist ================================================ PreferenceSpecifiers FooterText This application makes use of the following third party libraries: Title Acknowledgements Type PSGroupSpecifier FooterText Copyright (c) 2016 Clay McIlrath <clay.mcilrath@gmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Title FlourishUI Type PSGroupSpecifier FooterText Generated by CocoaPods - https://cocoapods.org Title Type PSGroupSpecifier StringsTable Acknowledgements Title Acknowledgements ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests-dummy.m ================================================ #import @interface PodsDummy_Pods_FlourishUI_Tests : NSObject @end @implementation PodsDummy_Pods_FlourishUI_Tests @end ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests-frameworks.sh ================================================ #!/bin/sh set -e echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then local source="${BUILT_PRODUCTS_DIR}/$1" elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" elif [ -r "$1" ]; then local source="$1" fi local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then echo "Symlinked..." source="$(readlink "${source}")" fi # use filter instead of exclude so missing patterns dont' throw errors echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" binary="${destination}/${basename}.framework/${basename}" if ! [ -r "$binary" ]; then binary="${destination}/${basename}" fi # Strip invalid architectures so "fat" simulator / device frameworks work on device if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then strip_invalid_archs "$binary" fi # Resign the code if required by the build settings to avoid unstable apps code_sign_if_enabled "${destination}/$(basename "$1")" # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then local swift_runtime_libs swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" code_sign_if_enabled "${destination}/${lib}" done fi } # Signs a framework with the provided identity code_sign_if_enabled() { if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" fi } # Strip invalid architectures strip_invalid_archs() { binary="$1" # Get architectures for current file archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" stripped="" for arch in $archs; do if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" fi done if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi } if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "Pods-FlourishUI_Tests/FlourishUI.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "Pods-FlourishUI_Tests/FlourishUI.framework" fi ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests-resources.sh ================================================ #!/bin/sh set -e mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt > "$RESOURCES_TO_COPY" XCASSET_FILES=() realpath() { DIRECTORY="$(cd "${1%/*}" && pwd)" FILENAME="${1##*/}" echo "$DIRECTORY/$FILENAME" } install_resource() { if [[ "$1" = /* ]] ; then RESOURCE_PATH="$1" else RESOURCE_PATH="${PODS_ROOT}/$1" fi if [[ ! -e "$RESOURCE_PATH" ]] ; then cat << EOM error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. EOM exit 1 fi case $RESOURCE_PATH in *.storyboard) echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT}" ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ;; *.xib) echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}" ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ;; *.framework) echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" echo "rsync -av $RESOURCE_PATH ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" rsync -av "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) echo "xcrun mapc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" xcrun mapc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) echo "$RESOURCE_PATH" echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac } mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi rm -f "$RESOURCES_TO_COPY" if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] then case "${TARGETED_DEVICE_FAMILY}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; 1) TARGET_DEVICE_ARGS="--target-device iphone" ;; 2) TARGET_DEVICE_ARGS="--target-device ipad" ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; esac # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) while read line; do if [[ $line != "`realpath $PODS_ROOT`*" ]]; then XCASSET_FILES+=("$line") fi done <<<"$OTHER_XCASSETS" printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests-umbrella.h ================================================ #import FOUNDATION_EXPORT double Pods_FlourishUI_TestsVersionNumber; FOUNDATION_EXPORT const unsigned char Pods_FlourishUI_TestsVersionString[]; ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests.debug.xcconfig ================================================ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/FlourishUI.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "FlourishUI" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-FlourishUI_Tests PODS_ROOT = ${SRCROOT}/Pods ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests.modulemap ================================================ framework module Pods_FlourishUI_Tests { umbrella header "Pods-FlourishUI_Tests-umbrella.h" export * module * { export * } } ================================================ FILE: Example/Pods/Target Support Files/Pods-FlourishUI_Tests/Pods-FlourishUI_Tests.release.xcconfig ================================================ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/FlourishUI.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "FlourishUI" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-FlourishUI_Tests PODS_ROOT = ${SRCROOT}/Pods ================================================ FILE: Example/Tests/Info.plist ================================================ CFBundleDevelopmentRegion en CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType BNDL CFBundleShortVersionString 1.0 CFBundleSignature ???? CFBundleVersion 1 ================================================ FILE: FlourishUI.podspec ================================================ Pod::Spec.new do |s| s.name = "FlourishUI" s.version = "3.1.3" s.summary = "FlourishUI is a nice clean user interface framework" s.description = "FlourishUI is a UI framework for quickly and easily making good looking iOS components." s.homepage = "https://github.com/thinkclay/FlourishUI" s.screenshots = [ 'https://raw.githubusercontent.com/thinkclay/FlourishUI/master/Screenshots/iphone5s-1.png', 'https://raw.githubusercontent.com/thinkclay/FlourishUI/master/Screenshots/iphone5s-2.png', 'https://raw.githubusercontent.com/thinkclay/FlourishUI/master/Screenshots/iphone5s-3.png', 'https://raw.githubusercontent.com/thinkclay/FlourishUI/master/Screenshots/iphone6s-1.png', 'https://raw.githubusercontent.com/thinkclay/FlourishUI/master/Screenshots/iphone6s-2.png', 'https://raw.githubusercontent.com/thinkclay/FlourishUI/master/Screenshots/iphone5s-3.png', ] s.license = 'MIT' s.author = { "Clay McIlrath" => "clay.mcilrath@gmail.com" } s.source = { :git => "https://github.com/thinkclay/FlourishUI.git", :tag => s.version.to_s } s.social_media_url = 'https://twitter.com/thinkclay' s.platform = :ios, '8.0' s.requires_arc = true s.source_files = 'Pod/Classes/**/*' end ================================================ FILE: LICENSE ================================================ Copyright (c) 2016 Clay McIlrath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: Pod/Assets/.gitkeep ================================================ ================================================ FILE: Pod/Classes/.gitkeep ================================================ ================================================ FILE: Pod/Classes/Button.swift ================================================ import UIKit import QuartzCore @IBDesignable open class Button: UIButton { @IBInspectable open var ripplePercent: Float = 1 { didSet { updateUI() } } @IBInspectable open var rippleOverBounds: Bool = false @IBInspectable open var buttonCornerRadius: Float = 0 { didSet { layer.cornerRadius = CGFloat(buttonCornerRadius) } } @IBInspectable var shadowRippleRadius: Float = 1 fileprivate let rippleForegroundView = UIView() fileprivate let rippleBackgroundView = UIView() fileprivate var tempShadowRadius: CGFloat = 0 fileprivate var tempShadowOpacity: Float = 0 fileprivate var rippleMask: CAShapeLayer? { get { if rippleOverBounds { return nil } else { let maskLayer = CAShapeLayer() maskLayer.path = UIBezierPath(roundedRect: bounds, cornerRadius: layer.cornerRadius).cgPath return maskLayer } } } required public init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) setup() } override public init(frame: CGRect) { super.init(frame: frame) setup() } fileprivate func setup() { updateUI() rippleOverBounds = false rippleBackgroundView.backgroundColor = backgroundColor rippleBackgroundView.frame = bounds layer.addSublayer(rippleBackgroundView.layer) rippleBackgroundView.layer.addSublayer(rippleForegroundView.layer) rippleBackgroundView.alpha = 0 layer.shadowRadius = 0 layer.shadowOffset = CGSize(width: 0, height: 1) layer.shadowColor = UIColor(white: 0.0, alpha: 0.5).cgColor } fileprivate func updateUI() { let size: CGFloat = bounds.width * CGFloat(ripplePercent) let x: CGFloat = (bounds.width/2) - (size/2) let y: CGFloat = (bounds.height/2) - (size/2) let corner: CGFloat = size/2 if let backgroundColor = backgroundColor { rippleForegroundView.backgroundColor = backgroundColor.adjustValue(percentage: 1.1) } rippleForegroundView.frame = CGRect(x: x, y: y, width: size, height: size) rippleForegroundView.layer.cornerRadius = corner } override open func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool { rippleForegroundView.center = touch.location(in: self) UIView.animate(withDuration: 0.1, animations: { self.rippleBackgroundView.alpha = 1 }, completion: nil) rippleForegroundView.transform = CGAffineTransform(scaleX: 0.5, y: 0.5) UIView.animate( withDuration: 0.7, delay: 0, options: .curveEaseOut, animations: { self.rippleForegroundView.transform = CGAffineTransform.identity }, completion: nil ) tempShadowRadius = layer.shadowRadius tempShadowOpacity = layer.shadowOpacity let shadowAnim = CABasicAnimation(keyPath:"shadowRadius") shadowAnim.toValue = shadowRippleRadius let opacityAnim = CABasicAnimation(keyPath:"shadowOpacity") opacityAnim.toValue = 1 let groupAnim = CAAnimationGroup() groupAnim.duration = 0.7 groupAnim.fillMode = CAMediaTimingFillMode.forwards groupAnim.isRemovedOnCompletion = false groupAnim.animations = [shadowAnim, opacityAnim] layer.add(groupAnim, forKey:"shadow") return super.beginTracking(touch, with: event) } override open func endTracking(_ touch: UITouch?, with event: UIEvent?) { super.endTracking(touch, with: event) UIView.animate( withDuration: 0.1, animations: { self.rippleBackgroundView.alpha = 1 }, completion: { success in UIView.animate(withDuration: 0.6 , animations: { self.rippleBackgroundView.alpha = 0 }) } ) UIView.animate( withDuration: 0.7, delay: 0, options: [.curveEaseOut, .beginFromCurrentState], animations: { self.rippleForegroundView.transform = CGAffineTransform.identity let shadowAnim = CABasicAnimation(keyPath:"shadowRadius") shadowAnim.toValue = self.tempShadowRadius let opacityAnim = CABasicAnimation(keyPath:"shadowOpacity") opacityAnim.toValue = self.tempShadowOpacity let groupAnim = CAAnimationGroup() groupAnim.duration = 0.7 groupAnim.fillMode = CAMediaTimingFillMode.forwards groupAnim.isRemovedOnCompletion = false groupAnim.animations = [shadowAnim, opacityAnim] self.layer.add(groupAnim, forKey:"shadowBack") }, completion: nil ) } override open func layoutSubviews() { super.layoutSubviews() let oldCenter = rippleForegroundView.center updateUI() rippleForegroundView.center = oldCenter rippleBackgroundView.layer.frame = bounds rippleBackgroundView.layer.mask = rippleMask } } ================================================ FILE: Pod/Classes/InputText.swift ================================================ import UIKit @IBDesignable open class InputText: UITextField { @IBInspectable open var padding: CGSize = CGSize(width: 8, height: 5) @IBInspectable open var borderRadius = CGFloat(5) @IBInspectable open var borderColor = UIColor.lightGray.cgColor @IBInspectable open var borderWidth = CGFloat(1) @IBInspectable open var icon = UIImage() override open func layoutSubviews() { super.layoutSubviews() layer.cornerRadius = borderRadius layer.borderColor = borderColor layer.borderWidth = borderWidth } override open func textRect(forBounds bounds: CGRect) -> CGRect { let rect = super.textRect(forBounds: bounds) let newRect = CGRect( x: rect.origin.x + padding.width, y: rect.origin.y + padding.height, width: rect.size.width - (2 * padding.width), height: rect.size.height - (2 * padding.height) ) return newRect } override open func editingRect(forBounds bounds: CGRect) -> CGRect { return textRect(forBounds: bounds) } } ================================================ FILE: Pod/Classes/Modal.swift ================================================ import UIKit open class Modal: UIViewController { fileprivate var _settings: Settings = Settings() { didSet { _height = _settings.height _bodyHeight = _settings.bodyHeight } } fileprivate var _overlay = UIVisualEffectView(effect: UIBlurEffect(style: .light)) fileprivate var dialog = UIView() fileprivate var titleLabel = UILabel() fileprivate var bodyLabel = UITextView() fileprivate var dismissButton = ModalButton(frame: CGRect()) fileprivate var status: Status = .notice fileprivate var durationTimer: Timer! fileprivate var _bodyHeight: CGFloat = 90 fileprivate var _height: CGFloat = 178 var width: CGFloat { var width = (view.frame.width - 2 * _settings.padding) if _settings.equalAspectRatio { width = width > _height ? _height : width } return width <= _settings.maxWidth ? width : _settings.maxWidth } public enum Status { case success, error, notice, warning, info } public enum Action { case none, selector, closure } public enum Shadow { case normal, curl, hover } public struct Settings { public var backgroundColor: UIColor public var borderColor: UIColor public var equalAspectRatio: Bool public var borderRadius: CGFloat public var borderWidth: CGFloat public var height: CGFloat public var maxWidth: CGFloat public var titleHeight: CGFloat public var bodyHeight: CGFloat public var margin: CGFloat public var padding: CGFloat public var buttonHeight: CGFloat public var buttonCornerRadius: Float public var dismissText: String // Shadows public var shadowType: Shadow public var shadowColor: UIColor public var shadowOffset: CGSize public var shadowOpacity: Float public var shadowRadius: CGFloat // Overlay public var overlayColor: UIColor public var overlayBlurStyle: UIBlurEffect.Style // Colors public var titleColor: UIColor public var bodyColor: UIColor public init() { backgroundColor = UIColor.white borderColor = UIColor.lightGray equalAspectRatio = false borderRadius = 5 borderWidth = 0.5 height = 178 maxWidth = 300 titleHeight = 40 bodyHeight = 90 margin = 20 padding = 20 buttonHeight = 40 buttonCornerRadius = 3 dismissText = "Close" shadowType = .normal shadowColor = UIColor.black shadowOffset = CGSize(width: 0, height: 2) shadowOpacity = 0.2 shadowRadius = 1 overlayColor = UIColor.clear overlayBlurStyle = .light titleColor = UIColor.darkGray bodyColor = UIColor.gray } } public struct Color { static var success = UIColor(red: 34/255, green: 181/255, blue: 115/255, alpha: 1) static var error = UIColor(red: 193/255, green: 39/255, blue: 45/255, alpha: 1) static var notice = UIColor(red: 200/255, green: 203/255, blue: 177/255, alpha: 1) static var warning = UIColor(red: 235/255, green: 177/255, blue: 0/255, alpha: 1) static var info = UIColor(red: 40/255, green: 102/255, blue: 191/255, alpha: 1) } public struct Font { static var header = UIFont(name: "Avenir-Medium", size: 18.0)! static var text = UIFont(name: "Avenir", size: 14.0)! static var button = UIFont(name: "Avenir-Roman", size: 14.0)! } class ModalButton: Button { var actionType = Action.none var target: AnyObject! var selector: Selector! var action:( () -> Void )! } required public init?(coder aDecoder: NSCoder) { fatalError("NSCoding not supported") } public init(title: String?, body: String?, status: Status, settings: Settings = Settings()) { super.init(nibName: nil, bundle: nil) self.titleLabel.text = title self.bodyLabel.text = body self.status = status self._settings = settings self._overlay = UIVisualEffectView(effect: UIBlurEffect(style: _settings.overlayBlurStyle)) // Set up main view view.frame = UIScreen.main.bounds view.autoresizingMask = [UIView.AutoresizingMask.flexibleHeight, UIView.AutoresizingMask.flexibleWidth] view.backgroundColor = _settings.overlayColor view.addSubview(_overlay) // Overlay _overlay.frame = view.frame _overlay.autoresizingMask = [.flexibleHeight, .flexibleWidth] _overlay.contentView.addSubview(dialog) // _overlay.addSubview(dialog) // Dialog dialog.backgroundColor = _settings.backgroundColor dialog.layer.borderColor = _settings.borderColor.cgColor dialog.layer.cornerRadius = _settings.borderRadius dialog.layer.masksToBounds = false dialog.layer.borderWidth = _settings.borderWidth // Title titleLabel.textColor = _settings.titleColor titleLabel.numberOfLines = 1 titleLabel.textAlignment = .center titleLabel.font = Font.header titleLabel.frame = CGRect(x: _settings.padding, y: _settings.padding, width: width - 2 * _settings.padding, height: _settings.titleHeight) dialog.addSubview(titleLabel) // Body bodyLabel.backgroundColor = UIColor.clear bodyLabel.textColor = _settings.bodyColor bodyLabel.isEditable = false bodyLabel.textAlignment = .center bodyLabel.textContainerInset = UIEdgeInsets.zero bodyLabel.textContainer.lineFragmentPadding = 0; bodyLabel.font = Font.text dialog.addSubview(bodyLabel) // Button dismissButton.setTitle(_settings.dismissText, for: UIControl.State()) dismissButton.titleLabel?.font = Font.button dismissButton.actionType = Action.selector dismissButton.target = self dismissButton.selector = #selector(self.hide) dismissButton.addTarget(self, action: #selector(self.buttonTapped(_:)), for: .touchUpInside) dialog.addSubview(dismissButton) } override open func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() let size = UIScreen.main.bounds.size // Set background frame view.frame.size = size _overlay.frame.size = size // Set frames addShadow(dialog, shadow: _settings.shadowType) dialog.frame.size = CGSize(width: width, height: _height) dialog.center.x = view.center.x dialog.center.y = view.center.y let x = _settings.padding let y = _settings.padding + _settings.titleHeight let w = width - (2 * _settings.padding) bodyLabel.frame = CGRect(x: x, y: y, width: w, height: _bodyHeight) dismissButton.frame = CGRect(x: x, y: y + _bodyHeight + _settings.padding, width: w, height: _settings.buttonHeight) dismissButton.backgroundColor = metaForStatus(status).color dismissButton.layer.masksToBounds = true } @objc func buttonTapped(_ btn: ModalButton) { switch btn.actionType { case .closure : btn.action() case .selector : let ctrl = UIControl() ctrl.sendAction(btn.selector, to:btn.target, for:nil) default : print("Unknow action type for button") } hide() } open func show(_ duration: TimeInterval = 0) { view.alpha = 0 dialog.frame.origin.y = -view.frame.height if let rv = UIApplication.shared.keyWindow?.subviews.first { rv.addSubview(view) view.frame = rv.bounds _overlay.frame = rv.bounds // Subtitle: adjusts to text view size let r = bodyLabel.text.boundingRect( with: CGSize(width: width - 2 * _settings.padding, height: 90), options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: Font.text], context: nil ) let textHeight = ceil(r.size.height) if textHeight < _bodyHeight { _height -= (_bodyHeight - textHeight) _bodyHeight = textHeight } _height += _settings.buttonHeight + _settings.padding if duration > 0 { durationTimer?.invalidate() durationTimer = Timer.scheduledTimer(timeInterval: duration, target: self, selector: #selector(self.hide), userInfo: nil, repeats: false) } // Animate the dialog UIView.animate( withDuration: 0.2, animations: { self.dialog.center.y = rv.center.y + 15 self.view.alpha = 1 }, completion: { finished in UIView.animate(withDuration: 0.2, animations: { self.dialog.center = rv.center }) } ) } } @objc open func hide() { UIView.animate( withDuration: 0.2, animations: { self.view.alpha = 0 }, completion: { finished in self.view.removeFromSuperview() } ) } open func addShadow(_ view: UIView, shadow: Shadow) { view.layer.shadowColor = _settings.shadowColor.cgColor view.layer.shadowOffset = _settings.shadowOffset view.layer.shadowOpacity = _settings.shadowOpacity view.layer.shadowRadius = _settings.shadowRadius switch shadow { case .normal : addDropShadow(view) case .curl : addCurlShadow(view) case .hover : addHoverShadow(view) } } fileprivate func metaForStatus(_ status: Status) -> (text: String, color: UIColor) { switch status { case .success : return ("Success", Color.success) case .error : return ("Error", Color.error) case .notice : return ("Notice", Color.notice) case .warning : return ("Warning", Color.warning) case .info : return ("Info", Color.info) } } fileprivate func addDropShadow(_ view: UIView) {} fileprivate func addCurlShadow(_ view: UIView) { let size = view.bounds.size let width = size.width let height = size.height let depth = CGFloat(11.0) let lessDepth = 0.8 * depth let curvyness = CGFloat(5) let radius = CGFloat(1) let path = UIBezierPath() // top left path.move(to: CGPoint(x: radius, y: height)) // top right path.addLine(to: CGPoint(x: width - 2 * radius, y: height)) // bottom right + a little extra path.addLine(to: CGPoint(x: width - 2 * radius, y: height + depth)) // path to bottom left via curve path.addCurve( to: CGPoint(x: radius, y: height + depth), controlPoint1: CGPoint(x: width - curvyness, y: height + lessDepth - curvyness), controlPoint2: CGPoint(x: curvyness, y: height + lessDepth - curvyness) ) view.layer.shadowPath = path.cgPath } fileprivate func addHoverShadow(_ view: UIView) { let ovalRect = CGRect(x: 10, y: _height + 15, width: width - 20, height: 15) let path = UIBezierPath(roundedRect: ovalRect, cornerRadius: 10) view.layer.shadowPath = path.cgPath } } ================================================ FILE: Pod/Classes/ToggleSwitch.swift ================================================ import UIKit public class ToggleButton: UIView { var active: Bool = false public var activeBackgroundColor = UIColor(hex: "#6B60AB") { didSet { setNeedsDisplay() } } public var activeBorderColor = UIColor(hex: "#8579CE") { didSet { setNeedsDisplay() } } public var activeInnerShadowColor = UIColor(rgba: [255, 255, 255, 0.5]) { didSet { setNeedsDisplay() } } public var disabledBackgroundColor = UIColor(hex: "#4D428E") { didSet { setNeedsDisplay() } } public var disabledBorderColor = UIColor(hex: "#5C509D") { didSet { setNeedsDisplay() } } public var disabledInnerShadowColor = UIColor(rgba: [255, 255, 255, 0.14]) { didSet { setNeedsDisplay() } } override init(frame: CGRect) { super.init(frame: frame) backgroundColor = .clear } required public init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override public func draw(_ rect: CGRect) { let buttonFill = active ? activeBackgroundColor : disabledBackgroundColor let buttonStroke = active ? activeBorderColor : disabledBorderColor let innerShadow = active ? activeInnerShadowColor : disabledInnerShadowColor let x: CGFloat = active ? 35 : 0 let context = UIGraphicsGetCurrentContext()! // Oval with drop shadow let ovalPath = UIBezierPath(ovalIn: CGRect(x: 2, y: 1, width: 20, height: 20)) context.saveGState() context.setShadow(offset: CGSize(width: 0.1, height: -0.1), blur: 2, color: UIColor.black.cgColor) buttonFill.setFill() ovalPath.fill() // Inner shadow context.saveGState() context.clip(to: ovalPath.bounds) context.setShadow(offset: CGSize.zero, blur: 0) context.setAlpha(innerShadow.cgColor.alpha) context.beginTransparencyLayer(auxiliaryInfo: nil) context.setShadow(offset: CGSize(width: 0.1, height: 1), blur: 3, color: UIColor.white.cgColor) context.setBlendMode(.sourceOut) context.beginTransparencyLayer(auxiliaryInfo: nil) let ovalOpaqueShadow = innerShadow.withAlphaComponent(1) ovalOpaqueShadow.setFill() ovalPath.fill() context.endTransparencyLayer() context.endTransparencyLayer() context.restoreGState() context.restoreGState() buttonStroke.setStroke() ovalPath.lineWidth = 1 ovalPath.stroke() frame.origin.x = x } } public class ToggleSlide: UIView { var active: Bool = false public var activeBackgroundColor = UIColor(hex: "#514398") { didSet { setNeedsDisplay() } } public var activeBorderColor = UIColor(hex: "#5B4CA9") { didSet { setNeedsDisplay() } } public var disabledBackgroundColor = UIColor(hex: "#382B76") { didSet { setNeedsDisplay() } } public var disabledBorderColor = UIColor(hex: "#4B3E8D") { didSet { setNeedsDisplay() } } override init(frame: CGRect) { super.init(frame: frame) backgroundColor = .clear } required public init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override public func draw(_ rect: CGRect) { let slideFill = active ? activeBackgroundColor : disabledBackgroundColor let slideStroke = active ? activeBorderColor : disabledBorderColor let background = UIBezierPath(roundedRect: CGRect(x: 1, y: 7, width: 48, height: 10), cornerRadius: 10) background.lineWidth = 1 slideFill.setFill() background.fill() slideStroke.setStroke() background.stroke() } } public class ToggleLabel: UIButton { override init(frame: CGRect) { super.init(frame: frame) } required public init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } open class ToggleSwitch: UIView { public var active: Bool = false { didSet { button.active = active slide.active = active button.setNeedsDisplay() slide.setNeedsDisplay() } } public var button = ToggleButton(frame: CGRect(x: 0, y: 1, width: 24, height: 24)) public var slide = ToggleSlide(frame: CGRect(x: 4, y: 0, width: 60, height: 20)) public var label = ToggleLabel(frame: CGRect(x: 70, y: 0, width: 100, height: 22)) public var toggleCallback: (() -> ())? override public init(frame: CGRect) { super.init(frame: frame) backgroundColor = .clear toggleCallback = { print("toggle init") } button.active = active slide.active = active addSubview(slide) addSubview(button) addSubview(label) label.addTarget(self, action: #selector(toggleHandler), for: .touchUpInside) addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(toggleHandler))) addGestureRecognizer(UISwipeGestureRecognizer(target: self, action: #selector(toggleHandler))) } required public init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } @objc public func toggleHandler() { UIView.animate( withDuration: 0.15, delay: 0.0, options: .curveEaseIn, animations: { self.button.frame.origin.x = self.active ? 0 : 35 }, completion: { _ in self.active = !self.active self.toggleCallback!() } ) } } ================================================ FILE: Pod/Classes/UIColor.swift ================================================ import UIKit public extension UIColor { convenience init(hex: String) { var red: CGFloat = 0.0 var green: CGFloat = 0.0 var blue: CGFloat = 0.0 let alpha: CGFloat = 1.0 if hex.hasPrefix("#") { let index = hex.characters.index(hex.startIndex, offsetBy: 1) let hex = hex.substring(from: index) let scanner = Scanner(string: hex) var hexValue: CUnsignedLongLong = 0 if scanner.scanHexInt64(&hexValue) { red = CGFloat((hexValue & 0xFF0000) >> 16) / 255.0 green = CGFloat((hexValue & 0x00FF00) >> 8) / 255.0 blue = CGFloat(hexValue & 0x0000FF) / 255.0 } else { print("scan hex error, your string should be a hex string of 7 chars. ie: #ebb100") } } else { print("invalid rgb string, missing '#' as prefix", terminator: "") } self.init(red: red, green: green, blue: blue, alpha: alpha) } convenience init(rgba: [CGFloat]) { self.init(red: rgba[0]/255.0, green: rgba[1]/255.0, blue: rgba[2]/255.0, alpha: rgba[3]) } func adjustValue(percentage: CGFloat = 1.5) -> UIColor { var h: CGFloat = 0 var s: CGFloat = 0 var b: CGFloat = 0 var a: CGFloat = 0 self.getHue(&h, saturation: &s, brightness: &b, alpha: &a) return UIColor(hue: h, saturation: s, brightness: (b * percentage), alpha: a) } } ================================================ FILE: README.md ================================================ # FlourishUI [![CI Status](http://img.shields.io/travis/Clay McIlrath/FlourishUI.svg?style=flat)](https://travis-ci.org/Clay McIlrath/FlourishUI) [![Version](https://img.shields.io/cocoapods/v/FlourishUI.svg?style=flat)](http://cocoapods.org/pods/FlourishUI) [![License](https://img.shields.io/cocoapods/l/FlourishUI.svg?style=flat)](http://cocoapods.org/pods/FlourishUI) [![Platform](https://img.shields.io/cocoapods/p/FlourishUI.svg?style=flat)](http://cocoapods.org/pods/FlourishUI) Preview of UI We absolutely **love** beautiful interfaces! As an organization named Unicorn, we are obligated to be unique and majestic. That is why we have made this highly configurable, out-of-the-box-pretty, User Interface library/kit thingy. It has a minimal set of UI components now, but already packs quite a punch with the UIColor extension, animated Material-inspired buttons, and modal views. ## Getting Started To run the example project, clone the repo, and run `pod install` from the Example directory first. ***Release Notes*** [Master](https://github.com/unicorn/FlourishUI/tree/master) contains the latest bleeding edge code. Currently master is supporting Swift 3.0 but there are [releases](https://github.com/thinkclay/FlourishUI/releases) for older versions of Swift. This library was built on iOS 8.x, but does offer decent backwards compatibility. We haven't tested older devices thoroughly however, so if you find a breaking issue, please file an issue on the repo or submit a pull request! ### Inspiration This library was hand-written, but borrowed from concepts in [ZFRipple](https://github.com/zoonooz/ZFRippleButton), [SLCAlertView](https://github.com/vikmeup/SCLAlertView-Swift) and [Material](http://www.google.com/design/spec/material-design/introduction.html). We'd like to thank them for paving the way for some cool concepts and for contributing their code as MIT. Following suit, we have also made this open source and completely void of copyright or restrictions. Just use it already, and make your apps look like sexy unicorns! ## Installation FlourishUI is available through [CocoaPods](http://cocoapods.org). To install it, simply add the following line to your Podfile: ```ruby pod "FlourishUI" ``` Or if you prefer to skip cocoapods, you can simply drag and drop the [source files](https://github.com/thinkclay/FlourishUI/tree/master/Pod/Classes) directly into your Xcode project. ## Usage Most of the code should be pretty self documenting. FlourishUI uses structs and enums heavily to make an easy-to-read and highly meta approach. Future updates will probably keep the API mostly the same, but switch to a better underlying infrastructure of getters and setters. ### Button The Button class is ready to go with Interface Builder and IBDesignable, just inherit! You can check the demo to see this configured with IB. ### Modal Modals are heavily based on configurations, and thus, are built and called in code. We plan on making them more robust in time, but for now, you'll want to simply treat them like you would an AlertView. ```swift Modal.Overlay.blurStyle = .ExtraLight Modal.Dialog.shadowType = .Hover Modal.Dialog.shadowRadius = CGFloat(5) Modal.Dialog.shadowOffset = CGSize(width: 0, height: 0) Modal.Dialog.shadowOpacity = 0.1 Modal(title: sender.titleLabel?.text, body: body, status: .Warning).show() ``` ### Toggle Switch Preview of UI Flourish UI supports Toggle Switches as of 3.x and up! These are drawn entirely with core graphics and animated with UIKit, giving you vector scale and full customization. ```swift // // Customizing toggle switches // let greenColor = UIColor(hex: "#3D8C8E") let toggle2 = ToggleSwitch() toggle2.frame = CGRect(x: 20, y: view.frame.height - 100, width: view.frame.width - 40, height: 24) toggle2.label.setTitle("Custom styled toggle", for: .normal) toggle2.active = true // Customize the label associated with the toggle switch toggle2.label.frame.size.width = 200 toggle2.label.titleLabel?.textColor = .black // Customize the background which the toggle button slides across toggle2.slide.activeBackgroundColor = greenColor.adjustValue(percentage: 1.4) toggle2.slide.activeBorderColor = greenColor.adjustValue(percentage: 1.0) toggle2.slide.disabledBackgroundColor = UIColor(hex: "#99896F") toggle2.slide.disabledBorderColor = UIColor(hex: "#99896F").adjustValue(percentage: 0.5) // Customize the round toggle button toggle2.button.activeBackgroundColor = greenColor.adjustValue(percentage: 1.3) toggle2.button.activeBorderColor = greenColor.adjustValue(percentage: 1.1) toggle2.button.disabledBackgroundColor = UIColor(rgba: [153, 137, 111, 0.8]) toggle2.button.disabledBorderColor = UIColor(rgba: [153, 137, 111, 0.8]).adjustValue(percentage: 0.5) view.addSubview(toggle2) ``` ### UIColor Extension ```swift // Create colors with hex value in string let red = UIColor(hex: "#ff0000") // Darken or lighten the value (lightness) // 1 = 100% therefore > 1 is lighter and < 1 is darker red.adjustValue(percentage: 1.5) ``` ## License FlourishUI is available under the MIT license. See the LICENSE file for more info.