Browse Source

Merge branch 'develop'

Conflicts:
	CHANGELOG.md
	Cartfile
	Nextcloud.xcodeproj/project.pbxproj
	iOSClient/AppDelegate.m
	iOSClient/Brand/File_Provider_Extension.plist
	iOSClient/Brand/Share.plist
	iOSClient/Brand/iOSClient.plist
	iOSClient/Networking/OCNetworking.m
	iOSClient/Notification/CCNotification.swift
	iOSClient/Supporting Files/ca.lproj/Localizable.strings
marinofaggiana 5 years ago
parent
commit
ff967bc16b
100 changed files with 149 additions and 2748 deletions
  1. 19 17
      Cartfile
  2. 7 5
      Cartfile.resolved
  3. 0 1
      Carthage/Checkouts/Sheeeeeeeeet/.swift-version
  4. 0 15
      Carthage/Checkouts/Sheeeeeeeeet/.travis.yml
  5. 0 0
      Carthage/Checkouts/Sheeeeeeeeet/Cartfile
  6. 0 2
      Carthage/Checkouts/Sheeeeeeeeet/Cartfile.private
  7. 0 2
      Carthage/Checkouts/Sheeeeeeeeet/Cartfile.resolved
  8. 1 1
      Carthage/Checkouts/Sheeeeeeeeet/Fastlane/Fastfile
  9. 120 0
      Carthage/Checkouts/Sheeeeeeeeet/RELEASE_NOTES.md
  10. BIN
      Carthage/Checkouts/Sheeeeeeeeet/Resources/Web Icon.sketch
  11. 1 1
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet.podspec
  12. 0 36
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet+Presenter.swift
  13. 0 297
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet.swift
  14. 0 81
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet.xib
  15. 0 95
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheetItemHandler.swift
  16. 0 32
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheetMargin.swift
  17. 0 23
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Extensions/NSObject+ClassName.swift
  18. 0 19
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Extensions/UIView+Nib.swift
  19. 0 24
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Extensions/UIView+Subviews.swift
  20. 0 19
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Extensions/UIViewController+RootViewController.swift
  21. 1 1
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Info.plist
  22. 0 185
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/ActionSheetItem.swift
  23. 0 78
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Buttons/ActionSheetButton.swift
  24. 0 48
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Buttons/ActionSheetCancelButton.swift
  25. 0 43
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Buttons/ActionSheetDangerButton.swift
  26. 0 48
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Buttons/ActionSheetOkButton.swift
  27. 0 174
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetCollectionItem.swift
  28. 0 78
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetCustomItem.swift
  29. 0 56
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetLinkItem.swift
  30. 0 75
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetMultiSelectItem.swift
  31. 0 113
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetMultiSelectToggleItem.swift
  32. 0 152
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetSelectItem.swift
  33. 0 53
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetSingleSelectItem.swift
  34. 0 47
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Titles/ActionSheetSectionMargin.swift
  35. 0 51
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Titles/ActionSheetSectionTitle.swift
  36. 0 53
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Titles/ActionSheetTitle.swift
  37. 0 108
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Presenters/ActionSheetPopoverPresenter.swift
  38. 0 39
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Presenters/ActionSheetPresenter.swift
  39. 0 138
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Presenters/ActionSheetStandardPresenter.swift
  40. 0 112
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/AppDelegate+Appearance.swift
  41. 0 20
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/AppDelegate.swift
  42. 0 116
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json
  43. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-1024.png
  44. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-120.png
  45. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-152.png
  46. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-167.png
  47. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-180.png
  48. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-20.png
  49. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-29.png
  50. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-40.png
  51. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-58.png
  52. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-60.png
  53. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-76.png
  54. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-80.png
  55. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-87.png
  56. 0 6
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/Contents.json
  57. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_account.imageset/Contents.json
  58. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_account.imageset/ic_account_circle.png
  59. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_account.imageset/ic_account_circle_2x.png
  60. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_account.imageset/ic_account_circle_3x.png
  61. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_arrow_right.imageset/Contents.json
  62. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_arrow_right.imageset/ic_keyboard_arrow_right.png
  63. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_arrow_right.imageset/ic_keyboard_arrow_right_2x.png
  64. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_arrow_right.imageset/ic_keyboard_arrow_right_3x.png
  65. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmark.imageset/Contents.json
  66. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmark.imageset/ic_done.png
  67. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmark.imageset/ic_done_2x.png
  68. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmark.imageset/ic_done_3x.png
  69. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmarks.imageset/Contents.json
  70. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmarks.imageset/ic_done_all.png
  71. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmarks.imageset/ic_done_all_2x.png
  72. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmarks.imageset/ic_done_all_3x.png
  73. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle.imageset/Contents.json
  74. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle.imageset/ic_play_circle_outline.png
  75. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle.imageset/ic_play_circle_outline_2x.png
  76. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle.imageset/ic_play_circle_outline_3x.png
  77. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle_checked.imageset/Contents.json
  78. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle_checked.imageset/ic_check_circle.png
  79. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle_checked.imageset/ic_check_circle_2x.png
  80. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle_checked.imageset/ic_check_circle_3x.png
  81. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_coffee.imageset/Contents.json
  82. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_coffee.imageset/ic_local_cafe.png
  83. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_coffee.imageset/ic_local_cafe_2x.png
  84. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_coffee.imageset/ic_local_cafe_3x.png
  85. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_credit_card.imageset/Contents.json
  86. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_credit_card.imageset/ic_credit_card.png
  87. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_credit_card.imageset/ic_credit_card_2x.png
  88. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_credit_card.imageset/ic_credit_card_3x.png
  89. 0 24
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_custom.imageset/Contents.json
  90. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_custom.imageset/outline_select_all_black_24pt_1x.png
  91. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_custom.imageset/outline_select_all_black_24pt_2x.png
  92. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_custom.imageset/outline_select_all_black_24pt_3x.png
  93. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_cutlery.imageset/Contents.json
  94. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_cutlery.imageset/ic_restaurant.png
  95. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_cutlery.imageset/ic_restaurant_2x.png
  96. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_cutlery.imageset/ic_restaurant_3x.png
  97. 0 26
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_drink.imageset/Contents.json
  98. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_drink.imageset/ic_local_bar.png
  99. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_drink.imageset/ic_local_bar_2x.png
  100. BIN
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_drink.imageset/ic_local_bar_3x.png

+ 19 - 17
Cartfile

@@ -1,22 +1,24 @@
-github "tilltue/TLPhotoPicker" == 1.9.3
-github "kishikawakatsumi/UICKeyChainStore" == 2.1.2
-github "danielsaidi/Sheeeeeeeeet" == 1.2.2
-github "MortimerGoro/MGSwipeTableCell" == 1.6.8
-github "dzenbot/DZNEmptyDataSet" == 1.8.1
-github "ealeksandrov/EAIntroView" == 2.12.0
-github "calimarkus/JDStatusBarNotification" == 1.6.0
-github "ChangbaDevs/KTVHTTPCache" == 2.0.1
-github "jdg/MBProgressHUD" == 1.1.0
-github "realm/realm-cocoa" == 3.17.1
+github "tilltue/TLPhotoPicker" "1.9.3"
+github "kishikawakatsumi/UICKeyChainStore" "v2.1.2"
+github "danielsaidi/Sheeeeeeeeet" "2.0.2"
+github "MortimerGoro/MGSwipeTableCell" "1.6.8"
+github "dzenbot/DZNEmptyDataSet" "v1.8.1"
+github "ealeksandrov/EAIntroView" "2.12.0"
+github "calimarkus/JDStatusBarNotification" "1.6.0"
+github "ChangbaDevs/KTVHTTPCache" "2.0.1"
+github "jdg/MBProgressHUD" "1.1.0"
+github "realm/realm-cocoa" "v3.17.3"
 github "SVGKit/SVGKit" "3.x"
-github "WeTransfer/WeScan" == 1.1.0
-github "malcommac/SwiftRichString" == 3.0.0
-github "yannickl/QRCodeReader.swift" >= 10.1.0
-github "weichsel/ZIPFoundation" == 0.9.9
-github "rechsteiner/Parchment" == 1.6.0
-github "WenchaoD/FSCalendar"
-github "AssistoLab/DropDown"
+github "WeTransfer/WeScan" "v1.1.0"
+github "malcommac/SwiftRichString"
+github "yannickl/QRCodeReader.swift" "10.1.1"
+github "weichsel/ZIPFoundation" "0.9.9"
+github "rechsteiner/Parchment" "v1.7.0"
+github "WenchaoD/FSCalendar" "2.8.0"
+github "AssistoLab/DropDown" "v2.3.13"
 github "krzyzanowskim/OpenSSL" "1.0.218"
+github "Alamofire/Alamofire" "5.0.0-rc.2"
+github "https://github.com/yahoojapan/SwiftyXMLParser"
 
 github "https://github.com/marinofaggiana/FastScroll" "master"
 github "https://github.com/marinofaggiana/AFNetworking" "master"

+ 7 - 5
Cartfile.resolved

@@ -1,3 +1,4 @@
+github "Alamofire/Alamofire" "5.0.0-rc.2"
 github "AssistoLab/DropDown" "v2.3.13"
 github "ChangbaDevs/KTVHTTPCache" "2.0.1"
 github "CocoaLumberjack/CocoaLumberjack" "3.6.0"
@@ -6,18 +7,19 @@ github "SVGKit/SVGKit" "39dd210fd47e3195f57f914354ffd2d0b4b8ff1c"
 github "WeTransfer/WeScan" "v1.1.0"
 github "WenchaoD/FSCalendar" "2.8.0"
 github "calimarkus/JDStatusBarNotification" "1.6.0"
-github "danielsaidi/Sheeeeeeeeet" "1.2.2"
+github "danielsaidi/Sheeeeeeeeet" "2.0.2"
 github "dzenbot/DZNEmptyDataSet" "v1.8.1"
 github "ealeksandrov/EAIntroView" "2.12.0"
 github "ealeksandrov/EARestrictedScrollView" "1.1.0"
 github "jdg/MBProgressHUD" "1.1.0"
 github "kishikawakatsumi/UICKeyChainStore" "v2.1.2"
 github "krzyzanowskim/OpenSSL" "1.0.218"
-github "malcommac/SwiftRichString" "3.0.0"
+github "malcommac/SwiftRichString" "3.0.3"
 github "marinofaggiana/AFNetworking" "2967678c3e0e98c9b8d7e06222ad12d1f49c26f2"
 github "marinofaggiana/FastScroll" "81967c2309d29bc2c330d422da612160a30bade8"
-github "realm/realm-cocoa" "v3.17.1"
-github "rechsteiner/Parchment" "v1.6.0"
+github "realm/realm-cocoa" "v3.17.3"
+github "rechsteiner/Parchment" "v1.7.0"
 github "tilltue/TLPhotoPicker" "1.9.3"
 github "weichsel/ZIPFoundation" "0.9.9"
-github "yannickl/QRCodeReader.swift" "10.1.0"
+github "yahoojapan/SwiftyXMLParser" "5.1.0"
+github "yannickl/QRCodeReader.swift" "10.1.1"

+ 0 - 1
Carthage/Checkouts/Sheeeeeeeeet/.swift-version

@@ -1 +0,0 @@
-4.2

+ 0 - 15
Carthage/Checkouts/Sheeeeeeeeet/.travis.yml

