less-rails-semantic_ui 1.12.3.0 → 2.0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +4 -4
  2. data/assets/javascripts/semantic_ui/definitions/behaviors/api.js +394 -188
  3. data/assets/javascripts/semantic_ui/definitions/behaviors/colorize.js +4 -2
  4. data/assets/javascripts/semantic_ui/definitions/behaviors/form.js +263 -125
  5. data/assets/javascripts/semantic_ui/definitions/behaviors/state.js +3 -3
  6. data/assets/javascripts/semantic_ui/definitions/behaviors/visibility.js +213 -96
  7. data/assets/javascripts/semantic_ui/definitions/behaviors/visit.js +6 -4
  8. data/assets/javascripts/semantic_ui/definitions/globals/site.js +4 -4
  9. data/assets/javascripts/semantic_ui/definitions/modules/accordion.js +66 -52
  10. data/assets/javascripts/semantic_ui/definitions/modules/checkbox.js +309 -112
  11. data/assets/javascripts/semantic_ui/definitions/modules/dimmer.js +24 -26
  12. data/assets/javascripts/semantic_ui/definitions/modules/dropdown.js +2005 -590
  13. data/assets/javascripts/semantic_ui/definitions/modules/embed.js +662 -0
  14. data/assets/javascripts/semantic_ui/definitions/modules/modal.js +106 -79
  15. data/assets/javascripts/semantic_ui/definitions/modules/nag.js +7 -8
  16. data/assets/javascripts/semantic_ui/definitions/modules/popup.js +323 -194
  17. data/assets/javascripts/semantic_ui/definitions/modules/progress.js +111 -103
  18. data/assets/javascripts/semantic_ui/definitions/modules/rating.js +78 -54
  19. data/assets/javascripts/semantic_ui/definitions/modules/search.js +304 -122
  20. data/assets/javascripts/semantic_ui/definitions/modules/shape.js +93 -47
  21. data/assets/javascripts/semantic_ui/definitions/modules/sidebar.js +83 -149
  22. data/assets/javascripts/semantic_ui/definitions/modules/sticky.js +99 -29
  23. data/assets/javascripts/semantic_ui/definitions/modules/tab.js +219 -124
  24. data/assets/javascripts/semantic_ui/definitions/modules/transition.js +202 -171
  25. data/assets/stylesheets/semantic_ui/definitions/collections/breadcrumb.less +2 -1
  26. data/assets/stylesheets/semantic_ui/definitions/collections/form.less +135 -58
  27. data/assets/stylesheets/semantic_ui/definitions/collections/grid.less +366 -383
  28. data/assets/stylesheets/semantic_ui/definitions/collections/menu.less +838 -631
  29. data/assets/stylesheets/semantic_ui/definitions/collections/message.less +89 -71
  30. data/assets/stylesheets/semantic_ui/definitions/collections/table.less +183 -131
  31. data/assets/stylesheets/semantic_ui/definitions/elements/button.less +1097 -300
  32. data/assets/stylesheets/semantic_ui/definitions/elements/container.less +135 -0
  33. data/assets/stylesheets/semantic_ui/definitions/elements/divider.less +31 -30
  34. data/assets/stylesheets/semantic_ui/definitions/elements/flag.less +1 -1
  35. data/assets/stylesheets/semantic_ui/definitions/elements/header.less +209 -121
  36. data/assets/stylesheets/semantic_ui/definitions/elements/icon.less +201 -96
  37. data/assets/stylesheets/semantic_ui/definitions/elements/image.less +26 -11
  38. data/assets/stylesheets/semantic_ui/definitions/elements/input.less +49 -14
  39. data/assets/stylesheets/semantic_ui/definitions/elements/label.less +391 -221
  40. data/assets/stylesheets/semantic_ui/definitions/elements/list.less +107 -68
  41. data/assets/stylesheets/semantic_ui/definitions/elements/loader.less +3 -1
  42. data/assets/stylesheets/semantic_ui/definitions/elements/rail.less +34 -25
  43. data/assets/stylesheets/semantic_ui/definitions/elements/reveal.less +25 -10
  44. data/assets/stylesheets/semantic_ui/definitions/elements/segment.less +261 -173
  45. data/assets/stylesheets/semantic_ui/definitions/elements/step.less +169 -70
  46. data/assets/stylesheets/semantic_ui/definitions/globals/reset.less +1 -1
  47. data/assets/stylesheets/semantic_ui/definitions/globals/site.less +3 -1
  48. data/assets/stylesheets/semantic_ui/definitions/modules/accordion.less +1 -2
  49. data/assets/stylesheets/semantic_ui/definitions/modules/checkbox.less +175 -103
  50. data/assets/stylesheets/semantic_ui/definitions/modules/dimmer.less +26 -15
  51. data/assets/stylesheets/semantic_ui/definitions/modules/dropdown.less +349 -80
  52. data/assets/stylesheets/semantic_ui/definitions/modules/embed.less +174 -0
  53. data/assets/stylesheets/semantic_ui/definitions/modules/modal.less +83 -36
  54. data/assets/stylesheets/semantic_ui/definitions/modules/nag.less +1 -1
  55. data/assets/stylesheets/semantic_ui/definitions/modules/popup.less +48 -7
  56. data/assets/stylesheets/semantic_ui/definitions/modules/progress.less +160 -107
  57. data/assets/stylesheets/semantic_ui/definitions/modules/rating.less +57 -54
  58. data/assets/stylesheets/semantic_ui/definitions/modules/search.less +55 -10
  59. data/assets/stylesheets/semantic_ui/definitions/modules/shape.less +5 -6
  60. data/assets/stylesheets/semantic_ui/definitions/modules/sidebar.less +9 -5
  61. data/assets/stylesheets/semantic_ui/definitions/modules/sticky.less +1 -1
  62. data/assets/stylesheets/semantic_ui/definitions/modules/tab.less +1 -1
  63. data/assets/stylesheets/semantic_ui/definitions/modules/transition.less +3 -4
  64. data/assets/stylesheets/semantic_ui/definitions/views/card.less +240 -130
  65. data/assets/stylesheets/semantic_ui/definitions/views/comment.less +1 -1
  66. data/assets/stylesheets/semantic_ui/definitions/views/feed.less +15 -8
  67. data/assets/stylesheets/semantic_ui/definitions/views/item.less +13 -13
  68. data/assets/stylesheets/semantic_ui/definitions/views/statistic.less +230 -86
  69. data/assets/stylesheets/semantic_ui/theme.less +22 -15
  70. data/assets/stylesheets/semantic_ui/themes/amazon/elements/button.overrides +5 -5
  71. data/assets/stylesheets/semantic_ui/themes/amazon/elements/button.variables +5 -4
  72. data/assets/stylesheets/semantic_ui/themes/basic/collections/table.variables +1 -0
  73. data/assets/stylesheets/semantic_ui/themes/basic/views/card.variables +6 -4
  74. data/assets/stylesheets/semantic_ui/themes/bookish/elements/header.variables +4 -4
  75. data/assets/stylesheets/semantic_ui/themes/bootstrap3/elements/button.variables +1 -1
  76. data/assets/stylesheets/semantic_ui/themes/chubby/collections/form.overrides +8 -0
  77. data/assets/stylesheets/semantic_ui/themes/chubby/collections/menu.overrides +0 -0
  78. data/assets/stylesheets/semantic_ui/themes/chubby/collections/menu.variables +40 -0
  79. data/assets/stylesheets/semantic_ui/themes/classic/modules/progress.variables +1 -0
  80. data/assets/stylesheets/semantic_ui/themes/classic/views/card.overrides +1 -1
  81. data/assets/stylesheets/semantic_ui/themes/colored/modules/checkbox.overrides +0 -0
  82. data/assets/stylesheets/semantic_ui/themes/colored/modules/checkbox.variables +17 -0
  83. data/assets/stylesheets/semantic_ui/themes/default/collections/breadcrumb.overrides +0 -0
  84. data/assets/stylesheets/semantic_ui/themes/default/collections/breadcrumb.variables +5 -15
  85. data/assets/stylesheets/semantic_ui/themes/default/collections/form.overrides +0 -0
  86. data/assets/stylesheets/semantic_ui/themes/default/collections/form.variables +31 -35
  87. data/assets/stylesheets/semantic_ui/themes/default/collections/grid.overrides +0 -0
  88. data/assets/stylesheets/semantic_ui/themes/default/collections/grid.variables +34 -28
  89. data/assets/stylesheets/semantic_ui/themes/default/collections/menu.overrides +0 -0
  90. data/assets/stylesheets/semantic_ui/themes/default/collections/menu.variables +259 -163
  91. data/assets/stylesheets/semantic_ui/themes/default/collections/message.overrides +0 -0
  92. data/assets/stylesheets/semantic_ui/themes/default/collections/message.variables +42 -19
  93. data/assets/stylesheets/semantic_ui/themes/default/collections/table.overrides +0 -3
  94. data/assets/stylesheets/semantic_ui/themes/default/collections/table.variables +63 -59
  95. data/assets/stylesheets/semantic_ui/themes/default/elements/button.overrides +0 -0
  96. data/assets/stylesheets/semantic_ui/themes/default/elements/button.variables +90 -50
  97. data/assets/stylesheets/semantic_ui/themes/default/elements/container.overrides +3 -0
  98. data/assets/stylesheets/semantic_ui/themes/default/elements/container.variables +45 -0
  99. data/assets/stylesheets/semantic_ui/themes/default/elements/divider.overrides +15 -0
  100. data/assets/stylesheets/semantic_ui/themes/default/elements/divider.variables +3 -4
  101. data/assets/stylesheets/semantic_ui/themes/default/elements/flag.overrides +0 -0
  102. data/assets/stylesheets/semantic_ui/themes/default/elements/header.overrides +0 -0
  103. data/assets/stylesheets/semantic_ui/themes/default/elements/header.variables +40 -36
  104. data/assets/stylesheets/semantic_ui/themes/default/elements/icon.overrides +4 -3
  105. data/assets/stylesheets/semantic_ui/themes/default/elements/icon.variables +29 -12
  106. data/assets/stylesheets/semantic_ui/themes/default/elements/image.overrides +0 -0
  107. data/assets/stylesheets/semantic_ui/themes/default/elements/image.variables +5 -3
  108. data/assets/stylesheets/semantic_ui/themes/default/elements/input.overrides +0 -0
  109. data/assets/stylesheets/semantic_ui/themes/default/elements/input.variables +10 -24
  110. data/assets/stylesheets/semantic_ui/themes/default/elements/label.overrides +0 -0
  111. data/assets/stylesheets/semantic_ui/themes/default/elements/label.variables +88 -35
  112. data/assets/stylesheets/semantic_ui/themes/default/elements/list.overrides +0 -0
  113. data/assets/stylesheets/semantic_ui/themes/default/elements/list.variables +53 -34
  114. data/assets/stylesheets/semantic_ui/themes/default/elements/loader.overrides +0 -0
  115. data/assets/stylesheets/semantic_ui/themes/default/elements/loader.variables +9 -10
  116. data/assets/stylesheets/semantic_ui/themes/default/elements/rail.overrides +0 -0
  117. data/assets/stylesheets/semantic_ui/themes/default/elements/rail.variables +13 -5
  118. data/assets/stylesheets/semantic_ui/themes/default/elements/reveal.overrides +0 -0
  119. data/assets/stylesheets/semantic_ui/themes/default/elements/reveal.variables +6 -4
  120. data/assets/stylesheets/semantic_ui/themes/default/elements/segment.overrides +0 -0
  121. data/assets/stylesheets/semantic_ui/themes/default/elements/segment.variables +66 -28
  122. data/assets/stylesheets/semantic_ui/themes/default/elements/step.overrides +0 -0
  123. data/assets/stylesheets/semantic_ui/themes/default/elements/step.variables +60 -31
  124. data/assets/stylesheets/semantic_ui/themes/default/globals/reset.overrides +0 -0
  125. data/assets/stylesheets/semantic_ui/themes/default/globals/site.variables +477 -303
  126. data/assets/stylesheets/semantic_ui/themes/default/modules/accordion.overrides +0 -0
  127. data/assets/stylesheets/semantic_ui/themes/default/modules/accordion.variables +6 -7
  128. data/assets/stylesheets/semantic_ui/themes/default/modules/chatroom.overrides +0 -0
  129. data/assets/stylesheets/semantic_ui/themes/default/modules/checkbox.overrides +19 -16
  130. data/assets/stylesheets/semantic_ui/themes/default/modules/checkbox.variables +71 -43
  131. data/assets/stylesheets/semantic_ui/themes/default/modules/dimmer.overrides +0 -0
  132. data/assets/stylesheets/semantic_ui/themes/default/modules/dimmer.variables +12 -9
  133. data/assets/stylesheets/semantic_ui/themes/default/modules/dropdown.overrides +0 -5
  134. data/assets/stylesheets/semantic_ui/themes/default/modules/dropdown.variables +146 -64
  135. data/assets/stylesheets/semantic_ui/themes/default/modules/{video.overrides → embed.overrides} +0 -0
  136. data/assets/stylesheets/semantic_ui/themes/default/modules/embed.variables +53 -0
  137. data/assets/stylesheets/semantic_ui/themes/default/modules/modal.overrides +0 -0
  138. data/assets/stylesheets/semantic_ui/themes/default/modules/modal.variables +24 -18
  139. data/assets/stylesheets/semantic_ui/themes/default/modules/nag.overrides +0 -0
  140. data/assets/stylesheets/semantic_ui/themes/default/modules/popup.overrides +0 -0
  141. data/assets/stylesheets/semantic_ui/themes/default/modules/popup.variables +3 -9
  142. data/assets/stylesheets/semantic_ui/themes/default/modules/progress.variables +13 -7
  143. data/assets/stylesheets/semantic_ui/themes/default/modules/rating.overrides +0 -0
  144. data/assets/stylesheets/semantic_ui/themes/default/modules/rating.variables +71 -33
  145. data/assets/stylesheets/semantic_ui/themes/default/modules/search.overrides +0 -0
  146. data/assets/stylesheets/semantic_ui/themes/default/modules/search.variables +36 -34
  147. data/assets/stylesheets/semantic_ui/themes/default/modules/shape.overrides +0 -0
  148. data/assets/stylesheets/semantic_ui/themes/default/modules/shape.variables +7 -2
  149. data/assets/stylesheets/semantic_ui/themes/default/modules/sidebar.overrides +0 -0
  150. data/assets/stylesheets/semantic_ui/themes/default/modules/sidebar.variables +2 -5
  151. data/assets/stylesheets/semantic_ui/themes/default/modules/sticky.overrides +0 -0
  152. data/assets/stylesheets/semantic_ui/themes/default/modules/sticky.variables +2 -7
  153. data/assets/stylesheets/semantic_ui/themes/default/modules/tab.variables +1 -3
  154. data/assets/stylesheets/semantic_ui/themes/default/modules/transition.overrides +8 -9
  155. data/assets/stylesheets/semantic_ui/themes/default/views/ad.variables +2 -2
  156. data/assets/stylesheets/semantic_ui/themes/default/views/card.variables +33 -23
  157. data/assets/stylesheets/semantic_ui/themes/default/views/comment.overrides +0 -0
  158. data/assets/stylesheets/semantic_ui/themes/default/views/feed.overrides +0 -0
  159. data/assets/stylesheets/semantic_ui/themes/default/views/feed.variables +15 -23
  160. data/assets/stylesheets/semantic_ui/themes/default/views/item.overrides +0 -0
  161. data/assets/stylesheets/semantic_ui/themes/default/views/item.variables +12 -11
  162. data/assets/stylesheets/semantic_ui/themes/default/views/statistic.overrides +0 -0
  163. data/assets/stylesheets/semantic_ui/themes/default/views/statistic.variables +25 -24
  164. data/assets/stylesheets/semantic_ui/themes/flat/collections/form.overrides +4 -0
  165. data/assets/stylesheets/semantic_ui/themes/flat/collections/form.variables +1 -2
  166. data/assets/stylesheets/semantic_ui/themes/flat/globals/site.variables +1 -0
  167. data/assets/stylesheets/semantic_ui/themes/github/collections/form.variables +1 -1
  168. data/assets/stylesheets/semantic_ui/themes/github/collections/menu.variables +10 -15
  169. data/assets/stylesheets/semantic_ui/themes/github/elements/button.variables +2 -2
  170. data/assets/stylesheets/semantic_ui/themes/github/elements/step.variables +2 -2
  171. data/assets/stylesheets/semantic_ui/themes/instagram/views/card.overrides +12 -0
  172. data/assets/stylesheets/semantic_ui/themes/instagram/views/card.variables +23 -0
  173. data/assets/stylesheets/semantic_ui/themes/material/collections/menu.overrides +1 -0
  174. data/assets/stylesheets/semantic_ui/themes/material/collections/menu.variables +10 -0
  175. data/assets/stylesheets/semantic_ui/themes/material/elements/button.overrides +1 -0
  176. data/assets/stylesheets/semantic_ui/themes/material/elements/button.variables +14 -6
  177. data/assets/stylesheets/semantic_ui/themes/material/globals/site.variables +3 -2
  178. data/assets/stylesheets/semantic_ui/themes/material/modules/dropdown.overrides +5 -0
  179. data/assets/stylesheets/semantic_ui/themes/material/modules/dropdown.variables +20 -0
  180. data/assets/stylesheets/semantic_ui/themes/raised/elements/button.variables +5 -5
  181. data/assets/stylesheets/semantic_ui/themes/round/elements/button.variables +1 -1
  182. data/assets/stylesheets/semantic_ui/themes/timeline/views/feed.overrides +4 -12
  183. data/assets/stylesheets/semantic_ui/themes/timeline/views/feed.variables +3 -7
  184. data/lib/generators/semantic_ui/install/templates/config/elements/container.overrides +3 -0
  185. data/lib/generators/semantic_ui/install/templates/config/elements/container.variables +3 -0
  186. data/lib/generators/semantic_ui/install/templates/config/modules/embed.overrides +3 -0
  187. data/lib/generators/semantic_ui/install/templates/config/modules/embed.variables +0 -0
  188. data/lib/generators/semantic_ui/install/templates/semantic_ui.css +2 -1
  189. data/lib/generators/semantic_ui/install/templates/semantic_ui.js +1 -1
  190. data/lib/generators/semantic_ui/install/templates/theme.config +5 -3
  191. data/lib/less/rails/semantic_ui/version.rb +1 -1
  192. data/tasks/update.rake +21 -6
  193. metadata +23 -7
  194. data/assets/fonts/semantic_ui/themes/default/assets/fonts/icons.otf +0 -0
  195. data/assets/javascripts/semantic_ui/definitions/modules/video.js +0 -540
  196. data/assets/stylesheets/semantic_ui/definitions/modules/video.less +0 -135
  197. data/assets/stylesheets/semantic_ui/themes/default/modules/video.variables +0 -16
