abstracted 0.0.6 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (224) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +11 -8
  4. data/app/assets/javascripts/abstract_resources.js +29 -25
  5. data/app/assets/javascripts/crud.js.coffee +174 -29
  6. data/app/assets/javascripts/initializers.js.coffee +403 -58
  7. data/app/assets/javascripts/pagescrolling.js.coffee +92 -0
  8. data/app/assets/stylesheets/abstract_resources.css +5 -0
  9. data/app/assets/stylesheets/scaffold.css +4 -2
  10. data/app/assets/stylesheets/selectize.css.scss +0 -0
  11. data/app/controllers/abstract_resources_controller.rb +473 -134
  12. data/app/controllers/application_controller.rb +22 -7
  13. data/app/helpers/abstract_resources_helper.rb +515 -9
  14. data/app/helpers/fab_button_helper.rb +82 -0
  15. data/app/models/abstract_resource.rb +141 -89
  16. data/app/models/ancestry_abstract_resource.rb +27 -0
  17. data/app/models/concerns/roleable.rb +1 -1
  18. data/app/policies/abstract_resource_policy.rb +25 -0
  19. data/app/views/abstract_resources/_title.html.haml +2 -0
  20. data/app/views/abstract_resources/activate.html.haml +5 -0
  21. data/app/views/abstract_resources/attach.html.haml +6 -0
  22. data/app/views/abstract_resources/deactivate.html.haml +5 -0
  23. data/app/views/abstract_resources/defer.html.haml +5 -0
  24. data/app/views/abstract_resources/destroy.js.haml +2 -1
  25. data/app/views/abstract_resources/detach.html.haml +5 -0
  26. data/app/views/abstract_resources/edit.html.haml +4 -9
  27. data/app/views/abstract_resources/error.html.haml +2 -0
  28. data/app/views/abstract_resources/error.js.haml +2 -0
  29. data/app/views/abstract_resources/index.html.haml +27 -0
  30. data/app/views/abstract_resources/index.js.haml +2 -0
  31. data/app/views/abstract_resources/new.html.haml +4 -10
  32. data/app/views/abstract_resources/prefer.html.haml +5 -0
  33. data/app/views/abstract_resources/print.html.haml +2 -0
  34. data/app/views/abstract_resources/print.js.haml +2 -0
  35. data/app/views/abstract_resources/show.html.haml +5 -11
  36. data/app/views/layouts/_messages.html.haml +1 -0
  37. data/app/views/layouts/_navigation.html.haml +13 -0
  38. data/bower.json +34 -0
  39. data/config/initializers/exception.rb +19 -0
  40. data/config/initializers/pundit.rb +22 -0
  41. data/config/routes.rb +24 -0
  42. data/lib/abstracted.rb +3 -0
  43. data/lib/abstracted/version.rb +1 -1
  44. data/lib/abstracted_responder.rb +1 -0
  45. data/lib/exceptions.rb +61 -0
  46. data/vendor/assets/components/jquery/.bower.json +38 -0
  47. data/vendor/assets/components/jquery/MIT-LICENSE.txt +21 -0
  48. data/vendor/assets/components/jquery/bower.json +28 -0
  49. data/vendor/assets/components/jquery/dist/jquery.js +9210 -0
  50. data/vendor/assets/components/jquery/dist/jquery.min.js +5 -0
  51. data/vendor/assets/components/jquery/dist/jquery.min.map +1 -0
  52. data/vendor/assets/components/jquery/src/ajax.js +786 -0
  53. data/vendor/assets/components/jquery/src/ajax/jsonp.js +89 -0
  54. data/vendor/assets/components/jquery/src/ajax/load.js +75 -0
  55. data/vendor/assets/components/jquery/src/ajax/parseJSON.js +13 -0
  56. data/vendor/assets/components/jquery/src/ajax/parseXML.js +28 -0
  57. data/vendor/assets/components/jquery/src/ajax/script.js +64 -0
  58. data/vendor/assets/components/jquery/src/ajax/var/nonce.js +5 -0
  59. data/vendor/assets/components/jquery/src/ajax/var/rquery.js +3 -0
  60. data/vendor/assets/components/jquery/src/ajax/xhr.js +136 -0
  61. data/vendor/assets/components/jquery/src/attributes.js +11 -0
  62. data/vendor/assets/components/jquery/src/attributes/attr.js +141 -0
  63. data/vendor/assets/components/jquery/src/attributes/classes.js +158 -0
  64. data/vendor/assets/components/jquery/src/attributes/prop.js +94 -0
  65. data/vendor/assets/components/jquery/src/attributes/support.js +35 -0
  66. data/vendor/assets/components/jquery/src/attributes/val.js +161 -0
  67. data/vendor/assets/components/jquery/src/callbacks.js +205 -0
  68. data/vendor/assets/components/jquery/src/core.js +502 -0
  69. data/vendor/assets/components/jquery/src/core/access.js +60 -0
  70. data/vendor/assets/components/jquery/src/core/init.js +123 -0
  71. data/vendor/assets/components/jquery/src/core/parseHTML.js +39 -0
  72. data/vendor/assets/components/jquery/src/core/ready.js +97 -0
  73. data/vendor/assets/components/jquery/src/core/var/rsingleTag.js +4 -0
  74. data/vendor/assets/components/jquery/src/css.js +450 -0
  75. data/vendor/assets/components/jquery/src/css/addGetHookIf.js +22 -0
  76. data/vendor/assets/components/jquery/src/css/curCSS.js +57 -0
  77. data/vendor/assets/components/jquery/src/css/defaultDisplay.js +70 -0
  78. data/vendor/assets/components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  79. data/vendor/assets/components/jquery/src/css/support.js +96 -0
  80. data/vendor/assets/components/jquery/src/css/swap.js +28 -0
  81. data/vendor/assets/components/jquery/src/css/var/cssExpand.js +3 -0
  82. data/vendor/assets/components/jquery/src/css/var/getStyles.js +12 -0
  83. data/vendor/assets/components/jquery/src/css/var/isHidden.js +13 -0
  84. data/vendor/assets/components/jquery/src/css/var/rmargin.js +3 -0
  85. data/vendor/assets/components/jquery/src/css/var/rnumnonpx.js +5 -0
  86. data/vendor/assets/components/jquery/src/data.js +178 -0
  87. data/vendor/assets/components/jquery/src/data/Data.js +181 -0
  88. data/vendor/assets/components/jquery/src/data/accepts.js +20 -0
  89. data/vendor/assets/components/jquery/src/data/var/data_priv.js +5 -0
  90. data/vendor/assets/components/jquery/src/data/var/data_user.js +5 -0
  91. data/vendor/assets/components/jquery/src/deferred.js +149 -0
  92. data/vendor/assets/components/jquery/src/deprecated.js +13 -0
  93. data/vendor/assets/components/jquery/src/dimensions.js +50 -0
  94. data/vendor/assets/components/jquery/src/effects.js +648 -0
  95. data/vendor/assets/components/jquery/src/effects/Tween.js +114 -0
  96. data/vendor/assets/components/jquery/src/effects/animatedSelector.js +13 -0
  97. data/vendor/assets/components/jquery/src/event.js +868 -0
  98. data/vendor/assets/components/jquery/src/event/ajax.js +13 -0
  99. data/vendor/assets/components/jquery/src/event/alias.js +39 -0
  100. data/vendor/assets/components/jquery/src/event/support.js +9 -0
  101. data/vendor/assets/components/jquery/src/exports/amd.js +24 -0
  102. data/vendor/assets/components/jquery/src/exports/global.js +32 -0
  103. data/vendor/assets/components/jquery/src/intro.js +44 -0
  104. data/vendor/assets/components/jquery/src/jquery.js +37 -0
  105. data/vendor/assets/components/jquery/src/manipulation.js +580 -0
  106. data/vendor/assets/components/jquery/src/manipulation/_evalUrl.js +18 -0
  107. data/vendor/assets/components/jquery/src/manipulation/support.js +32 -0
  108. data/vendor/assets/components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  109. data/vendor/assets/components/jquery/src/offset.js +207 -0
  110. data/vendor/assets/components/jquery/src/outro.js +1 -0
  111. data/vendor/assets/components/jquery/src/queue.js +142 -0
  112. data/vendor/assets/components/jquery/src/queue/delay.js +22 -0
  113. data/vendor/assets/components/jquery/src/selector-native.js +172 -0
  114. data/vendor/assets/components/jquery/src/selector-sizzle.js +14 -0
  115. data/vendor/assets/components/jquery/src/selector.js +1 -0
  116. data/vendor/assets/components/jquery/src/serialize.js +111 -0
  117. data/vendor/assets/components/jquery/src/sizzle/dist/sizzle.js +2067 -0
  118. data/vendor/assets/components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  119. data/vendor/assets/components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  120. data/vendor/assets/components/jquery/src/traversing.js +199 -0
  121. data/vendor/assets/components/jquery/src/traversing/findFilter.js +100 -0
  122. data/vendor/assets/components/jquery/src/traversing/var/rneedsContext.js +6 -0
  123. data/vendor/assets/components/jquery/src/var/arr.js +3 -0
  124. data/vendor/assets/components/jquery/src/var/class2type.js +4 -0
  125. data/vendor/assets/components/jquery/src/var/concat.js +5 -0
  126. data/vendor/assets/components/jquery/src/var/hasOwn.js +5 -0
  127. data/vendor/assets/components/jquery/src/var/indexOf.js +5 -0
  128. data/vendor/assets/components/jquery/src/var/pnum.js +3 -0
  129. data/vendor/assets/components/jquery/src/var/push.js +5 -0
  130. data/vendor/assets/components/jquery/src/var/rnotwhite.js +3 -0
  131. data/vendor/assets/components/jquery/src/var/slice.js +5 -0
  132. data/vendor/assets/components/jquery/src/var/strundefined.js +3 -0
  133. data/vendor/assets/components/jquery/src/var/support.js +4 -0
  134. data/vendor/assets/components/jquery/src/var/toString.js +5 -0
  135. data/vendor/assets/components/jquery/src/wrap.js +79 -0
  136. data/vendor/assets/components/microplugin/.bower.json +38 -0
  137. data/vendor/assets/components/microplugin/.gitignore +2 -0
  138. data/vendor/assets/components/microplugin/.npmignore +3 -0
  139. data/vendor/assets/components/microplugin/README.md +115 -0
  140. data/vendor/assets/components/microplugin/bower.json +22 -0
  141. data/vendor/assets/components/microplugin/package.json +15 -0
  142. data/vendor/assets/components/microplugin/src/microplugin.js +135 -0
  143. data/vendor/assets/components/selectize/.bower.json +60 -0
  144. data/vendor/assets/components/selectize/.gitignore +5 -0
  145. data/vendor/assets/components/selectize/LICENSE +202 -0
  146. data/vendor/assets/components/selectize/README.md +105 -0
  147. data/vendor/assets/components/selectize/bower.json +40 -0
  148. data/vendor/assets/components/selectize/dist/css/selectize.bootstrap2.css +487 -0
  149. data/vendor/assets/components/selectize/dist/css/selectize.bootstrap3.css +401 -0
  150. data/vendor/assets/components/selectize/dist/css/selectize.css +317 -0
  151. data/vendor/assets/components/selectize/dist/css/selectize.default.css +387 -0
  152. data/vendor/assets/components/selectize/dist/css/selectize.legacy.css +364 -0
  153. data/vendor/assets/components/selectize/dist/js/selectize.js +3058 -0
  154. data/vendor/assets/components/selectize/dist/js/selectize.min.js +3 -0
  155. data/vendor/assets/components/selectize/dist/js/standalone/selectize.js +3667 -0
  156. data/vendor/assets/components/selectize/dist/js/standalone/selectize.min.js +3 -0
  157. data/vendor/assets/components/selectize/dist/less/plugins/drag_drop.less +16 -0
  158. data/vendor/assets/components/selectize/dist/less/plugins/dropdown_header.less +20 -0
  159. data/vendor/assets/components/selectize/dist/less/plugins/optgroup_columns.less +17 -0
  160. data/vendor/assets/components/selectize/dist/less/plugins/remove_button.less +37 -0
  161. data/vendor/assets/components/selectize/dist/less/selectize.bootstrap2.less +161 -0
  162. data/vendor/assets/components/selectize/dist/less/selectize.bootstrap3.less +150 -0
  163. data/vendor/assets/components/selectize/dist/less/selectize.default.less +84 -0
  164. data/vendor/assets/components/selectize/dist/less/selectize.legacy.less +75 -0
  165. data/vendor/assets/components/selectize/dist/less/selectize.less +295 -0
  166. data/vendor/assets/components/selectize/karma.conf.js +107 -0
  167. data/vendor/assets/components/sifter/.bower.json +44 -0
  168. data/vendor/assets/components/sifter/.gitignore +3 -0
  169. data/vendor/assets/components/sifter/.npmignore +4 -0
  170. data/vendor/assets/components/sifter/README.md +149 -0
  171. data/vendor/assets/components/sifter/bower.json +23 -0
  172. data/vendor/assets/components/sifter/package.json +48 -0
  173. data/vendor/assets/components/sifter/sifter.js +471 -0
  174. data/vendor/assets/components/sifter/sifter.min.js +2 -0
  175. data/vendor/assets/components/sweetalert/.bower.json +36 -0
  176. data/vendor/assets/components/sweetalert/.editorconfig +11 -0
  177. data/vendor/assets/components/sweetalert/.gitignore +5 -0
  178. data/vendor/assets/components/sweetalert/.jshintrc +11 -0
  179. data/vendor/assets/components/sweetalert/.travis.yml +6 -0
  180. data/vendor/assets/components/sweetalert/LICENSE +22 -0
  181. data/vendor/assets/components/sweetalert/README.md +157 -0
  182. data/vendor/assets/components/sweetalert/bower.json +25 -0
  183. data/vendor/assets/components/sweetalert/dev/gulpfile-wrap-template.js +18 -0
  184. data/vendor/assets/components/sweetalert/dev/ie9.css +23 -0
  185. data/vendor/assets/components/sweetalert/dev/loader-animation.css +209 -0
  186. data/vendor/assets/components/sweetalert/dev/modules/default-params.js +26 -0
  187. data/vendor/assets/components/sweetalert/dev/modules/handle-click.js +128 -0
  188. data/vendor/assets/components/sweetalert/dev/modules/handle-dom.js +161 -0
  189. data/vendor/assets/components/sweetalert/dev/modules/handle-key.js +73 -0
  190. data/vendor/assets/components/sweetalert/dev/modules/handle-swal-dom.js +148 -0
  191. data/vendor/assets/components/sweetalert/dev/modules/injected-html.js +69 -0
  192. data/vendor/assets/components/sweetalert/dev/modules/set-params.js +221 -0
  193. data/vendor/assets/components/sweetalert/dev/modules/utils.js +71 -0
  194. data/vendor/assets/components/sweetalert/dev/sweetalert.es6.js +311 -0
  195. data/vendor/assets/components/sweetalert/dev/sweetalert.scss +648 -0
  196. data/vendor/assets/components/sweetalert/dist/sweetalert-dev.js +1281 -0
  197. data/vendor/assets/components/sweetalert/dist/sweetalert.css +932 -0
  198. data/vendor/assets/components/sweetalert/dist/sweetalert.min.js +1 -0
  199. data/vendor/assets/components/sweetalert/example/example.css +442 -0
  200. data/vendor/assets/components/sweetalert/example/example.scss +580 -0
  201. data/vendor/assets/components/sweetalert/example/images/logo_big.png +0 -0
  202. data/vendor/assets/components/sweetalert/example/images/logo_big@2x.png +0 -0
  203. data/vendor/assets/components/sweetalert/example/images/logo_small.png +0 -0
  204. data/vendor/assets/components/sweetalert/example/images/logo_small@2x.png +0 -0
  205. data/vendor/assets/components/sweetalert/example/images/te-logo-small.svg +12 -0
  206. data/vendor/assets/components/sweetalert/example/images/thumbs-up.jpg +0 -0
  207. data/vendor/assets/components/sweetalert/example/images/vs_icon.png +0 -0
  208. data/vendor/assets/components/sweetalert/example/images/vs_icon@2x.png +0 -0
  209. data/vendor/assets/components/sweetalert/gulpfile.js +97 -0
  210. data/vendor/assets/components/sweetalert/index.html +584 -0
  211. data/vendor/assets/components/sweetalert/package.json +45 -0
  212. data/vendor/assets/components/sweetalert/sweetalert.gif +0 -0
  213. data/vendor/assets/components/sweetalert/test/index.html +20 -0
  214. data/vendor/assets/components/sweetalert/test/tests.js +143 -0
  215. data/vendor/assets/components/sweetalert/themes/facebook/facebook.css +111 -0
  216. data/vendor/assets/components/sweetalert/themes/facebook/facebook.scss +146 -0
  217. data/vendor/assets/components/sweetalert/themes/google/google.css +115 -0
  218. data/vendor/assets/components/sweetalert/themes/google/google.scss +148 -0
  219. data/vendor/assets/components/sweetalert/themes/twitter/twitter.css +140 -0
  220. data/vendor/assets/components/sweetalert/themes/twitter/twitter.scss +177 -0
  221. metadata +214 -5
  222. data/abstracted-0.0.4.gem +0 -0
  223. data/abstracted.gemspec +0 -51
  224. data/app/views/abstract_resources/index.html.erb +0 -1