@@ -1,15 +0,0 @@
-# references:
-# * http://www.objc.io/issue-6/travis-ci.html
-# * https://github.com/supermarin/xcpretty#usage
-
-osx_image: xcode10
-language: swift
-
-before_install:
-  - brew outdated xctool || brew upgrade xctool
-  - carthage update
-
-script:
-  - set -o pipefail && xcodebuild -project "Sheeeeeeeeet.xcodeproj" -scheme "Sheeeeeeeeet" -sdk "iphonesimulator" | xcpretty -c
-  - pod lib lint --allow-warnings
-  - fastlane test

+ 0 - 0
Carthage/Checkouts/Sheeeeeeeeet/Cartfile


+ 0 - 2
Carthage/Checkouts/Sheeeeeeeeet/Cartfile.private

@@ -1,2 +0,0 @@
-github "Quick/Quick"
-github "Quick/Nimble"

+ 0 - 2
Carthage/Checkouts/Sheeeeeeeeet/Cartfile.resolved

@@ -1,2 +0,0 @@
-github "Quick/Nimble" "v7.3.1"
-github "Quick/Quick" "v1.3.2"

+ 1 - 1
Carthage/Checkouts/Sheeeeeeeeet/Fastlane/Fastfile

@@ -27,7 +27,7 @@ platform :ios do
     add_git_tag(tag: version)
     push_git_tags()
     push_to_git_remote()
-#pod_push()
+    pod_push()
   end
 
   

+ 120 - 0
Carthage/Checkouts/Sheeeeeeeeet/RELEASE_NOTES.md

@@ -1,6 +1,126 @@
 # Release Notes
 
 
+## 2.0.2
+
+This version makes table view footer view sizes smaller to avoid a scroll offset
+issue that could occur when rotating devices that displayed sheets with a single
+custom item.
+
+
+## 2.0.1
+
+This version adjusts accessibility traits for selected select items and improves
+the overall accessibility experience when working with selectable items.
+
+
+## 2.0.0
+
+This version upgrades Sheeeeeeeeet and its unit test dependencies to Swift 5. The
+version contains no breaking changes.
+
+
+## 1.4.1
+
+This version makes `currentContext` the default presentation mode for the default
+presenter. This is due to accessibility issues with using `keyWindow` while being
+ina modal presentation. I will change how the default presenteras presents action
+sheets, but that is a future improvement.
+
+
+## 1.4.0
+
+This version removes the old deprecated appearance model, so if your app uses it,
+it's time to start using the appearance proxy model. Just follow the readme, and
+you'll be done in no time.
+
+This version also change which presenter to use, so that apps behaves correct on
+iPads in split screen. We still have to come up with a way to switch between the
+default and popover presenters when the split screen size changes, but that is a
+future improvement.
+
+
+## 1.3.3
+
+This version adds a new `headerViewLandscapeMode` property to `ActionSheet`. You
+can set it to `.hidden` to let action sheets hide their header view in landscape
+orientation. This will free up more screen estate for the action sheet's options.
+
+
+## 1.3.3
+
+This version adds a new `headerViewLandscapeMode` property to `ActionSheet`. You
+can set it to `.hidden` to let action sheets hide their header view in landscape
+orientation. This will free up more screen estate for the action sheet's options.
+
+
+## 1.3.2
+
+This version makes the `ActionSheet` `backgroundView` outlet public, so that you
+can add your own custom effects to it. The other outlets are still internal.
+
+The version also fixes a bug that caused action sheets to be misplaced when they
+were presented from a custom presentation controller. This fix also adds a brand
+new `presentationStyle` property to `StandardActionSheetPresenter`, which can be
+either `keyWindow` (default) or `currentContext`. Setting it to `keyWindow` will
+present the action sheet in the app's key window (full screen), while setting it
+to `currentContext` will present it in the presenting view controller's view (it
+looks straaange, but perhaps you can find a nice use case for it).
+
+
+## 1.3.1
+
+This version fixes an iOS 9 bug that caused the popover to become square with no
+arrow. It was caused by the popover presenter, that set the background color for
+the popover after it had been presented, which is not supported in iOS 9. It now
+sets the bg color for all iOS versions before it presents the popover, then only
+refreshes it for iOS 10 and later.
+
+This version fixes another iOS 9 bug that caused the item cell separator line to
+behave strangely and not honor the insets set using the appearance proxy. I have
+added a fix to the item cell class, that only runs for iOS 9.
+
+
+## 1.3.0
+
+This version removes the last separator line from the item and button table view.
+
+This version also changes the default behavior of the popover presenter. It used
+to keep the popover presented as the device orientation changed, but this can be
+wrong in many cases. For instance, in collection or table views, the orientation
+change may cause cells to shuffle around as they are reused. If a reused cell is
+used as the popover source view, and the popover is still presented, the popover
+will point to the cell, but the cell model will have changed. In this case, your
+action sheet will appear to point to a specific object, but will be contextually
+bound to another one. 
+
+Another way that orientation changes may mess with popovers are if a source view
+is removed from the view hierarchy when the orientation changes. If your popover
+is still presented, but the source view is removed, the popover arrow will point
+to a random point, e.g. the top-left part of the screen.
+
+To solve these bugs, I have added new orientation change handling in the popover
+presenter. It has a new `isListeningToOrientationChanges` property, as well as a
+`handleOrientationChange` and `setupOrientationChangeDetection` function. If you
+want to, you can override these functions to customize their behavior, otherwise
+just set `isListeningToOrientationChanges` to `false` to make the popover behave
+like before.
+
+
+## 1.2.4
+
+This version fixes the https://github.com/danielsaidi/Sheeeeeeeeet/issues/64 bug,
+which caused an iPad popover to become a bottom action sheet on black background,
+if the idiom changes from pad to phone while the action sheet is open. I now let
+the popover remain as long as the action sheet is open.
+
+
+## 1.2.3
+
+This version reloads data when scrolling to row to solve a bug that could happen
+on some iPad devices.
+
+
 ## 1.2.2
 
 This hotfix adds two new properties to `ActionSheetSelectItem`, that can be used

BIN
Carthage/Checkouts/Sheeeeeeeeet/Resources/Web Icon.sketch


+ 1 - 1
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet.podspec

@@ -2,7 +2,7 @@
 
 Pod::Spec.new do |s|
   s.name             = 'Sheeeeeeeeet'
-  s.version          = '1.2.2'
+  s.version          = '2.0.2'
   s.summary          = 'Sheeeeeeeeet is a Swift library for custom iOS action sheets.'
 
   s.description      = <<-DESC

+ 0 - 36
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet+Presenter.swift

@@ -1,36 +0,0 @@
-//
-//  ActionSheet+Presenter.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2018-04-27.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-public extension ActionSheet {
-    
-    static var defaultPresenter: ActionSheetPresenter {
-        return UIDevice.current.userInterfaceIdiom.defaultPresenter
-    }
-}
-
-
-// MARK: - Internal Extensions
-
-extension UIUserInterfaceIdiom {
-    
-    var defaultPresenter: ActionSheetPresenter {
-        switch self {
-        case .pad: return ipadPresenter
-        default: return iphonePresenter
-        }
-    }
-    
-    var ipadPresenter: ActionSheetPresenter {
-        let isFullscreen = UIApplication.shared.isFullScreen
-        return isFullscreen ? ActionSheetPopoverPresenter() : ActionSheetStandardPresenter()
-    }
-    
-    var iphonePresenter: ActionSheetPresenter {
-        return ActionSheetStandardPresenter()
-    }
-}

+ 0 - 297
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet.swift

