semantic-ui-sass 0.19.3.1 → 1.7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +5 -6
  4. data/app/assets/fonts/semantic-ui/icons.eot +0 -0
  5. data/app/assets/fonts/semantic-ui/icons.otf +0 -0
  6. data/app/assets/fonts/semantic-ui/icons.svg +472 -367
  7. data/app/assets/fonts/semantic-ui/icons.ttf +0 -0
  8. data/app/assets/fonts/semantic-ui/icons.woff +0 -0
  9. data/app/assets/images/semantic-ui/flags.png +0 -0
  10. data/app/assets/javascripts/semantic-ui.js +9 -5
  11. data/app/assets/javascripts/semantic-ui/accordion.js +169 -102
  12. data/app/assets/javascripts/semantic-ui/api.js +840 -0
  13. data/app/assets/javascripts/semantic-ui/checkbox.js +203 -46
  14. data/app/assets/javascripts/semantic-ui/{behavior/colorize.js → colorize.js} +4 -2
  15. data/app/assets/javascripts/semantic-ui/dimmer.js +110 -76
  16. data/app/assets/javascripts/semantic-ui/dropdown.js +897 -285
  17. data/app/assets/javascripts/semantic-ui/{behavior/form.js → form.js} +127 -42
  18. data/app/assets/javascripts/semantic-ui/modal.js +294 -219
  19. data/app/assets/javascripts/semantic-ui/nag.js +120 -186
  20. data/app/assets/javascripts/semantic-ui/popup.js +491 -223
  21. data/app/assets/javascripts/semantic-ui/progress.js +779 -0
  22. data/app/assets/javascripts/semantic-ui/rating.js +66 -22
  23. data/app/assets/javascripts/semantic-ui/search.js +219 -99
  24. data/app/assets/javascripts/semantic-ui/shape.js +72 -29
  25. data/app/assets/javascripts/semantic-ui/sidebar.js +678 -142
  26. data/app/assets/javascripts/semantic-ui/site.js +487 -0
  27. data/app/assets/javascripts/semantic-ui/{behavior/state.js → state.js} +116 -151
  28. data/app/assets/javascripts/semantic-ui/sticky.js +771 -0
  29. data/app/assets/javascripts/semantic-ui/tab.js +680 -603
  30. data/app/assets/javascripts/semantic-ui/transition.js +269 -158
  31. data/app/assets/javascripts/semantic-ui/video.js +113 -32
  32. data/app/assets/javascripts/semantic-ui/visibility.js +970 -0
  33. data/app/assets/javascripts/semantic-ui/visit.js +513 -0
  34. data/app/assets/stylesheets/semantic-ui.scss +2 -0
  35. data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +58 -14
  36. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +464 -372
  37. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +1385 -533
  38. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +482 -655
  39. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +238 -139
  40. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +631 -280
  41. data/app/assets/stylesheets/semantic-ui/elements/_all.scss +3 -2
  42. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +1614 -657
  43. data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +143 -80
  44. data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +1018 -0
  45. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +302 -145
  46. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +1653 -1365
  47. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +160 -59
  48. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +247 -118
  49. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +501 -470
  50. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +888 -0
  51. data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +189 -98
  52. data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +125 -0
  53. data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +147 -212
  54. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +328 -190
  55. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +261 -185
  56. data/app/assets/stylesheets/semantic-ui/globals/_all.scss +2 -0
  57. data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +430 -0
  58. data/app/assets/stylesheets/semantic-ui/globals/_site.scss +128 -0
  59. data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +190 -106
  60. data/app/assets/stylesheets/semantic-ui/modules/_all.scss +2 -1
  61. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +303 -201
  62. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +72 -63
  63. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +711 -331
  64. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +262 -140
  65. data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +82 -71
  66. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +163 -119
  67. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +435 -0
  68. data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +163 -68
  69. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +223 -150
  70. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +39 -40
  71. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +413 -147
  72. data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +80 -0
  73. data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +49 -20
  74. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +542 -568
  75. data/app/assets/stylesheets/semantic-ui/modules/_video.scss +69 -37
  76. data/app/assets/stylesheets/semantic-ui/views/_ad.scss +265 -0
  77. data/app/assets/stylesheets/semantic-ui/views/_all.scss +1 -1
  78. data/app/assets/stylesheets/semantic-ui/views/_card.scss +758 -0
  79. data/app/assets/stylesheets/semantic-ui/views/_comment.scss +133 -92
  80. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +200 -87
  81. data/app/assets/stylesheets/semantic-ui/views/_item.scss +298 -523
  82. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +390 -12
  83. data/lib/semantic/ui/sass/version.rb +2 -2
  84. data/tasks/converter.rb +99 -216
  85. metadata +22 -27
  86. data/app/assets/fonts/semantic-ui/basic.icons.eot +0 -0
  87. data/app/assets/fonts/semantic-ui/basic.icons.svg +0 -450
  88. data/app/assets/fonts/semantic-ui/basic.icons.ttf +0 -0
  89. data/app/assets/fonts/semantic-ui/basic.icons.woff +0 -0
  90. data/app/assets/images/semantic-ui/loader-large-inverted.gif +0 -0
  91. data/app/assets/images/semantic-ui/loader-large.gif +0 -0
  92. data/app/assets/images/semantic-ui/loader-medium-inverted.gif +0 -0
  93. data/app/assets/images/semantic-ui/loader-medium.gif +0 -0
  94. data/app/assets/images/semantic-ui/loader-mini-inverted.gif +0 -0
  95. data/app/assets/images/semantic-ui/loader-mini.gif +0 -0
  96. data/app/assets/images/semantic-ui/loader-small-inverted.gif +0 -0
  97. data/app/assets/images/semantic-ui/loader-small.gif +0 -0
  98. data/app/assets/javascripts/semantic-ui/behavior/api.js +0 -634
  99. data/app/assets/javascripts/semantic-ui/chatroom.js +0 -772
  100. data/app/assets/stylesheets/semantic-ui/depends/_basic.icon.scss +0 -4
  101. data/app/assets/stylesheets/semantic-ui/depends/_icon.scss +0 -4
  102. data/app/assets/stylesheets/semantic-ui/depends/_loader.scss +0 -8
  103. data/app/assets/stylesheets/semantic-ui/elements/_basic.icon.scss +0 -1124
  104. data/app/assets/stylesheets/semantic-ui/elements/_progress.scss +0 -280
  105. data/app/assets/stylesheets/semantic-ui/modules/_chatroom.scss +0 -299
  106. data/app/assets/stylesheets/semantic-ui/modules/_reveal.scss +0 -322
  107. data/app/assets/stylesheets/semantic-ui/views/_list.scss +0 -700
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  * # Semantic - Checkbox
3
- * http://github.com/jlukic/semantic-ui/
3
+ * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2014 Contributors
6
+ * Copyright 2014 Contributor
7
7
  * Released under the MIT license
