diff --git a/_config.yml b/_config.yml
index 2a09e3363..377d0d746 100644
--- a/_config.yml
+++ b/_config.yml
@@ -51,7 +51,7 @@ fontawesome:
url: http://creativecommons.org/licenses/by/3.0/
bootstrap:
- version: 3.0.0
+ version: 3.0.2
url: http://getbootstrap.com
jquery:
diff --git a/src/Makefile b/src/Makefile
index 4cdb734c6..4f76e2ccd 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -17,7 +17,7 @@ SITE_LESS_DIRECTORY = assets/less
SITE_CSS_DIRECTORY = assets/css
SITE_LESS = ${SITE_LESS_DIRECTORY}/site.less
-SITE_CSS_MIN = ${SITE_CSS_DIRECTORY}/site.css
+SITE_CSS = ${SITE_CSS_DIRECTORY}/site.css
build:
@echo "Compiling Less files"
@@ -27,7 +27,7 @@ build:
lessc --yui-compress ${FA_LESS_MODERN} > ${FA_CSS_MODERN_MIN}
# sass ${FA_SCSS_MODERN} ${FA_CSS_MODERN}
- lessc --compress ${SITE_LESS} > ${SITE_CSS_MIN}
+ lessc --yui-compress ${SITE_LESS} > ${SITE_CSS}
cp -r ${FA_ROOT_DIRECTORY}/* ../
cd assets && mv font-awesome font-awesome-{{ site.fontawesome.version }} && zip -r9 font-awesome-{{ site.fontawesome.version }}.zip font-awesome-{{ site.fontawesome.version }} && mv font-awesome-{{ site.fontawesome.version }} font-awesome
diff --git a/src/assets/js/bootstrap-222.min.js b/src/assets/js/bootstrap-222.min.js
deleted file mode 100644
index 6eeb15ce3..000000000
--- a/src/assets/js/bootstrap-222.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
-* Bootstrap.js by @fat & @mdo
-* Copyright 2012 Twitter, Inc.
-* http://www.apache.org/licenses/LICENSE-2.0.txt
-*/
-!function($){"use strict";$(function(){$.support.transition=function(){var transitionEnd=function(){var name,el=document.createElement("bootstrap"),transEndEventNames={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(name in transEndEventNames)if(void 0!==el.style[name])return transEndEventNames[name]}();return transitionEnd&&{end:transitionEnd}}()})}(window.jQuery),!function($){"use strict";var dismiss='[data-dismiss="alert"]',Alert=function(el){$(el).on("click",dismiss,this.close)};Alert.prototype.close=function(e){function removeElement(){$parent.trigger("closed").remove()}var $parent,$this=$(this),selector=$this.attr("data-target");selector||(selector=$this.attr("href"),selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,"")),$parent=$(selector),e&&e.preventDefault(),$parent.length||($parent=$this.hasClass("alert")?$this:$this.parent()),$parent.trigger(e=$.Event("close")),e.isDefaultPrevented()||($parent.removeClass("in"),$.support.transition&&$parent.hasClass("fade")?$parent.on($.support.transition.end,removeElement):removeElement())};var old=$.fn.alert;$.fn.alert=function(option){return this.each(function(){var $this=$(this),data=$this.data("alert");data||$this.data("alert",data=new Alert(this)),"string"==typeof option&&data[option].call($this)})},$.fn.alert.Constructor=Alert,$.fn.alert.noConflict=function(){return $.fn.alert=old,this},$(document).on("click.alert.data-api",dismiss,Alert.prototype.close)}(window.jQuery),!function($){"use strict";var Button=function(element,options){this.$element=$(element),this.options=$.extend({},$.fn.button.defaults,options)};Button.prototype.setState=function(state){var d="disabled",$el=this.$element,data=$el.data(),val=$el.is("input")?"val":"html";state+="Text",data.resetText||$el.data("resetText",$el[val]()),$el[val](data[state]||this.options[state]),setTimeout(function(){"loadingText"==state?$el.addClass(d).attr(d,d):$el.removeClass(d).removeAttr(d)},0)},Button.prototype.toggle=function(){var $parent=this.$element.closest('[data-toggle="buttons-radio"]');$parent&&$parent.find(".active").removeClass("active"),this.$element.toggleClass("active")};var old=$.fn.button;$.fn.button=function(option){return this.each(function(){var $this=$(this),data=$this.data("button"),options="object"==typeof option&&option;data||$this.data("button",data=new Button(this,options)),"toggle"==option?data.toggle():option&&data.setState(option)})},$.fn.button.defaults={loadingText:"loading..."},$.fn.button.Constructor=Button,$.fn.button.noConflict=function(){return $.fn.button=old,this},$(document).on("click.button.data-api","[data-toggle^=button]",function(e){var $btn=$(e.target);$btn.hasClass("btn")||($btn=$btn.closest(".btn")),$btn.button("toggle")})}(window.jQuery),!function($){"use strict";var Carousel=function(element,options){this.$element=$(element),this.options=options,"hover"==this.options.pause&&this.$element.on("mouseenter",$.proxy(this.pause,this)).on("mouseleave",$.proxy(this.cycle,this))};Carousel.prototype={cycle:function(e){return e||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval($.proxy(this.next,this),this.options.interval)),this},to:function(pos){var $active=this.$element.find(".item.active"),children=$active.parent().children(),activePos=children.index($active),that=this;if(!(pos>children.length-1||0>pos))return this.sliding?this.$element.one("slid",function(){that.to(pos)}):activePos==pos?this.pause().cycle():this.slide(pos>activePos?"next":"prev",$(children[pos]))},pause:function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&$.support.transition.end&&(this.$element.trigger($.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){return this.sliding?void 0:this.slide("next")},prev:function(){return this.sliding?void 0:this.slide("prev")},slide:function(type,next){var e,$active=this.$element.find(".item.active"),$next=next||$active[type](),isCycling=this.interval,direction="next"==type?"left":"right",fallback="next"==type?"first":"last",that=this;if(this.sliding=!0,isCycling&&this.pause(),$next=$next.length?$next:this.$element.find(".item")[fallback](),e=$.Event("slide",{relatedTarget:$next[0]}),!$next.hasClass("active")){if($.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(e),e.isDefaultPrevented())return;$next.addClass(type),$next[0].offsetWidth,$active.addClass(direction),$next.addClass(direction),this.$element.one($.support.transition.end,function(){$next.removeClass([type,direction].join(" ")).addClass("active"),$active.removeClass(["active",direction].join(" ")),that.sliding=!1,setTimeout(function(){that.$element.trigger("slid")},0)})}else{if(this.$element.trigger(e),e.isDefaultPrevented())return;$active.removeClass("active"),$next.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return isCycling&&this.cycle(),this}}};var old=$.fn.carousel;$.fn.carousel=function(option){return this.each(function(){var $this=$(this),data=$this.data("carousel"),options=$.extend({},$.fn.carousel.defaults,"object"==typeof option&&option),action="string"==typeof option?option:options.slide;data||$this.data("carousel",data=new Carousel(this,options)),"number"==typeof option?data.to(option):action?data[action]():options.interval&&data.cycle()})},$.fn.carousel.defaults={interval:5e3,pause:"hover"},$.fn.carousel.Constructor=Carousel,$.fn.carousel.noConflict=function(){return $.fn.carousel=old,this},$(document).on("click.carousel.data-api","[data-slide]",function(e){var href,$this=$(this),$target=$($this.attr("data-target")||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"")),options=$.extend({},$target.data(),$this.data());$target.carousel(options),e.preventDefault()})}(window.jQuery),!function($){"use strict";var Collapse=function(element,options){this.$element=$(element),this.options=$.extend({},$.fn.collapse.defaults,options),this.options.parent&&(this.$parent=$(this.options.parent)),this.options.toggle&&this.toggle()};Collapse.prototype={constructor:Collapse,dimension:function(){var hasWidth=this.$element.hasClass("width");return hasWidth?"width":"height"},show:function(){var dimension,scroll,actives,hasData;if(!this.transitioning){if(dimension=this.dimension(),scroll=$.camelCase(["scroll",dimension].join("-")),actives=this.$parent&&this.$parent.find("> .accordion-group > .in"),actives&&actives.length){if(hasData=actives.data("collapse"),hasData&&hasData.transitioning)return;actives.collapse("hide"),hasData||actives.data("collapse",null)}this.$element[dimension](0),this.transition("addClass",$.Event("show"),"shown"),$.support.transition&&this.$element[dimension](this.$element[0][scroll])}},hide:function(){var dimension;this.transitioning||(dimension=this.dimension(),this.reset(this.$element[dimension]()),this.transition("removeClass",$.Event("hide"),"hidden"),this.$element[dimension](0))},reset:function(size){var dimension=this.dimension();return this.$element.removeClass("collapse")[dimension](size||"auto")[0].offsetWidth,this.$element[null!==size?"addClass":"removeClass"]("collapse"),this},transition:function(method,startEvent,completeEvent){var that=this,complete=function(){"show"==startEvent.type&&that.reset(),that.transitioning=0,that.$element.trigger(completeEvent)};this.$element.trigger(startEvent),startEvent.isDefaultPrevented()||(this.transitioning=1,this.$element[method]("in"),$.support.transition&&this.$element.hasClass("collapse")?this.$element.one($.support.transition.end,complete):complete())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var old=$.fn.collapse;$.fn.collapse=function(option){return this.each(function(){var $this=$(this),data=$this.data("collapse"),options="object"==typeof option&&option;data||$this.data("collapse",data=new Collapse(this,options)),"string"==typeof option&&data[option]()})},$.fn.collapse.defaults={toggle:!0},$.fn.collapse.Constructor=Collapse,$.fn.collapse.noConflict=function(){return $.fn.collapse=old,this},$(document).on("click.collapse.data-api","[data-toggle=collapse]",function(e){var href,$this=$(this),target=$this.attr("data-target")||e.preventDefault()||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,""),option=$(target).data("collapse")?"toggle":$this.data();$this[$(target).hasClass("in")?"addClass":"removeClass"]("collapsed"),$(target).collapse(option)})}(window.jQuery),!function($){"use strict";function clearMenus(){$(toggle).each(function(){getParent($(this)).removeClass("open")})}function getParent($this){var $parent,selector=$this.attr("data-target");return selector||(selector=$this.attr("href"),selector=selector&&/#/.test(selector)&&selector.replace(/.*(?=#[^\s]*$)/,"")),$parent=$(selector),$parent.length||($parent=$this.parent()),$parent}var toggle="[data-toggle=dropdown]",Dropdown=function(element){var $el=$(element).on("click.dropdown.data-api",this.toggle);$("html").on("click.dropdown.data-api",function(){$el.parent().removeClass("open")})};Dropdown.prototype={constructor:Dropdown,toggle:function(){var $parent,isActive,$this=$(this);if(!$this.is(".disabled, :disabled"))return $parent=getParent($this),isActive=$parent.hasClass("open"),clearMenus(),isActive||$parent.toggleClass("open"),$this.focus(),!1},keydown:function(e){var $this,$items,$parent,isActive,index;if(/(38|40|27)/.test(e.keyCode)&&($this=$(this),e.preventDefault(),e.stopPropagation(),!$this.is(".disabled, :disabled"))){if($parent=getParent($this),isActive=$parent.hasClass("open"),!isActive||isActive&&27==e.keyCode)return $this.click();$items=$("[role=menu] li:not(.divider):visible a",$parent),$items.length&&(index=$items.index($items.filter(":focus")),38==e.keyCode&&index>0&&index--,40==e.keyCode&&$items.length-1>index&&index++,~index||(index=0),$items.eq(index).focus())}}};var old=$.fn.dropdown;$.fn.dropdown=function(option){return this.each(function(){var $this=$(this),data=$this.data("dropdown");data||$this.data("dropdown",data=new Dropdown(this)),"string"==typeof option&&data[option].call($this)})},$.fn.dropdown.Constructor=Dropdown,$.fn.dropdown.noConflict=function(){return $.fn.dropdown=old,this},$(document).on("click.dropdown.data-api touchstart.dropdown.data-api",clearMenus).on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("touchstart.dropdown.data-api",".dropdown-menu",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",toggle,Dropdown.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",toggle+", [role=menu]",Dropdown.prototype.keydown)}(window.jQuery),!function($){"use strict";var Modal=function(element,options){this.options=options,this.$element=$(element).delegate('[data-dismiss="modal"]',"click.dismiss.modal",$.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};Modal.prototype={constructor:Modal,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var that=this,e=$.Event("show");this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var transition=$.support.transition&&that.$element.hasClass("fade");that.$element.parent().length||that.$element.appendTo(document.body),that.$element.show(),transition&&that.$element[0].offsetWidth,that.$element.addClass("in").attr("aria-hidden",!1),that.enforceFocus(),transition?that.$element.one($.support.transition.end,function(){that.$element.focus().trigger("shown")}):that.$element.focus().trigger("shown")}))},hide:function(e){e&&e.preventDefault(),e=$.Event("hide"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),$(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),$.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var that=this;$(document).on("focusin.modal",function(e){that.$element[0]===e.target||that.$element.has(e.target).length||that.$element.focus()})},escape:function(){var that=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(e){27==e.which&&that.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var that=this,timeout=setTimeout(function(){that.$element.off($.support.transition.end),that.hideModal()},500);this.$element.one($.support.transition.end,function(){clearTimeout(timeout),that.hideModal()})},hideModal:function(){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(callback){var animate=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var doAnimate=$.support.transition&&animate;this.$backdrop=$('
').appendTo(document.body),this.$backdrop.click("static"==this.options.backdrop?$.proxy(this.$element[0].focus,this.$element[0]):$.proxy(this.hide,this)),doAnimate&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),doAnimate?this.$backdrop.one($.support.transition.end,callback):callback()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),$.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one($.support.transition.end,$.proxy(this.removeBackdrop,this)):this.removeBackdrop()):callback&&callback()}};var old=$.fn.modal;$.fn.modal=function(option){return this.each(function(){var $this=$(this),data=$this.data("modal"),options=$.extend({},$.fn.modal.defaults,$this.data(),"object"==typeof option&&option);data||$this.data("modal",data=new Modal(this,options)),"string"==typeof option?data[option]():options.show&&data.show()})},$.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},$.fn.modal.Constructor=Modal,$.fn.modal.noConflict=function(){return $.fn.modal=old,this},$(document).on("click.modal.data-api",'[data-toggle="modal"]',function(e){var $this=$(this),href=$this.attr("href"),$target=$($this.attr("data-target")||href&&href.replace(/.*(?=#[^\s]+$)/,"")),option=$target.data("modal")?"toggle":$.extend({remote:!/#/.test(href)&&href},$target.data(),$this.data());e.preventDefault(),$target.modal(option).one("hide",function(){$this.focus()})})}(window.jQuery),!function($){"use strict";var Tooltip=function(element,options){this.init("tooltip",element,options)};Tooltip.prototype={constructor:Tooltip,init:function(type,element,options){var eventIn,eventOut;this.type=type,this.$element=$(element),this.options=this.getOptions(options),this.enabled=!0,"click"==this.options.trigger?this.$element.on("click."+this.type,this.options.selector,$.proxy(this.toggle,this)):"manual"!=this.options.trigger&&(eventIn="hover"==this.options.trigger?"mouseenter":"focus",eventOut="hover"==this.options.trigger?"mouseleave":"blur",this.$element.on(eventIn+"."+this.type,this.options.selector,$.proxy(this.enter,this)),this.$element.on(eventOut+"."+this.type,this.options.selector,$.proxy(this.leave,this))),this.options.selector?this._options=$.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(options){return options=$.extend({},$.fn[this.type].defaults,options,this.$element.data()),options.delay&&"number"==typeof options.delay&&(options.delay={show:options.delay,hide:options.delay}),options},enter:function(e){var self=$(e.currentTarget)[this.type](this._options).data(this.type);return self.options.delay&&self.options.delay.show?(clearTimeout(this.timeout),self.hoverState="in",this.timeout=setTimeout(function(){"in"==self.hoverState&&self.show()},self.options.delay.show),void 0):self.show()},leave:function(e){var self=$(e.currentTarget)[this.type](this._options).data(this.type);return this.timeout&&clearTimeout(this.timeout),self.options.delay&&self.options.delay.hide?(self.hoverState="out",this.timeout=setTimeout(function(){"out"==self.hoverState&&self.hide()},self.options.delay.hide),void 0):self.hide()},show:function(){var $tip,inside,pos,actualWidth,actualHeight,placement,tp;if(this.hasContent()&&this.enabled){switch($tip=this.tip(),this.setContent(),this.options.animation&&$tip.addClass("fade"),placement="function"==typeof this.options.placement?this.options.placement.call(this,$tip[0],this.$element[0]):this.options.placement,inside=/in/.test(placement),$tip.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),pos=this.getPosition(inside),actualWidth=$tip[0].offsetWidth,actualHeight=$tip[0].offsetHeight,inside?placement.split(" ")[1]:placement){case"bottom":tp={top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2};break;case"top":tp={top:pos.top-actualHeight,left:pos.left+pos.width/2-actualWidth/2};break;case"left":tp={top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth};break;case"right":tp={top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width}}$tip.offset(tp).addClass(placement).addClass("in")}},setContent:function(){var $tip=this.tip(),title=this.getTitle();$tip.find(".tooltip-inner")[this.options.html?"html":"text"](title),$tip.removeClass("fade in top bottom left right")},hide:function(){function removeWithAnimation(){var timeout=setTimeout(function(){$tip.off($.support.transition.end).detach()},500);$tip.one($.support.transition.end,function(){clearTimeout(timeout),$tip.detach()})}var $tip=this.tip();return $tip.removeClass("in"),$.support.transition&&this.$tip.hasClass("fade")?removeWithAnimation():$tip.detach(),this},fixTitle:function(){var $e=this.$element;($e.attr("title")||"string"!=typeof $e.attr("data-original-title"))&&$e.attr("data-original-title",$e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(inside){return $.extend({},inside?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var title,$e=this.$element,o=this.options;return title=$e.attr("data-original-title")||("function"==typeof o.title?o.title.call($e[0]):o.title)},tip:function(){return this.$tip=this.$tip||$(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(e){var self=$(e.currentTarget)[this.type](this._options).data(this.type);self[self.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var old=$.fn.tooltip;$.fn.tooltip=function(option){return this.each(function(){var $this=$(this),data=$this.data("tooltip"),options="object"==typeof option&&option;data||$this.data("tooltip",data=new Tooltip(this,options)),"string"==typeof option&&data[option]()})},$.fn.tooltip.Constructor=Tooltip,$.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover",title:"",delay:0,html:!1},$.fn.tooltip.noConflict=function(){return $.fn.tooltip=old,this}}(window.jQuery),!function($){"use strict";var Popover=function(element,options){this.init("popover",element,options)};Popover.prototype=$.extend({},$.fn.tooltip.Constructor.prototype,{constructor:Popover,setContent:function(){var $tip=this.tip(),title=this.getTitle(),content=this.getContent();$tip.find(".popover-title")[this.options.html?"html":"text"](title),$tip.find(".popover-content")[this.options.html?"html":"text"](content),$tip.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var content,$e=this.$element,o=this.options;return content=$e.attr("data-content")||("function"==typeof o.content?o.content.call($e[0]):o.content)},tip:function(){return this.$tip||(this.$tip=$(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var old=$.fn.popover;$.fn.popover=function(option){return this.each(function(){var $this=$(this),data=$this.data("popover"),options="object"==typeof option&&option;data||$this.data("popover",data=new Popover(this,options)),"string"==typeof option&&data[option]()})},$.fn.popover.Constructor=Popover,$.fn.popover.defaults=$.extend({},$.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:''}),$.fn.popover.noConflict=function(){return $.fn.popover=old,this}}(window.jQuery),!function($){"use strict";function ScrollSpy(element,options){var href,process=$.proxy(this.process,this),$element=$(element).is("body")?$(window):$(element);this.options=$.extend({},$.fn.scrollspy.defaults,options),this.$scrollElement=$element.on("scroll.scroll-spy.data-api",process),this.selector=(this.options.target||(href=$(element).attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=$("body"),this.refresh(),this.process()}ScrollSpy.prototype={constructor:ScrollSpy,refresh:function(){var $targets,self=this;this.offsets=$([]),this.targets=$([]),$targets=this.$body.find(this.selector).map(function(){var $el=$(this),href=$el.data("target")||$el.attr("href"),$href=/^#\w/.test(href)&&$(href);return $href&&$href.length&&[[$href.position().top+self.$scrollElement.scrollTop(),href]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){self.offsets.push(this[0]),self.targets.push(this[1])})},process:function(){var i,scrollTop=this.$scrollElement.scrollTop()+this.options.offset,scrollHeight=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,maxScroll=scrollHeight-this.$scrollElement.height(),offsets=this.offsets,targets=this.targets,activeTarget=this.activeTarget;if(scrollTop>=maxScroll)return activeTarget!=(i=targets.last()[0])&&this.activate(i);for(i=offsets.length;i--;)activeTarget!=targets[i]&&scrollTop>=offsets[i]&&(!offsets[i+1]||offsets[i+1]>=scrollTop)&&this.activate(targets[i])},activate:function(target){var active,selector;this.activeTarget=target,$(this.selector).parent(".active").removeClass("active"),selector=this.selector+'[data-target="'+target+'"],'+this.selector+'[href="'+target+'"]',active=$(selector).parent("li").addClass("active"),active.parent(".dropdown-menu").length&&(active=active.closest("li.dropdown").addClass("active")),active.trigger("activate")}};var old=$.fn.scrollspy;$.fn.scrollspy=function(option){return this.each(function(){var $this=$(this),data=$this.data("scrollspy"),options="object"==typeof option&&option;data||$this.data("scrollspy",data=new ScrollSpy(this,options)),"string"==typeof option&&data[option]()})},$.fn.scrollspy.Constructor=ScrollSpy,$.fn.scrollspy.defaults={offset:10},$.fn.scrollspy.noConflict=function(){return $.fn.scrollspy=old,this},$(window).on("load",function(){$('[data-spy="scroll"]').each(function(){var $spy=$(this);$spy.scrollspy($spy.data())})})}(window.jQuery),!function($){"use strict";var Tab=function(element){this.element=$(element)};Tab.prototype={constructor:Tab,show:function(){var previous,$target,e,$this=this.element,$ul=$this.closest("ul:not(.dropdown-menu)"),selector=$this.attr("data-target");selector||(selector=$this.attr("href"),selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,"")),$this.parent("li").hasClass("active")||(previous=$ul.find(".active:last a")[0],e=$.Event("show",{relatedTarget:previous}),$this.trigger(e),e.isDefaultPrevented()||($target=$(selector),this.activate($this.parent("li"),$ul),this.activate($target,$target.parent(),function(){$this.trigger({type:"shown",relatedTarget:previous})})))},activate:function(element,container,callback){function next(){$active.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),element.addClass("active"),transition?(element[0].offsetWidth,element.addClass("in")):element.removeClass("fade"),element.parent(".dropdown-menu")&&element.closest("li.dropdown").addClass("active"),callback&&callback()}var $active=container.find("> .active"),transition=callback&&$.support.transition&&$active.hasClass("fade");transition?$active.one($.support.transition.end,next):next(),$active.removeClass("in")}};var old=$.fn.tab;$.fn.tab=function(option){return this.each(function(){var $this=$(this),data=$this.data("tab");data||$this.data("tab",data=new Tab(this)),"string"==typeof option&&data[option]()})},$.fn.tab.Constructor=Tab,$.fn.tab.noConflict=function(){return $.fn.tab=old,this},$(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(e){e.preventDefault(),$(this).tab("show")})}(window.jQuery),!function($){"use strict";var Typeahead=function(element,options){this.$element=$(element),this.options=$.extend({},$.fn.typeahead.defaults,options),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=$(this.options.menu),this.shown=!1,this.listen()};Typeahead.prototype={constructor:Typeahead,select:function(){var val=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(val)).change(),this.hide()},updater:function(item){return item},show:function(){var pos=$.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:pos.top+pos.height,left:pos.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(){var items;return this.query=this.$element.val(),!this.query||this.query.length"+match+""})},render:function(items){var that=this;return items=$(items).map(function(i,item){return i=$(that.options.item).attr("data-value",item),i.find("a").html(that.highlighter(item)),i[0]}),items.first().addClass("active"),this.$menu.html(items),this},next:function(){var active=this.$menu.find(".active").removeClass("active"),next=active.next();next.length||(next=$(this.$menu.find("li")[0])),next.addClass("active")},prev:function(){var active=this.$menu.find(".active").removeClass("active"),prev=active.prev();prev.length||(prev=this.$menu.find("li").last()),prev.addClass("active")},listen:function(){this.$element.on("blur",$.proxy(this.blur,this)).on("keypress",$.proxy(this.keypress,this)).on("keyup",$.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",$.proxy(this.keydown,this)),this.$menu.on("click",$.proxy(this.click,this)).on("mouseenter","li",$.proxy(this.mouseenter,this))},eventSupported:function(eventName){var isSupported=eventName in this.$element;return isSupported||(this.$element.setAttribute(eventName,"return;"),isSupported="function"==typeof this.$element[eventName]),isSupported},move:function(e){if(this.shown){switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()}},keydown:function(e){this.suppressKeyPressRepeat=~$.inArray(e.keyCode,[40,38,9,13,27]),this.move(e)},keypress:function(e){this.suppressKeyPressRepeat||this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},blur:function(){var that=this;setTimeout(function(){that.hide()},150)},click:function(e){e.stopPropagation(),e.preventDefault(),this.select()},mouseenter:function(e){this.$menu.find(".active").removeClass("active"),$(e.currentTarget).addClass("active")}};var old=$.fn.typeahead;$.fn.typeahead=function(option){return this.each(function(){var $this=$(this),data=$this.data("typeahead"),options="object"==typeof option&&option;data||$this.data("typeahead",data=new Typeahead(this,options)),"string"==typeof option&&data[option]()})},$.fn.typeahead.defaults={source:[],items:8,menu:'',item:'',minLength:1},$.fn.typeahead.Constructor=Typeahead,$.fn.typeahead.noConflict=function(){return $.fn.typeahead=old,this},$(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(e){var $this=$(this);$this.data("typeahead")||(e.preventDefault(),$this.typeahead($this.data()))})}(window.jQuery),!function($){"use strict";var Affix=function(element,options){this.options=$.extend({},$.fn.affix.defaults,options),this.$window=$(window).on("scroll.affix.data-api",$.proxy(this.checkPosition,this)).on("click.affix.data-api",$.proxy(function(){setTimeout($.proxy(this.checkPosition,this),1)},this)),this.$element=$(element),this.checkPosition()};Affix.prototype.checkPosition=function(){if(this.$element.is(":visible")){var affix,scrollHeight=$(document).height(),scrollTop=this.$window.scrollTop(),position=this.$element.offset(),offset=this.options.offset,offsetBottom=offset.bottom,offsetTop=offset.top,reset="affix affix-top affix-bottom";"object"!=typeof offset&&(offsetBottom=offsetTop=offset),"function"==typeof offsetTop&&(offsetTop=offset.top()),"function"==typeof offsetBottom&&(offsetBottom=offset.bottom()),affix=null!=this.unpin&&scrollTop+this.unpin<=position.top?!1:null!=offsetBottom&&position.top+this.$element.height()>=scrollHeight-offsetBottom?"bottom":null!=offsetTop&&offsetTop>=scrollTop?"top":!1,this.affixed!==affix&&(this.affixed=affix,this.unpin="bottom"==affix?position.top-scrollTop:null,this.$element.removeClass(reset).addClass("affix"+(affix?"-"+affix:"")))}};var old=$.fn.affix;$.fn.affix=function(option){return this.each(function(){var $this=$(this),data=$this.data("affix"),options="object"==typeof option&&option;data||$this.data("affix",data=new Affix(this,options)),"string"==typeof option&&data[option]()})},$.fn.affix.Constructor=Affix,$.fn.affix.defaults={offset:0},$.fn.affix.noConflict=function(){return $.fn.affix=old,this},$(window).on("load",function(){$('[data-spy="affix"]').each(function(){var $spy=$(this),data=$spy.data();data.offset=data.offset||{},data.offsetBottom&&(data.offset.bottom=data.offsetBottom),data.offsetTop&&(data.offset.top=data.offsetTop),$spy.affix(data)})})}(window.jQuery);
\ No newline at end of file
diff --git a/src/assets/js/bootstrap-3.0.0.min.js b/src/assets/js/bootstrap-3.0.0.min.js
deleted file mode 100755
index 1765631f4..000000000
--- a/src/assets/js/bootstrap-3.0.0.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
-* bootstrap.js v3.0.0 by @fat and @mdo
-* Copyright 2013 Twitter Inc.
-* http://www.apache.org/licenses/LICENSE-2.0
-*/
-if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);
\ No newline at end of file
diff --git a/src/assets/js/bootstrap-3.0.2.min.js b/src/assets/js/bootstrap-3.0.2.min.js
new file mode 100755
index 000000000..0e668e85c
--- /dev/null
+++ b/src/assets/js/bootstrap-3.0.2.min.js
@@ -0,0 +1,9 @@
+/*!
+ * Bootstrap v3.0.2 by @fat and @mdo
+ * Copyright 2013 Twitter, Inc.
+ * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world by @mdo and @fat.
+ */
+
+if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);
\ No newline at end of file
diff --git a/src/assets/less/bootstrap-3.0.0/grid.less b/src/assets/less/bootstrap-3.0.0/grid.less
deleted file mode 100755
index 44e38994e..000000000
--- a/src/assets/less/bootstrap-3.0.0/grid.less
+++ /dev/null
@@ -1,346 +0,0 @@
-//
-// Grid system
-// --------------------------------------------------
-
-
-// Set the container width, and override it for fixed navbars in media queries
-.container {
- .container-fixed();
-}
-
-// mobile first defaults
-.row {
- .make-row();
-}
-
-// Common styles for small and large grid columns
-.col-xs-1,
-.col-xs-2,
-.col-xs-3,
-.col-xs-4,
-.col-xs-5,
-.col-xs-6,
-.col-xs-7,
-.col-xs-8,
-.col-xs-9,
-.col-xs-10,
-.col-xs-11,
-.col-xs-12,
-.col-sm-1,
-.col-sm-2,
-.col-sm-3,
-.col-sm-4,
-.col-sm-5,
-.col-sm-6,
-.col-sm-7,
-.col-sm-8,
-.col-sm-9,
-.col-sm-10,
-.col-sm-11,
-.col-sm-12,
-.col-md-1,
-.col-md-2,
-.col-md-3,
-.col-md-4,
-.col-md-5,
-.col-md-6,
-.col-md-7,
-.col-md-8,
-.col-md-9,
-.col-md-10,
-.col-md-11,
-.col-md-12,
-.col-lg-1,
-.col-lg-2,
-.col-lg-3,
-.col-lg-4,
-.col-lg-5,
-.col-lg-6,
-.col-lg-7,
-.col-lg-8,
-.col-lg-9,
-.col-lg-10,
-.col-lg-11,
-.col-lg-12 {
- position: relative;
- // Prevent columns from collapsing when empty
- min-height: 1px;
- // Inner gutter via padding
- padding-left: (@grid-gutter-width / 2);
- padding-right: (@grid-gutter-width / 2);
-}
-
-
-// Extra small grid
-//
-// Grid classes for extra small devices like smartphones. No offset, push, or
-// pull classes are present here due to the size of the target.
-//
-// Note that `.col-xs-12` doesn't get floated on purpose—there's no need since
-// it's full-width.
-
-.col-xs-1,
-.col-xs-2,
-.col-xs-3,
-.col-xs-4,
-.col-xs-5,
-.col-xs-6,
-.col-xs-7,
-.col-xs-8,
-.col-xs-9,
-.col-xs-10,
-.col-xs-11 {
- float: left;
-}
-.col-xs-1 { width: percentage((1 / @grid-columns)); }
-.col-xs-2 { width: percentage((2 / @grid-columns)); }
-.col-xs-3 { width: percentage((3 / @grid-columns)); }
-.col-xs-4 { width: percentage((4 / @grid-columns)); }
-.col-xs-5 { width: percentage((5 / @grid-columns)); }
-.col-xs-6 { width: percentage((6 / @grid-columns)); }
-.col-xs-7 { width: percentage((7 / @grid-columns)); }
-.col-xs-8 { width: percentage((8 / @grid-columns)); }
-.col-xs-9 { width: percentage((9 / @grid-columns)); }
-.col-xs-10 { width: percentage((10/ @grid-columns)); }
-.col-xs-11 { width: percentage((11/ @grid-columns)); }
-.col-xs-12 { width: 100%; }
-
-
-// Small grid
-//
-// Columns, offsets, pushes, and pulls for the small device range, from phones
-// to tablets.
-//
-// Note that `.col-sm-12` doesn't get floated on purpose—there's no need since
-// it's full-width.
-
-@media (min-width: @screen-tablet) {
- .container {
- max-width: @container-tablet;
- }
-
- .col-sm-1,
- .col-sm-2,
- .col-sm-3,
- .col-sm-4,
- .col-sm-5,
- .col-sm-6,
- .col-sm-7,
- .col-sm-8,
- .col-sm-9,
- .col-sm-10,
- .col-sm-11 {
- float: left;
- }
- .col-sm-1 { width: percentage((1 / @grid-columns)); }
- .col-sm-2 { width: percentage((2 / @grid-columns)); }
- .col-sm-3 { width: percentage((3 / @grid-columns)); }
- .col-sm-4 { width: percentage((4 / @grid-columns)); }
- .col-sm-5 { width: percentage((5 / @grid-columns)); }
- .col-sm-6 { width: percentage((6 / @grid-columns)); }
- .col-sm-7 { width: percentage((7 / @grid-columns)); }
- .col-sm-8 { width: percentage((8 / @grid-columns)); }
- .col-sm-9 { width: percentage((9 / @grid-columns)); }
- .col-sm-10 { width: percentage((10/ @grid-columns)); }
- .col-sm-11 { width: percentage((11/ @grid-columns)); }
- .col-sm-12 { width: 100%; }
-
- // Push and pull columns for source order changes
- .col-sm-push-1 { left: percentage((1 / @grid-columns)); }
- .col-sm-push-2 { left: percentage((2 / @grid-columns)); }
- .col-sm-push-3 { left: percentage((3 / @grid-columns)); }
- .col-sm-push-4 { left: percentage((4 / @grid-columns)); }
- .col-sm-push-5 { left: percentage((5 / @grid-columns)); }
- .col-sm-push-6 { left: percentage((6 / @grid-columns)); }
- .col-sm-push-7 { left: percentage((7 / @grid-columns)); }
- .col-sm-push-8 { left: percentage((8 / @grid-columns)); }
- .col-sm-push-9 { left: percentage((9 / @grid-columns)); }
- .col-sm-push-10 { left: percentage((10/ @grid-columns)); }
- .col-sm-push-11 { left: percentage((11/ @grid-columns)); }
-
- .col-sm-pull-1 { right: percentage((1 / @grid-columns)); }
- .col-sm-pull-2 { right: percentage((2 / @grid-columns)); }
- .col-sm-pull-3 { right: percentage((3 / @grid-columns)); }
- .col-sm-pull-4 { right: percentage((4 / @grid-columns)); }
- .col-sm-pull-5 { right: percentage((5 / @grid-columns)); }
- .col-sm-pull-6 { right: percentage((6 / @grid-columns)); }
- .col-sm-pull-7 { right: percentage((7 / @grid-columns)); }
- .col-sm-pull-8 { right: percentage((8 / @grid-columns)); }
- .col-sm-pull-9 { right: percentage((9 / @grid-columns)); }
- .col-sm-pull-10 { right: percentage((10/ @grid-columns)); }
- .col-sm-pull-11 { right: percentage((11/ @grid-columns)); }
-
- // Offsets
- .col-sm-offset-1 { margin-left: percentage((1 / @grid-columns)); }
- .col-sm-offset-2 { margin-left: percentage((2 / @grid-columns)); }
- .col-sm-offset-3 { margin-left: percentage((3 / @grid-columns)); }
- .col-sm-offset-4 { margin-left: percentage((4 / @grid-columns)); }
- .col-sm-offset-5 { margin-left: percentage((5 / @grid-columns)); }
- .col-sm-offset-6 { margin-left: percentage((6 / @grid-columns)); }
- .col-sm-offset-7 { margin-left: percentage((7 / @grid-columns)); }
- .col-sm-offset-8 { margin-left: percentage((8 / @grid-columns)); }
- .col-sm-offset-9 { margin-left: percentage((9 / @grid-columns)); }
- .col-sm-offset-10 { margin-left: percentage((10/ @grid-columns)); }
- .col-sm-offset-11 { margin-left: percentage((11/ @grid-columns)); }
-}
-
-
-// Medium grid
-//
-// Columns, offsets, pushes, and pulls for the desktop device range.
-//
-// Note that `.col-md-12` doesn't get floated on purpose—there's no need since
-// it's full-width.
-
-@media (min-width: @screen-desktop) {
- .container {
- max-width: @container-desktop;
- }
- .col-md-1,
- .col-md-2,
- .col-md-3,
- .col-md-4,
- .col-md-5,
- .col-md-6,
- .col-md-7,
- .col-md-8,
- .col-md-9,
- .col-md-10,
- .col-md-11 {
- float: left;
- }
- .col-md-1 { width: percentage((1 / @grid-columns)); }
- .col-md-2 { width: percentage((2 / @grid-columns)); }
- .col-md-3 { width: percentage((3 / @grid-columns)); }
- .col-md-4 { width: percentage((4 / @grid-columns)); }
- .col-md-5 { width: percentage((5 / @grid-columns)); }
- .col-md-6 { width: percentage((6 / @grid-columns)); }
- .col-md-7 { width: percentage((7 / @grid-columns)); }
- .col-md-8 { width: percentage((8 / @grid-columns)); }
- .col-md-9 { width: percentage((9 / @grid-columns)); }
- .col-md-10 { width: percentage((10/ @grid-columns)); }
- .col-md-11 { width: percentage((11/ @grid-columns)); }
- .col-md-12 { width: 100%; }
-
- // Push and pull columns for source order changes
- .col-md-push-0 { left: auto; }
- .col-md-push-1 { left: percentage((1 / @grid-columns)); }
- .col-md-push-2 { left: percentage((2 / @grid-columns)); }
- .col-md-push-3 { left: percentage((3 / @grid-columns)); }
- .col-md-push-4 { left: percentage((4 / @grid-columns)); }
- .col-md-push-5 { left: percentage((5 / @grid-columns)); }
- .col-md-push-6 { left: percentage((6 / @grid-columns)); }
- .col-md-push-7 { left: percentage((7 / @grid-columns)); }
- .col-md-push-8 { left: percentage((8 / @grid-columns)); }
- .col-md-push-9 { left: percentage((9 / @grid-columns)); }
- .col-md-push-10 { left: percentage((10/ @grid-columns)); }
- .col-md-push-11 { left: percentage((11/ @grid-columns)); }
-
- .col-md-pull-0 { right: auto; }
- .col-md-pull-1 { right: percentage((1 / @grid-columns)); }
- .col-md-pull-2 { right: percentage((2 / @grid-columns)); }
- .col-md-pull-3 { right: percentage((3 / @grid-columns)); }
- .col-md-pull-4 { right: percentage((4 / @grid-columns)); }
- .col-md-pull-5 { right: percentage((5 / @grid-columns)); }
- .col-md-pull-6 { right: percentage((6 / @grid-columns)); }
- .col-md-pull-7 { right: percentage((7 / @grid-columns)); }
- .col-md-pull-8 { right: percentage((8 / @grid-columns)); }
- .col-md-pull-9 { right: percentage((9 / @grid-columns)); }
- .col-md-pull-10 { right: percentage((10/ @grid-columns)); }
- .col-md-pull-11 { right: percentage((11/ @grid-columns)); }
-
- // Offsets
- .col-md-offset-0 { margin-left: 0; }
- .col-md-offset-1 { margin-left: percentage((1 / @grid-columns)); }
- .col-md-offset-2 { margin-left: percentage((2 / @grid-columns)); }
- .col-md-offset-3 { margin-left: percentage((3 / @grid-columns)); }
- .col-md-offset-4 { margin-left: percentage((4 / @grid-columns)); }
- .col-md-offset-5 { margin-left: percentage((5 / @grid-columns)); }
- .col-md-offset-6 { margin-left: percentage((6 / @grid-columns)); }
- .col-md-offset-7 { margin-left: percentage((7 / @grid-columns)); }
- .col-md-offset-8 { margin-left: percentage((8 / @grid-columns)); }
- .col-md-offset-9 { margin-left: percentage((9 / @grid-columns)); }
- .col-md-offset-10 { margin-left: percentage((10/ @grid-columns)); }
- .col-md-offset-11 { margin-left: percentage((11/ @grid-columns)); }
-}
-
-
-// Large grid
-//
-// Columns, offsets, pushes, and pulls for the large desktop device range.
-//
-// Note that `.col-lg-12` doesn't get floated on purpose—there's no need since
-// it's full-width.
-
-@media (min-width: @screen-lg-desktop) {
- .container {
- max-width: @container-lg-desktop;
- }
-
- .col-lg-1,
- .col-lg-2,
- .col-lg-3,
- .col-lg-4,
- .col-lg-5,
- .col-lg-6,
- .col-lg-7,
- .col-lg-8,
- .col-lg-9,
- .col-lg-10,
- .col-lg-11 {
- float: left;
- }
- .col-lg-1 { width: percentage((1 / @grid-columns)); }
- .col-lg-2 { width: percentage((2 / @grid-columns)); }
- .col-lg-3 { width: percentage((3 / @grid-columns)); }
- .col-lg-4 { width: percentage((4 / @grid-columns)); }
- .col-lg-5 { width: percentage((5 / @grid-columns)); }
- .col-lg-6 { width: percentage((6 / @grid-columns)); }
- .col-lg-7 { width: percentage((7 / @grid-columns)); }
- .col-lg-8 { width: percentage((8 / @grid-columns)); }
- .col-lg-9 { width: percentage((9 / @grid-columns)); }
- .col-lg-10 { width: percentage((10/ @grid-columns)); }
- .col-lg-11 { width: percentage((11/ @grid-columns)); }
- .col-lg-12 { width: 100%; }
-
- // Push and pull columns for source order changes
- .col-lg-push-0 { left: auto; }
- .col-lg-push-1 { left: percentage((1 / @grid-columns)); }
- .col-lg-push-2 { left: percentage((2 / @grid-columns)); }
- .col-lg-push-3 { left: percentage((3 / @grid-columns)); }
- .col-lg-push-4 { left: percentage((4 / @grid-columns)); }
- .col-lg-push-5 { left: percentage((5 / @grid-columns)); }
- .col-lg-push-6 { left: percentage((6 / @grid-columns)); }
- .col-lg-push-7 { left: percentage((7 / @grid-columns)); }
- .col-lg-push-8 { left: percentage((8 / @grid-columns)); }
- .col-lg-push-9 { left: percentage((9 / @grid-columns)); }
- .col-lg-push-10 { left: percentage((10/ @grid-columns)); }
- .col-lg-push-11 { left: percentage((11/ @grid-columns)); }
-
- .col-lg-pull-0 { right: auto; }
- .col-lg-pull-1 { right: percentage((1 / @grid-columns)); }
- .col-lg-pull-2 { right: percentage((2 / @grid-columns)); }
- .col-lg-pull-3 { right: percentage((3 / @grid-columns)); }
- .col-lg-pull-4 { right: percentage((4 / @grid-columns)); }
- .col-lg-pull-5 { right: percentage((5 / @grid-columns)); }
- .col-lg-pull-6 { right: percentage((6 / @grid-columns)); }
- .col-lg-pull-7 { right: percentage((7 / @grid-columns)); }
- .col-lg-pull-8 { right: percentage((8 / @grid-columns)); }
- .col-lg-pull-9 { right: percentage((9 / @grid-columns)); }
- .col-lg-pull-10 { right: percentage((10/ @grid-columns)); }
- .col-lg-pull-11 { right: percentage((11/ @grid-columns)); }
-
- // Offsets
- .col-lg-offset-0 { margin-left: 0; }
- .col-lg-offset-1 { margin-left: percentage((1 / @grid-columns)); }
- .col-lg-offset-2 { margin-left: percentage((2 / @grid-columns)); }
- .col-lg-offset-3 { margin-left: percentage((3 / @grid-columns)); }
- .col-lg-offset-4 { margin-left: percentage((4 / @grid-columns)); }
- .col-lg-offset-5 { margin-left: percentage((5 / @grid-columns)); }
- .col-lg-offset-6 { margin-left: percentage((6 / @grid-columns)); }
- .col-lg-offset-7 { margin-left: percentage((7 / @grid-columns)); }
- .col-lg-offset-8 { margin-left: percentage((8 / @grid-columns)); }
- .col-lg-offset-9 { margin-left: percentage((9 / @grid-columns)); }
- .col-lg-offset-10 { margin-left: percentage((10/ @grid-columns)); }
- .col-lg-offset-11 { margin-left: percentage((11/ @grid-columns)); }
-}
diff --git a/src/assets/less/bootstrap-3.0.0/thumbnails.less b/src/assets/less/bootstrap-3.0.0/thumbnails.less
deleted file mode 100755
index 1adee9e35..000000000
--- a/src/assets/less/bootstrap-3.0.0/thumbnails.less
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// Thumbnails
-// --------------------------------------------------
-
-
-// Mixin and adjust the regular image class
-.thumbnail {
- .img-thumbnail();
- display: block; // Override the inline-block from `.img-thumbnail`
-
- > img {
- .img-responsive();
- }
-}
-
-
-// Add a hover state for linked versions only
-a.thumbnail:hover,
-a.thumbnail:focus {
- border-color: @link-color;
-}
-
-// Images and captions
-.thumbnail > img {
- margin-left: auto;
- margin-right: auto;
-}
-.thumbnail .caption {
- padding: @thumbnail-caption-padding;
- color: @thumbnail-caption-color;
-}
diff --git a/src/assets/less/bootstrap-3.0.0/alerts.less b/src/assets/less/bootstrap-3.0.2/alerts.less
similarity index 99%
rename from src/assets/less/bootstrap-3.0.0/alerts.less
rename to src/assets/less/bootstrap-3.0.2/alerts.less
index be09d18d0..3eab06629 100755
--- a/src/assets/less/bootstrap-3.0.0/alerts.less
+++ b/src/assets/less/bootstrap-3.0.2/alerts.less
@@ -15,7 +15,7 @@
// Headings for larger alerts
h4 {
margin-top: 0;
- // Specified for the h4 to prevent conflicts of changing @headingsColor
+ // Specified for the h4 to prevent conflicts of changing @headings-color
color: inherit;
}
// Provide class for links that match alerts
diff --git a/src/assets/less/bootstrap-3.0.0/badges.less b/src/assets/less/bootstrap-3.0.2/badges.less
similarity index 100%
rename from src/assets/less/bootstrap-3.0.0/badges.less
rename to src/assets/less/bootstrap-3.0.2/badges.less
diff --git a/src/assets/less/bootstrap-3.0.0/bootstrap.less b/src/assets/less/bootstrap-3.0.2/bootstrap.less
similarity index 82%
rename from src/assets/less/bootstrap-3.0.0/bootstrap.less
rename to src/assets/less/bootstrap-3.0.2/bootstrap.less
index a0c6d7247..c5a722f72 100755
--- a/src/assets/less/bootstrap-3.0.0/bootstrap.less
+++ b/src/assets/less/bootstrap-3.0.2/bootstrap.less
@@ -1,13 +1,3 @@
-/*!
- * Bootstrap v3.0.0
- *
- * Copyright 2013 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world by @mdo and @fat.
- */
-
// Core variables and mixins
@import "variables.less";
@import "mixins.less";
diff --git a/src/assets/less/bootstrap-3.0.0/breadcrumbs.less b/src/assets/less/bootstrap-3.0.2/breadcrumbs.less
similarity index 74%
rename from src/assets/less/bootstrap-3.0.0/breadcrumbs.less
rename to src/assets/less/bootstrap-3.0.2/breadcrumbs.less
index 92643d167..60b33ea72 100755
--- a/src/assets/less/bootstrap-3.0.0/breadcrumbs.less
+++ b/src/assets/less/bootstrap-3.0.2/breadcrumbs.less
@@ -11,8 +11,8 @@
border-radius: @border-radius-base;
> li {
display: inline-block;
- &+li:before {
- content: "/\00a0"; // Unicode space added since inline-block means non-collapsing white-space
+ + li:before {
+ content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
padding: 0 5px;
color: @breadcrumb-color;
}
diff --git a/src/assets/less/bootstrap-3.0.0/button-groups.less b/src/assets/less/bootstrap-3.0.2/button-groups.less
similarity index 97%
rename from src/assets/less/bootstrap-3.0.0/button-groups.less
rename to src/assets/less/bootstrap-3.0.2/button-groups.less
index 43ada11d9..c25357622 100755
--- a/src/assets/less/bootstrap-3.0.0/button-groups.less
+++ b/src/assets/less/bootstrap-3.0.2/button-groups.less
@@ -19,7 +19,7 @@
}
}
.dropup {
- & .btn-default .caret {
+ .btn-default .caret {
border-bottom-color: @btn-default-color;
}
.btn-primary,
@@ -150,6 +150,11 @@
// Remove the gradient and set the same inset shadow as the :active state
.btn-group.open .dropdown-toggle {
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+
+ // Show no shadow for `.btn-link` since it has no other button styles.
+ &.btn-link {
+ .box-shadow(none);
+ }
}
diff --git a/src/assets/less/bootstrap-3.0.0/buttons.less b/src/assets/less/bootstrap-3.0.2/buttons.less
similarity index 92%
rename from src/assets/less/bootstrap-3.0.0/buttons.less
rename to src/assets/less/bootstrap-3.0.2/buttons.less
index 5d60d39a7..a0909606f 100755
--- a/src/assets/less/bootstrap-3.0.0/buttons.less
+++ b/src/assets/less/bootstrap-3.0.2/buttons.less
@@ -9,17 +9,15 @@
// Core styles
.btn {
display: inline-block;
- padding: @padding-base-vertical @padding-base-horizontal;
margin-bottom: 0; // For input.btn
- font-size: @font-size-base;
font-weight: @btn-font-weight;
- line-height: @line-height-base;
text-align: center;
vertical-align: middle;
cursor: pointer;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent;
- border-radius: @border-radius-base;
white-space: nowrap;
+ .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);
.user-select(none);
&:focus {
diff --git a/src/assets/less/bootstrap-3.0.0/carousel.less b/src/assets/less/bootstrap-3.0.2/carousel.less
similarity index 79%
rename from src/assets/less/bootstrap-3.0.0/carousel.less
rename to src/assets/less/bootstrap-3.0.2/carousel.less
index c468d435c..317963b7f 100755
--- a/src/assets/less/bootstrap-3.0.0/carousel.less
+++ b/src/assets/less/bootstrap-3.0.2/carousel.less
@@ -75,7 +75,7 @@
color: @carousel-control-color;
text-align: center;
text-shadow: @carousel-text-shadow;
- // We can't have this transition here because webkit cancels the carousel
+ // We can't have this transition here because WebKit cancels the carousel
// animation if you trip this while in the middle of another animation.
// Set gradients for backgrounds
@@ -103,11 +103,18 @@
.glyphicon-chevron-right {
position: absolute;
top: 50%;
- left: 50%;
z-index: 5;
display: inline-block;
}
.icon-prev,
+ .glyphicon-chevron-left {
+ left: 50%;
+ }
+ .icon-next,
+ .glyphicon-chevron-right {
+ right: 50%;
+ }
+ .icon-prev,
.icon-next {
width: 20px;
height: 20px;
@@ -153,6 +160,17 @@
border: 1px solid @carousel-indicator-border-color;
border-radius: 10px;
cursor: pointer;
+
+ // IE8-9 hack for event handling
+ //
+ // Internet Explorer 8-9 does not support clicks on elements without a set
+ // `background-color`. We cannot use `filter` since that's not viewed as a
+ // background color by the browser. Thus, a hack is needed.
+ //
+ // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
+ // set alpha transparency for the best results possible.
+ background-color: #000 \9; // IE8
+ background-color: rgba(0,0,0,0); // IE9
}
.active {
margin: 0;
@@ -183,16 +201,20 @@
// Scale up controls for tablets and up
-@media screen and (min-width: @screen-tablet) {
+@media screen and (min-width: @screen-sm-min) {
// Scale up the controls a smidge
- .carousel-control .icon-prev,
- .carousel-control .icon-next {
- width: 30px;
- height: 30px;
- margin-top: -15px;
- margin-left: -15px;
- font-size: 30px;
+ .carousel-control {
+ .glyphicons-chevron-left,
+ .glyphicons-chevron-right,
+ .icon-prev,
+ .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ margin-left: -15px;
+ font-size: 30px;
+ }
}
// Show and left align the captions
diff --git a/src/assets/less/bootstrap-3.0.0/close.less b/src/assets/less/bootstrap-3.0.2/close.less
similarity index 100%
rename from src/assets/less/bootstrap-3.0.0/close.less
rename to src/assets/less/bootstrap-3.0.2/close.less
diff --git a/src/assets/less/bootstrap-3.0.0/code.less b/src/assets/less/bootstrap-3.0.2/code.less
similarity index 85%
rename from src/assets/less/bootstrap-3.0.0/code.less
rename to src/assets/less/bootstrap-3.0.2/code.less
index d6661d2b9..44e9e8937 100755
--- a/src/assets/less/bootstrap-3.0.0/code.less
+++ b/src/assets/less/bootstrap-3.0.2/code.less
@@ -1,11 +1,13 @@
//
-// Code (inline and blocK)
+// Code (inline and block)
// --------------------------------------------------
// Inline and block code styles
code,
-pre {
+kbd,
+pre,
+samp {
font-family: @font-family-monospace;
}
@@ -33,11 +35,6 @@ pre {
border: 1px solid @pre-border-color;
border-radius: @border-radius-base;
- // Make prettyprint styles more spaced out for readability
- &.prettyprint {
- margin-bottom: @line-height-computed;
- }
-
// Account for some code outputs that place code tags in pre tags
code {
padding: 0;
@@ -45,7 +42,7 @@ pre {
color: inherit;
white-space: pre-wrap;
background-color: transparent;
- border: 0;
+ border-radius: 0;
}
}
diff --git a/src/assets/less/bootstrap-3.0.0/component-animations.less b/src/assets/less/bootstrap-3.0.2/component-animations.less
similarity index 100%
rename from src/assets/less/bootstrap-3.0.0/component-animations.less
rename to src/assets/less/bootstrap-3.0.2/component-animations.less
diff --git a/src/assets/less/bootstrap-3.0.0/dropdowns.less b/src/assets/less/bootstrap-3.0.2/dropdowns.less
similarity index 98%
rename from src/assets/less/bootstrap-3.0.0/dropdowns.less
rename to src/assets/less/bootstrap-3.0.2/dropdowns.less
index 96af127a5..5d7e0fb4e 100755
--- a/src/assets/less/bootstrap-3.0.0/dropdowns.less
+++ b/src/assets/less/bootstrap-3.0.2/dropdowns.less
@@ -16,7 +16,6 @@
// Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once fixed,
// we can just straight up remove this.
border-bottom: 0 dotted;
- content: "";
}
// The dropdown wrapper (div)
@@ -167,7 +166,7 @@
// Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once this
// gets fixed, restore `border-top: 0;`.
border-top: 0 dotted;
- border-bottom: 4px solid @dropdown-caret-color;
+ border-bottom: @caret-width-base solid @dropdown-caret-color;
content: "";
}
// Different positioning for bottom up menu
diff --git a/src/assets/less/bootstrap-3.0.0/forms.less b/src/assets/less/bootstrap-3.0.2/forms.less
similarity index 93%
rename from src/assets/less/bootstrap-3.0.0/forms.less
rename to src/assets/less/bootstrap-3.0.2/forms.less
index f87b60276..a74babdb3 100755
--- a/src/assets/less/bootstrap-3.0.0/forms.less
+++ b/src/assets/less/bootstrap-3.0.2/forms.less
@@ -82,13 +82,14 @@ input[type="number"] {
}
}
-
-// Placeholder
-//
-// Placeholder text gets special styles because when browsers invalidate entire
-// lines if it doesn't understand a selector/
-.form-control {
- .placeholder();
+// Adjust output element
+output {
+ display: block;
+ padding-top: (@padding-base-vertical + 1);
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ color: @input-color;
+ vertical-align: middle;
}
@@ -124,6 +125,7 @@ input[type="number"] {
color: @input-color;
vertical-align: middle;
background-color: @input-bg;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid @input-border;
border-radius: @input-border-radius;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
@@ -132,6 +134,12 @@ input[type="number"] {
// Customize the `:focus` state to imitate native WebKit styles.
.form-control-focus();
+ // Placeholder
+ //
+ // Placeholder text gets special styles because when browsers invalidate entire
+ // lines if it doesn't understand a selector/
+ .placeholder();
+
// Disabled and read-only inputs
// Note: HTML5 says that controls under a fieldset > legend:first-child won't
// be disabled if the fieldset is disabled. Due to implementation difficulty,
@@ -257,7 +265,6 @@ input[type="checkbox"],
.form-control-static {
margin-bottom: 0; // Remove default margin from `p`
- padding-top: (@padding-base-vertical + 1);
}
@@ -289,7 +296,7 @@ input[type="checkbox"],
.form-inline {
// Kick in the inline
- @media (min-width: @screen-tablet) {
+ @media (min-width: @screen-sm) {
// Inline-block all the things for "inline"
.form-group {
display: inline-block;
@@ -344,8 +351,12 @@ input[type="checkbox"],
.make-row();
}
+ .form-control-static {
+ padding-top: (@padding-base-vertical + 1);
+ }
+
// Only right align form labels here when the columns stop stacking
- @media (min-width: @screen-tablet) {
+ @media (min-width: @screen-sm-min) {
.control-label {
text-align: right;
}
diff --git a/src/assets/less/bootstrap-3.0.0/glyphicons.less b/src/assets/less/bootstrap-3.0.2/glyphicons.less
similarity index 94%
rename from src/assets/less/bootstrap-3.0.0/glyphicons.less
rename to src/assets/less/bootstrap-3.0.2/glyphicons.less
index 0e0ba986c..9de2dd3b6 100755
--- a/src/assets/less/bootstrap-3.0.0/glyphicons.less
+++ b/src/assets/less/bootstrap-3.0.2/glyphicons.less
@@ -14,7 +14,7 @@
src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
- url('@{icon-font-path}@{icon-font-name}.svg#glyphicons-halflingsregular') format('svg');
+ url('@{icon-font-path}@{icon-font-name}.svg#glyphicons_halflingsregular') format('svg');
}
// Catchall baseclass
@@ -27,6 +27,11 @@
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ &:empty {
+ width: 1em;
+ }
}
// Individual icons
@@ -68,6 +73,7 @@
.glyphicon-repeat { &:before { content: "\e030"; } }
.glyphicon-refresh { &:before { content: "\e031"; } }
.glyphicon-list-alt { &:before { content: "\e032"; } }
+.glyphicon-lock { &:before { content: "\e033"; } }
.glyphicon-flag { &:before { content: "\e034"; } }
.glyphicon-headphones { &:before { content: "\e035"; } }
.glyphicon-volume-off { &:before { content: "\e036"; } }
@@ -78,7 +84,9 @@
.glyphicon-tag { &:before { content: "\e041"; } }
.glyphicon-tags { &:before { content: "\e042"; } }
.glyphicon-book { &:before { content: "\e043"; } }
+.glyphicon-bookmark { &:before { content: "\e044"; } }
.glyphicon-print { &:before { content: "\e045"; } }
+.glyphicon-camera { &:before { content: "\e046"; } }
.glyphicon-font { &:before { content: "\e047"; } }
.glyphicon-bold { &:before { content: "\e048"; } }
.glyphicon-italic { &:before { content: "\e049"; } }
@@ -132,10 +140,12 @@
.glyphicon-exclamation-sign { &:before { content: "\e101"; } }
.glyphicon-gift { &:before { content: "\e102"; } }
.glyphicon-leaf { &:before { content: "\e103"; } }
+.glyphicon-fire { &:before { content: "\e104"; } }
.glyphicon-eye-open { &:before { content: "\e105"; } }
.glyphicon-eye-close { &:before { content: "\e106"; } }
.glyphicon-warning-sign { &:before { content: "\e107"; } }
.glyphicon-plane { &:before { content: "\e108"; } }
+.glyphicon-calendar { &:before { content: "\e109"; } }
.glyphicon-random { &:before { content: "\e110"; } }
.glyphicon-comment { &:before { content: "\e111"; } }
.glyphicon-magnet { &:before { content: "\e112"; } }
@@ -149,6 +159,7 @@
.glyphicon-resize-horizontal { &:before { content: "\e120"; } }
.glyphicon-hdd { &:before { content: "\e121"; } }
.glyphicon-bullhorn { &:before { content: "\e122"; } }
+.glyphicon-bell { &:before { content: "\e123"; } }
.glyphicon-certificate { &:before { content: "\e124"; } }
.glyphicon-thumbs-up { &:before { content: "\e125"; } }
.glyphicon-thumbs-down { &:before { content: "\e126"; } }
@@ -161,13 +172,17 @@
.glyphicon-circle-arrow-up { &:before { content: "\e133"; } }
.glyphicon-circle-arrow-down { &:before { content: "\e134"; } }
.glyphicon-globe { &:before { content: "\e135"; } }
+.glyphicon-wrench { &:before { content: "\e136"; } }
.glyphicon-tasks { &:before { content: "\e137"; } }
.glyphicon-filter { &:before { content: "\e138"; } }
+.glyphicon-briefcase { &:before { content: "\e139"; } }
.glyphicon-fullscreen { &:before { content: "\e140"; } }
.glyphicon-dashboard { &:before { content: "\e141"; } }
+.glyphicon-paperclip { &:before { content: "\e142"; } }
.glyphicon-heart-empty { &:before { content: "\e143"; } }
.glyphicon-link { &:before { content: "\e144"; } }
.glyphicon-phone { &:before { content: "\e145"; } }
+.glyphicon-pushpin { &:before { content: "\e146"; } }
.glyphicon-usd { &:before { content: "\e148"; } }
.glyphicon-gbp { &:before { content: "\e149"; } }
.glyphicon-sort { &:before { content: "\e150"; } }
@@ -220,13 +235,3 @@
.glyphicon-cloud-upload { &:before { content: "\e198"; } }
.glyphicon-tree-conifer { &:before { content: "\e199"; } }
.glyphicon-tree-deciduous { &:before { content: "\e200"; } }
-.glyphicon-briefcase { &:before { content: "\1f4bc"; } }
-.glyphicon-calendar { &:before { content: "\1f4c5"; } }
-.glyphicon-pushpin { &:before { content: "\1f4cc"; } }
-.glyphicon-paperclip { &:before { content: "\1f4ce"; } }
-.glyphicon-camera { &:before { content: "\1f4f7"; } }
-.glyphicon-lock { &:before { content: "\1f512"; } }
-.glyphicon-bell { &:before { content: "\1f514"; } }
-.glyphicon-bookmark { &:before { content: "\1f516"; } }
-.glyphicon-fire { &:before { content: "\1f525"; } }
-.glyphicon-wrench { &:before { content: "\1f527"; } }
diff --git a/src/assets/less/bootstrap-3.0.2/grid.less b/src/assets/less/bootstrap-3.0.2/grid.less
new file mode 100755
index 000000000..67e78f760
--- /dev/null
+++ b/src/assets/less/bootstrap-3.0.2/grid.less
@@ -0,0 +1,93 @@
+//
+// Grid system
+// --------------------------------------------------
+
+// Set the container width, and override it for fixed navbars in media queries
+.container {
+ .container-fixed();
+}
+
+// mobile first defaults
+.row {
+ .make-row();
+}
+
+// Common styles for small and large grid columns
+.make-grid-columns();
+
+
+// Extra small grid
+//
+// Grid classes for extra small devices like smartphones. No offset, push, or
+// pull classes are present here due to the size of the target.
+//
+// Note that `.col-xs-12` doesn't get floated on purpose--there's no need since
+// it's full-width.
+
+.make-grid-columns-float(xs);
+.make-grid(@grid-columns, xs, width);
+.make-grid(@grid-columns, xs, pull);
+.make-grid(@grid-columns, xs, push);
+.make-grid(@grid-columns, xs, offset);
+
+
+// Small grid
+//
+// Columns, offsets, pushes, and pulls for the small device range, from phones
+// to tablets.
+//
+// Note that `.col-sm-12` doesn't get floated on purpose--there's no need since
+// it's full-width.
+
+@media (min-width: @screen-sm-min) {
+ .container {
+ width: @container-sm;
+ }
+
+ .make-grid-columns-float(sm);
+ .make-grid(@grid-columns, sm, width);
+ .make-grid(@grid-columns, sm, pull);
+ .make-grid(@grid-columns, sm, push);
+ .make-grid(@grid-columns, sm, offset);
+}
+
+
+// Medium grid
+//
+// Columns, offsets, pushes, and pulls for the desktop device range.
+//
+// Note that `.col-md-12` doesn't get floated on purpose--there's no need since
+// it's full-width.
+
+@media (min-width: @screen-md-min) {
+ .container {
+ width: @container-md;
+ }
+
+ .make-grid-columns-float(md);
+ .make-grid(@grid-columns, md, width);
+ .make-grid(@grid-columns, md, pull);
+ .make-grid(@grid-columns, md, push);
+ .make-grid(@grid-columns, md, offset);
+}
+
+
+// Large grid
+//
+// Columns, offsets, pushes, and pulls for the large desktop device range.
+//
+// Note that `.col-lg-12` doesn't get floated on purpose--there's no need since
+// it's full-width.
+
+@media (min-width: @screen-lg-min) {
+ .container {
+ width: @container-lg;
+ }
+
+ .make-grid-columns-float(lg);
+ .make-grid(@grid-columns, lg, width);
+ .make-grid(@grid-columns, lg, pull);
+ .make-grid(@grid-columns, lg, push);
+ .make-grid(@grid-columns, lg, offset);
+}
+
diff --git a/src/assets/less/bootstrap-3.0.0/input-groups.less b/src/assets/less/bootstrap-3.0.2/input-groups.less
similarity index 94%
rename from src/assets/less/bootstrap-3.0.0/input-groups.less
rename to src/assets/less/bootstrap-3.0.2/input-groups.less
index 570f03f90..8516a79e9 100755
--- a/src/assets/less/bootstrap-3.0.0/input-groups.less
+++ b/src/assets/less/bootstrap-3.0.2/input-groups.less
@@ -61,6 +61,7 @@
font-size: @font-size-base;
font-weight: normal;
line-height: 1;
+ color: @input-color;
text-align: center;
background-color: @input-group-addon-bg;
border: 1px solid @input-group-addon-border-color;
@@ -112,6 +113,14 @@
.input-group-btn {
position: relative;
white-space: nowrap;
+
+ // Negative margin to only have a 1px border between the two
+ &:first-child > .btn {
+ margin-right: -1px;
+ }
+ &:last-child > .btn {
+ margin-left: -1px;
+ }
}
.input-group-btn > .btn {
position: relative;
diff --git a/src/assets/less/bootstrap-3.0.0/jumbotron.less b/src/assets/less/bootstrap-3.0.2/jumbotron.less
similarity index 90%
rename from src/assets/less/bootstrap-3.0.0/jumbotron.less
rename to src/assets/less/bootstrap-3.0.2/jumbotron.less
index 8f482af52..22c29780a 100755
--- a/src/assets/less/bootstrap-3.0.0/jumbotron.less
+++ b/src/assets/less/bootstrap-3.0.2/jumbotron.less
@@ -6,7 +6,7 @@
.jumbotron {
padding: @jumbotron-padding;
margin-bottom: @jumbotron-padding;
- font-size: (@font-size-base * 1.5);
+ font-size: @jumbotron-font-size;
font-weight: 200;
line-height: (@line-height-base * 1.5);
color: @jumbotron-color;
@@ -24,7 +24,7 @@
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
}
- @media screen and (min-width: @screen-tablet) {
+ @media screen and (min-width: @screen-sm-min) {
padding-top: (@jumbotron-padding * 1.6);
padding-bottom: (@jumbotron-padding * 1.6);
diff --git a/src/assets/less/bootstrap-3.0.0/labels.less b/src/assets/less/bootstrap-3.0.2/labels.less
similarity index 100%
rename from src/assets/less/bootstrap-3.0.0/labels.less
rename to src/assets/less/bootstrap-3.0.2/labels.less
diff --git a/src/assets/less/bootstrap-3.0.0/list-group.less b/src/assets/less/bootstrap-3.0.2/list-group.less
similarity index 85%
rename from src/assets/less/bootstrap-3.0.0/list-group.less
rename to src/assets/less/bootstrap-3.0.2/list-group.less
index 46cda4085..2cee52973 100755
--- a/src/assets/less/bootstrap-3.0.0/list-group.less
+++ b/src/assets/less/bootstrap-3.0.2/list-group.less
@@ -39,21 +39,21 @@
> .badge + .badge {
margin-right: 5px;
}
+}
- // Linked list items
- a& {
- color: @list-group-link-color;
+// Linked list items
+a.list-group-item {
+ color: @list-group-link-color;
- .list-group-item-heading {
- color: @list-group-link-heading-color;
- }
+ .list-group-item-heading {
+ color: @list-group-link-heading-color;
+ }
- // Hover state
- &:hover,
- &:focus {
- text-decoration: none;
- background-color: @list-group-hover-bg;
- }
+ // Hover state
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ background-color: @list-group-hover-bg;
}
// Active class on item itself, not parent
diff --git a/src/assets/less/bootstrap-3.0.0/media.less b/src/assets/less/bootstrap-3.0.2/media.less
similarity index 100%
rename from src/assets/less/bootstrap-3.0.0/media.less
rename to src/assets/less/bootstrap-3.0.2/media.less
diff --git a/src/assets/less/bootstrap-3.0.0/mixins.less b/src/assets/less/bootstrap-3.0.2/mixins.less
similarity index 79%
rename from src/assets/less/bootstrap-3.0.0/mixins.less
rename to src/assets/less/bootstrap-3.0.2/mixins.less
index 3f230205b..3d24e668a 100755
--- a/src/assets/less/bootstrap-3.0.0/mixins.less
+++ b/src/assets/less/bootstrap-3.0.2/mixins.less
@@ -27,11 +27,11 @@
}
}
-// Webkit-style focus
+// WebKit-style focus
.tab-focus() {
// Default
outline: thin dotted #333;
- // Webkit
+ // WebKit
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
@@ -69,7 +69,15 @@
}
// CSS image replacement
+//
+// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
+// mixins being reused as classes with the same name, this doesn't hold up. As
+// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note
+// that we cannot chain the mixins together in Less, so they are repeated.
+//
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+
+// Deprecated as of v3.0.1 (will be removed in v4)
.hide-text() {
font: ~"0/0" a;
color: transparent;
@@ -77,6 +85,14 @@
background-color: transparent;
border: 0;
}
+// New mixin to use as of v3.0.1
+.text-hide() {
+ font: ~"0/0" a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
@@ -112,6 +128,10 @@
-webkit-transition: @transition;
transition: @transition;
}
+.transition-property(@transition-property) {
+ -webkit-transition-property: @transition-property;
+ transition-property: @transition-property;
+}
.transition-delay(@transition-delay) {
-webkit-transition-delay: @transition-delay;
transition-delay: @transition-delay;
@@ -153,10 +173,41 @@
transform: translate3d(@x, @y, @z);
}
+.rotateX(@degrees) {
+ -webkit-transform: rotateX(@degrees);
+ -ms-transform: rotateX(@degrees); // IE9+
+ transform: rotateX(@degrees);
+}
+.rotateY(@degrees) {
+ -webkit-transform: rotateY(@degrees);
+ -ms-transform: rotateY(@degrees); // IE9+
+ transform: rotateY(@degrees);
+}
+.perspective(@perspective) {
+ -webkit-perspective: @perspective;
+ -moz-perspective: @perspective;
+ perspective: @perspective;
+}
+.perspective-origin(@perspective) {
+ -webkit-perspective-origin: @perspective;
+ -moz-perspective-origin: @perspective;
+ perspective-origin: @perspective;
+}
+.transform-origin(@origin) {
+ -webkit-transform-origin: @origin;
+ -moz-transform-origin: @origin;
+ transform-origin: @origin;
+}
+
+// Animations
+.animation(@animation) {
+ -webkit-animation: @animation;
+ animation: @animation;
+}
+
// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden`
-// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
.backface-visibility(@visibility){
-webkit-backface-visibility: @visibility;
-moz-backface-visibility: @visibility;
@@ -240,7 +291,7 @@
// Color stops are not available in IE9 and below.
.vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
- background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+
+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1+, Chrome 10+
background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
background-repeat: repeat-x;
@@ -276,11 +327,11 @@
background-image: radial-gradient(circle, @inner-color, @outer-color);
background-repeat: no-repeat;
}
- .striped(@color: #555; @angle: 45deg) {
- background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
- background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
- background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, @color), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, @color), color-stop(.75, @color), color-stop(.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
}
}
@@ -342,13 +393,18 @@
// -------------------------
.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border;) {
border-color: @border;
+
& > .panel-heading {
color: @heading-text-color;
background-color: @heading-bg-color;
border-color: @heading-border;
+
+ .panel-collapse .panel-body {
border-top-color: @border;
}
+ & > .dropdown .caret {
+ border-color: @heading-text-color transparent;
+ }
}
& > .panel-footer {
+ .panel-collapse .panel-body {
@@ -363,6 +419,7 @@
background-color: @background;
border-color: @border;
color: @text-color;
+
hr {
border-top-color: darken(@border, 5%);
}
@@ -384,7 +441,6 @@
&.@{state} > td,
&.@{state} > th {
background-color: @background;
- border-color: @border;
}
}
@@ -393,9 +449,9 @@
.table-hover > tbody > tr {
> td.@{state}:hover,
> th.@{state}:hover,
- &.@{state}:hover > td {
+ &.@{state}:hover > td,
+ &.@{state}:hover > th {
background-color: darken(@background, 5%);
- border-color: darken(@border, 5%);
}
}
}
@@ -432,7 +488,7 @@
&:active,
&.active {
background-color: @background;
- border-color: @border
+ border-color: @border;
}
}
}
@@ -496,7 +552,7 @@
.progress-bar-variant(@color) {
background-color: @color;
.progress-striped & {
- #gradient > .striped(@color);
+ #gradient > .striped();
}
}
@@ -511,12 +567,13 @@
}
.responsive-invisibility() {
- display: none !important;
- tr& { display: none !important; }
+ &,
+ tr&,
th&,
td& { display: none !important; }
}
+
// Grid System
// -----------
@@ -558,7 +615,7 @@
padding-right: (@gutter / 2);
// Calculate width based on number of columns available
- @media (min-width: @screen-sm) {
+ @media (min-width: @screen-sm-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
@@ -566,17 +623,17 @@
// Generate the small column offsets
.make-sm-column-offset(@columns) {
- @media (min-width: @screen-sm) {
+ @media (min-width: @screen-sm-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-sm-column-push(@columns) {
- @media (min-width: @screen-sm) {
+ @media (min-width: @screen-sm-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-sm-column-pull(@columns) {
- @media (min-width: @screen-sm) {
+ @media (min-width: @screen-sm-min) {
right: percentage((@columns / @grid-columns));
}
}
@@ -591,15 +648,15 @@
padding-right: (@gutter / 2);
// Calculate width based on number of columns available
- @media (min-width: @screen-md) {
+ @media (min-width: @screen-md-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
}
-// Generate the large column offsets
+// Generate the medium column offsets
.make-md-column-offset(@columns) {
- @media (min-width: @screen-md) {
+ @media (min-width: @screen-md-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
@@ -609,7 +666,7 @@
}
}
.make-md-column-pull(@columns) {
- @media (min-width: @screen-md) {
+ @media (min-width: @screen-md-min) {
right: percentage((@columns / @grid-columns));
}
}
@@ -624,7 +681,7 @@
padding-right: (@gutter / 2);
// Calculate width based on number of columns available
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
float: left;
width: percentage((@columns / @grid-columns));
}
@@ -632,22 +689,96 @@
// Generate the large column offsets
.make-lg-column-offset(@columns) {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-lg-column-push(@columns) {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-lg-column-pull(@columns) {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
right: percentage((@columns / @grid-columns));
}
}
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `@grid-columns`.
+
+.make-grid-columns() {
+ // Common styles for all sizes of grid columns, widths 1-12
+ .col(@index) when (@index = 1) { // initial
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
+ .col(@index + 1, @item);
+ }
+ .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
+ .col(@index + 1, ~"@{list}, @{item}");
+ }
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
+ @{list} {
+ position: relative;
+ // Prevent columns from collapsing when empty
+ min-height: 1px;
+ // Inner gutter via padding
+ padding-left: (@grid-gutter-width / 2);
+ padding-right: (@grid-gutter-width / 2);
+ }
+ }
+ .col(1); // kickstart it
+}
+
+.make-grid-columns-float(@class) {
+ .col(@index) when (@index = 1) { // initial
+ @item: ~".col-@{class}-@{index}";
+ .col(@index + 1, @item);
+ }
+ .col(@index, @list) when (@index < @grid-columns) { // general
+ @item: ~".col-@{class}-@{index}";
+ .col(@index + 1, ~"@{list}, @{item}");
+ }
+ .col(@index, @list) when (@index = @grid-columns) { // terminal
+ @{list} {
+ float: left;
+ }
+ }
+ .col(1); // kickstart it
+}
+
+.calc-grid(@index, @class, @type) when (@type = width) and (@index > 0) {
+ .col-@{class}-@{index} {
+ width: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid(@index, @class, @type) when (@type = push) {
+ .col-@{class}-push-@{index} {
+ left: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid(@index, @class, @type) when (@type = pull) {
+ .col-@{class}-pull-@{index} {
+ right: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid(@index, @class, @type) when (@type = offset) {
+ .col-@{class}-offset-@{index} {
+ margin-left: percentage((@index / @grid-columns));
+ }
+}
+
+// Basic looping in LESS
+.make-grid(@index, @class, @type) when (@index >= 0) {
+ .calc-grid(@index, @class, @type);
+ // next iteration
+ .make-grid(@index - 1, @class, @type);
+}
+
+
// Form validation states
//
// Used in forms.less to generate the form validation CSS for warnings, errors,
@@ -656,7 +787,11 @@
.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
// Color the label and help text
.help-block,
- .control-label {
+ .control-label,
+ .radio,
+ .checkbox,
+ .radio-inline,
+ .checkbox-inline {
color: @text-color;
}
// Set the border and box shadow on specific inputs to match
diff --git a/src/assets/less/bootstrap-3.0.0/modals.less b/src/assets/less/bootstrap-3.0.2/modals.less
similarity index 93%
rename from src/assets/less/bootstrap-3.0.0/modals.less
rename to src/assets/less/bootstrap-3.0.2/modals.less
index 7bc6c314f..99cf76469 100755
--- a/src/assets/less/bootstrap-3.0.0/modals.less
+++ b/src/assets/less/bootstrap-3.0.2/modals.less
@@ -10,14 +10,6 @@
// Kill the scroll on the body
.modal-open {
overflow: hidden;
-
-
- // Account for hiding of scrollbar
- body&,
- .navbar-fixed-top,
- .navbar-fixed-bottom {
- margin-right: 15px
- }
}
// Container that the modal scrolls within
@@ -42,6 +34,7 @@
// Shell div to position the modal with bottom padding
.modal-dialog {
+ position: relative;
margin-left: auto;
margin-right: auto;
width: auto;
@@ -125,11 +118,9 @@
}
// Scale up the modal
-@media screen and (min-width: @screen-tablet) {
+@media screen and (min-width: @screen-sm-min) {
.modal-dialog {
- left: 50%;
- right: auto;
width: 600px;
padding-top: 30px;
padding-bottom: 30px;
diff --git a/src/assets/less/bootstrap-3.0.0/navbar.less b/src/assets/less/bootstrap-3.0.2/navbar.less
similarity index 98%
rename from src/assets/less/bootstrap-3.0.0/navbar.less
rename to src/assets/less/bootstrap-3.0.2/navbar.less
index 351e20417..987cde6b0 100755
--- a/src/assets/less/bootstrap-3.0.0/navbar.less
+++ b/src/assets/less/bootstrap-3.0.2/navbar.less
@@ -10,7 +10,6 @@
.navbar {
position: relative;
- z-index: @zindex-navbar;
min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
margin-bottom: @navbar-margin-bottom;
border: 1px solid transparent;
@@ -75,7 +74,7 @@
}
&.in {
- overflow-y: visible;
+ overflow-y: auto;
}
// Account for first and last children spacing
@@ -111,12 +110,14 @@
//
// Navbar alignment options
//
-// Display the navbar across the entirity of the page or fixed it to the top or
+// Display the navbar across the entirety of the page or fixed it to the top or
// bottom of the page.
// Static top (unfixed, but 100% wide) navbar
.navbar-static-top {
+ z-index: @zindex-navbar;
border-width: 0 0 1px;
+
@media (min-width: @grid-float-breakpoint) {
border-radius: 0;
}
@@ -128,7 +129,7 @@
position: fixed;
right: 0;
left: 0;
- border-width: 0 0 1px;
+ z-index: @zindex-navbar-fixed;
// Undo the rounded corners
@media (min-width: @grid-float-breakpoint) {
@@ -136,12 +137,13 @@
}
}
.navbar-fixed-top {
- z-index: @zindex-navbar-fixed;
top: 0;
+ border-width: 0 0 1px;
}
.navbar-fixed-bottom {
bottom: 0;
margin-bottom: 0; // override .navbar defaults
+ border-width: 1px 0 0;
}
@@ -152,6 +154,7 @@
padding: @navbar-padding-vertical @navbar-padding-horizontal;
font-size: @font-size-large;
line-height: @line-height-computed;
+
&:hover,
&:focus {
text-decoration: none;
@@ -254,7 +257,7 @@
// Component alignment
//
-// Repurpose the pull utilities as their own navbar utilities to avoid specifity
+// Repurpose the pull utilities as their own navbar utilities to avoid specificity
// issues with parents and chaining. Only do this when the navbar is uncollapsed
// though so that navbar contents properly stack and align in mobile.
@@ -408,7 +411,7 @@
.navbar-collapse,
.navbar-form {
- border-color: darken(@navbar-default-bg, 7%);
+ border-color: @navbar-default-border;
}
// Dropdown menu items and carets
diff --git a/src/assets/less/bootstrap-3.0.0/navs.less b/src/assets/less/bootstrap-3.0.2/navs.less
similarity index 72%
rename from src/assets/less/bootstrap-3.0.0/navs.less
rename to src/assets/less/bootstrap-3.0.2/navs.less
index 6002a8cdd..6cddcd494 100755
--- a/src/assets/less/bootstrap-3.0.0/navs.less
+++ b/src/assets/less/bootstrap-3.0.2/navs.less
@@ -48,15 +48,25 @@
&:focus {
background-color: @nav-link-hover-bg;
border-color: @link-color;
+
+ .caret {
+ border-top-color: @link-hover-color;
+ border-bottom-color: @link-hover-color;
+ }
}
}
- // Dividers (basically an hr) within the dropdown
+ // Nav dividers (deprecated with v3.0.1)
+ //
+ // This should have been removed in v3 with the dropping of `.nav-list`, but
+ // we missed it. We don't currently support this anywhere, but in the interest
+ // of maintaining backward compatibility in case you use it, it's deprecated.
.nav-divider {
.nav-divider();
}
// Prevent IE8 from misplacing imgs
+ //
// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
> li > a > img {
max-width: none;
@@ -115,7 +125,7 @@
// Links rendered as pills
> a {
- border-radius: 5px;
+ border-radius: @nav-pills-border-radius;
}
+ li {
margin-left: 2px;
@@ -128,6 +138,11 @@
&:focus {
color: @nav-pills-active-link-hover-color;
background-color: @nav-pills-active-link-hover-bg;
+
+ .caret {
+ border-top-color: @nav-pills-active-link-hover-color;
+ border-bottom-color: @nav-pills-active-link-hover-color;
+ }
}
}
}
@@ -159,28 +174,54 @@
float: none;
> a {
text-align: center;
+ margin-bottom: 5px;
}
}
- @media (min-width: @screen-sm) {
+ > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+ }
+
+ @media (min-width: @screen-sm-min) {
> li {
display: table-cell;
width: 1%;
+ > a {
+ margin-bottom: 0;
+ }
}
}
}
// Move borders to anchors instead of bottom of list
+//
+// Mixin for adding on top the shared `.nav-justified` styles for our tabs
.nav-tabs-justified {
border-bottom: 0;
- > li > a {
- border-bottom: 1px solid @nav-tabs-justified-link-border-color;
+ > li > a {
// Override margin from .nav-tabs
margin-right: 0;
+ border-radius: @border-radius-base;
}
- > .active > a {
- border-bottom-color: @nav-tabs-justified-active-link-border-color;
+
+ > .active > a,
+ > .active > a:hover,
+ > .active > a:focus {
+ border: 1px solid @nav-tabs-justified-link-border-color;
+ }
+
+ @media (min-width: @screen-sm-min) {
+ > li > a {
+ border-bottom: 1px solid @nav-tabs-justified-link-border-color;
+ border-radius: @border-radius-base @border-radius-base 0 0;
+ }
+ > .active > a,
+ > .active > a:hover,
+ > .active > a:focus {
+ border-bottom-color: @nav-tabs-justified-active-link-border-color;
+ }
}
}
@@ -188,25 +229,17 @@
// Tabbable tabs
// -------------------------
-// Clear any floats
-.tabbable {
- .clearfix();
-}
-
-// Show/hide tabbable areas
-.tab-content > .tab-pane,
-.pill-content > .pill-pane {
- display: none;
-}
-.tab-content,
-.pill-content {
+// Hide tabbable panes to start, show them when `.active`
+.tab-content {
+ > .tab-pane {
+ display: none;
+ }
> .active {
display: block;
}
}
-
// Dropdowns
// -------------------------
diff --git a/src/assets/less/bootstrap-3.0.0/normalize.less b/src/assets/less/bootstrap-3.0.2/normalize.less
similarity index 94%
rename from src/assets/less/bootstrap-3.0.0/normalize.less
rename to src/assets/less/bootstrap-3.0.2/normalize.less
index a2e9c6485..42a393fc0 100755
--- a/src/assets/less/bootstrap-3.0.0/normalize.less
+++ b/src/assets/less/bootstrap-3.0.2/normalize.less
@@ -1,4 +1,4 @@
-/*! normalize.css v2.1.0 | MIT License | git.io/normalize */
+/*! normalize.css v2.1.3 | MIT License | git.io/normalize */
// ==========================================================================
// HTML5 display definitions
@@ -44,10 +44,12 @@ audio:not([controls]) {
}
//
-// Address styling not present in IE 8/9.
+// Address `[hidden]` styling not present in IE 8/9.
+// Hide the `template` element in IE, Safari, and Firefox < 22.
//
-[hidden] {
+[hidden],
+template {
display: none;
}
@@ -63,8 +65,8 @@ audio:not([controls]) {
html {
font-family: sans-serif; // 1
- -webkit-text-size-adjust: 100%; // 2
-ms-text-size-adjust: 100%; // 2
+ -webkit-text-size-adjust: 100%; // 2
}
//
@@ -79,6 +81,14 @@ body {
// Links
// ==========================================================================
+//
+// Remove the gray background color from active links in IE 10.
+//
+
+a {
+ background: transparent;
+}
+
//
// Address `outline` inconsistency between Chrome and other browsers.
//
@@ -329,8 +339,8 @@ html input[disabled] {
}
//
-// 1. Address box sizing set to `content-box` in IE 8/9.
-// 2. Remove excess padding in IE 8/9.
+// 1. Address box sizing set to `content-box` in IE 8/9/10.
+// 2. Remove excess padding in IE 8/9/10.
//
input[type="checkbox"],
diff --git a/src/assets/less/bootstrap-3.0.0/pager.less b/src/assets/less/bootstrap-3.0.2/pager.less
similarity index 100%
rename from src/assets/less/bootstrap-3.0.0/pager.less
rename to src/assets/less/bootstrap-3.0.2/pager.less
diff --git a/src/assets/less/bootstrap-3.0.0/pagination.less b/src/assets/less/bootstrap-3.0.2/pagination.less
similarity index 98%
rename from src/assets/less/bootstrap-3.0.0/pagination.less
rename to src/assets/less/bootstrap-3.0.2/pagination.less
index b480b3889..5c68b8bbb 100755
--- a/src/assets/less/bootstrap-3.0.0/pagination.less
+++ b/src/assets/less/bootstrap-3.0.2/pagination.less
@@ -58,6 +58,8 @@
> .disabled {
> span,
+ > span:hover,
+ > span:focus,
> a,
> a:hover,
> a:focus {
diff --git a/src/assets/less/bootstrap-3.0.0/panels.less b/src/assets/less/bootstrap-3.0.2/panels.less
similarity index 85%
rename from src/assets/less/bootstrap-3.0.0/panels.less
rename to src/assets/less/bootstrap-3.0.2/panels.less
index 2343b2508..a107ff1d4 100755
--- a/src/assets/less/bootstrap-3.0.0/panels.less
+++ b/src/assets/less/bootstrap-3.0.2/panels.less
@@ -56,12 +56,37 @@
// watch it go full width.
.panel {
- > .table {
+ > .table,
+ > .table-responsive {
margin-bottom: 0;
}
- > .panel-body + .table {
+ > .panel-body + .table,
+ > .panel-body + .table-responsive {
border-top: 1px solid @table-border-color;
}
+ > .table-bordered,
+ > .table-responsive > .table-bordered {
+ border: 0;
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th:first-child,
+ > td:first-child {
+ border-left: 0;
+ }
+ > th:last-child,
+ > td:last-child {
+ border-right: 0;
+ }
+
+ &:last-child > th,
+ &:last-child > td {
+ border-bottom: 0;
+ }
+ }
+ }
+ }
}
@@ -70,6 +95,10 @@
padding: 10px 15px;
border-bottom: 1px solid transparent;
.border-top-radius(@panel-border-radius - 1);
+
+ > .dropdown .dropdown-toggle {
+ color: inherit;
+ }
}
// Within heading, strip any `h*` tag of it's default margins for spacing.
@@ -119,11 +148,6 @@
border-bottom: 1px solid @panel-inner-border;
}
}
-
- // New subcomponent for wrapping collapsable content for proper animations
- .panel-collapse {
-
- }
}
diff --git a/src/assets/less/bootstrap-3.0.0/popovers.less b/src/assets/less/bootstrap-3.0.2/popovers.less
similarity index 100%
rename from src/assets/less/bootstrap-3.0.0/popovers.less
rename to src/assets/less/bootstrap-3.0.2/popovers.less
diff --git a/src/assets/less/bootstrap-3.0.0/print.less b/src/assets/less/bootstrap-3.0.2/print.less
similarity index 89%
rename from src/assets/less/bootstrap-3.0.0/print.less
rename to src/assets/less/bootstrap-3.0.2/print.less
index 1e4bffe3f..07277a3ca 100755
--- a/src/assets/less/bootstrap-3.0.0/print.less
+++ b/src/assets/less/bootstrap-3.0.2/print.less
@@ -26,7 +26,6 @@
}
// Don't show links for images, or javascript/internal links
- .ir a:after,
a[href^="javascript:"]:after,
a[href^="#"]:after {
content: "";
@@ -67,6 +66,12 @@
page-break-after: avoid;
}
+ // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245
+ // Once fixed, we can just straight up remove this.
+ select {
+ background: #fff !important;
+ }
+
// Bootstrap components
.navbar {
display: none;
diff --git a/src/assets/less/bootstrap-3.0.0/progress-bars.less b/src/assets/less/bootstrap-3.0.2/progress-bars.less
similarity index 82%
rename from src/assets/less/bootstrap-3.0.0/progress-bars.less
rename to src/assets/less/bootstrap-3.0.2/progress-bars.less
index 49e5df8e3..507c82dbd 100755
--- a/src/assets/less/bootstrap-3.0.0/progress-bars.less
+++ b/src/assets/less/bootstrap-3.0.2/progress-bars.less
@@ -6,7 +6,7 @@
// Bar animations
// -------------------------
-// Webkit
+// WebKit
@-webkit-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
@@ -51,6 +51,7 @@
width: 0%;
height: 100%;
font-size: @font-size-small;
+ line-height: @line-height-computed;
color: @progress-bar-color;
text-align: center;
background-color: @progress-bar-bg;
@@ -60,17 +61,13 @@
// Striped bars
.progress-striped .progress-bar {
- #gradient > .striped(@progress-bar-bg);
+ #gradient > .striped();
background-size: 40px 40px;
}
// Call animation for the active one
.progress.active .progress-bar {
- -webkit-animation: progress-bar-stripes 2s linear infinite;
- -moz-animation: progress-bar-stripes 2s linear infinite;
- -ms-animation: progress-bar-stripes 2s linear infinite;
- -o-animation: progress-bar-stripes 2s linear infinite;
- animation: progress-bar-stripes 2s linear infinite;
+ .animation(progress-bar-stripes 2s linear infinite);
}
diff --git a/src/assets/less/bootstrap-3.0.0/responsive-utilities.less b/src/assets/less/bootstrap-3.0.2/responsive-utilities.less
similarity index 53%
rename from src/assets/less/bootstrap-3.0.0/responsive-utilities.less
rename to src/assets/less/bootstrap-3.0.2/responsive-utilities.less
index c756b2361..df53e479d 100755
--- a/src/assets/less/bootstrap-3.0.0/responsive-utilities.less
+++ b/src/assets/less/bootstrap-3.0.2/responsive-utilities.less
@@ -3,35 +3,24 @@
// --------------------------------------------------
-// IE10 Metro responsive
-// Required for Windows 8 Metro split-screen snapping with IE10
+// IE10 in Windows (Phone) 8
//
+// Support for responsive views via media queries is kind of borked in IE10, for
+// Surface/desktop in split view and for Windows Phone 8. This particular fix
+// must be accompanied by a snippet of JavaScript to sniff the user agent and
+// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
+// our Getting Started page for more information on this bug.
+//
+// For more information, see the following:
+//
+// Issue: https://github.com/twbs/bootstrap/issues/10497
+// Docs: http://getbootstrap.com/getting-started/#browsers
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
-@-ms-viewport{
+
+@-ms-viewport {
width: device-width;
}
-// IE10 on Windows Phone 8
-// IE10 on WP8 doesn't report CSS pixels, but actual device pixels. In
-// other words, say on a Lumia, you'll get 768px as the device width,
-// meaning users will see the tablet styles and not phone styles.
-//
-// Alternatively you can override this with JS (see source below), but
-// we won't be doing that here given our limited scope.
-//
-// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
-@media screen and (max-width: 400px) {
- @-ms-viewport{
- width: 320px;
- }
-}
-
-// Hide from screenreaders and browsers
-// Credit: HTML5 Boilerplate
-.hidden {
- display: none !important;
- visibility: hidden !important;
-}
// Visibility utilities
@@ -41,19 +30,19 @@
.responsive-visibility();
}
&.visible-sm {
- @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
&.visible-md {
- @media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
- }
+ }
}
&.visible-lg {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
.responsive-visibility();
- }
+ }
}
}
.visible-sm {
@@ -61,20 +50,20 @@
&.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
- }
+ }
}
- @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
&.visible-md {
- @media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
- }
+ }
}
&.visible-lg {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
.responsive-visibility();
- }
+ }
}
}
.visible-md {
@@ -82,20 +71,20 @@
&.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
- }
+ }
}
&.visible-sm {
- @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
- @media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
}
&.visible-lg {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
.responsive-visibility();
- }
+ }
}
}
.visible-lg {
@@ -103,19 +92,19 @@
&.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
- }
+ }
}
&.visible-sm {
- @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
&.visible-md {
- @media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
- }
+ }
}
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
.responsive-visibility();
}
}
@@ -126,19 +115,19 @@
.responsive-invisibility();
}
&.hidden-sm {
- @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility();
- }
+ }
}
&.hidden-md {
- @media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility();
- }
+ }
}
&.hidden-lg {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
.responsive-invisibility();
- }
+ }
}
}
.hidden-sm {
@@ -148,18 +137,18 @@
.responsive-invisibility();
}
}
- @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility();
}
&.hidden-md {
- @media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility();
- }
+ }
}
&.hidden-lg {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
.responsive-invisibility();
- }
+ }
}
}
.hidden-md {
@@ -167,20 +156,20 @@
&.hidden-xs {
@media (max-width: @screen-xs-max) {
.responsive-invisibility();
- }
+ }
}
&.hidden-sm {
- @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility();
- }
+ }
}
- @media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility();
}
&.hidden-lg {
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
.responsive-invisibility();
- }
+ }
}
}
.hidden-lg {
@@ -188,19 +177,19 @@
&.hidden-xs {
@media (max-width: @screen-xs-max) {
.responsive-invisibility();
- }
+ }
}
&.hidden-sm {
- @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility();
- }
+ }
}
&.hidden-md {
- @media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility();
- }
+ }
}
- @media (min-width: @screen-lg) {
+ @media (min-width: @screen-lg-min) {
.responsive-invisibility();
}
}
diff --git a/src/assets/less/bootstrap-3.0.0/scaffolding.less b/src/assets/less/bootstrap-3.0.2/scaffolding.less
similarity index 89%
rename from src/assets/less/bootstrap-3.0.0/scaffolding.less
rename to src/assets/less/bootstrap-3.0.2/scaffolding.less
index 53e1be5ac..976b4e3c2 100755
--- a/src/assets/less/bootstrap-3.0.0/scaffolding.less
+++ b/src/assets/less/bootstrap-3.0.2/scaffolding.less
@@ -37,17 +37,6 @@ textarea {
line-height: inherit;
}
-// Reset unusual Firefox-on-Android default style.
-//
-// See https://github.com/necolas/normalize.css/issues/214
-
-button,
-input,
-select[multiple],
-textarea {
- background-image: none;
-}
-
// Links
@@ -125,6 +114,6 @@ hr {
margin: -1px;
padding: 0;
overflow: hidden;
- clip: rect(0 0 0 0);
+ clip: rect(0,0,0,0);
border: 0;
}
diff --git a/src/assets/less/bootstrap-3.0.0/tables.less b/src/assets/less/bootstrap-3.0.2/tables.less
similarity index 78%
rename from src/assets/less/bootstrap-3.0.0/tables.less
rename to src/assets/less/bootstrap-3.0.2/tables.less
index 7543b165a..0deadc782 100755
--- a/src/assets/less/bootstrap-3.0.0/tables.less
+++ b/src/assets/less/bootstrap-3.0.2/tables.less
@@ -18,9 +18,9 @@ th {
width: 100%;
margin-bottom: @line-height-computed;
// Cells
- thead,
- tbody,
- tfoot {
+ > thead,
+ > tbody,
+ > tfoot {
> tr {
> th,
> td {
@@ -32,22 +32,23 @@ th {
}
}
// Bottom align for column headings
- thead > tr > th {
+ > thead > tr > th {
vertical-align: bottom;
border-bottom: 2px solid @table-border-color;
}
// Remove top border from thead by default
- caption + thead,
- colgroup + thead,
- thead:first-child {
- tr:first-child {
- th, td {
+ > caption + thead,
+ > colgroup + thead,
+ > thead:first-child {
+ > tr:first-child {
+ > th,
+ > td {
border-top: 0;
}
}
}
// Account for multiple tbody instances
- tbody + tbody {
+ > tbody + tbody {
border-top: 2px solid @table-border-color;
}
@@ -61,9 +62,9 @@ th {
// Condensed table w/ half padding
.table-condensed {
- thead,
- tbody,
- tfoot {
+ > thead,
+ > tbody,
+ > tfoot {
> tr {
> th,
> td {
@@ -90,12 +91,10 @@ th {
}
}
}
- > thead {
- > tr {
- > th,
- > td {
- border-bottom-width: 2px;
- }
+ > thead > tr {
+ > th,
+ > td {
+ border-bottom-width: 2px;
}
}
}
@@ -105,14 +104,10 @@ th {
//
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
-.table-striped {
- > tbody {
- > tr:nth-child(odd) {
- > td,
- > th {
- background-color: @table-bg-accent;
- }
- }
+.table-striped > tbody > tr:nth-child(odd) {
+ > td,
+ > th {
+ background-color: @table-bg-accent;
}
}
@@ -121,14 +116,10 @@ th {
//
// Placed here since it has to come after the potential zebra striping
-.table-hover {
- > tbody {
- > tr:hover {
- > td,
- > th {
- background-color: @table-bg-hover;
- }
- }
+.table-hover > tbody > tr:hover {
+ > td,
+ > th {
+ background-color: @table-bg-hover;
}
}
@@ -176,22 +167,23 @@ table {
// Responsive tables
//
-// Wrap your tables in `.table-scrollable` and we'll make them mobile friendly
+// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
// by enabling horizontal scrolling. Only applies <768px. Everything above that
// will display normally.
-@media (max-width: @screen-sm) {
+@media (max-width: @screen-xs-max) {
.table-responsive {
width: 100%;
- margin-bottom: 15px;
+ margin-bottom: (@line-height-computed * 0.75);
overflow-y: hidden;
overflow-x: scroll;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid @table-border-color;
+ -webkit-overflow-scrolling: touch;
- // Tighten up spacing and give a background color
+ // Tighten up spacing
> .table {
margin-bottom: 0;
- background-color: #fff;
// Ensure the content doesn't wrap
> thead,
@@ -224,6 +216,13 @@ table {
border-right: 0;
}
}
+ }
+
+ // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
+ // chances are there will be only one `tr` in a `thead` and that would
+ // remove the border altogether.
+ > tbody,
+ > tfoot {
> tr:last-child {
> th,
> td {
@@ -231,6 +230,7 @@ table {
}
}
}
+
}
}
}
diff --git a/src/assets/less/bootstrap-3.0.0/theme.less b/src/assets/less/bootstrap-3.0.2/theme.less
similarity index 79%
rename from src/assets/less/bootstrap-3.0.0/theme.less
rename to src/assets/less/bootstrap-3.0.2/theme.less
index 92469c429..0addce3f2 100755
--- a/src/assets/less/bootstrap-3.0.0/theme.less
+++ b/src/assets/less/bootstrap-3.0.2/theme.less
@@ -31,14 +31,22 @@
}
// Mixin for generating new styles
-.btn-styles(@btn-color: #555;) {
- #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 10%));
- border-color: darken(@btn-color, 12%);
+.btn-styles(@btn-color: #555) {
+ #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));
+ .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners
+ background-repeat: repeat-x;
+ border-color: darken(@btn-color, 14%);
+
+ &:hover,
+ &:focus {
+ background-color: darken(@btn-color, 12%);
+ background-position: 0 -15px;
+ }
&:active,
&.active {
- background-color: darken(@btn-color, 10%);
- border-color: darken(@btn-color, 12%);
+ background-color: darken(@btn-color, 12%);
+ border-color: darken(@btn-color, 14%);
}
}
@@ -52,7 +60,7 @@
}
// Apply the mixin to the buttons
-.btn-default { .btn-styles(@btn-default-bg;); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
+.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
.btn-primary { .btn-styles(@btn-primary-bg); }
.btn-success { .btn-styles(@btn-success-bg); }
.btn-warning { .btn-styles(@btn-warning-bg); }
@@ -77,12 +85,15 @@
// --------------------------------------------------
.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus,
+.dropdown-menu > li > a:focus {
+ #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
+ background-color: darken(@dropdown-link-hover-bg, 5%);
+}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
- #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
- background-color: darken(@dropdown-link-hover-bg, 5%);
+ #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
+ background-color: darken(@dropdown-link-active-bg, 5%);
}
@@ -91,15 +102,17 @@
// Navbar
// --------------------------------------------------
-// Basic navbar
-.navbar {
- #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg;);
+// Default navbar
+.navbar-default {
+ #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);
+ .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
border-radius: @navbar-border-radius;
@shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
.box-shadow(@shadow);
.navbar-nav > .active > a {
- background-color: @navbar-default-bg;
+ #gradient > .vertical(@start-color: darken(@navbar-default-bg, 5%); @end-color: darken(@navbar-default-bg, 2%));
+ .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
}
}
.navbar-brand,
@@ -109,10 +122,12 @@
// Inverted navbar
.navbar-inverse {
- #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg;);
+ #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);
+ .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
.navbar-nav > .active > a {
- background-color: @navbar-inverse-bg;
+ #gradient > .vertical(@start-color: @navbar-inverse-bg; @end-color: lighten(@navbar-inverse-bg, 2.5%));
+ .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
}
.navbar-brand,
@@ -161,7 +176,7 @@
// Give the progress background some depth
.progress {
- #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg;)
+ #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)
}
// Mixin for generating new styles
@@ -225,7 +240,7 @@
// --------------------------------------------------
.well {
- #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg;);
+ #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);
border-color: darken(@well-bg, 10%);
@shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
.box-shadow(@shadow);
diff --git a/src/assets/less/bootstrap-3.0.2/thumbnails.less b/src/assets/less/bootstrap-3.0.2/thumbnails.less
new file mode 100755
index 000000000..bc4178bbf
--- /dev/null
+++ b/src/assets/less/bootstrap-3.0.2/thumbnails.less
@@ -0,0 +1,30 @@
+//
+// Thumbnails
+// --------------------------------------------------
+
+
+// Mixin and adjust the regular image class
+.thumbnail {
+ .img-thumbnail();
+ display: block; // Override the inline-block from `.img-thumbnail`
+ margin-bottom: @line-height-computed;
+
+ > img {
+ .img-responsive();
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ // Add a hover state for linked versions only
+ a&:hover,
+ a&:focus,
+ a&.active {
+ border-color: @link-color;
+ }
+
+ // Image captions
+ .caption {
+ padding: @thumbnail-caption-padding;
+ color: @thumbnail-caption-color;
+ }
+}
diff --git a/src/assets/less/bootstrap-3.0.0/tooltip.less b/src/assets/less/bootstrap-3.0.2/tooltip.less
similarity index 84%
rename from src/assets/less/bootstrap-3.0.0/tooltip.less
rename to src/assets/less/bootstrap-3.0.2/tooltip.less
index 5a95b8462..ce793cb93 100755
--- a/src/assets/less/bootstrap-3.0.0/tooltip.less
+++ b/src/assets/less/bootstrap-3.0.2/tooltip.less
@@ -14,10 +14,10 @@
.opacity(0);
&.in { .opacity(.9); }
- &.top { margin-top: -3px; padding: 5px 0; }
- &.right { margin-left: 3px; padding: 0 5px; }
- &.bottom { margin-top: 3px; padding: 5px 0; }
- &.left { margin-left: -3px; padding: 0 5px; }
+ &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
+ &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
+ &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }
+ &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
}
// Wrapper for the tooltip content
@@ -49,13 +49,13 @@
}
&.top-left .tooltip-arrow {
bottom: 0;
- left: 5px;
+ left: @tooltip-arrow-width;
border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
border-top-color: @tooltip-arrow-color;
}
&.top-right .tooltip-arrow {
bottom: 0;
- right: 5px;
+ right: @tooltip-arrow-width;
border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
border-top-color: @tooltip-arrow-color;
}
@@ -82,13 +82,13 @@
}
&.bottom-left .tooltip-arrow {
top: 0;
- left: 5px;
+ left: @tooltip-arrow-width;
border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
border-bottom-color: @tooltip-arrow-color;
}
&.bottom-right .tooltip-arrow {
top: 0;
- right: 5px;
+ right: @tooltip-arrow-width;
border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
border-bottom-color: @tooltip-arrow-color;
}
diff --git a/src/assets/less/bootstrap-3.0.0/type.less b/src/assets/less/bootstrap-3.0.2/type.less
similarity index 73%
rename from src/assets/less/bootstrap-3.0.0/type.less
rename to src/assets/less/bootstrap-3.0.2/type.less
index c40a89106..437c70b76 100755
--- a/src/assets/less/bootstrap-3.0.0/type.less
+++ b/src/assets/less/bootstrap-3.0.2/type.less
@@ -11,11 +11,11 @@ p {
}
.lead {
margin-bottom: @line-height-computed;
- font-size: (@font-size-base * 1.15);
+ font-size: floor(@font-size-base * 1.15);
font-weight: 200;
line-height: 1.4;
- @media (min-width: 768px) {
+ @media (min-width: @screen-sm-min) {
font-size: (@font-size-base * 1.5);
}
}
@@ -25,18 +25,46 @@ p {
// -------------------------
// Ex: 14px base font * 85% = about 12px
-small { font-size: 85%; }
+small,
+.small { font-size: 85%; }
// Undo browser default styling
cite { font-style: normal; }
// Contextual emphasis
-.text-muted { color: @text-muted; }
-.text-primary { color: @brand-primary; }
-.text-warning { color: @state-warning-text; }
-.text-danger { color: @state-danger-text; }
-.text-success { color: @state-success-text; }
-.text-info { color: @state-info-text; }
+.text-muted {
+ color: @text-muted;
+}
+.text-primary {
+ color: @brand-primary;
+ &:hover {
+ color: darken(@brand-primary, 10%);
+ }
+}
+.text-warning {
+ color: @state-warning-text;
+ &:hover {
+ color: darken(@state-warning-text, 10%);
+ }
+}
+.text-danger {
+ color: @state-danger-text;
+ &:hover {
+ color: darken(@state-danger-text, 10%);
+ }
+}
+.text-success {
+ color: @state-success-text;
+ &:hover {
+ color: darken(@state-success-text, 10%);
+ }
+}
+.text-info {
+ color: @state-info-text;
+ &:hover {
+ color: darken(@state-info-text, 10%);
+ }
+}
// Alignment
.text-left { text-align: left; }
@@ -52,7 +80,10 @@ h1, h2, h3, h4, h5, h6,
font-family: @headings-font-family;
font-weight: @headings-font-weight;
line-height: @headings-line-height;
- small {
+ color: @headings-color;
+
+ small,
+ .small {
font-weight: normal;
line-height: 1;
color: @headings-small-color;
@@ -64,25 +95,30 @@ h2,
h3 {
margin-top: @line-height-computed;
margin-bottom: (@line-height-computed / 2);
+
+ small,
+ .small {
+ font-size: 65%;
+ }
}
h4,
h5,
h6 {
margin-top: (@line-height-computed / 2);
margin-bottom: (@line-height-computed / 2);
+
+ small,
+ .small {
+ font-size: 75%;
+ }
}
-h1, .h1 { font-size: floor(@font-size-base * 2.60); } // ~36px
-h2, .h2 { font-size: floor(@font-size-base * 2.15); } // ~30px
-h3, .h3 { font-size: ceil(@font-size-base * 1.70); } // ~24px
-h4, .h4 { font-size: ceil(@font-size-base * 1.25); } // ~18px
-h5, .h5 { font-size: @font-size-base; }
-h6, .h6 { font-size: ceil(@font-size-base * 0.85); } // ~12px
-
-h1 small, .h1 small { font-size: ceil(@font-size-base * 1.70); } // ~24px
-h2 small, .h2 small { font-size: ceil(@font-size-base * 1.25); } // ~18px
-h3 small, .h3 small,
-h4 small, .h4 small { font-size: @font-size-base; }
+h1, .h1 { font-size: @font-size-h1; }
+h2, .h2 { font-size: @font-size-h2; }
+h3, .h3 { font-size: @font-size-h3; }
+h4, .h4 { font-size: @font-size-h4; }
+h5, .h5 { font-size: @font-size-h5; }
+h6, .h6 { font-size: @font-size-h6; }
// Page header
@@ -105,7 +141,7 @@ ol {
margin-top: 0;
margin-bottom: (@line-height-computed / 2);
ul,
- ol{
+ ol {
margin-bottom: 0;
}
}
@@ -117,13 +153,19 @@ ol {
padding-left: 0;
list-style: none;
}
+
// Inline turns list items into inline-block
.list-inline {
.list-unstyled();
+
> li {
display: inline-block;
padding-left: 5px;
padding-right: 5px;
+
+ &:first-child {
+ padding-left: 0;
+ }
}
}
@@ -168,7 +210,7 @@ dd {
// Abbreviations and acronyms
abbr[title],
-// Added data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
+// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
abbr[data-original-title] {
cursor: help;
border-bottom: 1px dotted @abbr-border-color;
@@ -196,7 +238,7 @@ blockquote {
line-height: @line-height-base;
color: @blockquote-small-color;
&:before {
- content: '\2014 \00A0';// EM DASH, NBSP
+ content: '\2014 \00A0'; // EM DASH, NBSP
}
}
@@ -207,23 +249,23 @@ blockquote {
border-right: 5px solid @blockquote-border-color;
border-left: 0;
p,
- small {
+ small,
+ .small {
text-align: right;
}
- small {
+ small,
+ .small {
&:before {
content: '';
}
&:after {
- content: '\00A0 \2014';// NBSP, EM DASH
+ content: '\00A0 \2014'; // NBSP, EM DASH
}
}
}
}
// Quotes
-q:before,
-q:after,
blockquote:before,
blockquote:after {
content: "";
@@ -231,7 +273,6 @@ blockquote:after {
// Addresses
address {
- display: block;
margin-bottom: @line-height-computed;
font-style: normal;
line-height: @line-height-base;
diff --git a/src/assets/less/bootstrap-3.0.0/utilities.less b/src/assets/less/bootstrap-3.0.2/utilities.less
similarity index 63%
rename from src/assets/less/bootstrap-3.0.0/utilities.less
rename to src/assets/less/bootstrap-3.0.2/utilities.less
index 3d310e651..a26031214 100755
--- a/src/assets/less/bootstrap-3.0.0/utilities.less
+++ b/src/assets/less/bootstrap-3.0.2/utilities.less
@@ -9,6 +9,9 @@
.clearfix {
.clearfix();
}
+.center-block {
+ .center-block();
+}
.pull-right {
float: right !important;
}
@@ -20,6 +23,7 @@
// Toggling content
// -------------------------
+// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
.hide {
display: none !important;
}
@@ -30,7 +34,17 @@
visibility: hidden;
}
.text-hide {
- .hide-text();
+ .text-hide();
+}
+
+
+// Hide from screenreaders and browsers
+//
+// Credit: HTML5 Boilerplate
+
+.hidden {
+ display: none !important;
+ visibility: hidden !important;
}
diff --git a/src/assets/less/bootstrap-3.0.0/variables.less b/src/assets/less/bootstrap-3.0.2/variables.less
similarity index 89%
rename from src/assets/less/bootstrap-3.0.0/variables.less
rename to src/assets/less/bootstrap-3.0.2/variables.less
index fa623e283..e596215d0 100755
--- a/src/assets/less/bootstrap-3.0.0/variables.less
+++ b/src/assets/less/bootstrap-3.0.2/variables.less
@@ -48,12 +48,21 @@
@font-size-large: ceil(@font-size-base * 1.25); // ~18px
@font-size-small: ceil(@font-size-base * 0.85); // ~12px
+@font-size-h1: floor(@font-size-base * 2.6); // ~36px
+@font-size-h2: floor(@font-size-base * 2.15); // ~30px
+@font-size-h3: ceil(@font-size-base * 1.7); // ~24px
+@font-size-h4: ceil(@font-size-base * 1.25); // ~18px
+@font-size-h5: @font-size-base;
+@font-size-h6: ceil(@font-size-base * 0.85); // ~12px
+
@line-height-base: 1.428571429; // 20/14
@line-height-computed: floor(@font-size-base * @line-height-base); // ~20px
@headings-font-family: @font-family-base;
@headings-font-weight: 500;
@headings-line-height: 1.1;
+@headings-color: inherit;
+
// Iconography
// -------------------------
@@ -82,6 +91,7 @@
@border-radius-large: 6px;
@border-radius-small: 3px;
+@component-active-color: #fff;
@component-active-bg: @brand-primary;
@caret-width-base: 4px;
@@ -165,12 +175,12 @@
@dropdown-fallback-border: #ccc;
@dropdown-divider-bg: #e5e5e5;
-@dropdown-link-active-color: #fff;
-@dropdown-link-active-bg: @component-active-bg;
-
@dropdown-link-color: @gray-dark;
-@dropdown-link-hover-color: #fff;
-@dropdown-link-hover-bg: @dropdown-link-active-bg;
+@dropdown-link-hover-color: darken(@gray-dark, 5%);
+@dropdown-link-hover-bg: #f5f5f5;
+
+@dropdown-link-active-color: @component-active-color;
+@dropdown-link-active-bg: @component-active-bg;
@dropdown-link-disabled-color: @gray-light;
@@ -200,25 +210,33 @@
// --------------------------------------------------
// Extra small screen / phone
+// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1
@screen-xs: 480px;
-@screen-phone: @screen-xs;
+@screen-xs-min: @screen-xs;
+@screen-phone: @screen-xs-min;
// Small screen / tablet
+// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1
@screen-sm: 768px;
-@screen-tablet: @screen-sm;
+@screen-sm-min: @screen-sm;
+@screen-tablet: @screen-sm-min;
// Medium screen / desktop
+// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1
@screen-md: 992px;
-@screen-desktop: @screen-md;
+@screen-md-min: @screen-md;
+@screen-desktop: @screen-md-min;
// Large screen / wide desktop
+// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1
@screen-lg: 1200px;
-@screen-lg-desktop: @screen-lg;
+@screen-lg-min: @screen-lg;
+@screen-lg-desktop: @screen-lg-min;
// So media queries don't overlap when required, provide a maximum
-@screen-xs-max: (@screen-sm - 1);
-@screen-sm-max: (@screen-md - 1);
-@screen-md-max: (@screen-lg - 1);
+@screen-xs-max: (@screen-sm-min - 1);
+@screen-sm-max: (@screen-md-min - 1);
+@screen-md-max: (@screen-lg-min - 1);
// Grid system
@@ -229,7 +247,7 @@
// Padding, to be divided by two and applied to the left and right of all columns
@grid-gutter-width: 30px;
// Point at which the navbar stops collapsing
-@grid-float-breakpoint: @screen-tablet;
+@grid-float-breakpoint: @screen-sm-min;
// Navbar
@@ -238,13 +256,14 @@
// Basics of a navbar
@navbar-height: 50px;
@navbar-margin-bottom: @line-height-computed;
-@navbar-default-color: #777;
-@navbar-default-bg: #f8f8f8;
-@navbar-default-border: darken(@navbar-default-bg, 6.5%);
@navbar-border-radius: @border-radius-base;
@navbar-padding-horizontal: floor(@grid-gutter-width / 2);
@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
+@navbar-default-color: #777;
+@navbar-default-bg: #f8f8f8;
+@navbar-default-border: darken(@navbar-default-bg, 6.5%);
+
// Navbar links
@navbar-default-link-color: #777;
@navbar-default-link-hover-color: #333;
@@ -256,7 +275,7 @@
// Navbar brand label
@navbar-default-brand-color: @navbar-default-link-color;
-@navbar-default-brand-hover-color: darken(@navbar-default-link-color, 10%);
+@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%);
@navbar-default-brand-hover-bg: transparent;
// Navbar toggle
@@ -286,13 +305,6 @@
@navbar-inverse-brand-hover-color: #fff;
@navbar-inverse-brand-hover-bg: transparent;
-// Inverted navbar search
-// Normal navbar needs no special styles or vars
-@navbar-inverse-search-bg: lighten(@navbar-inverse-bg, 25%);
-@navbar-inverse-search-bg-focus: #fff;
-@navbar-inverse-search-border: @navbar-inverse-bg;
-@navbar-inverse-search-placeholder-color: #ccc;
-
// Inverted navbar toggle
@navbar-inverse-toggle-hover-bg: #333;
@navbar-inverse-toggle-icon-bar-bg: #fff;
@@ -324,8 +336,9 @@
@nav-tabs-justified-active-link-border-color: @body-bg;
// Pills
+@nav-pills-border-radius: @border-radius-base;
@nav-pills-active-link-hover-bg: @component-active-bg;
-@nav-pills-active-link-hover-color: #fff;
+@nav-pills-active-link-hover-color: @component-active-color;
// Pagination
@@ -355,21 +368,13 @@
@jumbotron-padding: 30px;
@jumbotron-color: inherit;
@jumbotron-bg: @gray-lighter;
-
@jumbotron-heading-color: inherit;
+@jumbotron-font-size: ceil(@font-size-base * 1.5);
// Form states and alerts
// -------------------------
-@state-warning-text: #c09853;
-@state-warning-bg: #fcf8e3;
-@state-warning-border: darken(spin(@state-warning-bg, -10), 3%);
-
-@state-danger-text: #b94a48;
-@state-danger-bg: #f2dede;
-@state-danger-border: darken(spin(@state-danger-bg, -10), 3%);
-
@state-success-text: #468847;
@state-success-bg: #dff0d8;
@state-success-border: darken(spin(@state-success-bg, -10), 5%);
@@ -378,6 +383,14 @@
@state-info-bg: #d9edf7;
@state-info-border: darken(spin(@state-info-bg, -10), 7%);
+@state-warning-text: #c09853;
+@state-warning-bg: #fcf8e3;
+@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
+
+@state-danger-text: #b94a48;
+@state-danger-bg: #f2dede;
+@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
+
// Tooltips
// -------------------------
@@ -478,7 +491,7 @@
@list-group-border-radius: @border-radius-base;
@list-group-hover-bg: #f5f5f5;
-@list-group-active-color: #fff;
+@list-group-active-color: @component-active-color;
@list-group-active-bg: @component-active-bg;
@list-group-active-border: @list-group-active-bg;
@@ -553,6 +566,7 @@
@breadcrumb-bg: #f5f5f5;
@breadcrumb-color: #ccc;
@breadcrumb-active-color: @gray-light;
+@breadcrumb-separator: "/";
// Carousel
@@ -573,8 +587,8 @@
// Close
// ------------------------
-@close-color: #000;
@close-font-weight: bold;
+@close-color: #000;
@close-text-shadow: 0 1px 0 #fff;
@@ -611,10 +625,13 @@
// --------------------------------------------------
// Small screen / tablet
-@container-tablet: ((720px + @grid-gutter-width));
+@container-tablet: ((720px + @grid-gutter-width));
+@container-sm: @container-tablet;
// Medium screen / desktop
-@container-desktop: ((940px + @grid-gutter-width));
+@container-desktop: ((940px + @grid-gutter-width));
+@container-md: @container-desktop;
// Large screen / wide desktop
-@container-lg-desktop: ((1140px + @grid-gutter-width));
+@container-large-desktop: ((1140px + @grid-gutter-width));
+@container-lg: @container-large-desktop;
diff --git a/src/assets/less/bootstrap-3.0.0/wells.less b/src/assets/less/bootstrap-3.0.2/wells.less
similarity index 100%
rename from src/assets/less/bootstrap-3.0.0/wells.less
rename to src/assets/less/bootstrap-3.0.2/wells.less