@@ -1,297 +0,0 @@
-//
-//  ActionSheet.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-26.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- This is the main class in the Sheeeeeeeeet library. You can
- use it to create action sheets and present them in any view
- controller, from any source view or bar button item.
- 
- 
- ## Creating action sheet instances
- 
- You create instances of this class by providing `init(...)`
- with the items to present and an action to call whenever an
- item is selected. If you must have an action sheet instance
- before you can setup its items (this may happen when you're
- subclassing), you can setup the items afterwards by calling
- the `setup(items:)` function.
- 
- 
- ## Subclassing
- 
- This class can be subclassed, which is a good practice when
- you want to use your own models in a controlled way. If you
- have a podcast app, you could have a `SleepTimerActionSheet`
- that automatically sets up its `SleepTimerTime` options and
- streamlines how you work with a sleep timer.
- 
- 
- ## Appearance
- 
- Customizing the appearance of the various action sheet item
- types in Sheeeeeeeeet (as well as of your own custom items),
- is mainly done using the iOS appearance proxy for each item
- cell type. For instance, to change the title text color for
- all `ActionSheetSelectItem` instances (including subclasses),
- type `ActionSheetSelectItem.appearance().titleColor`. It is
- also possible to set these properties for each item as well.
- 
- While most appearance is modified on a cell level, some are
- not. For instance, some views in `Views` have apperances of
- their own (e.g. `ActionSheetHeaderView.cornerRadius`). This
- means that you can change more than cell appearance. Have a
- look at the readme for more info on what you can customize.
- 
- Action sheet insets, margins and widths are not part of the
- appearance model, but have to be changed for each sheet. If
- you want to change these values for each sheet in youer app,
- I recommend subclassing `ActionSheet` and set these values.
- 
- Neither item heights are part of the appearance model. Item
- heights are instead changed by setting the static height of
- each item type, e.g. `ActionSheetTitleItem.height = 20`. It
- is not part of the cell appearance model since an item must
- know about the height before it creates any cells.
- 
- 
- ## Presentation
- 
- You can inject a custom presenter if you want to change how
- the sheet is presented and dismissed. The default presenter
- for iPhone devices is `ActionSheetStandardPresenter`, while
- iPad devices (most often) use `ActionSheetPopoverPresenter`.
- 
- 
- ## Handling item selections
- 
- The `selectAction` is triggered when a user taps an item in
- the action sheet. It provides you with the action sheet and
- the selected item. It is very important to use `[weak self]`
- in these action closures, to avoid memory leaks.
- 
- 
- ## Handling item taps
- 
- Action sheets receive a call to `handleTap(on:)` every time
- an item is tapped. You can override it if you, for instance,
- want to perform any animations before calling `super`.
- 
- */
-
-import UIKit
-
-open class ActionSheet: UIViewController {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "appearance will be removed in 1.4.0. Use the new appearance model instead")
-    public var appearance = ActionSheetAppearance(copy: .standard)
-    @available(*, deprecated, message: "setupItemsAndButtons(with:) will be removed in 1.4.0. Use `setup(items:)` instead")
-    open func setupItemsAndButtons(with items: [ActionSheetItem]) { setup(items: items) }
-    @available(*, deprecated, message: "itemSelectAction will be removed in 1.4.0. Use `selectAction` instead")
-    open var itemSelectAction: SelectAction { return selectAction }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(
-        items: [ActionSheetItem] = [],
-        presenter: ActionSheetPresenter = ActionSheet.defaultPresenter,
-        action: @escaping SelectAction) {
-        self.presenter = presenter
-        selectAction = action
-        super.init(nibName: ActionSheet.className, bundle: ActionSheet.bundle)
-        setup(items: items)
-    }
-    
-    public required init?(coder aDecoder: NSCoder) {
-        presenter = ActionSheet.defaultPresenter
-        selectAction = { _, _ in print("itemSelectAction is not set") }
-        super.init(coder: aDecoder)
-    }
-    
-    
-    // MARK: - Setup
-    
-    open func setup() {
-        preferredContentSize.width = preferredPopoverWidth
-    }
-    
-    open func setup(items: [ActionSheetItem]) {
-        self.items = items.filter { !($0 is ActionSheetButton) }
-        buttons = items.compactMap { $0 as? ActionSheetButton }
-        reloadData()
-    }
-    
-    
-    // MARK: - View Controller Lifecycle
-    
-    open override func viewDidLoad() {
-        super.viewDidLoad()
-        setup()
-        setup(itemsTableView, with: itemHandler)
-        setup(buttonsTableView, with: buttonHandler)
-    }
-    
-    open override func viewDidLayoutSubviews() {
-        super.viewDidLayoutSubviews()
-        refresh()
-    }
-    
-    
-    // MARK: - Typealiases
-    
-    public typealias SelectAction = (ActionSheet, ActionSheetItem) -> ()
-    
-    
-    // MARK: - Init properties
-    
-    public var presenter: ActionSheetPresenter
-    public var selectAction: SelectAction
-    
-    
-    // MARK: - Appearance
-    
-    public var minimumContentInsets = UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)
-    public var preferredPopoverWidth: CGFloat = 300
-    public var sectionMargins: CGFloat = 15
-    
-    
-    // MARK: - Outlets
-    
-    @IBOutlet weak var backgroundView: ActionSheetBackgroundView?
-    @IBOutlet weak var stackView: UIStackView?
-    @IBOutlet weak var headerViewContainer: ActionSheetHeaderView?
-    @IBOutlet weak var headerViewContainerHeight: NSLayoutConstraint?
-    @IBOutlet weak var itemsTableView: ActionSheetItemTableView?
-    @IBOutlet weak var itemsTableViewHeight: NSLayoutConstraint?
-    @IBOutlet weak var buttonsTableView: ActionSheetButtonTableView?
-    @IBOutlet weak var buttonsTableViewHeight: NSLayoutConstraint?
-    
-    @IBOutlet weak var topMargin: NSLayoutConstraint?
-    @IBOutlet weak var leftMargin: NSLayoutConstraint?
-    @IBOutlet weak var rightMargin: NSLayoutConstraint?
-    @IBOutlet weak var bottomMargin: NSLayoutConstraint?
-    
-    
-    // MARK: - Header Properties
-    
-    open var headerView: UIView?
-    
-    
-    // MARK: - Item Properties
-    
-    public internal(set) var items = [ActionSheetItem]()
-    
-    public var itemsHeight: CGFloat { return totalHeight(for: items) }
-    
-    public lazy var itemHandler = ActionSheetItemHandler(actionSheet: self, itemType: .items)
-    
-    
-    // MARK: - Button Properties
-    
-    public internal(set) var buttons = [ActionSheetButton]()
-    
-    public var buttonsHeight: CGFloat { return totalHeight(for: buttons) }
-    
-    public lazy var buttonHandler = ActionSheetItemHandler(actionSheet: self, itemType: .buttons)
-    
-    
-    // MARK: - Presentation Functions
-    
-    open func dismiss(completion: @escaping () -> () = {}) {
-        presenter.dismiss { completion() }
-    }
-
-    open func present(in vc: UIViewController, from view: UIView?, completion: @escaping () -> () = {}) {
-        refresh()
-        presenter.present(sheet: self, in: vc.rootViewController, from: view, completion: completion)
-    }
-
-    open func present(in vc: UIViewController, from item: UIBarButtonItem, completion: @escaping () -> () = {}) {
-        refresh()
-        presenter.present(sheet: self, in: vc.rootViewController, from: item, completion: completion)
-    }
-
-    
-    // MARK: - Refresh Functions
-    
-    open func refresh() {
-        applyLegacyAppearance()
-        refreshHeader()
-        refreshItems()
-        refreshButtons()
-        stackView?.spacing = sectionMargins
-        presenter.refreshActionSheet()
-    }
-    
-    open func refreshHeader() {
-        let height = headerView?.frame.height ?? 0
-        headerViewContainerHeight?.constant = height
-        headerViewContainer?.isHidden = headerView == nil
-        guard let view = headerView else { return }
-        headerViewContainer?.addSubviewToFill(view)
-    }
-    
-    open func refreshItems() {
-        items.forEach { $0.applyAppearance(appearance) }    // TODO: Deprecated - Remove in 1.4.0
-        itemsTableViewHeight?.constant = itemsHeight
-    }
-    
-    open func refreshButtons() {
-        buttonsTableView?.isHidden = buttons.count == 0
-        buttons.forEach { $0.applyAppearance(appearance) }  // TODO: Deprecated - Remove in 1.4.0
-        buttonsTableViewHeight?.constant = buttonsHeight
-    }
-    
-    
-    // MARK: - Protected Functions
-    
-    open func handleTap(on item: ActionSheetItem) {
-        reloadData()
-        if item.tapBehavior != .dismiss { return selectAction(self, item) }
-        self.dismiss { self.selectAction(self, item) }
-    }
-    
-    open func margin(at margin: ActionSheetMargin) -> CGFloat {
-        let view: UIView! = self.view.superview ?? self.view
-        switch margin {
-        case .top: return margin.value(in: view, minimum: minimumContentInsets.top)
-        case .left: return margin.value(in: view, minimum: minimumContentInsets.left)
-        case .right: return margin.value(in: view, minimum: minimumContentInsets.right)
-        case .bottom: return margin.value(in: view, minimum: minimumContentInsets.bottom)
-        }
-    }
-
-    open func reloadData() {
-        itemsTableView?.reloadData()
-        buttonsTableView?.reloadData()
-    }
-}
-
-
-// MARK: - Private Functions
-
-private extension ActionSheet {
-    
-    func setup(_ tableView: UITableView?, with handler: ActionSheetItemHandler) {
-        tableView?.delegate = handler
-        tableView?.dataSource = handler
-        tableView?.alwaysBounceVertical = false
-        tableView?.estimatedRowHeight = 44
-        tableView?.rowHeight = UITableView.automaticDimension
-        tableView?.cellLayoutMarginsFollowReadableWidth = false
-    }
-    
-    func totalHeight(for items: [ActionSheetItem]) -> CGFloat {
-        let height = items.reduce(0) { $0 + $1.height }
-        return height
-    }
-}

+ 0 - 81
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet.xib

@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
-    <device id="retina4_7" orientation="portrait">
-        <adaptation id="fullscreen"/>
-    </device>
-    <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
-        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ActionSheet" customModule="Sheeeeeeeeet" customModuleProvider="target">
-            <connections>
-                <outlet property="backgroundView" destination="SY3-WL-g9a" id="kJl-sr-KSn"/>
-                <outlet property="bottomMargin" destination="0Ng-wM-pDU" id="e9x-Tl-lhM"/>
-                <outlet property="buttonsTableView" destination="4ww-lg-Kl7" id="ybX-2I-Py8"/>
-                <outlet property="buttonsTableViewHeight" destination="3xB-Am-CuT" id="irJ-Cj-nU5"/>
-                <outlet property="headerViewContainer" destination="Eio-5P-omJ" id="igG-tq-9G0"/>
-                <outlet property="headerViewContainerHeight" destination="ZKw-6e-7h3" id="Npd-by-wqQ"/>
-                <outlet property="itemsTableView" destination="iQT-dy-e7d" id="qVi-cs-nm6"/>
-                <outlet property="itemsTableViewHeight" destination="929-kf-L2B" id="Vn3-T3-wVr"/>
-                <outlet property="leftMargin" destination="am1-ek-BBj" id="Ixg-NB-46W"/>
-                <outlet property="rightMargin" destination="yS1-hl-lMK" id="Ztc-IM-42Q"/>
-                <outlet property="stackView" destination="a3t-st-aTv" id="JPA-a6-5tl"/>
-                <outlet property="topMargin" destination="HAP-aL-Tfx" id="Okk-TN-tDs"/>
-                <outlet property="view" destination="iN0-l3-epB" id="gl1-H2-KFe"/>
-            </connections>
-        </placeholder>
-        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <view contentMode="scaleToFill" id="iN0-l3-epB">
-            <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-            <subviews>
-                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SY3-WL-g9a" customClass="ActionSheetBackgroundView" customModule="Sheeeeeeeeet" customModuleProvider="target">
-                    <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                    <color key="backgroundColor" white="0.0" alpha="0.40000000000000002" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                </view>
-                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="a3t-st-aTv">
-                    <rect key="frame" x="0.0" y="277" width="375" height="390"/>
-                    <subviews>
-                        <view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Eio-5P-omJ" customClass="ActionSheetHeaderView" customModule="Sheeeeeeeeet" customModuleProvider="target">
-                            <rect key="frame" x="0.0" y="0.0" width="375" height="150"/>
-                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="150" id="ZKw-6e-7h3"/>
-                            </constraints>
-                        </view>
-                        <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="iQT-dy-e7d" customClass="ActionSheetItemTableView" customModule="Sheeeeeeeeet" customModuleProvider="target">
-                            <rect key="frame" x="0.0" y="170" width="375" height="100"/>
-                            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="height" priority="900" constant="100" id="929-kf-L2B"/>
-                            </constraints>
-                        </tableView>
-                        <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4ww-lg-Kl7" customClass="ActionSheetButtonTableView" customModule="Sheeeeeeeeet" customModuleProvider="target">
-                            <rect key="frame" x="0.0" y="290" width="375" height="100"/>
-                            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                            <constraints>
-                                <constraint firstAttribute="height" constant="100" id="3xB-Am-CuT"/>
-                            </constraints>
-                        </tableView>
-                    </subviews>
-                </stackView>
-            </subviews>
-            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-            <constraints>
-                <constraint firstItem="vUN-kp-3ea" firstAttribute="bottom" secondItem="a3t-st-aTv" secondAttribute="bottom" id="0Ng-wM-pDU"/>
-                <constraint firstItem="a3t-st-aTv" firstAttribute="top" relation="greaterThanOrEqual" secondItem="vUN-kp-3ea" secondAttribute="top" id="HAP-aL-Tfx"/>
-                <constraint firstItem="SY3-WL-g9a" firstAttribute="bottom" secondItem="iN0-l3-epB" secondAttribute="bottom" id="QPw-j7-ds4"/>
-                <constraint firstItem="SY3-WL-g9a" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Qkx-K8-ysN"/>
-                <constraint firstItem="a3t-st-aTv" firstAttribute="leading" secondItem="vUN-kp-3ea" secondAttribute="leading" id="am1-ek-BBj"/>
-                <constraint firstItem="SY3-WL-g9a" firstAttribute="trailing" secondItem="iN0-l3-epB" secondAttribute="trailing" id="it1-TY-fQG"/>
-                <constraint firstItem="SY3-WL-g9a" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="txK-fC-hst"/>
-                <constraint firstItem="vUN-kp-3ea" firstAttribute="trailing" secondItem="a3t-st-aTv" secondAttribute="trailing" id="yS1-hl-lMK"/>
-            </constraints>
-            <viewLayoutGuide key="safeArea" id="vUN-kp-3ea"/>
-            <point key="canvasLocation" x="55.200000000000003" y="48.125937031484263"/>
-        </view>
-    </objects>
-</document>

+ 0 - 95
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheetItemHandler.swift

