less-rails-semantic_ui 1.12.3.0 → 2.0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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'