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
  *
@@ -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
  };