@@ -1,95 +0,0 @@
-//
-//  ActionSheetItemHandler.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-24.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- This class is used as data source and delegate for the item
- and button table views of the action sheet class.
- 
- */
-
-import UIKit
-
-open class ActionSheetItemHandler: NSObject {
-    
-    
-    // MARK: - Initialization
-    
-    public init(actionSheet: ActionSheet, itemType: ItemType) {
-        self.actionSheet = actionSheet
-        self.itemType = itemType
-    }
-    
-    
-    // MARK: - Enum
-    
-    public enum ItemType {
-        case items, buttons
-    }
-    
-    
-    // MARK: - Properties
-    
-    private weak var actionSheet: ActionSheet?
-    
-    let itemType: ItemType
-    
-    var items: [ActionSheetItem] {
-        switch itemType {
-        case .buttons: return actionSheet?.buttons ?? []
-        case .items: return actionSheet?.items ?? []
-        }
-    }
-}
-
-
-// MARK: - UITableViewDataSource
-
-extension ActionSheetItemHandler: UITableViewDataSource {
-    
-    public func item(at indexPath: IndexPath) -> ActionSheetItem? {
-        guard indexPath.section == 0 else { return nil }
-        guard items.count > indexPath.row else { return nil }
-        return items[indexPath.row]
-    }
-    
-    public func numberOfSections(in tableView: UITableView) -> Int {
-        return 1
-    }
-    
-    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return items.count
-    }
-    
-    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
-        guard let item = self.item(at: indexPath) else { return UITableViewCell(frame: .zero) }
-        let cell = item.cell(for: tableView)
-        item.applyAppearance(to: cell)                      // TODO: Deprecated - Remove in 1.4.0
-        cell.refresh(with: item)
-        return cell
-    }
-    
-    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
-        guard let item = self.item(at: indexPath) else { return 0 }
-        return CGFloat(item.height)
-    }
-}
-
-
-// MARK: - UITableViewDelegate
-
-extension ActionSheetItemHandler: UITableViewDelegate {
-    
-    public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
-        guard let item = self.item(at: indexPath) else { return }
-        tableView.deselectRow(at: indexPath, animated: true)
-        guard let sheet = actionSheet else { return }
-        item.handleTap(in: sheet)
-        sheet.handleTap(on: item)
-    }
-}

+ 0 - 32
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheetMargin.swift

@@ -1,32 +0,0 @@
-//
-//  ActionSheetMargin.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2018-02-22.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-import UIKit
-
-public enum ActionSheetMargin {
-    
-    case top, left, right, bottom
-    
-    func value(in view: UIView) -> CGFloat {
-        if #available(iOS 11.0, *) {
-            let insets = view.safeAreaInsets
-            switch self {
-            case .top: return insets.top
-            case .left: return insets.left
-            case .right: return insets.right
-            case .bottom: return insets.bottom
-            }
-        } else {
-            return 0
-        }
-    }
-    
-    func value(in view: UIView, minimum: CGFloat) -> CGFloat {
-        return max(value(in: view), minimum)
-    }
-}

+ 0 - 23
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Extensions/NSObject+ClassName.swift

@@ -1,23 +0,0 @@
-//
-//  NSObject+ClassName.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-24.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-//  This file contains internal util functions for resolving
-//  the class name of classes and class instances.
-
-import UIKit
-
-extension NSObject {
-    
-    static var className: String {
-        return String(describing: self)
-    }
-    
-    var className: String {
-        return type(of: self).className
-    }
-}

+ 0 - 19
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Extensions/UIView+Nib.swift

@@ -1,19 +0,0 @@
-//
-//  UIView+Nib.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2018-10-17.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-//  This file contains internal util functions for resolving
-//  the default nib of a certain view instance.
-
-import UIKit
-
-extension UIView {
-    
-    static var defaultNib: UINib {
-        return UINib(nibName: className, bundle: bundle)
-    }
-}

+ 0 - 24
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Extensions/UIView+Subviews.swift

@@ -1,24 +0,0 @@
-//
-//  UIView+Subviews.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2018-10-17.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-//  This file contains an internal function that can be used
-//  to add subviews in a way that lets them fill the parent.
-
-import UIKit
-
-extension UIView {
-    
-    func addSubviewToFill(_ subview: UIView) {
-        subview.translatesAutoresizingMaskIntoConstraints = false
-        addSubview(subview)
-        subview.topAnchor.constraint(equalTo: topAnchor).isActive = true
-        subview.leftAnchor.constraint(equalTo: leftAnchor).isActive = true
-        subview.rightAnchor.constraint(equalTo: rightAnchor).isActive = true
-        subview.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
-    }
-}

+ 0 - 19
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Extensions/UIViewController+RootViewController.swift

@@ -1,19 +0,0 @@
-//
-//  UIViewController+RootViewController.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-12-01.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-//  This file contains internal util functions for resolving
-//  the root view controller for the current app.
-
-import UIKit
-
-extension UIViewController {
-
-    var rootViewController: UIViewController {
-        return parent?.rootViewController ?? self
-    }
-}

+ 1 - 1
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Info.plist

@@ -15,7 +15,7 @@
 	<key>CFBundlePackageType</key>
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.2.2</string>
+	<string>2.0.2</string>
 	<key>CFBundleVersion</key>
 	<string>1</string>
 	<key>NSPrincipalClass</key>

+ 0 - 185
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/ActionSheetItem.swift

@@ -1,185 +0,0 @@
-//
-//  ActionSheetItem.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-24.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- This class represents a regular action sheet item, like the
- one used in UIAlertController. It has a title as well as an
- optional subtitle, value and image. All other items inherit
- this class, even if they don't make use of these properties.
- 
- 
- ## Subclassing
- 
- You can subclass any item class and customize it in any way
- you need. If you need your subclass to use a different cell,
- just override `cell(for:)` to return the cell you need.
- 
- 
- ## Appearance
- 
- Customizing the appearance of the various action sheet item
- types in Sheeeeeeeeet (as well as of your own custom items),
- is mainly done using the iOS appearance proxy for each item
- cell type. For instance, to change the title text color for
- all `ActionSheetSelectItem` instances (including subclasses),
- type `ActionSheetSelectItem.appearance().titleColor`. It is
- also possible to set these properties for each item as well.
- 
- While most appearance is modified on a cell level, some are
- not. For instance, some views in `Views` have apperances of
- their own (e.g. `ActionSheetHeaderView.cornerRadius`). This
- means that you can change more than cell appearance. Have a
- look at the readme for more info on what you can customize.
- 
- Action sheet insets, margins and widths are not part of the
- appearance model, but have to be changed for each sheet. If
- you want to change these values for each sheet in youer app,
- I recommend subclassing `ActionSheet` and set these values.
- 
- Neither item heights are part of the appearance model. Item
- heights are instead changed by setting the static height of
- each item type, e.g. `ActionSheetTitleItem.height = 20`. It
- is not part of the cell appearance model since an item must
- know about the height before it creates any cells.
- 
- 
- ## Tap behavior
- 
- The default tap behavior of action sheet items is "dismiss",
- which means that the action sheet will dismiss itself after
- handling the item tap. Set `tapBehavior` to `.none`, if you
- don't want the action sheet to be dismissed when an item is
- tapped. Some item types uses `.none` by default.
- 
- */
-
-import UIKit
-
-open class ActionSheetItem: NSObject {
-
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "appearance will be removed in 1.4.0. Use the new appearance model instead.")
-    public lazy internal(set) var appearance = ActionSheetItemAppearance(copy: ActionSheetAppearance.standard.item)
-    @available(*, deprecated, message: "customAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    public var customAppearance: ActionSheetItemAppearance?
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open func applyAppearance(_ appearance: ActionSheetAppearance) { self.appearance = customAppearance ?? ActionSheetItemAppearance(copy: appearance.item) }
-    @available(*, deprecated, message: "applyAppearance(to:) will be removed in 1.4.0. Use the new appearance model instead.")
-    open func applyAppearance(to cell: UITableViewCell) { applyLegacyAppearance(to: cell) }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(
-        title: String,
-        subtitle: String? = nil,
-        value: Any? = nil,
-        image: UIImage? = nil,
-        tapBehavior: TapBehavior = .dismiss) {
-        self.title = title
-        self.subtitle = subtitle
-        self.value = value
-        self.image = image
-        self.tapBehavior = tapBehavior
-        self.cellStyle = subtitle == nil ? .default : .value1
-        super.init()
-    }
-    
-    
-    // MARK: - Enums
-    
-    public enum TapBehavior {
-        case dismiss, none
-    }
-
-
-    // MARK: - Properties
-    
-    public var image: UIImage?
-    public var subtitle: String?
-    public var tapBehavior: TapBehavior
-    public var title: String
-    public var value: Any?
-    
-    public var cellReuseIdentifier: String { return className }
-    public var cellStyle: UITableViewCell.CellStyle
-    
-    
-    // MARK: - Height Logic
-    
-    private static var heights = [String: CGFloat]()
-    
-    public static var height: CGFloat {
-        get { return heights[className] ?? 50 }
-        set { heights[className] = newValue }
-    }
-    
-    public var height: CGFloat {
-        return type(of: self).height
-    }
-    
-    
-    // MARK: - Functions
-    
-    open func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetItemCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-    
-    open func handleTap(in actionSheet: ActionSheet) {}
-}
-
-
-// MARK: -
-
-open class ActionSheetItemCell: UITableViewCell {
-    
-    
-    // MARK: - Layout
-    
-    open override func didMoveToWindow() {
-        super.didMoveToWindow()
-        refresh()
-    }
-    
-    
-    // MARK: - Appearance Properties
-    
-    @objc public dynamic var titleColor: UIColor?
-    @objc public dynamic var titleFont: UIFont?
-    @objc public dynamic var subtitleColor: UIColor?
-    @objc public dynamic var subtitleFont: UIFont?
-    
-    
-    // MARK: - Private Properties
-    
-    public private(set) weak var item: ActionSheetItem?
-    
-    
-    // MARK: - Functions
-    
-    open func refresh() {
-        guard let item = item else { return }
-        imageView?.image = item.image
-        selectionStyle = item.tapBehavior == .none ? .none : .default
-        textLabel?.font = titleFont
-        textLabel?.text = item.title
-        textLabel?.textAlignment = .left
-        textLabel?.textColor = titleColor
-        detailTextLabel?.font = subtitleFont
-        detailTextLabel?.text = item.subtitle
-        detailTextLabel?.textColor = subtitleColor
-    }
-    
-    func refresh(with item: ActionSheetItem) {
-        self.item = item
-        refresh()
-    }
-}

+ 0 - 78
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Buttons/ActionSheetButton.swift

@@ -1,78 +0,0 @@
-//
-//  ActionSheetButton.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-26.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- This class is a base class for all action sheet buttons. It
- is not intended to be used directly. Instead, use the built
- in buttons or subclass it to create your own buttons.
- 
- */
-
-import UIKit
-
-open class ActionSheetButton: ActionSheetItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        self.appearance = customAppearance ?? ActionSheetButtonAppearance(copy: appearance.okButton)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(title: String, value: Any?) {
-        super.init(title: title, value: value)
-    }
-    
-    public init(title: String, type: ButtonType) {
-        super.init(title: title, value: type)
-    }
-    
-    
-    // MARK: - Values
-    
-    public enum ButtonType {
-        case ok, cancel
-    }
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetButtonCell(style: .default, reuseIdentifier: cellReuseIdentifier)
-    }
-}
-
-
-// MARK: -
-
-open class ActionSheetButtonCell: ActionSheetItemCell {
-    
-    open override func refresh() {
-        super.refresh()
-        textLabel?.textAlignment = .center
-    }
-}
-
-
-// MARK: - Button Extensions
-
-public extension ActionSheetItem {
-    
-    var isOkButton: Bool {
-        return value as? ActionSheetButton.ButtonType == .ok
-    }
-    
-    var isCancelButton: Bool {
-        return value as? ActionSheetButton.ButtonType == .cancel
-    }
-}