@@ -3,7 +3,7 @@
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2014 Contributors
6
+ * Copyright 2015 Contributors
7
7
  * Released under the MIT license
8
8
  * http://opensource.org/licenses/MIT
9
9
  *
@@ -47,7 +47,6 @@ $.fn.transition = function() {
47
47
  error,
48
48
  className,
49
49
  metadata,
50
- animationStart,
51
50
  animationEnd,
52
51
  animationName,
53
52
 
@@ -76,8 +75,6 @@ $.fn.transition = function() {
76
75
 
77
76
  // get vendor specific events
78
77
  animationEnd = module.get.animationEndEvent();
79
- animationName = module.get.animationName();
80
- animationStart = module.get.animationStartEvent();
81
78
 
82
79
  if(methodInvoked) {
83
80
  methodInvoked = module.invoke(query);
@@ -139,15 +136,22 @@ $.fn.transition = function() {
139
136
 
140
137
  delay: function(interval) {
141
138
  var
142
- isReverse = (settings.reverse === true),
143
- shouldReverse = (settings.reverse == 'auto' && module.get.direction() == className.outward),
139
+ direction = module.get.animationDirection(),
140
+ shouldReverse,
144
141
  delay
145
142
  ;
146
- interval = (typeof interval !== undefined)
143
+ if(!direction) {
144
+ direction = module.can.transition()
145
+ ? module.get.direction()
146
+ : 'static'
147
+ ;
148
+ }
149
+ interval = (interval !== undefined)
147
150
  ? interval
148
151
  : settings.interval
149
152
  ;
150
- delay = (isReverse || shouldReverse)
153
+ shouldReverse = (settings.reverse == 'auto' && direction == className.outward);
154
+ delay = (shouldReverse || settings.reverse == true)
151
155
  ? ($allModules.length - index) * settings.interval
152
156
  : index * settings.interval
153
157
  ;
@@ -178,7 +182,7 @@ $.fn.transition = function() {
178
182
  }
179
183
  else {
180
184
  module.debug('New animation started, completing previous early', settings.animation);
181
- module.complete();
185
+ instance.complete();
182
186
  }
183
187
  }
184
188
  if( module.can.animate() ) {
@@ -217,21 +221,56 @@ $.fn.transition = function() {
217
221
  module.verbose('Animation is outward, hiding element');
218
222
  module.restore.conditions();
219
223
  module.hide();
220
- settings.onHide.call(this);
221
224
  }
222
225
  else if( module.is.inward() ) {
223
226
  module.verbose('Animation is outward, showing element');
224
227
  module.restore.conditions();
225
228
  module.show();
226
- settings.onShow.call(this);
227
229
  }
228
230
  else {
229
231
  module.restore.conditions();
230
232
  }
231
- module.remove.animation();
232
- module.remove.animating();
233
233
  }
234
- settings.onComplete.call(this);
234
+ },
235
+
236
+ force: {
237
+ visible: function() {
238
+ var
239
+ style = $module.attr('style'),
240
+ userStyle = module.get.userStyle(),
241
+ displayType = module.get.displayType(),
242
+ overrideStyle = userStyle + 'display: ' + displayType + ' !important;',
243
+ currentDisplay = $module.css('display'),
244
+ emptyStyle = (style === undefined || style === '')
245
+ ;
246
+ if(currentDisplay !== displayType) {
247
+ module.verbose('Overriding default display to show element', displayType);
248
+ $module
249
+ .attr('style', overrideStyle)
250
+ ;
251
+ }
252
+ else if(emptyStyle) {
253
+ $module.removeAttr('style');
254
+ }
255
+ },
256
+ hidden: function() {
257
+ var
258
+ style = $module.attr('style'),
259
+ currentDisplay = $module.css('display'),
260
+ emptyStyle = (style === undefined || style === '')
261
+ ;
262
+ if(currentDisplay !== 'none' && !module.is.hidden()) {
263
+ module.verbose('Overriding default display to hide element');
264
+ $module
265
+ .css('display', 'none')
266
+ ;
267
+ }
268
+ else if(emptyStyle) {
269
+ $module
270
+ .removeAttr('style')
271
+ ;
272
+ }
273
+ }
235
274
  },
236
275
 
237
276
  has: {
@@ -260,28 +299,28 @@ $.fn.transition = function() {
260
299
 
261
300
  set: {
262
301
  animating: function(animation) {
263
- animation = animation || settings.animation;
264
- if(!module.is.animating()) {
265
- module.save.conditions();
266
- }
267
- module.remove.direction();
302
+ var
303
+ animationClass,
304
+ direction
305
+ ;
306
+ // remove previous callbacks
268
307
  module.remove.completeCallback();
269
- if(module.can.transition() && !module.has.direction()) {
270
- module.set.direction();
271
- }
308
+
309
+ // determine exact animation
310
+ animation = animation || settings.animation;
311
+ animationClass = module.get.animationClass(animation);
312
+
313
+ // save animation class in cache to restore class names
314
+ module.save.animation(animationClass);
315
+
316
+ // override display if necessary so animation appears visibly
317
+ module.force.visible();
318
+
272
319
  module.remove.hidden();
273
- module.set.display();
274
- $module
275
- .addClass(className.animating + ' ' + className.transition + ' ' + animation)
276
- .addClass(animation)
277
- .one(animationEnd + '.complete' + eventNamespace, module.complete)
278
- ;
279
- if(settings.useFailSafe) {
280
- module.add.failSafe();
281
- }
282
- module.set.duration(settings.duration);
283
- settings.onStart.call(this);
284
- module.debug('Starting tween', animation, $module.attr('class'));
320
+ module.remove.direction();
321
+
322
+ module.start.animation(animationClass);
323
+
285
324
  },
286
325
  duration: function(animationName, duration) {
287
326
  duration = duration || settings.duration;
@@ -293,44 +332,18 @@ $.fn.transition = function() {
293
332
  module.verbose('Setting animation duration', duration);
294
333
  $module
295
334
  .css({
296
- '-webkit-animation-duration': duration,
297
- '-moz-animation-duration': duration,
298
- '-ms-animation-duration': duration,
299
- '-o-animation-duration': duration,
300
335
  'animation-duration': duration
301
336
  })
302
337
  ;
303
338
  }
304
339
  },
305
- display: function() {
306
- var
307
- style = module.get.style(),
308
- displayType = module.get.displayType(),
309
- overrideStyle = style + 'display: ' + displayType + ' !important;'
310
- ;
311
- $module.css('display', '');
312
- module.refresh();
313
- if( $module.css('display') !== displayType ) {
314
- module.verbose('Setting inline visibility to', displayType);
315
- $module
316
- .attr('style', overrideStyle)
317
- ;
318
- }
319
- },
320
- direction: function() {
321
- if($module.is(':visible') && !module.is.hidden()) {
322
- module.debug('Automatically determining the direction of animation', 'Outward');
323
- $module
324
- .removeClass(className.inward)
325
- .addClass(className.outward)
326
- ;
340
+ direction: function(direction) {
341
+ direction = direction || module.get.direction();
342
+ if(direction == className.inward) {
343
+ module.set.inward();
327
344
  }
328
345
  else {
329
- module.debug('Automatically determining the direction of animation', 'Inward');
330
- $module
331
- .removeClass(className.outward)
332
- .addClass(className.inward)
333
- ;
346
+ module.set.outward();
334
347
  }
335
348
  },
336
349
  looping: function() {
@@ -340,18 +353,24 @@ $.fn.transition = function() {
340
353
  ;
341
354
  },
342
355
  hidden: function() {
343
- if(!module.is.hidden()) {
344
- $module
345
- .addClass(className.transition)
346
- .addClass(className.hidden)
347
- ;
348
- }
349
- if($module.css('display') !== 'none') {
350
- module.verbose('Overriding default display to hide element');
351
- $module
352
- .css('display', 'none')
353
- ;
354
- }
356
+ $module
357
+ .addClass(className.transition)
358
+ .addClass(className.hidden)
359
+ ;
360
+ },
361
+ inward: function() {
362
+ module.debug('Setting direction to inward');
363
+ $module
364
+ .removeClass(className.outward)
365
+ .addClass(className.inward)
366
+ ;
367
+ },
368
+ outward: function() {
369
+ module.debug('Setting direction to outward');
370
+ $module
371
+ .removeClass(className.inward)
372
+ .addClass(className.outward)
373
+ ;
355
374
  },
356
375
  visible: function() {
357
376
  $module
@@ -361,49 +380,52 @@ $.fn.transition = function() {
361
380
  }
362
381
  },
363
382
 
383
+ start: {
384
+ animation: function(animationClass) {
385
+ animationClass = animationClass || module.get.animationClass();
386
+ module.debug('Starting tween', animationClass);
387
+ $module
388
+ .addClass(animationClass)
389
+ .one(animationEnd + '.complete' + eventNamespace, module.complete)
390
+ ;
391
+ if(settings.useFailSafe) {
392
+ module.add.failSafe();
393
+ }
394
+ module.set.duration(settings.duration);
395
+ settings.onStart.call(this);
396
+ }
397
+ },
398
+
364
399
  save: {
400
+ animation: function(animation) {
401
+ if(!module.cache) {
402
+ module.cache = {};
403
+ }
404
+ module.cache.animation = animation;
405
+ },
365
406
  displayType: function(displayType) {
366
- $module.data(metadata.displayType, displayType);
407
+ if(displayType !== 'none') {
408
+ $module.data(metadata.displayType, displayType);
409
+ }
367
410
  },
368
411
  transitionExists: function(animation, exists) {
369
412
  $.fn.transition.exists[animation] = exists;
370
413
  module.verbose('Saving existence of transition', animation, exists);
371
- },
372
- conditions: function() {
373
- var
374
- clasName = $module.attr('class') || false,
375
- style = $module.attr('style') || ''
376
- ;
377
- $module.removeClass(settings.animation);
378
- module.remove.direction();
379
- module.cache = {
380
- className : $module.attr('class'),
381
- style : module.get.style()
382
- };
383
- module.verbose('Saving original attributes', module.cache);
384
414
  }
385
415
  },
386
416
 
387
417
  restore: {
388
418
  conditions: function() {
389
- if(module.cache === undefined) {
390
- return false;
391
- }
392
- if(module.cache.className) {
393
- $module.attr('class', module.cache.className);
394
- }
395
- else {
396
- $module.removeAttr('class');
397
- }
398
- if(module.cache.style) {
399
- module.verbose('Restoring original style attribute', module.cache.style);
400
- $module.attr('style', module.cache.style);
401
- }
402
- else {
403
- module.verbose('Clearing style attribute');
404
- $module.removeAttr('style');
419
+ var
420
+ animation = module.get.currentAnimation()
421
+ ;
422
+ if(animation) {
423
+ $module
424
+ .removeClass(animation)
425
+ ;
426
+ module.verbose('Removing animation class', module.cache);
405
427
  }
406
- module.verbose('Restoring original attributes', module.cache);
428
+ module.remove.duration();
407
429
  }
408
430
  },
409
431
 
@@ -413,7 +435,7 @@ $.fn.transition = function() {
413
435
  duration = module.get.duration()
414
436
  ;
415
437
  module.timer = setTimeout(function() {
416
- $module.trigger(animationEnd);
438
+ $module.triggerHandler(animationEnd);
417
439
  }, duration + settings.failSafeDelay);
418
440
  module.verbose('Adding fail safe timer', module.timer);
419
441
  }
@@ -423,23 +445,12 @@ $.fn.transition = function() {
423
445
  animating: function() {
424
446
  $module.removeClass(className.animating);
425
447
  },
426
- animation: function() {
427
- $module
428
- .css({
429
- '-webkit-animation' : '',
430
- '-moz-animation' : '',
431
- '-ms-animation' : '',
432
- '-o-animation' : '',
433
- 'animation' : ''
434
- })
435
- ;
436
- },
437
448
  animationCallbacks: function() {
438
449
  module.remove.queueCallback();
439
450
  module.remove.completeCallback();
440
451
  },
441
452
  queueCallback: function() {
442
- $module.off('.queue' + eventNamespace)
453
+ $module.off('.queue' + eventNamespace);
443
454
  },
444
455
  completeCallback: function() {
445
456
  $module.off('.complete' + eventNamespace);
@@ -453,6 +464,11 @@ $.fn.transition = function() {
453
464
  .removeClass(className.outward)
454
465
  ;
455
466
  },
467
+ duration: function() {
468
+ $module
469
+ .css('animation-duration', '')
470
+ ;
471
+ },
456
472
  failSafe: function() {
457
473
  module.verbose('Removing fail safe timer', module.timer);
458
474
  if(module.timer) {
@@ -523,30 +539,56 @@ $.fn.transition = function() {
523
539
  }
524
540
  return $.fn.transition.settings;
525
541
  },
526
- direction: function(animation) {
527
- // quickest manually specified direction
542
+ animationClass: function(animation) {
543
+ var
544
+ animationClass = animation || settings.animation,
545
+ directionClass = (module.can.transition() && !module.has.direction())
546
+ ? module.get.direction() + ' '
547
+ : ''
548
+ ;
549
+ return className.animating + ' '
550
+ + className.transition + ' '
551
+ + directionClass
552
+ + animationClass
553
+ ;
554
+ },
555
+ currentAnimation: function() {
556
+ return module.cache.animation || false;
557
+ },
558
+ currentDirection: function() {
559
+ return module.is.inward()
560
+ ? className.inward
561
+ : className.outward
562
+ ;
563
+ },
564
+ direction: function() {
565
+ return module.is.hidden() || !module.is.visible()
566
+ ? className.inward
567
+ : className.outward
568
+ ;
569
+ },
570
+ animationDirection: function(animation) {
571
+ var
572
+ direction
573
+ ;
528
574
  animation = animation || settings.animation;
529
575
  if(typeof animation === 'string') {
530
576
  animation = animation.split(' ');
577
+ // search animation name for out/in class
531
578
  $.each(animation, function(index, word){
532
579
  if(word === className.inward) {
533
- return className.inward;
580
+ direction = className.inward;
534
581
  }
535
582
  else if(word === className.outward) {
536
- return className.outward;
583
+ direction = className.outward;
537
584
  }
538
585
  });
539
586
  }
540
- // slower backup
541
- if( !module.can.transition() ) {
542
- return 'static';
543
- }
544
- if($module.is(':visible') && !module.is.hidden()) {
545
- return className.outward;
546
- }
547
- else {
548
- return className.inward;
587
+ // return found direction
588
+ if(direction) {
589
+ return direction;
549
590
  }
591
+ return false;
550
592
  },
551
593
  duration: function(duration) {
552
594
  duration = duration || settings.duration;
@@ -570,33 +612,13 @@ $.fn.transition = function() {
570
612
  }
571
613
  return $module.data(metadata.displayType);
572
614
  },
573
- style: function() {
574
- var
575
- style = $module.attr('style') || ''
576
- ;
577
- return style.replace(/display.*?;/, '');
615
+ userStyle: function(style) {
616
+ style = style || $module.attr('style') || '';
617
+ return style.replace(/display.*?;/, '');;
578
618
  },
579
619
  transitionExists: function(animation) {
580
620
  return $.fn.transition.exists[animation];
581
621
  },
582
- animationName: function() {
583
- var
584
- element = document.createElement('div'),
585
- animations = {
586
- 'animation' :'animationName',
587
- 'OAnimation' :'oAnimationName',
588
- 'MozAnimation' :'mozAnimationName',
589
- 'WebkitAnimation' :'webkitAnimationName'
590
- },
591
- animation
592
- ;
593
- for(animation in animations){
594
- if( element.style[animation] !== undefined ){
595
- return animations[animation];
596
- }
597
- }
598
- return false;
599
- },
600
622
  animationStartEvent: function() {
601
623
  var
602
624
  element = document.createElement('div'),
@@ -639,10 +661,10 @@ $.fn.transition = function() {
639
661
  can: {
640
662
  transition: function(forced) {
641
663
  var
642
- elementClass = $module.attr('class'),
643
- tagName = $module.prop('tagName'),
644
664
  animation = settings.animation,
645
665
  transitionExists = module.get.transitionExists(animation),
666
+ elementClass,
667
+ tagName,
646
668
  $clone,
647
669
  currentAnimation,
648
670
  inAnimation,
@@ -651,6 +673,9 @@ $.fn.transition = function() {
651
673
  ;
652
674
  if( transitionExists === undefined || forced) {
653
675
  module.verbose('Determining whether animation exists');
676
+ elementClass = $module.attr('class');
677
+ tagName = $module.prop('tagName');
678
+
654
679
  $clone = $('<' + tagName + ' />').addClass( elementClass ).insertAfter($module);
655
680
  currentAnimation = $clone
656
681
  .addClass(animation)
@@ -658,11 +683,11 @@ $.fn.transition = function() {
658
683
  .removeClass(className.outward)
659
684
  .addClass(className.animating)
660
685
  .addClass(className.transition)
661
- .css(animationName)
686
+ .css('animationName')
662
687
  ;
663
688
  inAnimation = $clone
664
689
  .addClass(className.inward)
665
- .css(animationName)
690
+ .css('animationName')
666
691
  ;
667
692
  displayType = $clone
668
693
  .attr('class', elementClass)
@@ -726,7 +751,7 @@ $.fn.transition = function() {
726
751
  return $module.css('visibility') === 'hidden';
727
752
  },
728
753
  supported: function() {
729
- return(animationName !== false && animationEnd !== false);
754
+ return(animationEnd !== false);
730
755
  }
731
756
  },
732
757
 
@@ -735,18 +760,24 @@ $.fn.transition = function() {
735
760
  if( module.is.animating() ) {
736
761
  module.reset();
737
762
  }
763
+ element.blur(); // IE will trigger focus change if element is not blurred before hiding
738
764
  module.remove.display();
739
765
  module.remove.visible();
740
766
  module.set.hidden();
741
- module.repaint();
767
+ settings.onHide.call(this);
768
+ settings.onComplete.call(this);
769
+ module.force.hidden();
770
+ // module.repaint();
742
771
  },
743
772
 
744
773
  show: function(display) {
745
774
  module.verbose('Showing element', display);
746
775
  module.remove.hidden();
747
776
  module.set.visible();
748
- module.set.display();
749
- module.repaint();
777
+ settings.onShow.call(this);
778
+ settings.onComplete.call(this);
779
+ module.force.visible();
780
+ // module.repaint();
750
781
  },
751
782
 
752
783
  toggle: function() {
@@ -760,18 +791,18 @@ $.fn.transition = function() {
760
791
 
761
792
  stop: function() {
762
793
  module.debug('Stopping current animation');
763
- $module.trigger(animationEnd);
794
+ $module.triggerHandler(animationEnd);
764
795
  },
765
796
 
766
797
  stopAll: function() {
767
798
  module.debug('Stopping all animation');
768
799
  module.remove.queueCallback();
769
- $module.trigger(animationEnd);
800
+ $module.triggerHandler(animationEnd);
770
801
  },
771
802
 
772
803
  clear: {
773
804
  queue: function() {
774
- module.debug('Clearing animation queue')
805
+ module.debug('Clearing animation queue');
775
806
  module.remove.queueCallback();
776
807
  }
777
808
  },
@@ -855,7 +886,7 @@ $.fn.transition = function() {
855
886
  });
856
887
  }
857
888
  clearTimeout(module.performance.timer);
858
- module.performance.timer = setTimeout(module.performance.display, 100);
889
+ module.performance.timer = setTimeout(module.performance.display, 500);
859
890
  },
860
891
  display: function() {
861
892
  var
@@ -969,7 +1000,7 @@ $.fn.transition.settings = {
969
1000
  debug : false,
970
1001
 
971
1002
  // verbose debug output
972
- verbose : true,
1003
+ verbose : false,
973
1004
 
974
1005
  // performance data output
975
1006
  performance : true,
@@ -1026,7 +1057,7 @@ $.fn.transition.settings = {
1026
1057
 
1027
1058
  // possible errors
1028
1059
  error: {
1029
- noAnimation : 'There is no css animation matching the one you specified.',
1060
+ noAnimation : 'There is no css animation matching the one you specified. Please make sure your css is vendor prefixed, and you have included transition css.',
1030
1061
  repeated : 'That animation is already occurring, cancelling repeated animation',
1031
1062
  method : 'The method you called is not defined',
1032
1063
  support : 'This browser does not support CSS animations'