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
  *
@@ -31,7 +31,9 @@ $.visit = $.fn.visit = function(parameters) {
31
31
  $allModules
32
32
  .each(function() {
33
33
  var
34
- settings = $.extend(true, {}, $.fn.visit.settings, parameters),
34
+ settings = ( $.isPlainObject(parameters) )
35
+ ? $.extend(true, {}, $.fn.visit.settings, parameters)
36
+ : $.extend({}, $.fn.visit.settings),
35
37
 
36
38
  error = settings.error,
37
39
  namespace = settings.namespace,
@@ -365,7 +367,7 @@ $.visit = $.fn.visit = function(parameters) {
365
367
  });
366
368
  }
367
369
  clearTimeout(module.performance.timer);
368
- module.performance.timer = setTimeout(module.performance.display, 100);
370
+ module.performance.timer = setTimeout(module.performance.display, 500);
369
371
  },
370
372
  display: function() {
371
373
  var
@@ -479,7 +481,7 @@ $.fn.visit.settings = {
479
481
  name : 'Visit',
480
482
 
481
483
  debug : false,
482
- verbose : true,
484
+ verbose : false,
483
485
  performance : true,
484
486
 
485
487
  namespace : 'visit',
@@ -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
  *
@@ -320,7 +320,7 @@ $.site = $.fn.site = function(parameters) {
320
320
  });
321
321
  }
322
322
  clearTimeout(module.performance.timer);
323
- module.performance.timer = setTimeout(module.performance.display, 100);
323
+ module.performance.timer = setTimeout(module.performance.display, 500);
324
324
  },
