less-rails-semantic_ui 1.6.2.0 → 1.7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/assets/javascripts/semantic_ui/definitions/behaviors/api.js +9 -9
  3. data/assets/javascripts/semantic_ui/definitions/behaviors/form.js +23 -23
  4. data/assets/javascripts/semantic_ui/definitions/behaviors/state.js +6 -6
  5. data/assets/javascripts/semantic_ui/definitions/behaviors/visibility.js +3 -3
  6. data/assets/javascripts/semantic_ui/definitions/behaviors/visit.js +7 -7
  7. data/assets/javascripts/semantic_ui/definitions/globals/site.js +2 -2
  8. data/assets/javascripts/semantic_ui/definitions/modules/accordion.js +12 -12
  9. data/assets/javascripts/semantic_ui/definitions/modules/checkbox.js +14 -13
  10. data/assets/javascripts/semantic_ui/definitions/modules/dimmer.js +9 -9
  11. data/assets/javascripts/semantic_ui/definitions/modules/dropdown.js +98 -58
  12. data/assets/javascripts/semantic_ui/definitions/modules/modal.js +14 -14
  13. data/assets/javascripts/semantic_ui/definitions/modules/popup.js +90 -39
  14. data/assets/javascripts/semantic_ui/definitions/modules/progress.js +12 -6
  15. data/assets/javascripts/semantic_ui/definitions/modules/rating.js +6 -6
  16. data/assets/javascripts/semantic_ui/definitions/modules/search.js +216 -205
  17. data/assets/javascripts/semantic_ui/definitions/modules/shape.js +8 -8
  18. data/assets/javascripts/semantic_ui/definitions/modules/sidebar.js +112 -89
  19. data/assets/javascripts/semantic_ui/definitions/modules/sticky.js +11 -11
  20. data/assets/javascripts/semantic_ui/definitions/modules/tab.js +12 -12
  21. data/assets/javascripts/semantic_ui/definitions/modules/transition.js +9 -9
  22. data/assets/javascripts/semantic_ui/definitions/modules/video.js +4 -4
  23. data/assets/stylesheets/semantic_ui/definitions/collections/grid.less +65 -10
  24. data/assets/stylesheets/semantic_ui/definitions/collections/menu.less +10 -6
  25. data/assets/stylesheets/semantic_ui/definitions/elements/button.less +54 -55
  26. data/assets/stylesheets/semantic_ui/definitions/elements/label.less +4 -4
  27. data/assets/stylesheets/semantic_ui/definitions/elements/list.less +4 -2
  28. data/assets/stylesheets/semantic_ui/definitions/elements/segment.less +0 -7
  29. data/assets/stylesheets/semantic_ui/definitions/elements/step.less +41 -40
  30. data/assets/stylesheets/semantic_ui/definitions/globals/site.less +19 -0
  31. data/assets/stylesheets/semantic_ui/definitions/modules/dropdown.less +108 -23
  32. data/assets/stylesheets/semantic_ui/definitions/modules/popup.less +0 -2
  33. data/assets/stylesheets/semantic_ui/definitions/modules/sidebar.less +109 -27
  34. data/assets/stylesheets/semantic_ui/themes/default/collections/menu.variables +3 -0
  35. data/assets/stylesheets/semantic_ui/themes/default/elements/button.variables +24 -0
  36. data/assets/stylesheets/semantic_ui/themes/default/globals/site.variables +5 -2
  37. data/assets/stylesheets/semantic_ui/themes/default/modules/dropdown.variables +22 -6
  38. data/assets/stylesheets/semantic_ui/themes/default/modules/sidebar.variables +21 -12
  39. data/assets/stylesheets/semantic_ui/themes/material/elements/button.overrides +0 -4
  40. data/assets/stylesheets/semantic_ui/themes/rtl/globals/site.overrides +6 -0
  41. data/assets/stylesheets/semantic_ui/themes/rtl/globals/site.variables +14 -0
  42. data/lib/less/rails/semantic_ui/version.rb +1 -1
  43. metadata +4 -2