+ 0 - 48
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Buttons/ActionSheetCancelButton.swift

@@ -1,48 +0,0 @@
-//
-//  ActionSheetCancelButton.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-26.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Cancel buttons have no special behavior, but can be used in
- sheets where a user applies changes by tapping an OK button.
- 
- The value of a cancel button is `.cancel`.
- 
- */
-
-import UIKit
-
-open class ActionSheetCancelButton: ActionSheetButton {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        self.appearance = customAppearance ?? ActionSheetCancelButtonAppearance(copy: appearance.cancelButton)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(title: String) {
-        super.init(title: title, type: .cancel)
-    }
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetCancelButtonCell(style: .default, reuseIdentifier: cellReuseIdentifier)
-    }
-}
-
-
-// MARK: - 
-
-open class ActionSheetCancelButtonCell: ActionSheetButtonCell {}

+ 0 - 43
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Buttons/ActionSheetDangerButton.swift

@@ -1,43 +0,0 @@
-//
-//  ActionSheetDangerButton.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-27.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Danger buttons have no special behavior, but can be used to
- indicate that the effect of the action sheet is destructive.
- They should be styled as "dangerous" (e.g. red text), using
- the appearance proxy.
- 
- The value of a danger button is `.ok`.
- 
- */
-
-import UIKit
-
-open class ActionSheetDangerButton: ActionSheetOkButton {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        self.appearance = customAppearance ?? ActionSheetDangerButtonAppearance(copy: appearance.dangerButton)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetDangerButtonCell(style: .default, reuseIdentifier: cellReuseIdentifier)
-    }
-}
-
-
-// MARK: -
-
-open class ActionSheetDangerButtonCell: ActionSheetButtonCell {}

+ 0 - 48
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Buttons/ActionSheetOkButton.swift

@@ -1,48 +0,0 @@
-//
-//  ActionSheetOkButton.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-26.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- OK buttons have no special behavior, but can be used when a
- user should apply action sheet changes by tapping a button.
- 
- The value of an OK button is `.ok`.
- 
- */
-
-import UIKit
-
-open class ActionSheetOkButton: ActionSheetButton {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        self.appearance = customAppearance ?? ActionSheetOkButtonAppearance(copy: appearance.okButton)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(title: String) {
-        super.init(title: title, type: .ok)
-    }
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetOkButtonCell(style: .default, reuseIdentifier: cellReuseIdentifier)
-    }
-}
-
-
-// MARK: - 
-
-open class ActionSheetOkButtonCell: ActionSheetButtonCell {}

+ 0 - 174
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetCollectionItem.swift

@@ -1,174 +0,0 @@
-//
-//  ActionSheetCollectionItem.swift
-//  Sheeeeeeeeet
-//
-//  Created by Jonas Ullström (ullstrm) on 2018-03-01.
-//  Copyright © 2018 Jonas Ullström. All rights reserved.
-//
-
-/*
- 
- Collection items can be used to present item collections in
- a collection view, using cell types that you define in your
- project and implement `ActionSheetCollectionItemContentCell`.
- The cell `.xib` should have the same name as the cell class.
- 
- This class will dequeue a different cell type than standard
- action sheet items. If you look at `cell(for: ...)`, you'll
- see that it uses `ActionSheetCollectionItemCell` for its id.
- 
- TODO: Unit test
- 
- */
-
-import Foundation
-
-open class ActionSheetCollectionItem<T: ActionSheetCollectionItemContentCell>: ActionSheetItem, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        super.applyAppearance(appearance)
-        self.appearance = ActionSheetCollectionItemAppearance(copy: appearance.collectionItem)
-        self.appearance.height = T.defaultSize.height + T.topInset + T.bottomInset + 0.5
-    }
-    @available(*, deprecated, message: "applyAppearance(to:) will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(to cell: UITableViewCell) {
-        super.applyAppearance(to: cell)
-        guard let itemCell = cell as? ActionSheetCollectionItemCell else { return }
-        itemCell.setup(withNib: T.nib, owner: self)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(
-        itemCellType: T.Type,
-        itemCount: Int,
-        setupAction: @escaping CellAction,
-        selectionAction: @escaping CellAction) {
-        self.itemCellType = itemCellType
-        self.itemCount = itemCount
-        self.setupAction = setupAction
-        self.selectionAction = selectionAction
-        super.init(title: "")
-    }
-    
-    
-    // MARK: - Typealiases
-    
-    public typealias CellAction = (_ cell: T, _ index: Int) -> ()
-    
-    
-    // MARK: - Properties
-    
-    public override var height: CGFloat { return T.defaultSize.height }
-    public let itemCellType: T.Type
-    public let itemCount: Int
-    public private(set) var selectionAction: CellAction
-    public let setupAction: CellAction
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        tableView.register(ActionSheetCollectionItemCell.nib, forCellReuseIdentifier: cellReuseIdentifier)
-        let cell = tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier)
-        guard let typedCell = cell as? ActionSheetCollectionItemCell else { fatalError("Invalid cell type created by superclass") }
-        return typedCell
-    }
-    
-    open func extendSelectionAction(toReload actionSheet: ActionSheet) {
-        extendSelectionAction { _, _ in
-            actionSheet.reloadData()
-        }
-    }
-    
-    open func extendSelectionAction(with action: @escaping CellAction) {
-        let currentSelectionAction = selectionAction
-        selectionAction = { cell, index in
-            currentSelectionAction(cell, index)
-            action(cell, index)
-        }
-    }
-    
-    
-    // MARK: - UICollectionViewDataSource
-    
-    open func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-        return itemCount
-    }
-    
-    open func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
-        let id = ActionSheetCollectionItemCell.itemCellIdentifier
-        let dequeued = collectionView.dequeueReusableCell(withReuseIdentifier: id, for: indexPath)
-        guard let cell = dequeued as? T else { return UICollectionViewCell() }
-        setupAction(cell, indexPath.row)
-        return cell
-    }
-    
-    
-    // MARK: - UICollectionViewDelegate
-    
-    open func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
-        guard let cell = collectionView.cellForItem(at: indexPath) as? T else { return }
-        selectionAction(cell, indexPath.row)
-    }
-    
-    
-    // MARK: - FlowLayout delegate
-    
-    open func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
-        return T.defaultSize
-    }
-    
-    open func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
-        return UIEdgeInsets(top: T.topInset, left: T.leftInset, bottom: T.bottomInset, right: T.rightInset)
-    }
-    
-    open func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
-        return T.itemSpacing
-    }
-    
-    open func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
-        return 0
-    }
-}
-
-
-// MARK: -
-
-open class ActionSheetCollectionItemCell: ActionSheetItemCell {
-    
-    
-    // MARK: - Properties
-    
-    static let itemCellIdentifier = ActionSheetCollectionItemCell.className
-    
-    static let nib = ActionSheetCollectionItemCell.defaultNib
-    
-    
-    // MARK: - Outlets
-    
-    @IBOutlet weak var collectionView: UICollectionView! {
-        didSet {
-            let flow = UICollectionViewFlowLayout()
-            flow.scrollDirection = .horizontal
-            collectionView.collectionViewLayout = flow
-        }
-    }
-    
-    
-    // MARK: - Functions
-    
-    func setup(withNib nib: UINib, owner: UICollectionViewDataSource & UICollectionViewDelegate) {
-        let id = ActionSheetCollectionItemCell.itemCellIdentifier
-        collectionView.contentInset = .zero
-        collectionView.register(nib, forCellWithReuseIdentifier: id)
-        collectionView.dataSource = owner
-        collectionView.delegate = owner
-        collectionView.reloadData()
-    }
-}

+ 0 - 78
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetCustomItem.swift

@@ -1,78 +0,0 @@
-//
-//  ActionSheetCustomViewItem.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2018-10-08.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Custom items can be used to present any views in your sheet.
- It can use any view that inherits `ActionSheetItemCell` and
- implements `ActionSheetCustomItemCell`.
- 
- TODO: Unit test
- 
- */
-
-import UIKit
-
-public class ActionSheetCustomItem<T: ActionSheetCustomItemCell>: ActionSheetItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    public override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        super.applyAppearance(appearance)
-        self.appearance = ActionSheetCustomItemAppearance(copy: appearance.customItem)
-        self.appearance.height = T.defaultSize.height
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(cellType: T.Type, setupAction: @escaping SetupAction) {
-        self.cellType = cellType
-        self.setupAction = setupAction
-        super.init(
-            title: "",
-            subtitle: nil,
-            value: nil,
-            image: nil,
-            tapBehavior: .none)
-    }
-    
-    
-    // MARK: - Typealiases
-    
-    public typealias SetupAction = (_ cell: T) -> ()
-    
-    
-    // MARK: - Properties
-    
-    public override var height: CGFloat { return T.defaultSize.height }
-    public let cellType: T.Type
-    public let setupAction: SetupAction
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        tableView.register(T.nib, forCellReuseIdentifier: cellReuseIdentifier)
-        let cell = tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier)
-        guard let typedCell = cell as? T else { fatalError("Invalid cell type created by superclass") }
-        setupAction(typedCell)
-        return typedCell
-    }
-}
-
-
-// MARK: -
-
-public protocol ActionSheetCustomItemCell where Self: ActionSheetItemCell {
-    
-    static var nib: UINib { get }
-    static var defaultSize: CGSize { get }
-}

+ 0 - 56
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetLinkItem.swift

@@ -1,56 +0,0 @@
-//
-//  ActionSheetLinkItem.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-26.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Link items can be used when tapping them will take the user
- somewhere, e.g. to another view controller or a web site.
- 
- */
-
-import UIKit
-
-open class ActionSheetLinkItem: ActionSheetItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "linkAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open var linkAppearance: ActionSheetLinkItemAppearance? {
-        return appearance as? ActionSheetLinkItemAppearance
-    }
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        super.applyAppearance(appearance)
-        self.appearance = ActionSheetLinkItemAppearance(copy: appearance.linkItem)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetLinkItemCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-}
-
-
-open class ActionSheetLinkItemCell: ActionSheetItemCell {
-    
-    
-    // MARK: - Appearance Properties
-    
-    @objc public dynamic var linkIcon: UIImage?
-    
-    
-    // MARK: - Functions
-    
-    open override func refresh() {
-        super.refresh()
-        accessoryView = UIImageView(image: linkIcon)
-    }
-}

+ 0 - 75
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetMultiSelectItem.swift

@@ -1,75 +0,0 @@
-//
-//  ActionSheetMultiSelectItem.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2018-03-31.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- `ActionSheetMultiSelectItem` should be used whenever a user
- should be able to select one or several items in a sheet. A
- multi select item will not affect other items, and will not
- dismiss the sheet.
- 
- Multi-select items can be used in combination with a toggle
- item (`ActionSheetMultiSelectToggleItem`), which can toggle
- the selected state of all items in the same group.
- 
- A multi-select item does not dismiss the sheet, since users
- will most probably be in a context where a change should be
- applied with an OK button.
- 
- */
-
-import UIKit
-
-open class ActionSheetMultiSelectItem: ActionSheetSelectItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        super.applyAppearance(appearance)
-        self.appearance = ActionSheetMultiSelectItemAppearance(copy: appearance.multiSelectItem)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(
-        title: String,
-        subtitle: String? = nil,
-        isSelected: Bool,
-        group: String = "",
-        value: Any? = nil,
-        image: UIImage? = nil) {
-        super.init(
-            title: title,
-            subtitle: subtitle,
-            isSelected: isSelected,
-            group: group,
-            value: value,
-            image: image,
-            tapBehavior: .none)
-    }
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetMultiSelectItemCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-    
-    open override func handleTap(in actionSheet: ActionSheet) {
-        super.handleTap(in: actionSheet)
-        let toggleItems = actionSheet.items.compactMap { $0 as? ActionSheetMultiSelectToggleItem }
-        let items = toggleItems.filter { $0.group == group }
-        items.forEach { $0.updateState(for: actionSheet) }
-    }
-}
-
-
-open class ActionSheetMultiSelectItemCell: ActionSheetSelectItemCell {}