325
325
  display: function() {
326
326
  var
@@ -433,7 +433,7 @@ $.site.settings = {
433
433
  },
434
434
 
435
435
  debug : false,
436
- verbose : true,
436
+ verbose : false,
437
437
  performance : true,
438
438
 
439
439
  modules: [
@@ -442,6 +442,7 @@ $.site.settings = {
442
442
  'checkbox',
443
443
  'dimmer',
444
444
  'dropdown',
445
+ 'embed',
445
446
  'form',
446
447
  'modal',
447
448
  'nag',
@@ -453,7 +454,6 @@ $.site.settings = {
453
454
  'sticky',
454
455
  'tab',
455
456
  'transition',
456
- 'video',
457
457
  'visit',
458
458
  'visibility'
459
459
  ],
@@ -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
  *
@@ -105,7 +105,7 @@ $.fn.accordion = function(parameters) {
105
105
  events: function() {
106
106
  module.debug('Binding delegated events');
107
107
  $module
108
- .on('click' + eventNamespace, selector.trigger, module.event.click)
108
+ .on(settings.on + eventNamespace, selector.trigger, module.event.click)
109
109
  ;
110
110
  }
111
111
  },
@@ -153,54 +153,59 @@ $.fn.accordion = function(parameters) {
153
153
  $activeContent = $activeTitle.next($content),
154
154
  isAnimating = $activeContent.hasClass(className.animating),
155
155
  isActive = $activeContent.hasClass(className.active),
156
- isUnopen = (!isActive && !isAnimating)
156
+ isOpen = (isActive || isAnimating)
157
157
  ;
158
- if(isUnopen) {
159
- module.debug('Opening accordion content', $activeTitle);
160
- if(settings.exclusive) {
161
- module.closeOthers.call($activeTitle);
158
+ if(isOpen) {
159
+ module.debug('Accordion already open, skipping', $activeContent);
160
+ return;
161
+ }
162
+ module.debug('Opening accordion content', $activeTitle);
163
+ settings.onOpening.call($activeContent);
164
+ if(settings.exclusive) {
165
+ module.closeOthers.call($activeTitle);
166
+ }
167
+ $activeTitle
168
+ .addClass(className.active)
169
+ ;
170
+ $activeContent
171
+ .stop(true, true)
172
+ .addClass(className.animating)
173
+ ;
174
+ if(settings.animateChildren) {
175
+ if($.fn.transition !== undefined && $module.transition('is supported')) {
176
+ $activeContent
177
+ .children()
178
+ .transition({
179
+ animation : 'fade in',
180
+ queue : false,
181
+ useFailSafe : true,
182
+ debug : settings.debug,
183
+ verbose : settings.verbose,
184
+ duration : settings.duration
185
+ })
186
+ ;
162
187
  }
163
- $activeTitle
164
- .addClass(className.active)
165
- ;
166
- $activeContent.addClass(className.animating);
167
- if(settings.animateChildren) {
168
- if($.fn.transition !== undefined && $module.transition('is supported')) {
169
- $activeContent
170
- .children()
171
- .transition({
172
- animation : 'fade in',
173
- queue : false,
174
- useFailSafe : true,
175
- debug : settings.debug,
176
- verbose : settings.verbose,
177
- duration : settings.duration
178
- })
179
- ;
180
- }
181
- else {
182
- $activeContent
183
- .children()
184
- .stop(true)
185
- .animate({
186
- opacity: 1
187
- }, settings.duration, module.resetOpacity)
188
- ;
189
- }
188
+ else {
189
+ $activeContent
190
+ .children()
191
+ .stop(true, true)
192
+ .animate({
193
+ opacity: 1
194
+ }, settings.duration, module.resetOpacity)
195
+ ;
190
196
  }
191
- $activeContent
192
- .stop(true)
193
- .slideDown(settings.duration, settings.easing, function() {
194
- $activeContent
195
- .removeClass(className.animating)
196
- .addClass(className.active)
197
- ;
198
- module.reset.display.call(this);
199
- settings.onOpen.call(this);
200
- settings.onChange.call(this);
201
- })
202
- ;
203
197
  }
198
+ $activeContent
199
+ .slideDown(settings.duration, settings.easing, function() {
200
+ $activeContent
201
+ .removeClass(className.animating)
202
+ .addClass(className.active)
203
+ ;
204
+ module.reset.display.call(this);
205
+ settings.onOpen.call(this);
206
+ settings.onChange.call(this);
207
+ })
208
+ ;
204
209
  },
205
210
 
206
211
  close: function(query) {
@@ -218,10 +223,12 @@ $.fn.accordion = function(parameters) {
218
223
  ;
219
224
  if((isActive || isOpening) && !isClosing) {
220
225
  module.debug('Closing accordion content', $activeContent);
226
+ settings.onClosing.call($activeContent);
221
227
  $activeTitle
222
228
  .removeClass(className.active)
223
229
  ;
224
230
  $activeContent
231
+ .stop(true, true)
225
232
  .addClass(className.animating)
226
233
  ;
227
234
  if(settings.animateChildren) {
@@ -241,7 +248,7 @@ $.fn.accordion = function(parameters) {
241
248
  else {
242
249
  $activeContent
243
250
  .children()
244
- .stop(true)
251
+ .stop(true, true)
245
252
  .animate({
246
253
  opacity: 0
247
254
  }, settings.duration, module.resetOpacity)
@@ -249,7 +256,6 @@ $.fn.accordion = function(parameters) {
249
256
  }
250
257
  }
251
258
  $activeContent
252
- .stop(true)
253
259
  .slideUp(settings.duration, settings.easing, function() {
254
260
  $activeContent
255
261
  .removeClass(className.animating)
@@ -291,6 +297,10 @@ $.fn.accordion = function(parameters) {
291
297
  $openTitles
292
298
  .removeClass(className.active)
293
299
  ;
300
+ $openContents
301
+ .removeClass(className.animating)
302
+ .stop(true, true)
303
+ ;
294
304
  if(settings.animateChildren) {
295
305
  if($.fn.transition !== undefined && $module.transition('is supported')) {
296
306
  $openContents
@@ -307,7 +317,7 @@ $.fn.accordion = function(parameters) {
307
317
  else {
308
318
  $openContents
309
319
  .children()
310
- .stop()
320
+ .stop(true, true)
311
321
  .animate({
312
322
  opacity: 0
313
323
  }, settings.duration, module.resetOpacity)
@@ -315,7 +325,6 @@ $.fn.accordion = function(parameters) {
315
325
  }
316
326
  }
317
327
  $openContents
318
- .stop()
319
328
  .slideUp(settings.duration , settings.easing, function() {
320
329
  $(this).removeClass(className.active);
321
330
  module.reset.display.call(this);
@@ -422,7 +431,7 @@ $.fn.accordion = function(parameters) {
422
431
  });
423
432
  }
424
433
  clearTimeout(module.performance.timer);
425
- module.performance.timer = setTimeout(module.performance.display, 100);
434
+ module.performance.timer = setTimeout(module.performance.display, 500);
426
435
  },
427
436
  display: function() {
428
437
  var
@@ -534,9 +543,11 @@ $.fn.accordion.settings = {
534
543
  namespace : 'accordion',
535
544
 
536
545
  debug : false,
537
- verbose : true,
546
+ verbose : false,
538
547
  performance : true,
539
548
 
549
+ on : 'click',
550
+
540
551
  exclusive : true,
541
552
  collapsible : true,
542
553
  closeNested : false,
@@ -545,7 +556,10 @@ $.fn.accordion.settings = {
545
556
  duration : 350,
546
557
  easing : 'easeOutQuad',
547
558
 
559
+
560
+ onOpening : function(){},
548
561
  onOpen : function(){},
562
+ onClosing : function(){},
549
563
  onClose : function(){},
550
564
  onChange : function(){},
551
565
 
@@ -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
  *
@@ -41,8 +41,8 @@ $.fn.checkbox = function(parameters) {
41
41
  moduleNamespace = 'module-' + namespace,
42
42
 
43
43
  $module = $(this),
44
- $label = $(this).find(selector.label).first(),
45
- $input = $(this).find(selector.input),
44
+ $label = $(this).children(selector.label),
45
+ $input = $(this).children(selector.input),
46
46
 
47
47
  instance = $module.data(moduleNamespace),
48
48
 
@@ -57,23 +57,14 @@ $.fn.checkbox = function(parameters) {
57
57
  module.verbose('Initializing checkbox', settings);
58
58
 
59
59
  module.create.label();
60
- module.add.events();
60
+ module.bind.events();
61
61
 
62
- if( module.is.checked() ) {
63
- module.set.checked();
64
- if(settings.fireOnInit) {
65
- settings.onChecked.call($input.get());
66
- }
67
- }
68
- else {
69
- module.remove.checked();
70
- if(settings.fireOnInit) {
71
- settings.onUnchecked.call($input.get());
72
- }
73
- }
74
- module.observeChanges();
62
+ module.set.tabbable();
63
+ module.hide.input();
75
64
 
65
+ module.observeChanges();
76
66
  module.instantiate();
67
+ module.setup();
77
68
  },
78
69
 
79
70
  instantiate: function() {
@@ -86,16 +77,64 @@ $.fn.checkbox = function(parameters) {
86
77
 
87
78
  destroy: function() {
88
79
  module.verbose('Destroying module');
89
- module.remove.events();
90
- $module
91
- .removeData(moduleNamespace)
92
- ;
80
+ module.unbind.events();
81
+ module.show.input();
82
+ $module.removeData(moduleNamespace);
83
+ },
84
+
85
+ fix: {
86
+ reference: function() {
87
+ if( $module.is(selector.input) ) {
88
+ module.debug('Behavior called on <input> adjusting invoked element');
89
+ $module = $module.closest(selector.checkbox);
90
+ module.refresh();
91
+ }
92
+ }
93
+ },
94
+
95
+ setup: function() {
96
+ if( module.is.indeterminate() ) {
97
+ module.debug('Initial value is indeterminate');
98
+ module.set.indeterminate();
99
+ if(settings.fireOnInit) {
100
+ settings.onIndeterminate.call($input[0]);
101
+ settings.onChange.call($input[0]);
102
+ }
103
+ }
104
+ else if( module.is.checked() ) {
105
+ module.debug('Initial value is checked');
106
+ module.set.checked();
107
+ if(settings.fireOnInit) {
108
+ settings.onChecked.call($input[0]);
109
+ settings.onChange.call($input[0]);
110
+ }
111
+ }
112
+ else {
113
+ module.debug('Initial value is unchecked');
114
+ module.set.unchecked();
115
+ if(settings.fireOnInit) {
116
+ settings.onUnchecked.call($input[0]);
117
+ settings.onChange.call($input[0]);
118
+ }
119
+ }
93
120
  },
94
121
 
95
122
  refresh: function() {
96
- $module = $(element);
97
- $label = $(element).find(selector.label).first();
98
- $input = $(element).find(selector.input);
123
+ $label = $module.children(selector.label);
124
+ $input = $module.children(selector.input);
125
+ },
126
+
127
+ hide: {
128
+ input: function() {
129
+ module.verbose('Modfying <input> z-index to be unselectable');
130
+ $input.addClass(className.hidden);
131
+ }
132
+ },
133
+ show: {
134
+ input: function() {
135
+ module.verbose('Modfying <input> z-index to be selectable');
136
+ $input.removeClass(className.hidden);
137
+ }
99
138
  },
100
139
 
101
140
  observeChanges: function() {
@@ -132,6 +171,13 @@ $.fn.checkbox = function(parameters) {
132
171
  },
133
172
 
134
173
  event: {
174
+ click: function(event) {
175
+ if( $(event.target).is(selector.input) ) {
176
+ module.verbose('Using default check action on initialized checkbox');
177
+ return;
178
+ }
179
+ module.toggle();
180
+ },
135
181
  keydown: function(event) {
136
182
  var
137
183
  key = event.which,
@@ -141,27 +187,114 @@ $.fn.checkbox = function(parameters) {
141
187
  escape : 27
142
188
  }
143
189
  ;
144
- if( key == keyCode.escape) {
190
+ if(key == keyCode.escape) {
145
191
  module.verbose('Escape key pressed blurring field');
146
- $module
147
- .blur()
148
- ;
192
+ $input.blur();
193
+ event.preventDefault();
149
194
  }
150
195
  if(!event.ctrlKey && (key == keyCode.enter || key == keyCode.space)) {
151
196
  module.verbose('Enter key pressed, toggling checkbox');
152
- module.toggle.call(this);
197
+ module.toggle();
153
198
  event.preventDefault();
154
199
  }
155
200
  }
156
201
  },
157
202
 
203
+ check: function() {
204
+ if( !module.is.indeterminate() && module.is.checked() ) {
205
+ module.debug('Checkbox is already checked');
206
+ return;
207
+ }
208
+ module.debug('Checking checkbox', $input);
209
+ module.set.checked();
210
+ settings.onChecked.call($input[0]);
211
+ settings.onChange.call($input[0]);
212
+ },
213
+
214
+ uncheck: function() {
215
+ if( !module.is.indeterminate() && module.is.unchecked() ) {
216
+ module.debug('Checkbox is already unchecked');
217
+ return;
218
+ }
219
+ module.debug('Unchecking checkbox');
220
+ module.set.unchecked();
221
+ settings.onUnchecked.call($input[0]);
222
+ settings.onChange.call($input[0]);
223
+ },
224
+
225
+ indeterminate: function() {
226
+ if( module.is.indeterminate() ) {
227
+ module.debug('Checkbox is already indeterminate');
228
+ return;
229
+ }
230
+ module.debug('Making checkbox indeterminate');
231
+ module.set.indeterminate();
232
+ settings.onIndeterminate.call($input[0]);
233
+ settings.onChange.call($input[0]);
234
+ },
235
+
236
+ determinate: function() {
237
+ if( module.is.determinate() ) {
238
+ module.debug('Checkbox is already determinate');
239
+ return;
240
+ }
241
+ module.debug('Making checkbox determinate');
242
+ module.set.determinate();
243
+ settings.onDeterminate.call($input[0]);
244
+ settings.onChange.call($input[0]);
245
+ },
246
+
247
+ enable: function() {
248
+ if( module.is.enabled() ) {
249
+ module.debug('Checkbox is already enabled');
250
+ return;
251
+ }
252
+ module.debug('Enabling checkbox');
253
+ module.set.enabled();
254
+ settings.onEnable.call($input[0]);
255
+ },
256
+
257
+ disable: function() {
258
+ if( module.is.disabled() ) {
259
+ module.debug('Checkbox is already disabled');
260
+ return;
261
+ }
262
+ module.debug('Disabling checkbox');
263
+ module.set.disabled();
264
+ settings.onDisable.call($input[0]);
265
+ },
266
+
267
+ get: {
268
+ radios: function() {
269
+ var
270
+ name = module.get.name()
271
+ ;
272
+ return $('input[name="' + name + '"]').closest(selector.checkbox);
273
+ },
274
+ name: function() {
275
+ return $input.attr('name');
276
+ }
277
+ },
278
+
158
279
  is: {
159
280
  radio: function() {
160
- return $module.hasClass(className.radio);
281
+ return ($input.hasClass(className.radio) || $input.attr('type') == 'radio');
282
+ },
283
+ indeterminate: function() {
284
+ return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate');
161
285
  },
162
286
  checked: function() {
163
287
  return $input.prop('checked') !== undefined && $input.prop('checked');
164
288
  },
289
+ disabled: function() {
290
+ return $input.prop('disabled') !== undefined && $input.prop('disabled');
291
+ },
292
+ enabled: function() {
293
+ return !module.is.disabled();
294
+ },
295
+ determinate: function() {
296
+ return !module.is.indeterminate();
297
+ },
165
298
  unchecked: function() {
166
299
  return !module.is.checked();
167
300
  }
@@ -169,7 +302,7 @@ $.fn.checkbox = function(parameters) {
169
302
 
170
303
  can: {
171
304
  change: function() {
172
- return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') );
305
+ return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly') );
173
306
  },
174
307
  uncheck: function() {
175
308
  return (typeof settings.uncheckable === 'boolean')
@@ -181,17 +314,111 @@ $.fn.checkbox = function(parameters) {
181
314
 
182
315
  set: {
183
316
  checked: function() {
184
- $module.addClass(className.checked);
317
+ if(!module.is.indeterminate() && module.is.checked()) {
318
+ module.debug('Input is already checked');
319
+ return;
320
+ }
321
+ module.verbose('Setting state to checked', $input[0]);
322
+ if( module.is.radio() ) {
323
+ module.uncheckOthers();
324
+ }
325
+ $input
326
+ .prop('indeterminate', false)
327
+ .prop('checked', true)
328
+ ;
329
+ $module
330
+ .removeClass(className.indeterminate)
331
+ .addClass(className.checked)
332
+ ;
333
+ module.trigger.change();
334
+ },
335
+ unchecked: function() {
336
+ if(!module.is.indeterminate() && module.is.unchecked() ) {
337
+ module.debug('Input is already unchecked');
338
+ return;
339
+ }
340
+ module.debug('Setting state to unchecked');
341
+ $input
342
+ .prop('indeterminate', false)
343
+ .prop('checked', false)
344
+ ;
345
+ $module
346
+ .removeClass(className.indeterminate)
347
+ .removeClass(className.checked)
348
+ ;
349
+ module.trigger.change();
350
+ },
351
+ indeterminate: function() {
352
+ if( module.is.indeterminate() ) {
353
+ module.debug('Input is already indeterminate');
354
+ return;
355
+ }
356
+ module.debug('Setting state to indeterminate');
357
+ $input
358
+ .prop('indeterminate', true)
359
+ ;
360
+ $module
361
+ .addClass(className.indeterminate)
362
+ ;
363
+ module.trigger.change();
364
+ },
365
+ determinate: function() {
366
+ if( module.is.determinate() ) {
367
+ module.debug('Input is already determinate');
368
+ return;
369
+ }
370
+ module.debug('Setting state to determinate');
371
+ $input
372
+ .prop('indeterminate', false)
373
+ ;
374
+ $module
375
+ .removeClass(className.indeterminate)
376
+ ;
377
+ },
378
+ disabled: function() {
379
+ if( module.is.disabled() ) {
380
+ module.debug('Input is already disabled');
381
+ return;
382
+ }
383
+ module.debug('Setting state to disabled');
384
+ $input
385
+ .prop('disabled', 'disabled')
386
+ ;
387
+ $module
388
+ .addClass(className.disabled)
389
+ ;
390
+ module.trigger.change();
391
+ },
392
+ enabled: function() {
393
+ if( module.is.enabled() ) {
394
+ module.debug('Input is already enabled');
395
+ return;
396
+ }
397
+ module.debug('Setting state to enabled');
398
+ $input
399
+ .prop('disabled', false)
400
+ ;
401
+ $module.removeClass(className.disabled);
402
+ module.trigger.change();
185
403
  },
186
- tab: function() {
404
+ tabbable: function() {
405
+ module.verbose('Adding tabindex to checkbox');
187
406
  if( $input.attr('tabindex') === undefined) {
188
- $input
189
- .attr('tabindex', 0)
190
- ;
407
+ $input.attr('tabindex', 0);
191
408
  }
192
409
  }
193
410
  },
194
411
 
412
+ trigger: {
413
+ change: function() {
414
+ module.verbose('Triggering change event from programmatic change');
415
+ $input
416
+ .trigger('change')
417
+ ;
418
+ }
419
+ },
420
+
421
+
195
422
  create: {
196
423
  label: function() {
197
424
  if($input.prevAll(selector.label).length > 0) {
@@ -211,84 +438,46 @@ $.fn.checkbox = function(parameters) {
211
438
  }
212
439
  },
213
440
 
214
- add: {
441
+ bind: {
215
442
  events: function() {
216
443
  module.verbose('Attaching checkbox events');
217
444
  $module
218
- .on('click' + eventNamespace, module.toggle)
445
+ .on('click' + eventNamespace, module.event.click)
219
446
  .on('keydown' + eventNamespace, selector.input, module.event.keydown)
220
447
  ;
221
448
  }
222
449
  },
223
450
 
224
- remove: {
225
- checked: function() {
226
- $module.removeClass(className.checked);
227
- },
451
+ unbind: {
228
452
  events: function() {
229
453
  module.debug('Removing events');
230
454
  $module
231
455
  .off(eventNamespace)
232
- .removeData(moduleNamespace)
233
- ;
234
- $input
235
- .off(eventNamespace, module.event.keydown)
236
- ;
237
- $label
238
- .off(eventNamespace)
239
456
  ;
240
457
  }
241
458
  },
242
459
 
243
- enable: function() {
244
- module.debug('Enabling checkbox functionality');
245
- $module.removeClass(className.disabled);
246
- $input.prop('disabled', false);
247
- settings.onEnabled.call($input.get());
248
- },
249
-
250
- disable: function() {
251
- module.debug('Disabling checkbox functionality');
252
- $module.addClass(className.disabled);
253
- $input.prop('disabled', 'disabled');
254
- settings.onDisabled.call($input.get());
255
- },
256
-
257
- check: function() {
258
- module.debug('Enabling checkbox', $input);
259
- $input
260
- .prop('checked', true)
261
- .trigger('change')
262
- ;
263
- module.set.checked();
264
- $input.trigger('blur');
265
- settings.onChange.call($input.get());
266
- settings.onChecked.call($input.get());
267
- },
268
-
269
- uncheck: function() {
270
- module.debug('Disabling checkbox');
271
- $input
272
- .prop('checked', false)
273
- .trigger('change')
460
+ uncheckOthers: function() {
461
+ var
462
+ $radios = module.get.radios()
274
463
  ;
275
- module.remove.checked();
276
- $input.trigger('blur');
277
- settings.onChange.call($input.get());
278
- settings.onUnchecked.call($input.get());
464
+ module.debug('Unchecking other radios', $radios);
465
+ $radios.removeClass(className.checked);
279
466
  },
280
467
 
281
- toggle: function(event) {
468
+ toggle: function() {
282
469
  if( !module.can.change() ) {
283
- console.log(module.can.change());
284
- module.debug('Checkbox is read-only or disabled, ignoring toggle');
470
+ if(!module.is.radio()) {
471
+ module.debug('Checkbox is read-only or disabled, ignoring toggle');
472
+ }
285
473
  return;
286
474
  }
287
- module.verbose('Determining new checkbox state');
288
- if( module.is.unchecked() ) {
475
+ if( module.is.indeterminate() || module.is.unchecked() ) {
476
+ module.debug('Currently unchecked');
289
477
  module.check();
290
478
  }
291
479
  else if( module.is.checked() && module.can.uncheck() ) {
480
+ module.debug('Currently checked');
292
481
  module.uncheck();
293
482
  }
294
483
  },
@@ -361,7 +550,7 @@ $.fn.checkbox = function(parameters) {
361
550
  });
362
551
  }
363
552
  clearTimeout(module.performance.timer);
364
- module.performance.timer = setTimeout(module.performance.display, 100);
553
+ module.performance.timer = setTimeout(module.performance.display, 500);
365
554
  },
366
555
  display: function() {
367
556
  var
@@ -471,37 +660,45 @@ $.fn.checkbox = function(parameters) {
471
660
 
472
661
  $.fn.checkbox.settings = {
473
662
 
474
- name : 'Checkbox',
475
- namespace : 'checkbox',
663
+ name : 'Checkbox',
664
+ namespace : 'checkbox',
476
665
 
477
- debug : false,
478
- verbose : true,
479
- performance : true,
666
+ debug : false,
667
+ verbose : true,
668
+ performance : true,
480
669
 
481
670
  // delegated event context
482
- uncheckable : 'auto',
483
- fireOnInit : true,
484
-
485
- onChange : function(){},
486
- onChecked : function(){},
487
- onUnchecked : function(){},
488
- onEnabled : function(){},
489
- onDisabled : function(){},
490
-
491
- className : {
492
- checked : 'checked',
493
- disabled : 'disabled',
494
- radio : 'radio',
495
- readOnly : 'read-only'
671
+ uncheckable : 'auto',
672
+ fireOnInit : false,
673
+
674
+ onChange : function(){},
675
+
676
+ onChecked : function(){},
677
+ onUnchecked : function(){},
678
+
679
+ onDeterminate : function() {},
680
+ onIndeterminate : function() {},
681
+
682
+ onEnabled : function(){},
683
+ onDisabled : function(){},
684
+
685
+ className : {
686
+ checked : 'checked',
687
+ indeterminate : 'indeterminate',
688
+ disabled : 'disabled',
689
+ hidden : 'hidden',
690
+ radio : 'radio',
691
+ readOnly : 'read-only'
496
692
  },
497
693
 
498
694
  error : {
499
- method : 'The method you called is not defined'
695
+ method : 'The method you called is not defined'
500
696
  },
501
697
 
502
698
  selector : {
503
- input : 'input[type="checkbox"], input[type="radio"]',
504
- label : 'label'
699
+ checkbox : '.ui.checkbox',
700
+ label : 'label, .box',
701
+ input : 'input[type="checkbox"], input[type="radio"]',
505
702
  }
506
703
 
507
704
  };