@@ -0,0 +1,115 @@
1
+ .sweet-overlay {
2
+ background: rgba(10, 10, 10, 0.6); }
3
+
4
+ .sweet-alert {
5
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6
+ padding: 24px;
7
+ padding-top: 64px;
8
+ padding-bottom: 13px;
9
+ text-align: right;
10
+ border-radius: 0;
11
+ box-shadow: 0 0 14px rgba(0, 0, 0, 0.24), 0 14px 28px rgba(0, 0, 0, 0.48); }
12
+ .sweet-alert h2 {
13
+ position: absolute;
14
+ top: 0;
15
+ left: 0;
16
+ right: 0;
17
+ height: auto;
18
+ font-weight: 400;
19
+ color: #212121;
20
+ margin: 20px 0;
21
+ font-size: 1.2em;
22
+ line-height: 1.25;
23
+ text-align: left;
24
+ padding: 0 24px; }
25
+ .sweet-alert p {
26
+ display: block;
27
+ text-align: center;
28
+ color: #212121;
29
+ font-weight: 400;
30
+ font-size: 14px;
31
+ margin: 20px 0; }
32
+ .sweet-alert button {
33
+ border-radius: 2px;
34
+ box-shadow: none !important;
35
+ background: none !important;
36
+ border-radius: 2px;
37
+ text-transform: uppercase;
38
+ font-size: 14px;
39
+ font-weight: 600;
40
+ padding: 8px 16px;
41
+ position: relative;
42
+ margin-top: 0; }
43
+ .sweet-alert button:hover, .sweet-alert button:focus {
44
+ background-color: #f6f6f6 !important; }
45
+ .sweet-alert button.confirm {
46
+ color: #3c80f6; }
47
+ .sweet-alert button.cancel {
48
+ color: #757575; }
49
+ .sweet-alert button.cancel:focus {
50
+ box-shadow: none !important; }
51
+ .sweet-alert .sa-icon:not(.sa-custom) {
52
+ transform: scale(0.8);
53
+ margin-bottom: -10px;
54
+ margin-top: -10px; }
55
+ .sweet-alert input {
56
+ border: none;
57
+ border-radius: 0;
58
+ border-bottom: 1px solid #c9c9c9;
59
+ color: #212121;
60
+ margin-bottom: 8px;
61
+ padding: 1px;
62
+ padding-bottom: 8px;
63
+ height: auto;
64
+ box-shadow: none;
65
+ font-size: 13px;
66
+ margin: 10px 0; }
67
+ .sweet-alert input:focus {
68
+ border: none;
69
+ border-bottom: 1px solid #3c80f6;
70
+ box-shadow: inset 0 -1px 0 #3c80f6; }
71
+ .sweet-alert fieldset {
72
+ padding: 0; }
73
+ .sweet-alert fieldset .sa-input-error {
74
+ display: none; }
75
+ .sweet-alert .sa-error-container {
76
+ display: none;
77
+ background: none;
78
+ height: auto;
79
+ padding: 0 24px;
80
+ margin: 0 -20px;
81
+ text-align: left; }
82
+ .sweet-alert .sa-error-container.show {
83
+ padding: 0 24px;
84
+ display: block; }
85
+ .sweet-alert .sa-error-container.show ~ fieldset input {
86
+ background: red;
87
+ border-bottom: 1px solid #d9453c;
88
+ box-shadow: inset 0 -1px 0 #d9453c; }
89
+ .sweet-alert .sa-error-container .icon {
90
+ display: none; }
91
+ .sweet-alert .sa-error-container p {
92
+ color: #d9453c;
93
+ margin-top: 0; }
94
+
95
+ @-webkit-keyframes animateErrorIcon {
96
+ 0% {
97
+ transform: rotateX(100deg), scale(0.5);
98
+ -webkit-transform: rotateX(100deg), scale(0.5);
99
+ opacity: 0; }
100
+
101
+ 100% {
102
+ transform: rotateX(0deg), scale(0.5);
103
+ -webkit-transform: rotateX(0deg), scale(0.5);
104
+ opacity: 1; } }
105
+
106
+ @keyframes animateErrorIcon {
107
+ 0% {
108
+ transform: rotateX(100deg), scale(0.5);
109
+ -webkit-transform: rotateX(100deg), scale(0.5);
110
+ opacity: 0; }
111
+
112
+ 100% {
113
+ transform: rotateX(0deg), scale(0.5);
114
+ -webkit-transform: rotateX(0deg), scale(0.5);
115
+ opacity: 1; } }
@@ -0,0 +1,148 @@
1
+ // Google Theme for SweetAlert
2
+ // By Tristan Edwards
3
+
4
+ .sweet-overlay {
5
+ background: rgba(10,10,10,.6);
6
+ }
7
+
8
+
9
+ .sweet-alert {
10
+ $header-height: 40px;
11
+ $footer-height: 66px;
12
+ $text-color: #212121;
13
+ $padding: 24px;
14
+ $error-color: #d9453c;
15
+
16
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
17
+ padding: $padding;
18
+ padding-top: $header-height + $padding;
19
+ padding-bottom: 13px;
20
+ text-align: right; // Align buttons
21
+ border-radius: 0;
22
+ box-shadow: 0 0 14px rgba(black, 0.24),0 14px 28px rgba(black, 0.48);
23
+
24
+ h2 {
25
+ position: absolute;
26
+ top: 0;
27
+ left: 0;
28
+ right: 0;
29
+ height: auto;
30
+ font-weight: 400;
31
+ color: $text-color;
32
+ margin: 20px 0;
33
+ font-size: 1.2em;
34
+ line-height: 1.25;
35
+ text-align: left;
36
+ padding: 0 $padding;
37
+ }
38
+
39
+ p {
40
+ display: block;
41
+ text-align: center;
42
+ color: $text-color;
43
+ font-weight: 400;
44
+ font-size: 14px;
45
+ margin: 20px 0;
46
+ }
47
+
48
+ button {
49
+ border-radius: 2px;
50
+ box-shadow: none !important;
51
+ background: none !important;
52
+ border-radius: 2px;
53
+ text-transform: uppercase;
54
+ font-size: 14px;
55
+ font-weight: 600;
56
+ padding: 8px 16px;
57
+ position: relative;
58
+ margin-top: 0;
59
+ &:hover, &:focus {
60
+ background-color: #f6f6f6 !important;
61
+ }
62
+
63
+ &.confirm {
64
+ color: #3c80f6;
65
+ }
66
+ &.cancel {
67
+ color: #757575;
68
+ &:focus {
69
+ box-shadow: none !important;
70
+ }
71
+ }
72
+ }
73
+
74
+ .sa-icon:not(.sa-custom) {
75
+ transform: scale(0.8);
76
+ margin-bottom: -10px;
77
+ margin-top: -10px;
78
+ }
79
+
80
+ input {
81
+ border: none;
82
+ border-radius: 0;
83
+ border-bottom: 1px solid #c9c9c9;
84
+ color: #212121;
85
+ margin-bottom: 8px;
86
+ padding: 1px;
87
+ padding-bottom: 8px;
88
+ height: auto;
89
+ box-shadow: none;
90
+ font-size: 13px;
91
+ margin: 10px 0;
92
+ &:focus {
93
+ border: none;
94
+ border-bottom: 1px solid #3c80f6;
95
+ box-shadow: inset 0 -1px 0 #3c80f6;
96
+ }
97
+ }
98
+
99
+ fieldset {
100
+ padding: 0;
101
+ .sa-input-error {
102
+ display: none;
103
+ }
104
+ }
105
+
106
+ .sa-error-container {
107
+ display: none;
108
+ background: none;
109
+ height: auto;
110
+ padding: 0 $padding;
111
+ margin: 0 -20px;
112
+ text-align: left;
113
+ &.show {
114
+ padding: 0 $padding;
115
+ display: block;
116
+ ~ fieldset input {
117
+ background: red;
118
+ border-bottom: 1px solid $error-color;
119
+ box-shadow: inset 0 -1px 0 $error-color;
120
+ }
121
+ }
122
+
123
+ .icon {
124
+ display: none;
125
+ }
126
+ p {
127
+ color: $error-color;
128
+ margin-top: 0;
129
+ }
130
+ }
131
+ }
132
+
133
+
134
+ // Animations
135
+
136
+ @mixin keyframes($animation-name) {
137
+ @-webkit-keyframes #{$animation-name} {
138
+ @content;
139
+ }
140
+ @keyframes #{$animation-name} {
141
+ @content;
142
+ }
143
+ }
144
+
145
+ @include keyframes(animateErrorIcon) {
146
+ 0% { transform: rotateX(100deg), scale(0.5); -webkit-transform: rotateX(100deg), scale(0.5); opacity: 0; }
147
+ 100% { transform: rotateX(0deg), scale(0.5); -webkit-transform: rotateX(0deg), scale(0.5); opacity: 1; }
148
+ }
@@ -0,0 +1,140 @@
1
+ .sweet-overlay {
2
+ background: rgba(41, 47, 51, 0.9); }
3
+
4
+ .sweet-alert {
5
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6
+ padding: 15px;
7
+ padding-top: 55px;
8
+ text-align: right;
9
+ border-radius: 6px;
10
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.11), 0px 6px 30px rgba(0, 0, 0, 0.14); }
11
+ .sweet-alert h2 {
12
+ position: absolute;
13
+ top: 0;
14
+ left: 0;
15
+ right: 0;
16
+ height: 40px;
17
+ line-height: 40px;
18
+ font-size: 16px;
19
+ font-weight: 400;
20
+ color: #8899a6;
21
+ margin: 0;
22
+ color: #66757f;
23
+ border-bottom: 1px solid #e1e8ed; }
24
+ .sweet-alert p {
25
+ display: block;
26
+ text-align: center;
27
+ color: #66757f;
28
+ font-weight: 400;
29
+ font-size: 13px;
30
+ margin-top: 7px; }
31
+ .sweet-alert .sa-button-container {
32
+ background-color: #f5f8fa;
33
+ border-top: 1px solid #e1e8ed;
34
+ box-shadow: 0px -1px 0px white;
35
+ margin: -15px;
36
+ margin-top: 0; }
37
+ .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] {
38
+ padding-bottom: 10px; }
39
+ .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] .sa-button-container {
40
+ display: none; }
41
+ .sweet-alert button {
42
+ border-radius: 2px;
43
+ box-shadow: none !important;
44
+ text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.3);
45
+ margin: 17px 0px;
46
+ border-radius: 4px;
47
+ font-size: 14px;
48
+ font-weight: 600;
49
+ padding: 8px 16px;
50
+ position: relative; }
51
+ .sweet-alert button:focus, .sweet-alert button.cancel:focus {
52
+ box-shadow: none !important; }
53
+ .sweet-alert button:focus::before, .sweet-alert button.cancel:focus::before {
54
+ content: "";
55
+ position: absolute;
56
+ left: -5px;
57
+ top: -5px;
58
+ right: -5px;
59
+ bottom: -5px;
60
+ border: 2px solid #a5b0b4;
61
+ border-radius: 8px; }
62
+ .sweet-alert button.confirm {
63
+ background-color: #55acee !important;
64
+ background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05));
65
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#0C000000)";
66
+ border: 1px solid #3b88c3;
67
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
68
+ margin-right: 15px; }
69
+ .sweet-alert button.confirm:hover {
70
+ background-color: #55acee;
71
+ background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.15));
72
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)";
73
+ border-color: #3b88c3; }
74
+ .sweet-alert button.cancel {
75
+ color: #66757e;
76
+ background-color: #f5f8fa;
77
+ background-image: linear-gradient(#fff, #f5f8fa);
78
+ text-shadow: 0px -1px 0px white;
79
+ margin-right: 9px;
80
+ border: 1px solid #e1e8ed; }
81
+ .sweet-alert button.cancel:hover, .sweet-alert button.cancel:focus:hover {
82
+ background-color: #e1e8ed;
83
+ background-image: linear-gradient(#fff, #e1e8ed);
84
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";
85
+ border-color: #e1e8ed; }
86
+ .sweet-alert button.cancel:focus {
87
+ background: #fff;
88
+ border-color: #fff; }
89
+ .sweet-alert .sa-icon:not(.sa-custom) {
90
+ transform: scale(0.72);
91
+ margin-bottom: -2px;
92
+ margin-top: -10px; }
93
+ .sweet-alert input {
94
+ border: 1px solid #e1e8ed;
95
+ border-radius: 3px;
96
+ padding: 10px 7px;
97
+ height: auto;
98
+ box-shadow: none;
99
+ font-size: 13px;
100
+ margin: 10px 0; }
101
+ .sweet-alert input:focus {
102
+ border-color: #94A1A6;
103
+ box-shadow: inset 0 0 0 1px rgba(77, 99, 107, 0.7); }
104
+ .sweet-alert fieldset .sa-input-error {
105
+ display: none; }
106
+ .sweet-alert .sa-error-container {
107
+ text-align: center;
108
+ border: none;
109
+ background-color: #fbedc0;
110
+ margin-bottom: 6px; }
111
+ .sweet-alert .sa-error-container.show {
112
+ border: 1px solid #f0e1b9; }
113
+ .sweet-alert .sa-error-container .icon {
114
+ display: none; }
115
+ .sweet-alert .sa-error-container p {
116
+ color: #292f33;
117
+ font-weight: 600;
118
+ margin-top: 0; }
119
+
120
+ @-webkit-keyframes animateErrorIcon {
121
+ 0% {
122
+ transform: rotateX(100deg), scale(0.5);
123
+ -webkit-transform: rotateX(100deg), scale(0.5);
124
+ opacity: 0; }
125
+
126
+ 100% {
127
+ transform: rotateX(0deg), scale(0.5);
128
+ -webkit-transform: rotateX(0deg), scale(0.5);
129
+ opacity: 1; } }
130
+
131
+ @keyframes animateErrorIcon {
132
+ 0% {
133
+ transform: rotateX(100deg), scale(0.5);
134
+ -webkit-transform: rotateX(100deg), scale(0.5);
135
+ opacity: 0; }
136
+
137
+ 100% {
138
+ transform: rotateX(0deg), scale(0.5);
139
+ -webkit-transform: rotateX(0deg), scale(0.5);
140
+ opacity: 1; } }
@@ -0,0 +1,177 @@
1
+ // Twitter Theme for SweetAlert
2
+ // By Tristan Edwards
3
+
4
+ .sweet-overlay {
5
+ background: rgba(41,47,51,0.9);
6
+ }
7
+
8
+
9
+ .sweet-alert {
10
+ $header-height: 40px;
11
+ $footer-height: 66px;
12
+ $text-color: #66757f;
13
+ $padding: 15px;
14
+
15
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
16
+ padding: $padding;
17
+ padding-top: $header-height + $padding;
18
+ text-align: right; // Align buttons
19
+ border-radius: 6px;
20
+ box-shadow: 0px 0px 0px 1px rgba(black, 0.11), 0px 6px 30px rgba(black, 0.14);
21
+
22
+ h2 {
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ right: 0;
27
+ height: $header-height;
28
+ line-height: $header-height;
29
+ font-size: 16px;
30
+ font-weight: 400;
31
+ color: #8899a6;
32
+ margin: 0;
33
+ color: $text-color;
34
+ border-bottom: 1px solid #e1e8ed;
35
+ }
36
+
37
+ p {
38
+ display: block;
39
+ text-align: center;
40
+ color: #66757f;
41
+ font-weight: 400;
42
+ font-size: 13px;
43
+ margin-top: 7px;
44
+ }
45
+
46
+ .sa-button-container {
47
+ background-color: #f5f8fa;
48
+ border-top: 1px solid #e1e8ed;
49
+ box-shadow: 0px -1px 0px white;
50
+ margin: -$padding;
51
+ margin-top: 0;
52
+ }
53
+ &[data-has-confirm-button=false][data-has-cancel-button=false] {
54
+ padding-bottom: 10px;
55
+ .sa-button-container {
56
+ display: none;
57
+ }
58
+ }
59
+
60
+ button {
61
+ border-radius: 2px;
62
+ box-shadow: none !important;
63
+ text-shadow: 0px -1px 0px rgba(black, 0.3);
64
+ margin: 17px 0px;
65
+ border-radius: 4px;
66
+ font-size: 14px;
67
+ font-weight: 600;
68
+ padding: 8px 16px;
69
+ position: relative;
70
+ &:focus, &.cancel:focus {
71
+ box-shadow: none !important;
72
+ &::before {
73
+ content: "";
74
+ position: absolute;
75
+ left: -5px;
76
+ top: -5px;
77
+ right: -5px;
78
+ bottom: -5px;
79
+ border: 2px solid #a5b0b4;
80
+ border-radius: 8px;
81
+ }
82
+ }
83
+
84
+ &.confirm {
85
+ background-color: #55acee !important;
86
+ background-image: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.05));
87
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#0C000000)";
88
+ border: 1px solid #3b88c3;
89
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.15);
90
+ margin-right: $padding;
91
+ &:hover {
92
+ background-color: #55acee;
93
+ background-image: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.15));
94
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)";
95
+ border-color: #3b88c3;
96
+ }
97
+ }
98
+ &.cancel {
99
+ color: #66757e;
100
+ background-color: #f5f8fa;
101
+ background-image: linear-gradient(#fff,#f5f8fa);
102
+ text-shadow: 0px -1px 0px white;
103
+ margin-right: 9px;
104
+ border: 1px solid #e1e8ed;
105
+ &:hover, &:focus:hover {
106
+ background-color: #e1e8ed;
107
+ background-image: linear-gradient(#fff,#e1e8ed);
108
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";
109
+ border-color: #e1e8ed;
110
+ }
111
+ &:focus {
112
+ background: #fff;
113
+ border-color: #fff;
114
+ }
115
+ }
116
+ }
117
+
118
+ .sa-icon:not(.sa-custom) {
119
+ transform: scale(0.72);
120
+ margin-bottom: -2px;
121
+ margin-top: -10px;
122
+ }
123
+
124
+ input {
125
+ border: 1px solid #e1e8ed;
126
+ border-radius: 3px;
127
+ padding: 10px 7px;
128
+ height: auto;
129
+ box-shadow: none;
130
+ font-size: 13px;
131
+ margin: 10px 0;
132
+ &:focus {
133
+ border-color: #94A1A6;
134
+ box-shadow: inset 0 0 0 1px rgba(77, 99, 107, 0.7);
135
+ }
136
+ }
137
+
138
+ fieldset .sa-input-error {
139
+ display: none;
140
+ }
141
+
142
+ .sa-error-container {
143
+ text-align: center;
144
+ border: none;
145
+ background-color: #fbedc0;
146
+ margin-bottom: 6px;
147
+ &.show {
148
+ border: 1px solid #f0e1b9;
149
+ }
150
+
151
+ .icon {
152
+ display: none;
153
+ }
154
+ p {
155
+ color: #292f33;
156
+ font-weight: 600;
157
+ margin-top: 0;
158
+ }
159
+ }
160
+ }
161
+
162
+
163
+ // Animations
164
+
165
+ @mixin keyframes($animation-name) {
166
+ @-webkit-keyframes #{$animation-name} {
167
+ @content;
168
+ }
169
+ @keyframes #{$animation-name} {
170
+ @content;
171
+ }
172
+ }
173
+
174
+ @include keyframes(animateErrorIcon) {
175
+ 0% { transform: rotateX(100deg), scale(0.5); -webkit-transform: rotateX(100deg), scale(0.5); opacity: 0; }
176
+ 100% { transform: rotateX(0deg), scale(0.5); -webkit-transform: rotateX(0deg), scale(0.5); opacity: 1; }
177
+ }