semantic-ui-sass 2.0.7.0 → 2.1.3.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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/semantic-ui/accordion.js +17 -13
  3. data/app/assets/javascripts/semantic-ui/api.js +25 -7
  4. data/app/assets/javascripts/semantic-ui/checkbox.js +124 -48
  5. data/app/assets/javascripts/semantic-ui/dropdown.js +193 -108
  6. data/app/assets/javascripts/semantic-ui/embed.js +1 -4
  7. data/app/assets/javascripts/semantic-ui/form.js +125 -12
  8. data/app/assets/javascripts/semantic-ui/modal.js +13 -13
  9. data/app/assets/javascripts/semantic-ui/nag.js +11 -1
  10. data/app/assets/javascripts/semantic-ui/popup.js +23 -10
  11. data/app/assets/javascripts/semantic-ui/search.js +83 -54
  12. data/app/assets/javascripts/semantic-ui/sticky.js +34 -32
  13. data/app/assets/javascripts/semantic-ui/tab.js +8 -7
  14. data/app/assets/javascripts/semantic-ui/transition.js +5 -5
  15. data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +2 -2
  16. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +102 -31
  17. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +159 -10
  18. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +151 -60
  19. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +1 -1
  20. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +18 -1
  21. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +187 -97
  22. data/app/assets/stylesheets/semantic-ui/elements/_container.scss +29 -5
  23. data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +6 -3
  24. data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +1 -1
  25. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +1 -3
  26. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +23 -38
  27. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +1 -1
  28. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +69 -39
  29. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +423 -222
  30. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +16 -1
  31. data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +1 -1
  32. data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +1 -1
  33. data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +5 -13
  34. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +1 -1
  35. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +9 -6
  36. data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +1 -1
  37. data/app/assets/stylesheets/semantic-ui/globals/_site.scss +1 -1
  38. data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +1 -1
  39. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +7 -7
  40. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +1 -1
  41. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +26 -9
  42. data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +1 -1
  43. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +1 -1
  44. data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +1 -1
  45. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +1 -1
  46. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +1 -1
  47. data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +1 -1
  48. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +1 -1
  49. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -1
  50. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +1 -1
  51. data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -1
  52. data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
  53. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +1 -1
  54. data/app/assets/stylesheets/semantic-ui/views/_ad.scss +1 -1
  55. data/app/assets/stylesheets/semantic-ui/views/_card.scss +1 -1
  56. data/app/assets/stylesheets/semantic-ui/views/_comment.scss +1 -1
  57. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +1 -1
  58. data/app/assets/stylesheets/semantic-ui/views/_item.scss +7 -7
  59. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +1 -1
  60. data/lib/semantic/ui/sass/version.rb +2 -2
  61. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f2ca3779869ae7ddda9dca7dfb5530efe641a1b0
4
- data.tar.gz: 275821d4d4f37e4d2624856829af5afeb5d3b429
3
+ metadata.gz: 5775d2018a99976acabcb66e1f307d2bd9d9d0bc
4
+ data.tar.gz: fc359b55b4b46b43b3aa3854fb8048240182c413
5
5
  SHA512:
