less-rails-semantic_ui 1.0.1.0 → 1.1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +4 -0
  3. data/README.md +1 -1
  4. data/assets/javascripts/semantic_ui/definitions/behaviors/form.js +1 -1
  5. data/assets/javascripts/semantic_ui/definitions/behaviors/visit.js +0 -3
  6. data/assets/javascripts/semantic_ui/definitions/modules/dropdown.js +16 -16
  7. data/assets/javascripts/semantic_ui/definitions/modules/nag.js +0 -3
  8. data/assets/javascripts/semantic_ui/definitions/modules/popup.js +147 -84
  9. data/assets/javascripts/semantic_ui/definitions/modules/progress.js +2 -2
  10. data/assets/javascripts/semantic_ui/definitions/modules/sidebar.js +1 -1
  11. data/assets/javascripts/semantic_ui/definitions/modules/transition.js +95 -36
  12. data/assets/stylesheets/semantic_ui/definitions/collections/grid.less +503 -0
  13. data/assets/stylesheets/semantic_ui/definitions/collections/menu.less +14 -11
  14. data/assets/stylesheets/semantic_ui/definitions/elements/input.less +34 -23
  15. data/assets/stylesheets/semantic_ui/definitions/elements/segment.less +0 -5
  16. data/assets/stylesheets/semantic_ui/definitions/globals/site.less +1 -0
  17. data/assets/stylesheets/semantic_ui/definitions/modules/dropdown.less +6 -0
  18. data/assets/stylesheets/semantic_ui/definitions/modules/progress.less +46 -15
  19. data/assets/stylesheets/semantic_ui/themes/default/collections/form.variables +5 -5
  20. data/assets/stylesheets/semantic_ui/themes/default/collections/menu.variables +1 -2
  21. data/assets/stylesheets/semantic_ui/themes/default/elements/button.variables +1 -1
  22. data/assets/stylesheets/semantic_ui/themes/default/elements/icon.overrides +0 -1
  23. data/assets/stylesheets/semantic_ui/themes/default/elements/input.variables +11 -7
  24. data/assets/stylesheets/semantic_ui/themes/default/elements/step.variables +11 -12
  25. data/assets/stylesheets/semantic_ui/themes/default/modules/dropdown.variables +4 -2
  26. data/assets/stylesheets/semantic_ui/themes/default/modules/popup.variables +4 -4
  27. data/assets/stylesheets/semantic_ui/themes/default/modules/progress.variables +11 -3
  28. data/assets/stylesheets/semantic_ui/themes/default/modules/search.variables +1 -1
  29. data/assets/stylesheets/semantic_ui/themes/flat/collections/form.variables +2 -2
  30. data/assets/stylesheets/semantic_ui/themes/raised/elements/button.variables +1 -0
  31. data/less-rails-semantic_ui.gemspec +1 -1
  32. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e70b84d6064f83095965780ef91ab2a26f60738f
4
- data.tar.gz: 0853b4dc1a93b76a6cf42e69644e2f3c4726a6a9
3
+ metadata.gz: 3ca3f94a11aa4bfbd455620d9de024a2f245d1a5
4
+ data.tar.gz: 97c8a561b7d08ee88361b07147993b0f3a0ec90d
5
5
  SHA512:
6
- metadata.gz: 36f3993d3b69ee50a47e20f7d471ba1a8b32d960839212db2f5b4102689c4eca002ed796d92c0b5f6ec755728fb46660e8411a7b342d10b254f9dd395c167b7b
7
- data.tar.gz: 74f057debf6d801e17cdff3c47ff99e65f7dcd1a352f8cb94b27c84c9024cbd015dbd1806ae88da9aa97ca18071d2b02d7c266873766299d3a4597240098119b
6
+ metadata.gz: c83e51df4988a240a38ab11b74a2a2a799d44d73e4477298ecbd792c74bccc991f6081691668290fb26389777aa1d17910ec7d53a35e8ff8d58721cbb3081474
7
+ data.tar.gz: 73c4cd5660d0a1434509c13f99a81182dc6b11b12469d91fd0493e49b903becc2f8aa06275526b9f7855907e5f7a54a326a885ca3dd1af2169d331b80862f538
data/Appraisals CHANGED
@@ -5,3 +5,7 @@ end
5
5
  appraise 'rails41' do
6
6
  gem 'rails', '~> 4.1.8'
7
7
  end