8
8
  * http://opensource.org/licenses/MIT
9
9
  *
@@ -11,6 +11,8 @@
11
11
 
12
12
  ;(function ( $, window, document, undefined ) {
13
13
 
14
+ "use strict";
15
+
14
16
  $.fn.checkbox = function(parameters) {
15
17
  var
16
18
  $allModules = $(this),
@@ -32,18 +34,19 @@ $.fn.checkbox = function(parameters) {
32
34
 
33
35
  className = settings.className,
34
36
  namespace = settings.namespace,
37
+ selector = settings.selector,
35
38
  error = settings.error,
36
39
 
37
40
  eventNamespace = '.' + namespace,
38
41
  moduleNamespace = 'module-' + namespace,
39
42
 
40
43
  $module = $(this),
41
- $label = $(this).next(settings.selector.label).first(),
42
- $input = $(this).find(settings.selector.input),
44
+ $label = $(this).find(selector.label).first(),
45
+ $input = $(this).find(selector.input),
43
46
 
44
- selector = $module.selector || '',
45
47
  instance = $module.data(moduleNamespace),
46
48
 
49
+ observer,
47
50
  element = this,
48
51
  module
49
52
  ;
@@ -52,22 +55,24 @@ $.fn.checkbox = function(parameters) {
52
55
 
53
56
  initialize: function() {
54
57
  module.verbose('Initializing checkbox', settings);
55
- if(settings.context && selector !== '') {
56
- module.verbose('Adding delegated events');
57
- $(element, settings.context)
58
- .on(selector, 'click' + eventNamespace, module.toggle)
59
- .on(selector + ' + ' + settings.selector.label, 'click' + eventNamespace, module.toggle)
60
- ;
58
+
59
+ module.create.label();
60
+ module.add.events();
61
+
62
+ if( module.is.checked() ) {
63
+ module.set.checked();
64
+ if(settings.fireOnInit) {
65
+ $.proxy(settings.onChecked, $input.get())();
66
+ }
61
67
  }
62
68
  else {
63
- $module
64
- .on('click' + eventNamespace, module.toggle)
65
- .data(moduleNamespace, module)
66
- ;
67
- $label
68
- .on('click' + eventNamespace, module.toggle)
69
- ;
69
+ module.remove.checked();
70
+ if(settings.fireOnInit) {
71
+ $.proxy(settings.onUnchecked, $input.get())();
72
+ }
70
73
  }
74
+ module.observeChanges();
75
+
71
76
  module.instantiate();
72
77
  },
73
78
 
@@ -80,66 +85,212 @@ $.fn.checkbox = function(parameters) {
80
85
  },
81
86
 
82
87
  destroy: function() {
83
- module.verbose('Destroying previous module');
88
+ module.verbose('Destroying module');
89
+ module.remove.events();
84
90
  $module
85
- .off(eventNamespace)
86
91
  .removeData(moduleNamespace)
87
92
  ;
88
93
  },
89
94
 
95
+ refresh: function() {
96
+ $module = $(this);
97
+ $label = $(this).find(selector.label).first();
98
+ $input = $(this).find(selector.input);
99
+ },
100
+
101
+ observeChanges: function() {
102
+ if('MutationObserver' in window) {
103
+ observer = new MutationObserver(function(mutations) {
104
+ module.debug('DOM tree modified, updating selector cache');
105
+ module.refresh();
106
+ });
107
+ observer.observe(element, {
108
+ childList : true,
109
+ subtree : true
110
+ });
111
+ module.debug('Setting up mutation observer', observer);
112
+ }
113
+ },
114
+
115
+ attachEvents: function(selector, event) {
116
+ var
117
+ $element = $(selector)
118
+ ;
119
+ event = $.isFunction(module[event])
120
+ ? module[event]
121
+ : module.toggle
122
+ ;
123
+ if($element.size() > 0) {
124
+ module.debug('Attaching checkbox events to element', selector, event);
125
+ $element
126
+ .on('click' + eventNamespace, event)
127
+ ;
128
+ }
129
+ else {
130
+ module.error(error.notFound);
131
+ }
132
+ },
133
+
134
+ event: {
135
+ keydown: function(event) {
136
+ var
137
+ key = event.which,
138
+ keyCode = {
139
+ enter : 13,
140
+ escape : 27
141
+ }
142
+ ;
143
+ if( key == keyCode.escape) {
144
+ module.verbose('Escape key pressed blurring field');
145
+ $module
146
+ .blur()
147
+ ;
148
+ }
149
+ if(!event.ctrlKey && key == keyCode.enter) {
150
+ module.verbose('Enter key pressed, toggling checkbox');
151
+ $.proxy(module.toggle, this)();
152
+ event.preventDefault();
153
+ }
154
+ }
155
+ },
156
+
90
157
  is: {
91
158
  radio: function() {
92
159
  return $module.hasClass(className.radio);
93
160
  },
94
- enabled: function() {
161
+ checked: function() {
95
162
  return $input.prop('checked') !== undefined && $input.prop('checked');
96
163
  },
97
- disabled: function() {
98
- return !module.is.enabled();
164
+ unchecked: function() {
165
+ return !module.is.checked();
99
166
  }
100
167
  },
101
168
 
102
169
  can: {
103
- disable: function() {
104
- return (typeof settings.required === 'boolean')
105
- ? settings.required
170
+ change: function() {
171
+ return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') );
172
+ },
173
+ uncheck: function() {
174
+ return (typeof settings.uncheckable === 'boolean')
175
+ ? settings.uncheckable
106
176
  : !module.is.radio()
107
177
  ;
108
178
  }
109
179
  },
110
180
 
181
+ set: {
182
+ checked: function() {
183
+ $module.addClass(className.checked);
184
+ },
185
+ tab: function() {
186
+ if( $input.attr('tabindex') === undefined) {
187
+ $input
188
+ .attr('tabindex', 0)
189
+ ;
190
+ }
191
+ }
192
+ },
193
+
194
+ create: {
195
+ label: function() {
196
+ if($input.prevAll(selector.label).size() > 0) {
197
+ $input.prev(selector.label).detach().insertAfter($input);
198
+ module.debug('Moving existing label', $label);
199
+ }
200
+ else if( !module.has.label() ) {
201
+ $label = $('<label>').insertAfter($input);
202
+ module.debug('Creating label', $label);
203
+ }
204
+ }
205
+ },
206
+
207
+ has: {
208
+ label: function() {
209
+ return ($label.size() > 0);
210
+ }
211
+ },
212
+
213
+ add: {
214
+ events: function() {
215
+ module.verbose('Attaching checkbox events');
216
+ $module
217
+ .on('click' + eventNamespace, module.toggle)
218
+ .on('keydown' + eventNamespace, selector.input, module.event.keydown)
219
+ ;
220
+ }
221
+ },
222
+
223
+ remove: {
224
+ checked: function() {
225
+ $module.removeClass(className.checked);
226
+ },
227
+ events: function() {
228
+ module.debug('Removing events');
229
+ $module
230
+ .off(eventNamespace)
231
+ .removeData(moduleNamespace)
232
+ ;
233
+ $input
234
+ .off(eventNamespace, module.event.keydown)
235
+ ;
236
+ $label
237
+ .off(eventNamespace)
238
+ ;
239
+ }
240
+ },
241
+
111
242
  enable: function() {
243
+ module.debug('Enabling checkbox functionality');
244
+ $module.removeClass(className.disabled);
245
+ $input.prop('disabled', false);
246
+ $.proxy(settings.onEnabled, $input.get())();
247
+ },
248
+
249
+ disable: function() {
250
+ module.debug('Disabling checkbox functionality');
251
+ $module.addClass(className.disabled);
252
+ $input.prop('disabled', 'disabled');
253
+ $.proxy(settings.onDisabled, $input.get())();
254
+ },
255
+
256
+ check: function() {
112
257
  module.debug('Enabling checkbox', $input);
113
258
  $input
114
259
  .prop('checked', true)
115
260
  .trigger('change')
116
261
  ;
262
+ module.set.checked();
117
263
  $.proxy(settings.onChange, $input.get())();
118
- $.proxy(settings.onEnable, $input.get())();
264
+ $.proxy(settings.onChecked, $input.get())();
119
265
  },
120
266
 
121
- disable: function() {
267
+ uncheck: function() {
122
268
  module.debug('Disabling checkbox');
123
269
  $input
124
270
  .prop('checked', false)
125
271
  .trigger('change')
126
272
  ;
273
+ module.remove.checked();
127
274
  $.proxy(settings.onChange, $input.get())();
128
- $.proxy(settings.onDisable, $input.get())();
275
+ $.proxy(settings.onUnchecked, $input.get())();
129
276
  },
130
277
 
131
278
  toggle: function(event) {
279
+ if( !module.can.change() ) {
280
+ console.log(module.can.change());
281
+ module.debug('Checkbox is read-only or disabled, ignoring toggle');
282
+ return;
283
+ }
132
284
  module.verbose('Determining new checkbox state');
133
- if( !$input.prop('disabled') ) {
134
- if( module.is.disabled() ) {
135
- module.enable();
136
- }
137
- else if( module.is.enabled() && module.can.disable() ) {
138
- module.disable();
139
- }
285
+ if( module.is.unchecked() ) {
286
+ module.check();
287
+ }
288
+ else if( module.is.checked() && module.can.uncheck() ) {
289
+ module.uncheck();
140
290
  }
141
291
  },
142
292
  setting: function(name, value) {
293
+ module.debug('Changing setting', name, value);
143
294
  if( $.isPlainObject(name) ) {
144
295
  $.extend(true, settings, name);
145
296
  }
@@ -200,9 +351,9 @@ $.fn.checkbox = function(parameters) {
200
351
  executionTime = currentTime - previousTime;
201
352
  time = currentTime;
202
353
  performance.push({
203
- 'Element' : element,
204
354
  'Name' : message[0],
205
355
  'Arguments' : [].slice.call(message, 1) || '',
356
+ 'Element' : element,
206
357
  'Execution Time' : executionTime
207
358
  });
208
359
  }
@@ -270,6 +421,7 @@ $.fn.checkbox = function(parameters) {
270
421
  return false;
271
422
  }
272
423
  else {
424
+ module.error(error.method, query);
273
425
  return false;
274
426
  }
275
427
  });
@@ -324,24 +476,29 @@ $.fn.checkbox.settings = {
324
476
  performance : true,
325
477
 
326
478
  // delegated event context
327
- context : false,
328
- required : 'auto',
479
+ uncheckable : 'auto',
480
+ fireOnInit : true,
329
481
 
330
482
  onChange : function(){},
331
- onEnable : function(){},
332
- onDisable : function(){},
483
+ onChecked : function(){},
484
+ onUnchecked : function(){},
485
+ onEnabled : function(){},
486
+ onDisabled : function(){},
487
+
488
+ className : {
489
+ checked : 'checked',
490
+ disabled : 'disabled',
491
+ radio : 'radio',
492
+ readOnly : 'read-only'
493
+ },
333
494
 
334
495
  error : {
335
- method : 'The method you called is not defined.'
496
+ method : 'The method you called is not defined'
336
497
  },
337
498
 
338
499
  selector : {
339
500
  input : 'input[type=checkbox], input[type=radio]',
340
501
  label : 'label'
341
- },
342
-
343
- className : {
344
- radio : 'radio'
345
502
  }
346
503
 
347
504
  };
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  * # Semantic - Colorize
3
- * http://github.com/jlukic/semantic-ui/
3
+ * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2014 Contributors
6
+ * Copyright 2014 Contributor
7
7
  * Released under the MIT license
8
8
  * http://opensource.org/licenses/MIT
9
9
  *
@@ -11,6 +11,8 @@
11
11
 
12
12
  ;(function ( $, window, document, undefined ) {
13
13
 
14
+ "use strict";
15
+
14
16
  $.fn.colorize = function(parameters) {
15
17
  var
16
18
  settings = $.extend(true, {}, $.fn.colorize.settings, parameters),
@@ -1,9 +1,9 @@
1
1
  /*
2
2
  * # Semantic - Dimmer
3
- * http://github.com/jlukic/semantic-ui/
3
+ * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2014 Contributors
6
+ * Copyright 2014 Contributor
7
7
  * Released under the MIT license
8
8
  * http://opensource.org/licenses/MIT
9
9
  *
@@ -64,7 +64,12 @@ $.fn.dimmer = function(parameters) {
64
64
  else {
65
65
  $dimmable = $module;
66
66
  if( module.has.dimmer() ) {
67
- $dimmer = $dimmable.children(selector.dimmer).first();
67
+ if(settings.dimmerName) {
68
+ $dimmer = $dimmable.children(selector.dimmer).filter('.' + settings.dimmerName);
69
+ }
70
+ else {
71
+ $dimmer = $dimmable.children(selector.dimmer);
72
+ }
68
73
  }
69
74
  else {
70
75
  $dimmer = module.create();
@@ -85,13 +90,12 @@ $.fn.dimmer = function(parameters) {
85
90
  .on(clickEvent + eventNamespace, module.toggle)
86
91
  ;
87
92
  }
88
-
89
93
  if( module.is.page() ) {
90
94
  module.debug('Setting as a page dimmer', $dimmable);
91
95
  module.set.pageDimmer();
92
96
  }
93
97
 
94
- if(settings.closable) {
98
+ if( module.is.closable() ) {
95
99
  module.verbose('Adding dimmer close event', $dimmer);
96
100
  $dimmer
97
101
  .on(clickEvent + eventNamespace, module.event.click)
@@ -123,7 +127,6 @@ $.fn.dimmer = function(parameters) {
123
127
  },
124
128
 
125
129
  event: {
126
-
127
130
  click: function(event) {
128
131
  module.verbose('Determining if event occured on dimmer', event);
129
132
  if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) {
@@ -131,7 +134,6 @@ $.fn.dimmer = function(parameters) {
131
134
  event.stopImmediatePropagation();
132
135
  }
133
136
  }
134
-
135
137
  },
136
138
 
137
139
  addContent: function(element) {
@@ -145,7 +147,63 @@ $.fn.dimmer = function(parameters) {
145
147
  },
146
148
 
147
149
  create: function() {
148
- return $( settings.template.dimmer() ).appendTo($dimmable);
150
+ var
151
+ $element = $( settings.template.dimmer() )
152
+ ;
153
+ if(settings.variation) {
154
+ module.debug('Creating dimmer with variation', settings.variation);
155
+ $element.addClass(className.variation);
156
+ }
157
+ if(settings.dimmerName) {
158
+ module.debug('Creating named dimmer', settings.dimmerName);
159
+ $element.addClass(settings.dimmerName);
160
+ }
161
+ $element
162
+ .appendTo($dimmable)
163
+ ;
164
+ return $element;
165
+ },
166
+
167
+ show: function(callback) {
168
+ callback = $.isFunction(callback)
169
+ ? callback
170
+ : function(){}
171
+ ;
172
+ module.debug('Showing dimmer', $dimmer, settings);
173
+ if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) {
174
+ module.animate.show(callback);
175
+ $.proxy(settings.onShow, element)();
176
+ $.proxy(settings.onChange, element)();
177
+ }
178
+ else {
179
+ module.debug('Dimmer is already shown or disabled');
180
+ }
181
+ },
182
+
183
+ hide: function(callback) {
184
+ callback = $.isFunction(callback)
185
+ ? callback
186
+ : function(){}
187
+ ;
188
+ if( module.is.dimmed() || module.is.animating() ) {
189
+ module.debug('Hiding dimmer', $dimmer);
190
+ module.animate.hide(callback);
191
+ $.proxy(settings.onHide, element)();
192
+ $.proxy(settings.onChange, element)();
193
+ }
194
+ else {
195
+ module.debug('Dimmer is not visible');
196
+ }
197
+ },
198
+
199
+ toggle: function() {
200
+ module.verbose('Toggling dimmer visibility', $dimmer);
201
+ if( !module.is.dimmed() ) {
202
+ module.show();
203
+ }
204
+ else {
205
+ module.hide();
206
+ }
149
207
  },
150
208
 
151
209
  animate: {
@@ -154,14 +212,16 @@ $.fn.dimmer = function(parameters) {
154
212
  ? callback
155
213
  : function(){}
156
214
  ;
157
- module.set.dimmed();
158
- if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
215
+ if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
159
216
  $dimmer
160
217
  .transition({
161
218
  animation : settings.transition + ' in',
162
- queue : true,
219
+ queue : false,
163
220
  duration : module.get.duration(),
164
- complete : function() {
221
+ onStart : function() {
222
+ module.set.dimmed();
223
+ },
224
+ onComplete : function() {
165
225
  module.set.active();
166
226
  callback();
167
227
  }
@@ -170,6 +230,7 @@ $.fn.dimmer = function(parameters) {
170
230
  }
171
231
  else {
172
232
  module.verbose('Showing dimmer animation with javascript');
233
+ module.set.dimmed();
173
234
  $dimmer
174
235
  .stop()
175
236
  .css({
@@ -190,15 +251,17 @@ $.fn.dimmer = function(parameters) {
190
251
  ? callback
191
252
  : function(){}
192
253
  ;
193
- if(settings.on != 'hover' && settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
254
+ if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
194
255
  module.verbose('Hiding dimmer with css');
195
256
  $dimmer
196
257
  .transition({
197
- animation : settings.transition + ' out',
198
- duration : module.get.duration(),
199
- queue : true,
200
- complete : function() {
258
+ animation : settings.transition + ' out',
259
+ queue : false,
260
+ duration : module.get.duration(),
261
+ onStart : function() {
201
262
  module.remove.dimmed();
263
+ },
264
+ onComplete : function() {
202
265
  module.remove.active();
203
266
  callback();
204
267
  }
@@ -207,12 +270,12 @@ $.fn.dimmer = function(parameters) {
207
270
  }
208
271
  else {
209
272
  module.verbose('Hiding dimmer with javascript');
273
+ module.remove.dimmed();
210
274
  $dimmer
211
275
  .stop()
212
276
  .fadeOut(module.get.duration(), function() {
213
- $dimmer.removeAttr('style');
214
- module.remove.dimmed();
215
277
  module.remove.active();
278
+ $dimmer.removeAttr('style');
216
279
  callback();
217
280
  })
218
281
  ;
@@ -239,7 +302,12 @@ $.fn.dimmer = function(parameters) {
239
302
 
240
303
  has: {
241
304
  dimmer: function() {
242
- return ( $module.children(selector.dimmer).size() > 0 );
305
+ if(settings.dimmerName) {
306
+ return ($module.children(selector.dimmer).filter('.' + settings.dimmerName).size() > 0);
307
+ }
308
+ else {
309
+ return ( $module.children(selector.dimmer).size() > 0 );
310
+ }
243
311
  }
244
312
  },
245
313
 
@@ -248,7 +316,16 @@ $.fn.dimmer = function(parameters) {
248
316
  return $dimmer.hasClass(className.active);
249
317
  },
250
318
  animating: function() {
251
- return ( $dimmer.is(':animated') || $dimmer.hasClass(className.transition) );
319
+ return ( $dimmer.is(':animated') || $dimmer.hasClass(className.animating) );
320
+ },
321
+ closable: function() {
322
+ if(settings.closable == 'auto') {
323
+ if(settings.on == 'hover') {
324
+ return false;
325
+ }
326
+ return true;
327
+ }
328
+ return settings.closable;
252
329
  },
253
330
  dimmer: function() {
254
331
  return $module.is(selector.dimmer);
@@ -281,11 +358,7 @@ $.fn.dimmer = function(parameters) {
281
358
 
282
359
  set: {
283
360
  active: function() {
284
- module.set.dimmed();
285
- $dimmer
286
- .removeClass(className.transition)
287
- .addClass(className.active)
288
- ;
361
+ $dimmer.addClass(className.active);
289
362
  },
290
363
  dimmable: function() {
291
364
  $dimmable.addClass(className.dimmable);
@@ -304,7 +377,6 @@ $.fn.dimmer = function(parameters) {
304
377
  remove: {
305
378
  active: function() {
306
379
  $dimmer
307
- .removeClass(className.transition)
308
380
  .removeClass(className.active)
309
381
  ;
310
382
  },
@@ -316,49 +388,8 @@ $.fn.dimmer = function(parameters) {
316
388
  }
317
389
  },
318
390
 
319
- show: function(callback) {
320
- callback = $.isFunction(callback)
321
- ? callback
322
- : function(){}
323
- ;
324
- module.debug('Showing dimmer', $dimmer, settings);
325
- if( !module.is.active() && module.is.enabled() ) {
326
- module.animate.show(callback);
327
- $.proxy(settings.onShow, element)();
328
- $.proxy(settings.onChange, element)();
329
- }
330
- else {
331
- module.debug('Dimmer is already shown or disabled');
332
- }
333
- },
334
-
335
- hide: function(callback) {
336
- callback = $.isFunction(callback)
337
- ? callback
338
- : function(){}
339
- ;
340
- if( module.is.active() || module.is.animating() ) {
341
- module.debug('Hiding dimmer', $dimmer);
342
- module.animate.hide(callback);
343
- $.proxy(settings.onHide, element)();
344
- $.proxy(settings.onChange, element)();
345
- }
346
- else {
347
- module.debug('Dimmer is not visible');
348
- }
349
- },
350
-
351
- toggle: function() {
352
- module.verbose('Toggling dimmer visibility', $dimmer);
353
- if( !module.is.dimmed() ) {
354
- module.show();
355
- }
356
- else {
357
- module.hide();
358
- }
359
- },
360
-
361
391
  setting: function(name, value) {
392
+ module.debug('Changing setting', name, value);
362
393
  if( $.isPlainObject(name) ) {
363
394
  $.extend(true, settings, name);
364
395
  }
@@ -419,9 +450,9 @@ $.fn.dimmer = function(parameters) {
419
450
  executionTime = currentTime - previousTime;
420
451
  time = currentTime;
421
452
  performance.push({
422
- 'Element' : element,
423
453
  'Name' : message[0],
424
454
  'Arguments' : [].slice.call(message, 1) || '',
455
+ 'Element' : element,
425
456
  'Execution Time' : executionTime
426
457
  });
427
458
  }
@@ -492,6 +523,7 @@ $.fn.dimmer = function(parameters) {
492
523
  return false;
493
524
  }
494
525
  else {
526
+ module.error(error.method, query);
495
527
  return false;
496
528
  }
497
529
  });
@@ -547,10 +579,12 @@ $.fn.dimmer.settings = {
547
579
  verbose : true,
548
580
  performance : true,
549
581
 
582
+ dimmerName : false,
583
+ variation : false,
584
+ closable : 'auto',
550
585
  transition : 'fade',
551
586
  useCSS : true,
552
587
  on : false,
553
- closable : true,
554
588
 
555
589
  duration : {
556
590
  show : 500,
@@ -566,7 +600,7 @@ $.fn.dimmer.settings = {
566
600
  },
567
601
 
568
602
  selector: {
569
- dimmable : '.ui.dimmable',
603
+ dimmable : '.dimmable',
570
604
  dimmer : '.ui.dimmer',
571
605
  content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
572
606
  },
@@ -579,13 +613,13 @@ $.fn.dimmer.settings = {
579
613
 
580
614
  className : {
581
615
  active : 'active',
582
- dimmable : 'ui dimmable',
616
+ animating : 'animating',
617
+ dimmable : 'dimmable',
583
618
  dimmed : 'dimmed',
584
619
  disabled : 'disabled',
585
- pageDimmer : 'page',
586
620
  hide : 'hide',
587
- show : 'show',
588
- transition : 'transition'
621
+ pageDimmer : 'page',
622
+ show : 'show'
589
623
  }
590
624
 
591
625
  };