+ 0 - 113
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetMultiSelectToggleItem.swift

@@ -1,113 +0,0 @@
-//
-//  ActionSheetMultiSelectToggleItem.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2018-03-31.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Multi-select toggle items can be used together with a group
- of `ActionSheetMultiSelectItem`s. When tapped, it will make
- all multi-select items in the same group select/deselect.
- 
- Since this item must know about the multi-select items when
- setting its select/deselect title text, you must provide it
- with an initial `State` when creating it. After that, it is
- able to update itself whenever it is tapped.
- 
- */
-
-import UIKit
-
-open class ActionSheetMultiSelectToggleItem: ActionSheetItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        super.applyAppearance(appearance)
-        self.appearance = ActionSheetMultiSelectToggleItemAppearance(copy: appearance.multiSelectToggleItem)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(title: String, state: State, group: String, selectAllTitle: String, deselectAllTitle: String) {
-        self.group = group
-        self.state = state
-        self.deselectAllTitle = deselectAllTitle
-        self.selectAllTitle = selectAllTitle
-        super.init(title: title, tapBehavior: .none)
-        cellStyle = .value1
-    }
-    
-    
-    // MARK: - State
-    
-    public enum State {
-        case selectAll, deselectAll
-    }
-    
-    
-    // MARK: - Properties
-    
-    open var deselectAllTitle: String
-    open var group: String
-    open var selectAllTitle: String
-    open var state: State
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetMultiSelectToggleItemCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-    
-    open override func handleTap(in actionSheet: ActionSheet) {
-        super.handleTap(in: actionSheet)
-        let selectItems = actionSheet.items.compactMap { $0 as? ActionSheetMultiSelectItem }
-        let items = selectItems.filter { $0.group == group }
-        let shouldSelectAll = items.contains { !$0.isSelected }
-        items.forEach { $0.isSelected = shouldSelectAll ? true : false }
-        updateState(for: actionSheet)
-    }
-    
-    open func updateState(for actionSheet: ActionSheet) {
-        let selectItems = actionSheet.items.compactMap { $0 as? ActionSheetMultiSelectItem }
-        let items = selectItems.filter { $0.group == group }
-        guard items.count > 0 else { return state = .selectAll }
-        state = items.contains { !$0.isSelected } ? .selectAll : .deselectAll
-    }
-}
-
-
-// MARK: - 
-
-open class ActionSheetMultiSelectToggleItemCell: ActionSheetItemCell {
-    
-    
-    // MARK: - Appearance Properties
-    
-    @objc public dynamic var deselectAllImage: UIColor?
-    @objc public dynamic var deselectAllSubtitleColor: UIColor?
-    @objc public dynamic var deselectAllTitleColor: UIColor?
-    @objc public dynamic var selectAllImage: UIColor?
-    @objc public dynamic var selectAllSubtitleColor: UIColor?
-    @objc public dynamic var selectAllTitleColor: UIColor?
-    
-    
-    // MARK: - Public Functions
-    
-    open override func refresh() {
-        super.refresh()
-        guard let item = item as? ActionSheetMultiSelectToggleItem else { return }
-        let isSelectAll = item.state == .selectAll
-        item.subtitle = isSelectAll ? item.selectAllTitle : item.deselectAllTitle
-        titleColor = isSelectAll ? selectAllTitleColor : deselectAllTitleColor
-        subtitleColor = isSelectAll ? selectAllSubtitleColor : deselectAllSubtitleColor
-        super.refresh()
-    }
-}

+ 0 - 152
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetSelectItem.swift

@@ -1,152 +0,0 @@
-//
-//  ActionSheetSelectItem.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-26.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Select items are used to let the user select one or several
- items in an action sheet. Unlike the `ActionSheetItem` type,
- this type has an `isSelected` state, a selected icon and an
- extended appearance.
- 
- This item type is not meant to be used directly. However, a
- `selectItem` appearance property is still available, so you
- can style single and multiselect items in a single way.
- 
- Instead of this type, you should use any of its subclasses:
- 
- * `ActionSheetSingleSelectItem`
- * `ActionSheetMultiSelectItem`
- 
- */
-
-import UIKit
-
-open class ActionSheetSelectItem: ActionSheetItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        super.applyAppearance(appearance)
-        self.appearance = ActionSheetSelectItemAppearance(copy: appearance.selectItem)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(
-        title: String,
-        subtitle: String? = nil,
-        isSelected: Bool,
-        group: String = "",
-        value: Any? = nil,
-        image: UIImage? = nil,
-        tapBehavior: TapBehavior = .dismiss) {
-        self.isSelected = isSelected
-        self.group = group
-        super.init(
-            title: title,
-            subtitle: subtitle,
-            value: value,
-            image: image,
-            tapBehavior: tapBehavior)
-    }
-    
-    
-    // MARK: - Properties
-    
-    open var group: String
-    open var isSelected: Bool
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetSelectItemCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-    
-    open override func handleTap(in actionSheet: ActionSheet) {
-        super.handleTap(in: actionSheet)
-        isSelected = !isSelected
-    }
-}
-
-
-// MARK: -
-
-open class ActionSheetSelectItemCell: ActionSheetItemCell {
-    
-    
-    // MARK: - Appearance Properties
-    
-    @objc public dynamic var selectedIcon: UIImage?
-    @objc public dynamic var selectedIconColor: UIColor?
-    @objc public dynamic var selectedSubtitleColor: UIColor?
-    @objc public dynamic var selectedSubtitleFont: UIFont?
-    @objc public dynamic var selectedTitleColor: UIColor?
-    @objc public dynamic var selectedTitleFont: UIFont?
-    @objc public dynamic var selectedTintColor: UIColor?
-    @objc public dynamic var unselectedIcon: UIImage?
-    @objc public dynamic var unselectedIconColor: UIColor?
-    
-    
-    // MARK: - Functions
-    
-    open override func refresh() {
-        super.refresh()
-        guard let item = item as? ActionSheetSelectItem else { return }
-        applyAccessoryView(for: item)
-        applyAccessoryViewColor(for: item)
-        applySubtitleColor(for: item)
-        applySubtitleFont(for: item)
-        applyTintColor(for: item)
-        applyTitleColor(for: item)
-        applyTitleFont(for: item)
-    }
-}
-
-
-private extension ActionSheetSelectItemCell {
-    
-    func applyAccessoryView(for item: ActionSheetSelectItem) {
-        guard let image = item.isSelected ? selectedIcon : unselectedIcon else { return }
-        accessoryView = UIImageView(image: image)
-    }
-    
-    func applyAccessoryViewColor(for item: ActionSheetSelectItem) {
-        guard let color = item.isSelected ? selectedIconColor : unselectedIconColor else { return }
-        accessoryView?.tintColor = color
-    }
-    
-    func applySubtitleColor(for item: ActionSheetSelectItem) {
-        guard let color = item.isSelected ? selectedSubtitleColor : subtitleColor else { return }
-        detailTextLabel?.textColor = color
-    }
-    
-    func applySubtitleFont(for item: ActionSheetSelectItem) {
-        guard let font = item.isSelected ? selectedSubtitleFont : subtitleFont else { return }
-        detailTextLabel?.font = font
-    }
-    
-    func applyTintColor(for item: ActionSheetSelectItem) {
-        let defaultTint = type(of: self).appearance().tintColor
-        guard let color = item.isSelected ? selectedTintColor : defaultTint else { return }
-        tintColor = color
-    }
-    
-    func applyTitleColor(for item: ActionSheetSelectItem) {
-        guard let color = item.isSelected ? selectedTitleColor : titleColor else { return }
-        textLabel?.textColor = color
-    }
-    
-    func applyTitleFont(for item: ActionSheetSelectItem) {
-        guard let font = item.isSelected ? selectedTitleFont : titleFont else { return }
-        textLabel?.font = font
-    }
-}

+ 0 - 53
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Items/ActionSheetSingleSelectItem.swift

@@ -1,53 +0,0 @@
-//
-//  ActionSheetSingleSelectItem.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2018-03-12.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- `ActionSheetSingleSelectItem` should be used whenever users
- should only be able to select a single item in a sheet or a
- group. It automatically deselects other single select items
- in the same group. You can have several groups in one sheet.
- 
- A single select item will dismiss the sheet when tapped. To
- change this behavior, set `tapBehavior` to `.none`.
- 
- */
-
-import UIKit
-
-open class ActionSheetSingleSelectItem: ActionSheetSelectItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        super.applyAppearance(appearance)
-        self.appearance = ActionSheetSingleSelectItemAppearance(copy: appearance.singleSelectItem)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetSingleSelectItemCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-    
-    open override func handleTap(in actionSheet: ActionSheet) {
-        super.handleTap(in: actionSheet)
-        let items = actionSheet.items.compactMap { $0 as? ActionSheetSingleSelectItem }
-        let deselectItems = items.filter { $0.group == group }
-        deselectItems.forEach { $0.isSelected = false }
-        isSelected = true
-    }
-}
-
-
-// MARK: -
-
-open class ActionSheetSingleSelectItemCell: ActionSheetSelectItemCell {}

+ 0 - 47
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Titles/ActionSheetSectionMargin.swift

@@ -1,47 +0,0 @@
-//
-//  ActionSheetSectionMargin.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-27.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Section margins items can be used to add additional spacing
- before new sections. They are not selectable, but will send
- a tap event to the action sheet in which they are used.
- 
- */
-
-import UIKit
-
-open class ActionSheetSectionMargin: ActionSheetItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        self.appearance = ActionSheetSectionMarginAppearance(copy: appearance.sectionMargin)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init() {
-        super.init(title: "", tapBehavior: .none)
-    }
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetSectionMarginCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-}
-
-
-// MARK: -
-
-open class ActionSheetSectionMarginCell: ActionSheetItemCell {}

+ 0 - 51
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Titles/ActionSheetSectionTitle.swift

@@ -1,51 +0,0 @@
-//
-//  ActionSheetSectionTitle.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-26.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Section title items can be used to segment action sheets in
- sections. They serve no purpose beyond to visually indicate
- that certain items belong together. A section item can have
- a title and a subtitle.
- 
- To add additional space above a section title, make sure to
- add a `ActionSheetSectionMargin` before the section title.
- 
- */
-
-import UIKit
-
-open class ActionSheetSectionTitle: ActionSheetItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        self.appearance = ActionSheetSectionTitleAppearance(copy: appearance.sectionTitle)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(title: String, subtitle: String? = nil) {
-        super.init(title: title, subtitle: subtitle, tapBehavior: .none)
-    }
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetSectionTitleCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-}
-
-
-// MARK: -
-
-open class ActionSheetSectionTitleCell: ActionSheetItemCell {}