8
+
9
+ appraise 'rails42' do
10
+ gem 'rails', '~> 4.2.0.rc1'
11
+ end
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # less-rails-semantic_ui [![Build Status](https://travis-ci.org/maxd/less-rails-semantic_ui.png?branch=master)](https://travis-ci.org/maxd/less-rails-semantic_ui)
1
+ # less-rails-semantic_ui [![Gem Version](https://badge.fury.io/rb/less-rails-semantic_ui.svg)](http://badge.fury.io/rb/less-rails-semantic_ui) [![Build Status](https://travis-ci.org/maxd/less-rails-semantic_ui.png?branch=master)](https://travis-ci.org/maxd/less-rails-semantic_ui)
2
2
 
3
3
  This is a gem for Rails with [Semantic UI](https://github.com/Semantic-Org/Semantic-UI/) assets inside.
4
4
  It provide ability to customize component themes and variables on the fly in your application.
@@ -208,7 +208,7 @@ $.fn.form = function(fields, parameters) {
208
208
 
209
209
  get: {
210
210
  changeEvent: function(type) {
211
- if(type == 'checkbox' || type == 'radio') {
211
+ if(type == 'checkbox' || type == 'radio' || type == 'hidden') {
212
212
  return 'change';
213
213
  }
214
214
  else {
@@ -511,6 +511,3 @@ $.fn.visit.settings = {
511
511
  };
512
512
 
513
513
  })( jQuery, window , document );
514
-
515
- /*! jquery.cookie v1.4.1 | MIT */
516
- !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});
@@ -220,14 +220,9 @@ $.fn.dropdown = function(parameters) {
220
220
 
221
221
  hideSubMenus: function() {
222
222
  var
223
- $subMenus = $menu.find(selector.menu),
224
- $activeSubMenu = $subMenus.has(selector.item + '.' + className.active)
225
- ;
226
- $subMenus
227
- .not($activeSubMenu)
228
- .removeClass(className.visible)
229
- .removeAttr('style')
223
+ $subMenus = $menu.find(selector.menu)
230
224
  ;
225
+ $subMenus.transition('hide');
231
226
  },
232
227
 
233
228
  bind: {
@@ -537,23 +532,25 @@ $.fn.dropdown = function(parameters) {
537
532
  item: {
538
533
  mouseenter: function(event) {
539
534
  var
540
- $currentMenu = $(this).find(selector.menu),
535
+ $currentMenu = $(this).children(selector.menu),
541
536
  $otherMenus = $(this).siblings(selector.item).children(selector.menu)
542
537
  ;
543
538
  if( $currentMenu.size() > 0 ) {
544
539
  clearTimeout(module.itemTimer);
545
540
  module.itemTimer = setTimeout(function() {
546
- module.animate.hide(false, $otherMenus);
541
+ $.each($otherMenus, function() {
542
+ module.animate.hide(false, $(this));
543
+ });
547
544
  module.verbose('Showing sub-menu', $currentMenu);
548
545
  module.animate.show(false, $currentMenu);
549
- }, settings.delay.show * 2);
546
+ }, settings.delay.show);
550
547
  event.preventDefault();
551
548
  }
552
549
  },
553
550
 
554
551
  mouseleave: function(event) {
555
552
  var
556
- $currentMenu = $(this).find(selector.menu)
553
+ $currentMenu = $(this).children(selector.menu)
557
554
  ;
558
555
  if($currentMenu.size() > 0) {
559
556
  clearTimeout(module.itemTimer);
@@ -581,7 +578,6 @@ $.fn.dropdown = function(parameters) {
581
578
  module.remove.searchTerm();
582
579
  module.remove.filteredItem();
583
580
  module.determine.selectAction(text, value);
584
- $.proxy(settings.onChange, element)(value, text, $choice);
585
581
  },
586
582
  openingSubMenu = ($choice.find(selector.menu).size() > 0)
587
583
  ;
@@ -947,6 +943,7 @@ $.fn.dropdown = function(parameters) {
947
943
  .addClass(className.selected)
948
944
  ;
949
945
  module.set.text(selectedText);
946
+ $.proxy(settings.onChange, element)(value, selectedText, $selectedItem);
950
947
  }
951
948
  }
952
949
  },
@@ -1005,7 +1002,7 @@ $.fn.dropdown = function(parameters) {
1005
1002
  selection: function() {
1006
1003
  return $module.hasClass(className.selection);
1007
1004
  },
1008
- animated: function($subMenu) {
1005
+ animating: function($subMenu) {
1009
1006
  return ($subMenu)
1010
1007
  ? $subMenu.is(':animated') || $subMenu.transition && $subMenu.transition('is animating')
1011
1008
  : $menu.is(':animated') || $menu.transition && $menu.transition('is animating')
@@ -1044,6 +1041,7 @@ $.fn.dropdown = function(parameters) {
1044
1041
  start = ($subMenu)
1045
1042
  ? function() {}
1046
1043
  : function() {
1044
+ module.hideSubMenus();
1047
1045
  module.hideOthers();
1048
1046
  module.set.active();
1049
1047
  module.set.scrollPosition();
@@ -1051,7 +1049,7 @@ $.fn.dropdown = function(parameters) {
1051
1049
  ;
1052
1050
  callback = callback || function(){};
1053
1051
  module.verbose('Doing menu show animation', $currentMenu);
1054
- if( module.is.hidden($currentMenu) ) {
1052
+ if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {
1055
1053
  if(settings.transition == 'none') {
1056
1054
  $.proxy(callback, element)();
1057
1055
  }
@@ -1108,6 +1106,9 @@ $.fn.dropdown = function(parameters) {
1108
1106
  hide: function(callback, $subMenu) {
1109
1107
  var
1110
1108
  $currentMenu = $subMenu || $menu,
1109
+ duration = ($subMenu)
1110
+ ? (settings.duration * 0.9)
1111
+ : settings.duration,
1111
1112
  start = ($subMenu)
1112
1113
  ? function() {}
1113
1114
  : function() {
@@ -1115,12 +1116,11 @@ $.fn.dropdown = function(parameters) {
1115
1116
  module.unbind.intent();
1116
1117
  }
1117
1118
  module.focusSearch();
1118
- module.hideSubMenus();
1119
1119
  module.remove.active();
1120
1120
  }
1121
1121
  ;
1122
1122
  callback = callback || function(){};
1123
- if( module.is.visible($currentMenu) ) {
1123
+ if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) {
1124
1124
  module.verbose('Doing menu hide animation', $currentMenu);
1125
1125
 
1126
1126
  if(settings.transition == 'none') {
@@ -475,6 +475,3 @@ $.fn.nag.settings = {
475
475
  };
476
476
 
477
477
  })( jQuery, window , document );
478
-
479
- /*! jquery.cookie v1.4.1 | MIT */
480
- !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});
@@ -37,30 +37,31 @@ $.fn.popup = function(parameters) {
37
37
  ? $.extend(true, {}, $.fn.popup.settings, parameters)
38
38
  : $.extend({}, $.fn.popup.settings),
39
39
 
40
- selector = settings.selector,
41
- className = settings.className,
42
- error = settings.error,
43
- metadata = settings.metadata,
44
- namespace = settings.namespace,
45
-
46
- eventNamespace = '.' + settings.namespace,
47
- moduleNamespace = 'module-' + namespace,
48
-
49
- $module = $(this),
50
- $context = $(settings.context),
51
- $target = (settings.target)
40
+ selector = settings.selector,
41
+ className = settings.className,
42
+ error = settings.error,
43
+ metadata = settings.metadata,
44
+ namespace = settings.namespace,
45
+
46
+ eventNamespace = '.' + settings.namespace,
47
+ moduleNamespace = 'module-' + namespace,
48
+
49
+ $module = $(this),
50
+ $context = $(settings.context),
51
+ $target = (settings.target)
52
52
  ? $(settings.target)
53
53
  : $module,
54
54
 
55
- $window = $(window),
56
- $body = $('body'),
55
+ $window = $(window),
56
+ $body = $('body'),
57
57
  $popup,
58
58
  $offsetParent,
59
59
 
60
- searchDepth = 0,
60
+ searchDepth = 0,
61
+ triedPositions = false,
61
62
 
62
- element = this,
63
- instance = $module.data(moduleNamespace),
63
+ element = this,
64
+ instance = $module.data(moduleNamespace),
64
65
  module
65
66
  ;
66
67
 
@@ -310,9 +311,7 @@ $.fn.popup = function(parameters) {
310
311
  removePopup: function() {
311
312
  module.debug('Removing popup');
312
313
  $.proxy(settings.onRemove, $popup)(element);
313
- $popup
314
- .removePopup()
315
- ;
314
+ $popup.remove();
316
315
  },
317
316
 
318
317
  save: {
@@ -442,7 +441,7 @@ $.fn.popup = function(parameters) {
442
441
  top : (popup.offset.top < boundary.top),
443
442
  bottom : (popup.offset.top + popup.height > boundary.bottom),
444
443
  right : (popup.offset.left + popup.width > boundary.right),
445
- left : false
444
+ left : (popup.offset.left < boundary.left)
446
445
  };
447
446
  }
448
447
  // return only boundaries that have been surpassed
@@ -456,34 +455,74 @@ $.fn.popup = function(parameters) {
456
455
  : false
457
456
  ;
458
457
  },
458
+ positions: function() {
459
+ return {
460
+ 'top left' : false,
461
+ 'top center' : false,
462
+ 'top right' : false,
463
+ 'bottom left' : false,
464
+ 'bottom center' : false,
465
+ 'bottom right' : false,
466
+ 'left center' : false,
467
+ 'right center' : false
468
+ };
469
+ },
459
470
  nextPosition: function(position) {
460
- switch(position) {
461
- case 'top left':
462
- position = 'bottom left';
463
- break;
464
- case 'bottom left':
465
- position = 'top right';
466
- break;
467
- case 'top right':
468
- position = 'bottom right';
469
- break;
470
- case 'bottom right':
471
- position = 'top center';
472
- break;
473
- case 'top center':
474
- position = 'bottom center';
475
- break;
476
- case 'bottom center':
477
- position = 'right center';
478
- break;
479
- case 'right center':
480
- position = 'left center';
481
- break;
482
- case 'left center':
483
- position = 'top center';
484
- break;
471
+ var
472
+ positions = position.split(' '),
473
+ verticalPosition = positions[0],
474
+ horizontalPosition = positions[1],
475
+ opposite = {
476
+ top : 'bottom',
477
+ bottom : 'top',
478
+ left : 'right',
479
+ right : 'left'
480
+ },
481
+ adjacent = {
482
+ left : 'center',
483
+ center : 'right',
484
+ right : 'left'
485
+ },
486
+ backup = {
487
+ 'top left' : 'top center',
488
+ 'top center' : 'top right',
489
+ 'top right' : 'right center',
490
+ 'right center' : 'bottom right',
491
+ 'bottom right' : 'bottom center',
492
+ 'bottom center' : 'bottom left',
493
+ 'bottom left' : 'left center',
494
+ 'left center' : 'top left'
495
+ },
496
+ adjacentsAvailable = (verticalPosition == 'top' || verticalPosition == 'bottom'),
497
+ oppositeTried = false,
498
+ adjacentTried = false,
499
+ nextPosition = false
500
+ ;
501
+ if(!triedPositions) {
502
+ module.verbose('All available positions available');
503
+ triedPositions = module.get.positions();
504
+ }
505
+
506
+ module.debug('Recording last position tried', position);
507
+ triedPositions[position] = true;
508
+
509
+ if(settings.prefer === 'opposite') {
510
+ nextPosition = [opposite[verticalPosition], horizontalPosition];
511
+ nextPosition = nextPosition.join(' ');
512
+ oppositeTried = (triedPositions[nextPosition] === true);
513
+ module.debug('Trying opposite strategy', nextPosition);
514
+ }
515
+ if((settings.prefer === 'adjacent') && adjacentsAvailable ) {
516
+ nextPosition = [verticalPosition, adjacent[horizontalPosition]];
517
+ nextPosition = nextPosition.join(' ');
518
+ adjacentTried = (triedPositions[nextPosition] === true);
519
+ module.debug('Trying adjacent strategy', nextPosition);
520
+ }
521
+ if(adjacentTried || oppositeTried) {
522
+ module.debug('Using backup position', nextPosition);
523
+ nextPosition = backup[position];
485
524
  }
486
- return position;
525
+ return nextPosition;
487
526
  }
488
527
  },
489
528
 
@@ -522,6 +561,12 @@ $.fn.popup = function(parameters) {
522
561
  ;
523
562
  position = position || $module.data(metadata.position) || settings.position;
524
563
  arrowOffset = arrowOffset || $module.data(metadata.offset) || settings.offset;
564
+
565
+ if(searchDepth == settings.maxSearchDepth && settings.lastResort) {
566
+ module.debug('Using last resort position to display', settings.lastResort);
567
+ position = settings.lastResort;
568
+ }
569
+
525
570
  if(settings.inline) {
526
571
  module.debug('Adding targets margin to calculation');
527
572
  if(position == 'left center' || position == 'right center') {
@@ -605,8 +650,9 @@ $.fn.popup = function(parameters) {
605
650
  break;
606
651
  }
607
652
  if(positioning === undefined) {
608
- module.error(error.invalidPosition);
653
+ module.error(error.invalidPosition, position);
609
654
  }
655
+
610
656
  // tentatively place on stage
611
657
  $popup
612
658
  .css(positioning)
@@ -619,32 +665,36 @@ $.fn.popup = function(parameters) {
619
665
 
620
666
  // recursively find new positioning
621
667
  if(offstagePosition) {
622
- module.debug('Element is outside boundaries', offstagePosition);
668
+ module.debug('Popup cant fit into viewport', offstagePosition);
623
669
  if(searchDepth < settings.maxSearchDepth) {
624
- position = module.get.nextPosition(position);
625
670
  searchDepth++;
671
+ position = module.get.nextPosition(position);
626
672
  module.debug('Trying new position', position);
627
673
  return ($popup)
628
674
  ? module.set.position(position)
629
675
  : false
630
676
  ;
631
677
  }
632
- else {
633
- module.debug('Popup could not find a position onstage', $popup);
634
- searchDepth = 0;
678
+ else if(!settings.lastResort) {
679
+ module.debug('Popup could not find a position in view', $popup);
680
+ module.error(error.cannotPlace);
681
+ module.remove.attempts();
682
+ module.remove.loading();
635
683
  module.reset();
636
- $popup.removeClass(className.loading);
637
684
  return false;
638
685
  }
639
686
  }
640
- else {
641
- module.debug('Position is on stage', position);
642
- searchDepth = 0;
643
- if( settings.setFluidWidth && $popup.hasClass(className.fluid) ) {
644
- $popup.css('width', $offsetParent.width());
645
- }
646
- $popup.removeClass(className.loading);
647
- return true;
687
+
688
+ module.debug('Position is on stage', position);
689
+ module.remove.attempts();
690
+ module.set.fluidWidth();
691
+ module.remove.loading();
692
+ return true;
693
+ },
694
+
695
+ fluidWidth: function() {
696
+ if( settings.setFluidWidth && $popup.hasClass(className.fluid) ) {
697
+ $popup.css('width', $offsetParent.width());
648
698
  }
649
699
  },
650
700
 
@@ -654,8 +704,16 @@ $.fn.popup = function(parameters) {
654
704
  },
655
705
 
656
706
  remove: {
707
+ loading: function() {
708
+ $popup.removeClass(className.loading);
709
+ },
657
710
  visible: function() {
658
711
  $module.removeClass(className.visible);
712
+ },
713
+ attempts: function() {
714
+ module.verbose('Resetting all searched positions');
715
+ searchDepth = 0;
716
+ triedPositions = false;
659
717
  }
660
718
  },
661
719
 
@@ -920,33 +978,37 @@ $.fn.popup = function(parameters) {
920
978
 
921
979
  $.fn.popup.settings = {
922
980
 
923
- name : 'Popup',
981
+ name : 'Popup',
982
+
983
+ debug : false,
984
+ verbose : true,
985
+ performance : true,
986
+ namespace : 'popup',
987
+
988
+ onCreate : function(){},
989
+ onRemove : function(){},
924
990
 
925
- debug : false,
926
- verbose : true,
927
- performance : true,
928
- namespace : 'popup',
991
+ onShow : function(){},
992
+ onVisible : function(){},
993
+ onHide : function(){},
994
+ onHidden : function(){},
929
995
 
930
- onCreate : function(){},
931
- onRemove : function(){},
996
+ variation : '',
997
+ content : false,
998
+ html : false,
999
+ title : false,
932
1000
 
933
- onShow : function(){},
934
- onVisible : function(){},
935
- onHide : function(){},
936
- onHidden : function(){},
1001
+ on : 'hover',
1002
+ closable : true,
1003
+ hideOnScroll : 'auto',
937
1004
 
938
- variation : '',
939
- content : false,
940
- html : false,
941
- title : false,
1005
+ context : 'body',
942
1006
 
943
- on : 'hover',
944
- closable : true,
945
- hideOnScroll : 'auto',
1007
+ position : 'top left',
1008
+ prefer : 'opposite',
1009
+ lastResort : false,
946
1010
 
947
- context : 'body',
948
- position : 'top left',
949
- delay : {
1011
+ delay : {
950
1012
  show : 30,
951
1013
  hide : 0
952
1014
  },
@@ -965,10 +1027,11 @@ $.fn.popup.settings = {
965
1027
 
966
1028
  distanceAway : 0,
967
1029
  offset : 0,
968
- maxSearchDepth : 10,
1030
+ maxSearchDepth : 20,
969
1031
 
970
1032
  error: {
971
1033
  invalidPosition : 'The position you specified is not a valid position',
1034
+ cannotPlace : 'No visible position could be found for the popup',
972
1035
  method : 'The method you called is not defined.'
973
1036
  },
974
1037