6
- metadata.gz: 319d55c63993ea9665a5fe33da5ef0cdebcfe805fde35f8d75bf9e02d6c2dcfb0a624e0002fcefac2665dbe3ae2d4eb768bd93d24d55eb6e49ce03cae99fc0fa
7
- data.tar.gz: b87ecbd7acc35e5ce44e1e8a57b8c413fd6b4b024dc8f1e771716217a50022045f1954368e3046282a439fae676744ec6310bed494f46993d1fc9d027388a9ba
6
+ metadata.gz: 799be3282f9242e59edd9c4b175e4d00b944040f621f85980fd0d0e29cee32326f2560a385174017d57ab6bd466f7832774c4abc3757edfdc945c0b6b26c244f
7
+ data.tar.gz: 7a463fe56d953d4470d18cd3f1ec4e128370eec446d9a54d38f7bf923181d6f01f3c91a966b9568c97fb78084d3b18feeba01831fd93f2e86e2cda420e687b90
@@ -63,7 +63,9 @@ $.fn.accordion = function(parameters) {
63
63
  initialize: function() {
64
64
  module.debug('Initializing', $module);
65
65
  module.bind.events();
66
- module.observeChanges();
66
+ if(settings.observeChanges) {
67
+ module.observeChanges();
68
+ }
67
69
  module.instantiate();
68
70
  },
69
71
 
@@ -546,22 +548,24 @@ $.fn.accordion.settings = {
546
548
  verbose : false,
547
549
  performance : true,
548
550
 
549
- on : 'click',
551
+ on : 'click', // event on title that opens accordion
552
+
553
+ observeChanges : true, // whether accordion should automatically refresh on DOM insertion
550
554
 
551
- exclusive : true,
552
- collapsible : true,
553
- closeNested : false,
554
- animateChildren : true,
555
+ exclusive : true, // whether a single accordion content panel should be open at once
556
+ collapsible : true, // whether accordion content can be closed
557
+ closeNested : false, // whether nested content should be closed when a panel is closed
558
+ animateChildren : true, // whether children opacity should be animated
555
559
 
556
- duration : 350,
557
- easing : 'easeOutQuad',
560
+ duration : 350, // duration of animation
561
+ easing : 'easeOutQuad', // easing equation for animation
558
562
 
559
563
 
560
- onOpening : function(){},
561
- onOpen : function(){},
562
- onClosing : function(){},
563
- onClose : function(){},
564
- onChange : function(){},
564
+ onOpening : function(){}, // callback before open animation
565
+ onOpen : function(){}, // callback after open animation
566
+ onClosing : function(){}, // callback before closing animation
567
+ onClose : function(){}, // callback after closing animation
568
+ onChange : function(){}, // callback after closing or opening animation
565
569
 
566
570
  error: {
567
571
  method : 'The method you called is not defined'
@@ -109,7 +109,7 @@ $.api = $.fn.api = function(parameters) {
109
109
  ;
110
110
  }
111
111
  else if(settings.on == 'now') {
112
- module.debug('Querying API now', triggerEvent);
112
+ module.debug('Querying API endpoint immediately');
113
113
  module.query();
114
114
  }
115
115
  }
@@ -266,12 +266,18 @@ $.api = $.fn.api = function(parameters) {
266
266
 
267
267
  },
268
268
 
269
+ should: {
270
+ removeError: function() {
271
+ return ( settings.hideError === true || (settings.hideError === 'auto' && !module.is.form()) );
272
+ }
273
+ },
274
+
269
275
  is: {
270
276
  disabled: function() {
271
277
  return ($module.filter(selector.disabled).length > 0);
272
278
  },
273
279
  form: function() {
274
- return $module.is('form');
280
+ return $module.is('form') || $context.is('form');
275
281
  },
276
282
  mocked: function() {
277
283
  return (settings.mockResponse || settings.mockResponseAsync);
@@ -358,7 +364,11 @@ $.api = $.fn.api = function(parameters) {
358
364
  }
359
365
  else {
360
366
  module.verbose('Found required variable', variable, value);
361
- url = url.replace(templatedString, module.get.urlEncodedValue(value));
367
+ value = (settings.encodeParameters)
368
+ ? module.get.urlEncodedValue(value)
369
+ : value
370
+ ;
371
+ url = url.replace(templatedString, value);
362
372
  }
363
373
  });
364
374
  }
@@ -558,7 +568,9 @@ $.api = $.fn.api = function(parameters) {
558
568
  if(settings.errorDuration && status !== 'aborted') {
559
569
  module.debug('Adding error state');
560
570
  module.set.error();
561
- setTimeout(module.remove.error, settings.errorDuration);
571
+ if( module.should.removeError() ) {
572
+ setTimeout(module.remove.error, settings.errorDuration);
573
+ }
562
574
  }
563
575
  module.debug('API Request failed', errorMessage, xhr);
564
576
  settings.onFailure.call(context, response, $module, xhr);
@@ -724,7 +736,7 @@ $.api = $.fn.api = function(parameters) {
724
736
  module.debug('URL value is already encoded, avoiding double encoding', value);
725
737
  return value;
726
738
  }
727
- module.verbose('Encoding value for url', value, encodedValue);
739
+ module.verbose('Encoding value using encodeURIComponent', value, encodedValue);
728
740
  return encodedValue;
729
741
  },
730
742
  defaultData: function() {
@@ -785,7 +797,7 @@ $.api = $.fn.api = function(parameters) {
785
797
  url = settings.api[action];
786
798
  }
787
799
  else if( module.is.form() ) {
788
- url = $module.attr('action') || false;
800
+ url = $module.attr('action') || $context.attr('action') || false;
789
801
  module.debug('No url or action specified, defaulting to form action', url);
790
802
  }
791
803
  return url;
@@ -990,7 +1002,7 @@ $.api.settings = {
990
1002
  name : 'API',
991
1003
  namespace : 'api',
992
1004
 
993
- debug : true,
1005
+ debug : false,
994
1006
  verbose : false,
995
1007
  performance : true,
996
1008
 
@@ -1012,9 +1024,15 @@ $.api.settings = {
1012
1024
  // duration for loading state
1013
1025
  loadingDuration : 0,
1014
1026
 
1027
+ // whether to hide errors after a period of time
1028
+ hideError : 'auto',
1029
+
1015
1030
  // duration for error state
1016
1031
  errorDuration : 2000,
1017
1032
 
1033
+ // whether parameters should be encoded with encodeURIComponent
1034
+ encodeParameters : true,
1035
+
1018
1036
  // API action to use
1019
1037
  action : false,
1020
1038
 
@@ -43,9 +43,10 @@ $.fn.checkbox = function(parameters) {
43
43
  $module = $(this),
44
44
  $label = $(this).children(selector.label),
45
45
  $input = $(this).children(selector.input),
46
+ input = $input[0],
46
47
 
48
+ initialLoad = false,
47
49
  shortcutPressed = false,
48
-
49
50
  instance = $module.data(moduleNamespace),
50
51
 
51
52
  observer,
@@ -95,35 +96,26 @@ $.fn.checkbox = function(parameters) {
95
96
  },
96
97
 
97
98
  setup: function() {
99
+ module.set.initialLoad();
98
100
  if( module.is.indeterminate() ) {
99
101
  module.debug('Initial value is indeterminate');
100
- module.set.indeterminate();
101
- if(settings.fireOnInit) {
102
- settings.onIndeterminate.call($input[0]);
103
- settings.onChange.call($input[0]);
104
- }
102
+ module.indeterminate();
105
103
  }
106
104
  else if( module.is.checked() ) {
107
105
  module.debug('Initial value is checked');
108
- module.set.checked();
109
- if(settings.fireOnInit) {
110
- settings.onChecked.call($input[0]);
111
- settings.onChange.call($input[0]);
112
- }
106
+ module.check();
113
107
  }
114
108
  else {
115
109
  module.debug('Initial value is unchecked');
116
- module.set.unchecked();
117
- if(settings.fireOnInit) {
118
- settings.onUnchecked.call($input[0]);
119
- settings.onChange.call($input[0]);
120
- }
110
+ module.uncheck();
121
111
  }
112
+ module.remove.initialLoad();
122
113
  },
123
114
 
124
115
  refresh: function() {
125
116
  $label = $module.children(selector.label);
126
117
  $input = $module.children(selector.input);
118
+ input = $input[0];
127
119
  },
128
120
 
129
121
  hide: {
@@ -174,10 +166,17 @@ $.fn.checkbox = function(parameters) {
174
166
 
175
167
  event: {
176
168
  click: function(event) {
177
- if( $(event.target).is(selector.input) ) {
169
+ var
170
+ $target = $(event.target)
171
+ ;
172
+ if( $target.is(selector.input) ) {
178
173
  module.verbose('Using default check action on initialized checkbox');
179
174
  return;
180
175
  }
176
+ if( $target.is(selector.link) ) {
177
+ module.debug('Clicking link inside checkbox, skipping toggle');
178
+ return;
179
+ }
181
180
  module.toggle();
182
181
  $input.focus();
183
182
  event.preventDefault();
@@ -213,47 +212,53 @@ $.fn.checkbox = function(parameters) {
213
212
  },
214
213
 
215
214
  check: function() {
216
- if( !module.is.indeterminate() && module.is.checked() ) {
217
- module.debug('Checkbox is already checked');
215
+ if( !module.should.allowCheck() ) {
218
216
  return;
219
217
  }
220
218
  module.debug('Checking checkbox', $input);
221
219
  module.set.checked();
222
- settings.onChecked.call($input[0]);
223
- settings.onChange.call($input[0]);
220
+ if( !module.should.ignoreCallbacks() ) {
221
+ settings.onChecked.call(input);
222
+ settings.onChange.call(input);
223
+ }
224
224
  },
225
225
 
226
226
  uncheck: function() {
227
- if( !module.is.indeterminate() && module.is.unchecked() ) {
228
- module.debug('Checkbox is already unchecked');
227
+ if( !module.should.allowUncheck() ) {
229
228
  return;
230
229
  }
231
230
  module.debug('Unchecking checkbox');
232
231
  module.set.unchecked();
233
- settings.onUnchecked.call($input[0]);
234
- settings.onChange.call($input[0]);
232
+ if( !module.should.ignoreCallbacks() ) {
233
+ settings.onUnchecked.call(input);
234
+ settings.onChange.call(input);
235
+ }
235
236
  },
236
237
 
237
238
  indeterminate: function() {
238
- if( module.is.indeterminate() ) {
239
+ if( module.should.allowIndeterminate() ) {
239
240
  module.debug('Checkbox is already indeterminate');
240
241
  return;
241
242
  }
242
243
  module.debug('Making checkbox indeterminate');
243
244
  module.set.indeterminate();
244
- settings.onIndeterminate.call($input[0]);
245
- settings.onChange.call($input[0]);
245
+ if( !module.should.ignoreCallbacks() ) {
246
+ settings.onIndeterminate.call(input);
247
+ settings.onChange.call(input);
248
+ }
246
249
  },
247
250
 
248
251
  determinate: function() {
249
- if( module.is.determinate() ) {
252
+ if( module.should.allowDeterminate() ) {
250
253
  module.debug('Checkbox is already determinate');
251
254
  return;
252
255
  }
253
256
  module.debug('Making checkbox determinate');
254
257
  module.set.determinate();
255
- settings.onDeterminate.call($input[0]);
256
- settings.onChange.call($input[0]);
258
+ if( !module.should.ignoreCallbacks() ) {
259
+ settings.onDeterminate.call(input);
260
+ settings.onChange.call(input);
261
+ }
257
262
  },
258
263
 
259
264
  enable: function() {
@@ -263,7 +268,7 @@ $.fn.checkbox = function(parameters) {
263
268
  }
264
269
  module.debug('Enabling checkbox');
265
270
  module.set.enabled();
266
- settings.onEnable.call($input[0]);
271
+ settings.onEnable.call(input);
267
272
  },
268
273
 
269
274
  disable: function() {
@@ -273,7 +278,7 @@ $.fn.checkbox = function(parameters) {
273
278
  }
274
279
  module.debug('Disabling checkbox');
275
280
  module.set.disabled();
276
- settings.onDisable.call($input[0]);
281
+ settings.onDisable.call(input);
277
282
  },
278
283
 
279
284
  get: {
@@ -292,6 +297,9 @@ $.fn.checkbox = function(parameters) {
292
297
  },
293
298
 
294
299
  is: {
300
+ initialLoad: function() {
301
+ return initialLoad;
302
+ },
295
303
  radio: function() {
296
304
  return ($input.hasClass(className.radio) || $input.attr('type') == 'radio');
297
305
  },
@@ -315,6 +323,59 @@ $.fn.checkbox = function(parameters) {
315
323
  }
316
324
  },
317
325
 
326
+ should: {
327
+ allowCheck: function() {
328
+ if(module.is.determinate() && module.is.checked() && !module.should.forceCallbacks() ) {
329
+ module.debug('Should not allow check, checkbox is already checked');
330
+ return false;
331
+ }
332
+ if(settings.beforeChecked.apply(input) === false) {
333
+ module.debug('Should not allow check, beforeChecked cancelled');
334
+ return false;
335
+ }
336
+ return true;
337
+ },
338
+ allowUncheck: function() {
339
+ if(module.is.determinate() && module.is.unchecked() && !module.should.forceCallbacks() ) {
340
+ module.debug('Should not allow uncheck, checkbox is already unchecked');
341
+ return false;
342
+ }
343
+ if(settings.beforeUnchecked.apply(input) === false) {
344
+ module.debug('Should not allow uncheck, beforeUnchecked cancelled');
345
+ return false;
346
+ }
347
+ return true;
348
+ },
349
+ allowIndeterminate: function() {
350
+ if(module.is.indeterminate() && !module.should.forceCallbacks() ) {
351
+ module.debug('Should not allow indeterminate, checkbox is already indeterminate');
352
+ return false;
353
+ }
354
+ if(settings.beforeIndeterminate.apply(input) === false) {
355
+ module.debug('Should not allow indeterminate, beforeIndeterminate cancelled');
356
+ return false;
357
+ }
358
+ return true;
359
+ },
360
+ allowDeterminate: function() {
361
+ if(module.is.determinate() && !module.should.forceCallbacks() ) {
362
+ module.debug('Should not allow determinate, checkbox is already determinate');
363
+ return false;
364
+ }
365
+ if(settings.beforeDeterminate.apply(input) === false) {
366
+ module.debug('Should not allow determinate, beforeDeterminate cancelled');
367
+ return false;
368
+ }
369
+ return true;
370
+ },
371
+ forceCallbacks: function() {
372
+ return (module.is.initialLoad() && settings.fireOnInit);
373
+ },
374
+ ignoreCallbacks: function() {
375
+ return (initialLoad && !settings.fireOnInit);
376
+ }
377
+ },
378
+
318
379
  can: {
319
380
  change: function() {
320
381
  return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly') );
@@ -328,6 +389,9 @@ $.fn.checkbox = function(parameters) {
328
389
  },
329
390
 
330
391
  set: {
392
+ initialLoad: function() {
393
+ initialLoad = true;
394
+ },
331
395
  checked: function() {
332
396
  module.verbose('Setting class to checked');
333
397
  $module
@@ -341,7 +405,7 @@ $.fn.checkbox = function(parameters) {
341
405
  module.debug('Input is already checked, skipping input property change');
342
406
  return;
343
407
  }
344
- module.verbose('Setting state to checked', $input[0]);
408
+ module.verbose('Setting state to checked', input);
345
409
  $input
346
410
  .prop('indeterminate', false)
347
411
  .prop('checked', true)
@@ -430,6 +494,12 @@ $.fn.checkbox = function(parameters) {
430
494
  }
431
495
  },
432
496
 
497
+ remove: {
498
+ initialLoad: function() {
499
+ initialLoad = false;
500
+ }
501
+ },
502
+
433
503
  trigger: {
434
504
  change: function() {
435
505
  module.verbose('Triggering change event from programmatic change');
@@ -682,27 +752,32 @@ $.fn.checkbox = function(parameters) {
682
752
 
683
753
  $.fn.checkbox.settings = {
684
754
 
685
- name : 'Checkbox',
686
- namespace : 'checkbox',
755
+ name : 'Checkbox',
756
+ namespace : 'checkbox',
687
757
 
688
- debug : false,
689
- verbose : true,
690
- performance : true,
758
+ debug : false,
759
+ verbose : true,
760
+ performance : true,
691
761
 
692
762
  // delegated event context
693
- uncheckable : 'auto',
694
- fireOnInit : false,
763
+ uncheckable : 'auto',
764
+ fireOnInit : false,
765
+
766
+ onChange : function(){},
695
767
 
696
- onChange : function(){},
768
+ beforeChecked : function(){},
769
+ beforeUnchecked : function(){},
770
+ beforeDeterminate : function(){},
771
+ beforeIndeterminate : function(){},
697
772
 
698
- onChecked : function(){},
699
- onUnchecked : function(){},
773
+ onChecked : function(){},
774
+ onUnchecked : function(){},
700
775
 
701
- onDeterminate : function() {},
702
- onIndeterminate : function() {},
776
+ onDeterminate : function() {},
777
+ onIndeterminate : function() {},
703
778
 
704
- onEnabled : function(){},
705
- onDisabled : function(){},
779
+ onEnabled : function(){},
780
+ onDisabled : function(){},
706
781
 
707
782
  className : {
708
783
  checked : 'checked',
@@ -721,6 +796,7 @@ $.fn.checkbox.settings = {
721
796
  checkbox : '.ui.checkbox',
722
797
  label : 'label, .box',
723
798
  input : 'input[type="checkbox"], input[type="radio"]',
799
+ link : 'a[href]'
724
800
  }
725
801
 
726
802
  };