+ 0 - 53
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Items/Titles/ActionSheetTitle.swift

@@ -1,53 +0,0 @@
-//
-//  ActionSheetTitle.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-26.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Title items can be used to add main titles to action sheets.
- They are not selectable, but will still send a tap event to
- the action sheet in which they are used.
- 
- */
-
-import UIKit
-
-open class ActionSheetTitle: ActionSheetItem {
-    
-    
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    @available(*, deprecated, message: "applyAppearance will be removed in 1.4.0. Use the new appearance model instead.")
-    open override func applyAppearance(_ appearance: ActionSheetAppearance) {
-        self.appearance = ActionSheetTitleAppearance(copy: appearance.title)
-    }
-    // MARK: - Deprecated - Remove in 1.4.0 ****************
-    
-    
-    // MARK: - Initialization
-    
-    public init(title: String) {
-        super.init(title: title, tapBehavior: .none)
-    }
-    
-    
-    // MARK: - Functions
-    
-    open override func cell(for tableView: UITableView) -> ActionSheetItemCell {
-        return ActionSheetTitleCell(style: cellStyle, reuseIdentifier: cellReuseIdentifier)
-    }
-}
-
-
-// MARK: -
-
-open class ActionSheetTitleCell: ActionSheetItemCell {
-    
-    open override func refresh() {
-        super.refresh()
-        textLabel?.textAlignment = .center
-    }
-}

+ 0 - 108
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Presenters/ActionSheetPopoverPresenter.swift

@@ -1,108 +0,0 @@
-//
-//  ActionSheetPopoverPresenter.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-24.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- This presenter presents action sheets in a popover, just as
- regular UIAlertControllers are displayed on an iPad.
- 
- Since popovers have an arrow that should use the same color
- as the rest of the popover view, this presenter will remove
- any header view and combine items and buttons into a single
- item section.
- 
- */
-
-import UIKit
-
-open class ActionSheetPopoverPresenter: NSObject, ActionSheetPresenter {
-    
-    
-    // MARK: - Properties
-    
-    open var events = ActionSheetPresenterEvents()
-    open var isDismissableWithTapOnBackground = true
-    
-    var actionSheet: ActionSheet?
-    weak var popover: UIPopoverPresentationController?
-    
-    
-    // MARK: - ActionSheetPresenter
-    
-    public func dismiss(completion: @escaping () -> ()) {
-        let dismissAction = { completion();  self.actionSheet = nil }
-        let vc = actionSheet?.presentingViewController
-        vc?.dismiss(animated: true) { dismissAction() } ?? dismissAction()
-    }
-    
-    open func present(sheet: ActionSheet, in vc: UIViewController, from view: UIView?, completion: @escaping () -> ()) {
-        setupSheetForPresentation(sheet)
-        popover = self.popover(for: sheet, in: vc)
-        popover?.sourceView = view
-        popover?.sourceRect = view?.bounds ?? CGRect()
-        vc.present(sheet, animated: true, completion: completion)
-    }
-    
-    open func present(sheet: ActionSheet, in vc: UIViewController, from item: UIBarButtonItem, completion: @escaping () -> ()) {
-        setupSheetForPresentation(sheet)
-        popover = self.popover(for: sheet, in: vc)
-        popover?.barButtonItem = item
-        vc.present(sheet, animated: true, completion: completion)
-    }
-    
-    open func refreshActionSheet() {
-        guard let sheet = actionSheet else { return }
-        sheet.headerViewContainer?.isHidden = true
-        sheet.buttonsTableView?.isHidden = true
-        sheet.preferredContentSize.height = sheet.itemsHeight
-        popover?.backgroundColor = sheet.itemsTableView?.backgroundColor
-    }
-}
-
-
-// MARK: - UIPopoverPresentationControllerDelegate
-
-extension ActionSheetPopoverPresenter: UIPopoverPresentationControllerDelegate {
-    
-    public func popoverPresentationControllerShouldDismissPopover(_ controller: UIPopoverPresentationController) -> Bool {
-        guard isDismissableWithTapOnBackground else { return false }
-        events.didDismissWithBackgroundTap?()
-        dismiss {}
-        return false
-    }
-}
-
-
-// MARK: - Internal Functions
-
-extension ActionSheetPopoverPresenter {
-    
-    func popover(for sheet: ActionSheet, in vc: UIViewController) -> UIPopoverPresentationController? {
-        let popover = sheet.popoverPresentationController
-        popover?.delegate = self
-        return popover
-    }
-    
-    func setupSheetForPresentation(_ sheet: ActionSheet) {
-        self.actionSheet = sheet
-        sheet.items = popoverItems(for: sheet)
-        sheet.buttons = []
-        sheet.modalPresentationStyle = .popover
-    }
-}
-
-
-// MARK: - Private Functions
-
-private extension ActionSheetPopoverPresenter {
-    
-    func popoverItems(for sheet: ActionSheet) -> [ActionSheetItem] {
-        let items: [ActionSheetItem] = sheet.items + sheet.buttons
-        return items.filter { !($0 is ActionSheetCancelButton) }
-    }
-}

+ 0 - 39
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Presenters/ActionSheetPresenter.swift

@@ -1,39 +0,0 @@
-//
-//  ActionSheetPresenter.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-18.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- Action sheet presenters are used to present and dismiss any
- action sheet in different ways, for instance with a default
- slide-in, showing the sheet in a popover etc.
- 
- Instead of a delegate, the presenter protocol uses an event
- property that has events that you can subscribe to, by just
- setting the action blocks in the event struct.
- 
- */
-
-import Foundation
-
-public struct ActionSheetPresenterEvents {
-    
-    public init() {}
-    
-    public var didDismissWithBackgroundTap: (() -> ())?
-}
-
-public protocol ActionSheetPresenter: AnyObject {
-    
-    var events: ActionSheetPresenterEvents { get set }
-    var isDismissableWithTapOnBackground: Bool { get set }
-    
-    func dismiss(completion: @escaping () -> ())
-    func present(sheet: ActionSheet, in vc: UIViewController, from view: UIView?, completion: @escaping () -> ())
-    func present(sheet: ActionSheet, in vc: UIViewController, from item: UIBarButtonItem, completion: @escaping () -> ())
-    func refreshActionSheet()
-}

+ 0 - 138
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Presenters/ActionSheetStandardPresenter.swift

@@ -1,138 +0,0 @@
-//
-//  ActionSheetStandardPresenter.swift
-//  Sheeeeeeeeet
-//
-//  Created by Daniel Saidi on 2017-11-27.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- This presenter presents action sheets as regular iOS action
- sheets, which are presented with a slide-in from the bottom
- of the screen.
- 
- */
-
-import UIKit
-
-open class ActionSheetStandardPresenter: ActionSheetPresenter {
-    
-    
-    // MARK: - Initialization
-    
-    public init() {}
-    
-    
-    // MARK: - Properties
-    
-    public var events = ActionSheetPresenterEvents()
-    public var isDismissableWithTapOnBackground = true
-    
-    var actionSheet: ActionSheet?
-    var animationDelay: TimeInterval = 0
-    var animationDuration: TimeInterval = 0.3
-    
-    
-    // MARK: - ActionSheetPresenter
-    
-    open func dismiss(completion: @escaping () -> ()) {
-        completion()
-        removeBackgroundView()
-        removeActionSheet {
-            self.actionSheet?.view.removeFromSuperview()
-            self.actionSheet = nil
-        }
-    }
-    
-    open func present(sheet: ActionSheet, in vc: UIViewController, from view: UIView?, completion: @escaping () -> ()) {
-        present(sheet: sheet, in: vc, completion: completion)
-    }
-    
-    open func present(sheet: ActionSheet, in vc: UIViewController, from item: UIBarButtonItem, completion: @escaping () -> ()) {
-        present(sheet: sheet, in: vc, completion: completion)
-    }
-    
-    open func present(sheet: ActionSheet, in vc: UIViewController, completion: @escaping () -> ()) {
-        actionSheet = sheet
-        addActionSheetView(from: sheet, to: vc.view)
-        addBackgroundViewTapAction(to: sheet.backgroundView)
-        presentBackgroundView()
-        presentActionSheet(completion: completion)
-    }
-    
-    open func refreshActionSheet() {
-        guard let sheet = actionSheet else { return }
-        sheet.topMargin?.constant = sheet.margin(at: .top)
-        sheet.leftMargin?.constant = sheet.margin(at: .left)
-        sheet.rightMargin?.constant = sheet.margin(at: .right)
-        sheet.bottomMargin?.constant = sheet.margin(at: .bottom)
-    }
-    
-    
-    // MARK: - Protected Functions
-    
-    open func addActionSheetView(from sheet: ActionSheet, to view: UIView) {
-        sheet.view.frame = view.frame
-        view.addSubview(sheet.view)
-    }
-
-    open func addBackgroundViewTapAction(to view: UIView?) {
-        view?.isUserInteractionEnabled = true
-        let action = #selector(backgroundViewTapAction)
-        let tap = UITapGestureRecognizer(target: self, action: action)
-        view?.addGestureRecognizer(tap)
-    }
-    
-    open func animate(_ animation: @escaping () -> ()) {
-        animate(animation, completion: nil)
-    }
-    
-    open func animate(_ animation: @escaping () -> (), completion: (() -> ())?) {
-        guard animationDuration >= 0 else { return }
-        UIView.animate(
-            withDuration: animationDuration,
-            delay: animationDelay,
-            options: [.curveEaseOut],
-            animations: animation) { _ in completion?() }
-    }
-    
-    open func presentActionSheet(completion: @escaping () -> ()) {
-        guard let view = actionSheet?.stackView else { return }
-        let frame = view.frame
-        view.frame.origin.y += frame.height + 100
-        let animation = { view.frame = frame }
-        animate(animation, completion: completion)
-    }
-    
-    open func presentBackgroundView() {
-        guard let view = actionSheet?.backgroundView else { return }
-        view.alpha = 0
-        let animation = { view.alpha = 1 }
-        animate(animation)
-    }
-
-    open func removeActionSheet(completion: @escaping () -> ()) {
-        guard let view = actionSheet?.stackView else { return }
-        let animation = { view.frame.origin.y += view.frame.height + 100 }
-        animate(animation) { completion() }
-    }
-
-    open func removeBackgroundView() {
-        guard let view = actionSheet?.backgroundView else { return }
-        let animation = { view.alpha = 0 }
-        animate(animation)
-    }
-}
-
-
-// MARK: - Actions
-
-@objc public extension ActionSheetStandardPresenter {
-    
-    public func backgroundViewTapAction() {
-        guard isDismissableWithTapOnBackground else { return }
-        events.didDismissWithBackgroundTap?()
-        dismiss {}
-    }
-}

+ 0 - 112
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/AppDelegate+Appearance.swift

