semantic-ui-sass 2.0.7.0 → 2.1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
  };