@@ -129,7 +129,7 @@ $.fn.dimmer = function(parameters) {
129
129
  event: {
130
130
  click: function(event) {
131
131
  module.verbose('Determining if event occured on dimmer', event);
132
- if( $dimmer.find(event.target).size() === 0 || $(event.target).is(selector.content) ) {
132
+ if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {
133
133
  module.hide();
134
134
  event.stopImmediatePropagation();
135
135
  }
@@ -172,8 +172,8 @@ $.fn.dimmer = function(parameters) {
172
172
  module.debug('Showing dimmer', $dimmer, settings);
173
173
  if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) {
174
174
  module.animate.show(callback);
175
- $.proxy(settings.onShow, element)();
176
- $.proxy(settings.onChange, element)();
175
+ settings.onShow.call(element);
176
+ settings.onChange.call(element);
177
177
  }
178
178
  else {
179
179
  module.debug('Dimmer is already shown or disabled');
@@ -188,8 +188,8 @@ $.fn.dimmer = function(parameters) {
188
188
  if( module.is.dimmed() || module.is.animating() ) {
189
189
  module.debug('Hiding dimmer', $dimmer);
190
190
  module.animate.hide(callback);
191
- $.proxy(settings.onHide, element)();
192
- $.proxy(settings.onChange, element)();
191
+ settings.onHide.call(element);
192
+ settings.onChange.call(element);
193
193
  }
194
194
  else {
195
195
  module.debug('Dimmer is not visible');
@@ -303,10 +303,10 @@ $.fn.dimmer = function(parameters) {
303
303
  has: {
304
304
  dimmer: function() {
305
305
  if(settings.dimmerName) {
306
- return ($module.children(selector.dimmer).filter('.' + settings.dimmerName).size() > 0);
306
+ return ($module.children(selector.dimmer).filter('.' + settings.dimmerName).length > 0);
307
307
  }
308
308
  else {
309
- return ( $module.children(selector.dimmer).size() > 0 );
309
+ return ( $module.children(selector.dimmer).length > 0 );
310
310
  }
311
311
  }
312
312
  },
@@ -473,8 +473,8 @@ $.fn.dimmer = function(parameters) {
473
473
  if(moduleSelector) {
474
474
  title += ' \'' + moduleSelector + '\'';
475
475
  }
476
- if($allModules.size() > 1) {
477
- title += ' ' + '(' + $allModules.size() + ')';
476
+ if($allModules.length > 1) {
477
+ title += ' ' + '(' + $allModules.length + ')';
478
478
  }
479
479
  if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
480
480
  console.groupCollapsed(title);
@@ -51,7 +51,7 @@ $.fn.dropdown = function(parameters) {
51
51
  $search = $module.find(selector.search),
52
52
  $input = $module.find(selector.input),
53
53
 
54
- $combo = ($module.prev().find(selector.text).size() > 0)
54
+ $combo = ($module.prev().find(selector.text).length > 0)
55
55
  ? $module.prev().find(selector.text)
56
56
  : $module.prev(),
57
57
 
@@ -138,12 +138,9 @@ $.fn.dropdown = function(parameters) {
138
138
  query = $search.val();
139
139
 
140
140
  module.verbose('Searching for query', query);
141
-
142
- if(module.is.searchSelection()) {
143
- module.filter(query);
144
- if( module.can.show() ) {
145
- module.show();
146
- }
141
+ module.filter(query);
142
+ if(module.is.searchSelection() && module.can.show() ) {
143
+ module.show();
147
144
  }
148
145
  },
149
146
 
@@ -170,10 +167,10 @@ $.fn.dropdown = function(parameters) {
170
167
  module.debug('Dropdown initialized on a select', selectValues);
171
168
  // see if select exists inside a dropdown
172
169
  $input = $module;
173
- if($input.parents(selector.dropdown).size() > 0) {
170
+ if($input.parents(selector.dropdown).length > 0) {
174
171
  module.debug('Creating dropdown menu only from template');
175
172
  $module = $input.closest(selector.dropdown);
176
- if($module.find('.' + className.dropdown).size() === 0) {
173
+ if($module.find('.' + className.dropdown).length === 0) {
177
174
  $('<div />')
178
175
  .addClass(className.menu)
179
176
  .html( settings.templates.menu( selectValues ))
@@ -222,16 +219,16 @@ $.fn.dropdown = function(parameters) {
222
219
  ? callback
223
220
  : function(){}
224
221
  ;
225
- if( !module.is.active() && !module.is.allFiltered() ) {
222
+ if( module.can.show() && !module.is.active() && !module.is.allFiltered() ) {
226
223
  module.debug('Showing dropdown');
227
224
  module.animate.show(function() {
228
225
  if( module.can.click() ) {
229
226
  module.bind.intent();
230
227
  }
231
228
  module.set.visible();
232
- $.proxy(callback, element)();
229
+ callback.call(element);
233
230
  });
234
- $.proxy(settings.onShow, element)();
231
+ settings.onShow.call(element);
235
232
  }
236
233
  },
237
234
 
@@ -244,9 +241,9 @@ $.fn.dropdown = function(parameters) {
244
241
  module.debug('Hiding dropdown');
245
242
  module.animate.hide(function() {
246
243
  module.remove.visible();
247
- $.proxy(callback, element)();
244
+ callback.call(element);
248
245
  });
249
- $.proxy(settings.onHide, element)();
246
+ settings.onHide.call(element);
250
247
  }
251
248
  },
252
249
 
@@ -302,6 +299,7 @@ $.fn.dropdown = function(parameters) {
302
299
  .on('click' + eventNamespace, selector.search, module.show)
303
300
  .on('focus' + eventNamespace, selector.search, module.event.searchFocus)
304
301
  .on('blur' + eventNamespace, selector.search, module.event.searchBlur)
302
+ .on('click' + eventNamespace, selector.text, module.event.searchTextFocus)
305
303
  ;
306
304
  }
307
305
  else {
@@ -366,8 +364,9 @@ $.fn.dropdown = function(parameters) {
366
364
  filter: function(searchTerm) {
367
365
  var
368
366
  $results = $(),
369
- exactRegExp = new RegExp('^' + searchTerm, 'igm'),
370
- fullTextRegExp = new RegExp(searchTerm, 'ig'),
367
+ escapedTerm = module.escape.regExp(searchTerm),
368
+ exactRegExp = new RegExp('^' + escapedTerm, 'igm'),
369
+ fullTextRegExp = new RegExp(escapedTerm, 'ig'),
371
370
  allItemsFiltered
372
371
  ;
373
372
  module.verbose('Searching for matching values');
@@ -375,8 +374,8 @@ $.fn.dropdown = function(parameters) {
375
374
  .each(function(){
376
375
  var
377
376
  $choice = $(this),
378
- text = module.get.choiceText($choice, false),
379
- value = module.get.choiceValue($choice, text)
377
+ text = String(module.get.choiceText($choice, false)),
378
+ value = String(module.get.choiceValue($choice, text))
380
379
  ;
381
380
  if( text.match(exactRegExp) || value.match(exactRegExp) ) {
382
381
  $results = $results.add($choice);
@@ -405,8 +404,10 @@ $.fn.dropdown = function(parameters) {
405
404
  ;
406
405
  if( module.is.allFiltered() ) {
407
406
  module.debug('All items filtered, hiding dropdown', searchTerm);
408
- module.hide();
409
- $.proxy(settings.onNoResults, element)(searchTerm);
407
+ if(module.is.searchSelection()) {
408
+ module.hide();
409
+ }
410
+ settings.onNoResults.call(element, searchTerm);
410
411
  }
411
412
  },
412
413
 
@@ -451,8 +452,14 @@ $.fn.dropdown = function(parameters) {
451
452
  module.hide();
452
453
  }
453
454
  },
455
+ searchTextFocus: function(event) {
456
+ activated = true;
457
+ $search.focus();
458
+ },
454
459
  input: function(event) {
455
- module.set.filtered();
460
+ if(module.is.searchSelection()) {
461
+ module.set.filtered();
462
+ }
456
463
  clearTimeout(module.timer);
457
464
  module.timer = setTimeout(module.search, settings.delay.search);
458
465
  },
@@ -469,14 +476,14 @@ $.fn.dropdown = function(parameters) {
469
476
  },
470
477
  selectedClass = className.selected,
471
478
  currentIndex = $visibleItems.index( $selectedItem ),
472
- hasSelectedItem = ($selectedItem.size() > 0),
479
+ hasSelectedItem = ($selectedItem.length > 0),
473
480
  $nextItem,
474
481
  newIndex
475
482
  ;
476
483
  // default to activated choice if no selection present
477
484
  if(!hasSelectedItem) {
478
485
  $selectedItem = $item.filter('.' + className.active).eq(0);
479
- hasSelectedItem = ($selectedItem.size() > 0);
486
+ hasSelectedItem = ($selectedItem.length > 0);
480
487
  }
481
488
  // close shortcuts
482
489
  if(pressedKey == keys.escape) {
@@ -492,7 +499,7 @@ $.fn.dropdown = function(parameters) {
492
499
  if(module.is.visible()) {
493
500
  if(pressedKey == keys.enter && hasSelectedItem) {
494
501
  module.verbose('Enter key pressed, choosing selected item');
495
- $.proxy(module.event.item.click, $selectedItem)(event);
502
+ module.event.item.click.call($selectedItem, event);
496
503
  event.preventDefault();
497
504
  return false;
498
505
  }
@@ -522,7 +529,7 @@ $.fn.dropdown = function(parameters) {
522
529
  else {
523
530
  $nextItem = $selectedItem.nextAll(selector.item + ':not(.' + className.filtered + ')').eq(0);
524
531
  }
525
- if(currentIndex + 1 < $visibleItems.size() ) {
532
+ if(currentIndex + 1 < $visibleItems.length ) {
526
533
  module.verbose('Down key pressed, changing active item');
527
534
  $item
528
535
  .removeClass(selectedClass)
@@ -577,7 +584,7 @@ $.fn.dropdown = function(parameters) {
577
584
  $currentMenu = $(this).children(selector.menu),
578
585
  $otherMenus = $(this).siblings(selector.item).children(selector.menu)
579
586
  ;
580
- if( $currentMenu.size() > 0 ) {
587
+ if( $currentMenu.length > 0 ) {
581
588
  clearTimeout(module.itemTimer);
582
589
  module.itemTimer = setTimeout(function() {
583
590
  $.each($otherMenus, function() {
@@ -594,7 +601,7 @@ $.fn.dropdown = function(parameters) {
594
601
  var
595
602
  $currentMenu = $(this).children(selector.menu)
596
603
  ;
597
- if($currentMenu.size() > 0) {
604
+ if($currentMenu.length > 0) {
598
605
  clearTimeout(module.itemTimer);
599
606
  module.itemTimer = setTimeout(function() {
600
607
  module.verbose('Hiding sub-menu', $currentMenu);
@@ -614,8 +621,8 @@ $.fn.dropdown = function(parameters) {
614
621
  module.remove.searchTerm();
615
622
  module.determine.selectAction(text, value);
616
623
  },
617
- openingSubMenu = ($subMenu.size() > 0),
618
- isSubItem = ($subMenu.find($target).size() > 0)
624
+ openingSubMenu = ($subMenu.length > 0),
625
+ isSubItem = ($subMenu.find($target).length > 0)
619
626
  ;
620
627
  if(isSubItem) {
621
628
  return false;
@@ -653,7 +660,7 @@ $.fn.dropdown = function(parameters) {
653
660
  ? callback
654
661
  : function(){}
655
662
  ;
656
- if( $(event.target).closest($module).size() === 0 ) {
663
+ if( $(event.target).closest($module).length === 0 ) {
657
664
  module.verbose('Triggering event', callback);
658
665
  callback();
659
666
  return true;
@@ -668,7 +675,7 @@ $.fn.dropdown = function(parameters) {
668
675
  ? callback
669
676
  : function(){}
670
677
  ;
671
- if( $(event.target).closest($menu).size() === 0 ) {
678
+ if( $(event.target).closest($menu).length === 0 ) {
672
679
  module.verbose('Triggering event', callback);
673
680
  callback();
674
681
  return true;
@@ -733,7 +740,7 @@ $.fn.dropdown = function(parameters) {
733
740
  return $text.text();
734
741
  },
735
742
  value: function() {
736
- return ($input.size() > 0)
743
+ return ($input.length > 0)
737
744
  ? $input.val()
738
745
  : $module.data(metadata.value)
739
746
  ;
@@ -744,7 +751,7 @@ $.fn.dropdown = function(parameters) {
744
751
  : settings.preserveHTML
745
752
  ;
746
753
  if($choice !== undefined) {
747
- if($choice.find(selector.menu).size() > 0) {
754
+ if($choice.find(selector.menu).length > 0) {
748
755
  module.verbose('Retreiving text of element with sub-menu');
749
756
  $choice = $choice.clone();
750
757
  $choice.find(selector.menu).remove();
@@ -753,8 +760,8 @@ $.fn.dropdown = function(parameters) {
753
760
  return ($choice.data(metadata.text) !== undefined)
754
761
  ? $choice.data(metadata.text)
755
762
  : (preserveHTML)
756
- ? $choice.html()
757
- : $choice.text()
763
+ ? $choice.html().trim()
764
+ : $choice.text().trim()
758
765
  ;
759
766
  }
760
767
  },
@@ -763,8 +770,8 @@ $.fn.dropdown = function(parameters) {
763
770
  return ($choice.data(metadata.value) !== undefined)
764
771
  ? $choice.data(metadata.value)
765
772
  : (typeof choiceText === 'string')
766
- ? choiceText.toLowerCase()
767
- : choiceText
773
+ ? choiceText.toLowerCase().trim()
774
+ : choiceText.trim()
768
775
  ;
769
776
  },
770
777
  inputEvent: function() {
@@ -893,6 +900,7 @@ $.fn.dropdown = function(parameters) {
893
900
  ;
894
901
  module.debug('Restoring default text', defaultText);
895
902
  module.set.text(defaultText);
903
+ $text.addClass(settings.className.placeholder);
896
904
  },
897
905
  defaultValue: function() {
898
906
  var
@@ -900,8 +908,14 @@ $.fn.dropdown = function(parameters) {
900
908
  ;
901
909
  if(defaultValue !== undefined) {
902
910
  module.debug('Restoring default value', defaultValue);
903
- module.set.selected(defaultValue);
904
- module.set.value(defaultValue);
911
+ if(defaultValue.length) {
912
+ module.set.selected(defaultValue);
913
+ module.set.value(defaultValue);
914
+ }
915
+ else {
916
+ module.remove.activeItem();
917
+ module.remove.selectedItem();
918
+ }
905
919
  }
906
920
  }
907
921
  },
@@ -970,7 +984,7 @@ $.fn.dropdown = function(parameters) {
970
984
  ;
971
985
 
972
986
  $item = $item || module.get.activeItem();
973
- hasActive = ($item && $item.size() > 0);
987
+ hasActive = ($item && $item.length > 0);
974
988
  forceScroll = (forceScroll !== undefined)
975
989
  ? forceScroll
976
990
  : false
@@ -1025,7 +1039,7 @@ $.fn.dropdown = function(parameters) {
1025
1039
  },
1026
1040
  value: function(value) {
1027
1041
  module.debug('Adding selected value to hidden input', value, $input);
1028
- if($input.size() > 0) {
1042
+ if($input.length > 0) {
1029
1043
  $input
1030
1044
  .val(value)
1031
1045
  .trigger('change')
@@ -1060,7 +1074,7 @@ $.fn.dropdown = function(parameters) {
1060
1074
 
1061
1075
  selectedText = module.get.choiceText($selectedItem);
1062
1076
  module.set.text(selectedText);
1063
- $.proxy(settings.onChange, element)(value, selectedText, $selectedItem);
1077
+ settings.onChange.call(element, value, selectedText, $selectedItem);
1064
1078
  }
1065
1079
  }
1066
1080
  },
@@ -1117,7 +1131,7 @@ $.fn.dropdown = function(parameters) {
1117
1131
  ;
1118
1132
  },
1119
1133
  allFiltered: function() {
1120
- return ($item.filter('.' + className.filtered).size() === $item.size());
1134
+ return ($item.filter('.' + className.filtered).length === $item.length);
1121
1135
  },
1122
1136
  hidden: function($subMenu) {
1123
1137
  return ($subMenu)
@@ -1129,7 +1143,7 @@ $.fn.dropdown = function(parameters) {
1129
1143
  return $module.hasClass(className.search);
1130
1144
  },
1131
1145
  searchable: function() {
1132
- return ($search.size() > 0);
1146
+ return ($search.length > 0);
1133
1147
  },
1134
1148
  searchSelection: function() {
1135
1149
  return ( module.is.searchable() && $search.parent().is($module) );
@@ -1137,6 +1151,9 @@ $.fn.dropdown = function(parameters) {
1137
1151
  selection: function() {
1138
1152
  return $module.hasClass(className.selection);
1139
1153
  },
1154
+ upward: function() {
1155
+ return $module.hasClass(className.upward);
1156
+ },
1140
1157
  visible: function($subMenu) {
1141
1158
  return ($subMenu)
1142
1159
  ? $subMenu.is(':visible')
@@ -1173,8 +1190,16 @@ $.fn.dropdown = function(parameters) {
1173
1190
  module.set.scrollPosition(module.get.activeItem(), true);
1174
1191
  module.verbose('Doing menu show animation', $currentMenu);
1175
1192
  if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {
1193
+
1194
+ if(settings.transition == 'auto') {
1195
+ settings.transition = module.is.upward()
1196
+ ? 'slide up'
1197
+ : 'slide down'
1198
+ ;
1199
+ }
1200
+
1176
1201
  if(settings.transition == 'none') {
1177
- $.proxy(callback, element)();
1202
+ callback.call(element);
1178
1203
  }
1179
1204
  else if($.fn.transition !== undefined && $module.transition('is supported')) {
1180
1205
  $currentMenu
@@ -1186,7 +1211,7 @@ $.fn.dropdown = function(parameters) {
1186
1211
  queue : true,
1187
1212
  onStart : start,
1188
1213
  onComplete : function() {
1189
- $.proxy(callback, element)();
1214
+ callback.call(element);
1190
1215
  }
1191
1216
  })
1192
1217
  ;
@@ -1205,8 +1230,8 @@ $.fn.dropdown = function(parameters) {
1205
1230
  }, settings.duration, 'easeOutQuad', module.event.resetStyle)
1206
1231
  .end()
1207
1232
  .slideDown(100, 'easeOutQuad', function() {
1208
- $.proxy(module.event.resetStyle, this)();
1209
- $.proxy(callback, element)();
1233
+ module.event.resetStyle.call(this);
1234
+ callback.call(element);
1210
1235
  })
1211
1236
  ;
1212
1237
  }
@@ -1216,8 +1241,8 @@ $.fn.dropdown = function(parameters) {
1216
1241
  .hide()
1217
1242
  .clearQueue()
1218
1243
  .fadeIn(settings.duration, function() {
1219
- $.proxy(module.event.resetStyle, this)();
1220
- $.proxy(callback, element)();
1244
+ module.event.resetStyle.call(this);
1245
+ callback.call(element);
1221
1246
  })
1222
1247
  ;
1223
1248
  }
@@ -1249,8 +1274,15 @@ $.fn.dropdown = function(parameters) {
1249
1274
  if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) {
1250
1275
  module.verbose('Doing menu hide animation', $currentMenu);
1251
1276
 
1277
+ if(settings.transition == 'auto') {
1278
+ settings.transition = module.is.upward()
1279
+ ? 'slide up'
1280
+ : 'slide down'
1281
+ ;
1282
+ }
1283
+
1252
1284
  if(settings.transition == 'none') {
1253
- $.proxy(callback, element)();
1285
+ callback.call(element);
1254
1286
  }
1255
1287
  else if($.fn.transition !== undefined && $module.transition('is supported')) {
1256
1288
  $currentMenu
@@ -1262,7 +1294,7 @@ $.fn.dropdown = function(parameters) {
1262
1294
  queue : true,
1263
1295
  onStart : start,
1264
1296
  onComplete : function() {
1265
- $.proxy(callback, element)();
1297
+ callback.call(element);
1266
1298
  }
1267
1299
  })
1268
1300
  ;
@@ -1281,8 +1313,8 @@ $.fn.dropdown = function(parameters) {
1281
1313
  .end()
1282
1314
  .delay(50)
1283
1315
  .slideUp(100, 'easeOutQuad', function() {
1284
- $.proxy(module.event.resetStyle, this)();
1285
- $.proxy(callback, element)();
1316
+ module.event.resetStyle.call(this);
1317
+ callback.call(element);
1286
1318
  })
1287
1319
  ;
1288
1320
  }
@@ -1292,8 +1324,8 @@ $.fn.dropdown = function(parameters) {
1292
1324
  .show()
1293
1325
  .clearQueue()
1294
1326
  .fadeOut(150, function() {
1295
- $.proxy(module.event.resetStyle, this)();
1296
- $.proxy(callback, element)();
1327
+ module.event.resetStyle.call(this);
1328
+ callback.call(element);
1297
1329
  })
1298
1330
  ;
1299
1331
  }
@@ -1317,6 +1349,13 @@ $.fn.dropdown = function(parameters) {
1317
1349
  }
1318
1350
  },
1319
1351
 
1352
+ escape: {
1353
+ regExp: function(text) {
1354
+ text = String(text);
1355
+ return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
1356
+ }
1357
+ },
1358
+
1320
1359
  setting: function(name, value) {
1321
1360
  module.debug('Changing setting', name, value);
1322
1361
  if( $.isPlainObject(name) ) {
@@ -1517,7 +1556,7 @@ $.fn.dropdown.settings = {
1517
1556
  touch : 50
1518
1557
  },
1519
1558
 
1520
- transition : 'slide down',
1559
+ transition : 'auto',
1521
1560
  duration : 250,
1522
1561
 
1523
1562
  /* Callbacks */
@@ -1566,6 +1605,7 @@ $.fn.dropdown.settings = {
1566
1605
  search : 'search',
1567
1606
  selected : 'selected',
1568
1607
  selection : 'selection',
1608
+ upward : 'upward',
1569
1609
  visible : 'visible'
1570
1610
  }
1571
1611
 
@@ -1615,4 +1655,4 @@ $.extend( $.easing, {
1615
1655
  });
1616
1656
 
1617
1657
 
1618
- })( jQuery, window , document );
1658
+ })( jQuery, window , document );