@@ -1,112 +0,0 @@
-//
-//  AppDelegate+Appearance.swift
-//  SheeeeeeeeetExample
-//
-//  Created by Daniel Saidi on 2018-10-08.
-//  Copyright © 2018 Daniel Saidi. All rights reserved.
-//
-
-/*
- 
- This extension isolates how the example app applies colors,
- fonts etc to the example action sheets.
- 
- */
-
-import UIKit
-import Sheeeeeeeeet
-
-extension AppDelegate {
-    
-    func applyAppearance() {
-        applyViewAppearances()
-        applyColors()
-        applyFonts()
-        applyHeights()
-        applyIcons()
-        applySelectItemAppearances()
-        applySeparatorInsets()
-        applyPopoverWidth()
-    }
-}
-
-
-private extension AppDelegate {
-    
-    func applyViewAppearances() {
-//        ActionSheetBackgroundView.appearance().backgroundColor = .purple
-        ActionSheetHeaderView.appearance().cornerRadius = 10
-        ActionSheetTableView.appearance().cornerRadius = 10
-//        ActionSheetTableView.appearance().separatorLineColor = .purple
-//        ActionSheetItemTableView.appearance().cornerRadius = 20
-//        ActionSheetTableView.appearance(whenContainedInInstancesOf: [MultiSelectActionSheet.self]).cornerRadius = 20
-    }
-    
-    func applyColors() {
-        ActionSheetItemCell.appearance().titleColor = .darkText
-        ActionSheetItemCell.appearance().subtitleColor = .exampleBlue
-        ActionSheetItemCell.appearance().tintColor = .darkText
-//        ActionSheetItemCell.appearance().separatorColor = .red
-//        ActionSheetItemCell.appearance().backgroundColor = red
-//        ActionSheetItemCell.appearance(whenContainedInInstancesOf: [ActionSheetItemTableView.self]).backgroundColor = .purple
-        ActionSheetOkButtonCell.appearance().titleColor = .darkGray
-        ActionSheetCancelButtonCell.appearance().titleColor = .lightGray
-        ActionSheetDangerButtonCell.appearance().titleColor = .examplePink
-    }
-    
-    func applyFonts() {
-        ActionSheetItemCell.appearance().titleFont = .robotoRegular(size: 17)
-        ActionSheetItemCell.appearance().subtitleFont = .robotoRegular(size: 14)
-        ActionSheetLinkItemCell.appearance().titleFont = .robotoRegular(size: 17)
-        ActionSheetMultiSelectToggleItemCell.appearance().titleFont = .robotoMedium(size: 13)
-        ActionSheetSectionTitleCell.appearance().titleFont = .robotoMedium(size: 13)
-        ActionSheetTitleCell.appearance().titleFont = .robotoMedium(size: 15)
-        ActionSheetOkButtonCell.appearance().titleFont = .robotoBlack(size: 17)
-        ActionSheetDangerButtonCell.appearance().titleFont = .robotoMedium(size: 17)
-        ActionSheetCancelButtonCell.appearance().titleFont = .robotoRegular(size: 17)
-    }
-    
-    func applyHeights() {
-        ActionSheetSectionTitle.height = 20
-        ActionSheetSectionMargin.height = 20
-    }
-    
-    func applyIcons() {
-        ActionSheetLinkItemCell.appearance().linkIcon = UIImage(named: "ic_arrow_right")
-    }
-    
-    func applySelectItemAppearances() {
-        ActionSheetSelectItemCell.appearance().selectedIcon = UIImage(named: "ic_checkmark")
-        ActionSheetSelectItemCell.appearance().unselectedIcon = UIImage(named: "ic_empty")
-        ActionSheetSelectItemCell.appearance().selectedTintColor = .exampleBlue
-        ActionSheetSelectItemCell.appearance().selectedTitleColor = .exampleGreen
-        ActionSheetSelectItemCell.appearance().selectedIconColor = .examplePurple
-        
-        ActionSheetSingleSelectItemCell.appearance().selectedTintColor = .exampleGreen
-        ActionSheetSingleSelectItemCell.appearance().selectedTitleFont = .robotoMedium(size: 35)
-        ActionSheetSingleSelectItemCell.appearance().selectedSubtitleFont = .robotoMedium(size: 25)
-        ActionSheetSingleSelectItemCell.appearance().selectedTitleColor = .examplePurple
-        ActionSheetSingleSelectItemCell.appearance().selectedIconColor = .exampleBlue
-        
-        ActionSheetMultiSelectItemCell.appearance().tintColor = UIColor.darkText.withAlphaComponent(0.4)
-        ActionSheetMultiSelectItemCell.appearance().titleColor = UIColor.darkText.withAlphaComponent(0.4)
-        ActionSheetMultiSelectItemCell.appearance().selectedTintColor = .examplePurple
-        ActionSheetMultiSelectItemCell.appearance().selectedTitleColor = .exampleBlue
-        ActionSheetMultiSelectItemCell.appearance().selectedIconColor = .exampleGreen
-        
-        ActionSheetMultiSelectToggleItemCell.appearance().selectAllSubtitleColor = .lightGray
-        ActionSheetMultiSelectToggleItemCell.appearance().deselectAllSubtitleColor = .exampleRed
-    }
-    
-    func applySeparatorInsets() {
-        ActionSheetItemCell.appearance().separatorInset = .zero
-        ActionSheetTitleCell.appearance().separatorInset = .hiddenSeparator
-        ActionSheetSectionTitleCell.appearance().separatorInset = .hiddenSeparator
-        ActionSheetSectionMarginCell.appearance().separatorInset = .hiddenSeparator
-        ActionSheetMultiSelectToggleItemCell.appearance().separatorInset = .hiddenSeparator
-    }
-    
-    func applyPopoverWidth() {
-//        ActionSheet.preferredPopoverWidth = 700
-    }
-}

+ 0 - 20
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/AppDelegate.swift

@@ -1,20 +0,0 @@
-//
-//  AppDelegate.swift
-//  SheeeeeeeeetExample
-//
-//  Created by Daniel Saidi on 2017-11-18.
-//  Copyright © 2017 Daniel Saidi. All rights reserved.
-//
-
-import UIKit
-import Sheeeeeeeeet
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-    
-    var window: UIWindow?
-    
-    func applicationDidFinishLaunching(_ application: UIApplication) {
-        applyAppearance()
-    }
-}

+ 0 - 116
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,116 +0,0 @@
-{
-  "images" : [
-    {
-      "size" : "20x20",
-      "idiom" : "iphone",
-      "filename" : "Icon-40.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "20x20",
-      "idiom" : "iphone",
-      "filename" : "Icon-60.png",
-      "scale" : "3x"
-    },
-    {
-      "size" : "29x29",
-      "idiom" : "iphone",
-      "filename" : "Icon-58.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "29x29",
-      "idiom" : "iphone",
-      "filename" : "Icon-87.png",
-      "scale" : "3x"
-    },
-    {
-      "size" : "40x40",
-      "idiom" : "iphone",
-      "filename" : "Icon-80.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "40x40",
-      "idiom" : "iphone",
-      "filename" : "Icon-120.png",
-      "scale" : "3x"
-    },
-    {
-      "size" : "60x60",
-      "idiom" : "iphone",
-      "filename" : "Icon-120.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "60x60",
-      "idiom" : "iphone",
-      "filename" : "Icon-180.png",
-      "scale" : "3x"
-    },
-    {
-      "size" : "20x20",
-      "idiom" : "ipad",
-      "filename" : "Icon-20.png",
-      "scale" : "1x"
-    },
-    {
-      "size" : "20x20",
-      "idiom" : "ipad",
-      "filename" : "Icon-40.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "29x29",
-      "idiom" : "ipad",
-      "filename" : "Icon-29.png",
-      "scale" : "1x"
-    },
-    {
-      "size" : "29x29",
-      "idiom" : "ipad",
-      "filename" : "Icon-58.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "40x40",
-      "idiom" : "ipad",
-      "filename" : "Icon-40.png",
-      "scale" : "1x"
-    },
-    {
-      "size" : "40x40",
-      "idiom" : "ipad",
-      "filename" : "Icon-80.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "76x76",
-      "idiom" : "ipad",
-      "filename" : "Icon-76.png",
-      "scale" : "1x"
-    },
-    {
-      "size" : "76x76",
-      "idiom" : "ipad",
-      "filename" : "Icon-152.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "83.5x83.5",
-      "idiom" : "ipad",
-      "filename" : "Icon-167.png",
-      "scale" : "2x"
-    },
-    {
-      "size" : "1024x1024",
-      "idiom" : "ios-marketing",
-      "filename" : "Icon-1024.png",
-      "scale" : "1x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-1024.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-120.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-152.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-167.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-180.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-20.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-29.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-40.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-58.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-60.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-76.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-80.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/AppIcon.appiconset/Icon-87.png


+ 0 - 6
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/Contents.json

@@ -1,6 +0,0 @@
-{
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_account.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_account_circle.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_account_circle_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_account_circle_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_account.imageset/ic_account_circle.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_account.imageset/ic_account_circle_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_account.imageset/ic_account_circle_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_arrow_right.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_keyboard_arrow_right.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_keyboard_arrow_right_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_keyboard_arrow_right_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_arrow_right.imageset/ic_keyboard_arrow_right.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_arrow_right.imageset/ic_keyboard_arrow_right_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_arrow_right.imageset/ic_keyboard_arrow_right_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmark.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_done.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_done_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_done_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmark.imageset/ic_done.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmark.imageset/ic_done_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmark.imageset/ic_done_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmarks.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_done_all.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_done_all_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_done_all_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmarks.imageset/ic_done_all.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmarks.imageset/ic_done_all_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_checkmarks.imageset/ic_done_all_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_play_circle_outline.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_play_circle_outline_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_play_circle_outline_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle.imageset/ic_play_circle_outline.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle.imageset/ic_play_circle_outline_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle.imageset/ic_play_circle_outline_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle_checked.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_check_circle.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_check_circle_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_check_circle_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle_checked.imageset/ic_check_circle.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle_checked.imageset/ic_check_circle_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_circle_checked.imageset/ic_check_circle_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_coffee.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_local_cafe.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_local_cafe_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_local_cafe_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_coffee.imageset/ic_local_cafe.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_coffee.imageset/ic_local_cafe_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_coffee.imageset/ic_local_cafe_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_credit_card.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_credit_card.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_credit_card_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_credit_card_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_credit_card.imageset/ic_credit_card.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_credit_card.imageset/ic_credit_card_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_credit_card.imageset/ic_credit_card_3x.png


+ 0 - 24
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_custom.imageset/Contents.json

@@ -1,24 +0,0 @@
-{
-    "images": [
-        {
-            "filename": "outline_select_all_black_24pt_1x.png",
-            "idiom": "universal",
-            "scale": "1x"
-        },
-        {
-            "filename": "outline_select_all_black_24pt_2x.png",
-            "idiom": "universal",
-            "scale": "2x"
-        },
-        {
-            "filename": "outline_select_all_black_24pt_3x.png",
-            "idiom": "universal",
-            "scale": "3x"
-        }
-    ],
-    "info": {
-        "author": "xcode",
-        "template-rendering-intent": "template",
-        "version": 1
-    }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_custom.imageset/outline_select_all_black_24pt_1x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_custom.imageset/outline_select_all_black_24pt_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_custom.imageset/outline_select_all_black_24pt_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_cutlery.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_restaurant.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_restaurant_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_restaurant_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_cutlery.imageset/ic_restaurant.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_cutlery.imageset/ic_restaurant_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_cutlery.imageset/ic_restaurant_3x.png


+ 0 - 26
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_drink.imageset/Contents.json

@@ -1,26 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "ic_local_bar.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_local_bar_2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "ic_local_bar_3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  },
-  "properties" : {
-    "template-rendering-intent" : "template"
-  }
-}

BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_drink.imageset/ic_local_bar.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_drink.imageset/ic_local_bar_2x.png


BIN
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Assets/Assets.xcassets/ic_drink.imageset/ic_local_bar_3x.png


Some files were not shown because too many files changed in this diff