diff options
author | Thomas McDonald <tom@conceptcoding.co.uk> | 2013-02-15 01:11:56 +0400 |
---|---|---|
committer | Thomas McDonald <tom@conceptcoding.co.uk> | 2013-02-15 01:11:56 +0400 |
commit | 1a9cf0b342b1e7606b9577934b2d3641619d0eac (patch) | |
tree | 2e082c08003bf95655c285ce92754eb293c0b062 | |
parent | 2d40e4d27b2fb7c8dcbfc40e278b4ddc6772f337 (diff) | |
parent | 4ce595087d4fec7b351defa08a5d4871aaba7b76 (diff) |
Merge pull request #290 from trisweb/tristan_2.3.0v2.3.0.0
Update to match bootstrap 2.3 from sass-twitter-bootstrap
41 files changed, 439 insertions, 221 deletions
@@ -14,7 +14,7 @@ In your Gemfile: ```ruby gem 'sass-rails', '~> 3.2' -gem 'bootstrap-sass', '~> 2.2.2.0' +gem 'bootstrap-sass', '~> 2.3.0.0' ``` #### CSS @@ -115,7 +115,7 @@ Basically this means you should expect to append a separate patch version to the ### Bundler? ```ruby -gem 'bootstrap-sass', '~> 2.2.2.0' +gem 'bootstrap-sass', '~> 2.3.0.0' ``` Don't use the standard `~> 2.x.y`. Your apps may break. diff --git a/bootstrap-sass.gemspec b/bootstrap-sass.gemspec index 6335093f..14831315 100644 --- a/bootstrap-sass.gemspec +++ b/bootstrap-sass.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = "bootstrap-sass" - s.version = '2.2.2.0' + s.version = '2.3.0.0' s.authors = ["Thomas McDonald"] s.email = 'tom@conceptcoding.co.uk' s.summary = "Twitter's Bootstrap, converted to Sass and ready to drop into Rails or Compass" diff --git a/vendor/assets/javascripts/bootstrap-affix.js b/vendor/assets/javascripts/bootstrap-affix.js index 6020a19a..7595fdb0 100644 --- a/vendor/assets/javascripts/bootstrap-affix.js +++ b/vendor/assets/javascripts/bootstrap-affix.js @@ -1,5 +1,5 @@ /* ========================================================== - * bootstrap-affix.js v2.2.2 + * bootstrap-affix.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#affix * ========================================================== * Copyright 2012 Twitter, Inc. diff --git a/vendor/assets/javascripts/bootstrap-alert.js b/vendor/assets/javascripts/bootstrap-alert.js index 5bc02644..b5627984 100644 --- a/vendor/assets/javascripts/bootstrap-alert.js +++ b/vendor/assets/javascripts/bootstrap-alert.js @@ -1,5 +1,5 @@ /* ========================================================== - * bootstrap-alert.js v2.2.2 + * bootstrap-alert.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#alerts * ========================================================== * Copyright 2012 Twitter, Inc. diff --git a/vendor/assets/javascripts/bootstrap-button.js b/vendor/assets/javascripts/bootstrap-button.js index 39b83399..045927b6 100644 --- a/vendor/assets/javascripts/bootstrap-button.js +++ b/vendor/assets/javascripts/bootstrap-button.js @@ -1,5 +1,5 @@ /* ============================================================ - * bootstrap-button.js v2.2.2 + * bootstrap-button.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#buttons * ============================================================ * Copyright 2012 Twitter, Inc. diff --git a/vendor/assets/javascripts/bootstrap-carousel.js b/vendor/assets/javascripts/bootstrap-carousel.js index 238ff428..60455201 100644 --- a/vendor/assets/javascripts/bootstrap-carousel.js +++ b/vendor/assets/javascripts/bootstrap-carousel.js @@ -1,5 +1,5 @@ /* ========================================================== - * bootstrap-carousel.js v2.2.2 + * bootstrap-carousel.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#carousel * ========================================================== * Copyright 2012 Twitter, Inc. @@ -28,6 +28,7 @@ var Carousel = function (element, options) { this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') this.options = options this.options.pause == 'hover' && this.$element .on('mouseenter', $.proxy(this.pause, this)) @@ -38,19 +39,24 @@ cycle: function (e) { if (!e) this.paused = false + if (this.interval) clearInterval(this.interval); this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) return this } + , getActiveIndex: function () { + this.$active = this.$element.find('.item.active') + this.$items = this.$active.parent().children() + return this.$items.index(this.$active) + } + , to: function (pos) { - var $active = this.$element.find('.item.active') - , children = $active.parent().children() - , activePos = children.index($active) + var activeIndex = this.getActiveIndex() , that = this - if (pos > (children.length - 1) || pos < 0) return + if (pos > (this.$items.length - 1) || pos < 0) return if (this.sliding) { return this.$element.one('slid', function () { @@ -58,11 +64,11 @@ }) } - if (activePos == pos) { + if (activeIndex == pos) { return this.pause().cycle() } - return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) } , pause: function (e) { @@ -103,10 +109,19 @@ e = $.Event('slide', { relatedTarget: $next[0] + , direction: direction }) if ($next.hasClass('active')) return + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + this.$element.one('slid', function () { + var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) + $nextIndicator && $nextIndicator.addClass('active') + }) + } + if ($.support.transition && this.$element.hasClass('slide')) { this.$element.trigger(e) if (e.isDefaultPrevented()) return @@ -151,7 +166,7 @@ if (!data) $this.data('carousel', (data = new Carousel(this, options))) if (typeof option == 'number') data.to(option) else if (action) data[action]() - else if (options.interval) data.cycle() + else if (options.interval) data.pause().cycle() }) } @@ -174,11 +189,18 @@ /* CAROUSEL DATA-API * ================= */ - $(document).on('click.carousel.data-api', '[data-slide]', function (e) { + $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { var $this = $(this), href , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 , options = $.extend({}, $target.data(), $this.data()) + , slideIndex + $target.carousel(options) + + if (slideIndex = $this.attr('data-slide-to')) { + $target.data('carousel').pause().to(slideIndex).cycle() + } + e.preventDefault() }) diff --git a/vendor/assets/javascripts/bootstrap-collapse.js b/vendor/assets/javascripts/bootstrap-collapse.js index 6ac0191a..7bbad8e4 100644 --- a/vendor/assets/javascripts/bootstrap-collapse.js +++ b/vendor/assets/javascripts/bootstrap-collapse.js @@ -1,5 +1,5 @@ /* ============================================================= - * bootstrap-collapse.js v2.2.2 + * bootstrap-collapse.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#collapse * ============================================================= * Copyright 2012 Twitter, Inc. @@ -52,7 +52,7 @@ , actives , hasData - if (this.transitioning) return + if (this.transitioning || this.$element.hasClass('in')) return dimension = this.dimension() scroll = $.camelCase(['scroll', dimension].join('-')) @@ -72,7 +72,7 @@ , hide: function () { var dimension - if (this.transitioning) return + if (this.transitioning || !this.$element.hasClass('in')) return dimension = this.dimension() this.reset(this.$element[dimension]()) this.transition('removeClass', $.Event('hide'), 'hidden') @@ -129,7 +129,7 @@ return this.each(function () { var $this = $(this) , data = $this.data('collapse') - , options = typeof option == 'object' && option + , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) if (!data) $this.data('collapse', (data = new Collapse(this, options))) if (typeof option == 'string') data[option]() }) diff --git a/vendor/assets/javascripts/bootstrap-dropdown.js b/vendor/assets/javascripts/bootstrap-dropdown.js index 900355d5..ec86cf0d 100644 --- a/vendor/assets/javascripts/bootstrap-dropdown.js +++ b/vendor/assets/javascripts/bootstrap-dropdown.js @@ -1,5 +1,5 @@ /* ============================================================ - * bootstrap-dropdown.js v2.2.2 + * bootstrap-dropdown.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#dropdowns * ============================================================ * Copyright 2012 Twitter, Inc. @@ -81,7 +81,10 @@ isActive = $parent.hasClass('open') - if (!isActive || (isActive && e.keyCode == 27)) return $this.click() + if (!isActive || (isActive && e.keyCode == 27)) { + if (e.which == 27) $parent.find(toggle).focus() + return $this.click() + } $items = $('[role=menu] li:not(.divider):visible a', $parent) @@ -115,8 +118,9 @@ selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 } - $parent = $(selector) - $parent.length || ($parent = $this.parent()) + $parent = selector && $(selector) + + if (!$parent || !$parent.length) $parent = $this.parent() return $parent } @@ -152,10 +156,10 @@ * =================================== */ $(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) + .on('click.dropdown.data-api', clearMenus) + .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) + .on('.dropdown-menu', function (e) { e.stopPropagation() }) + .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle) + .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) -}(window.jQuery);
\ No newline at end of file +}(window.jQuery); diff --git a/vendor/assets/javascripts/bootstrap-modal.js b/vendor/assets/javascripts/bootstrap-modal.js index 689a414e..b5ffa95b 100644 --- a/vendor/assets/javascripts/bootstrap-modal.js +++ b/vendor/assets/javascripts/bootstrap-modal.js @@ -1,5 +1,5 @@ /* ========================================================= - * bootstrap-modal.js v2.2.2 + * bootstrap-modal.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#modals * ========================================================= * Copyright 2012 Twitter, Inc. @@ -60,8 +60,7 @@ that.$element.appendTo(document.body) //don't move modals dom position } - that.$element - .show() + that.$element.show() if (transition) { that.$element[0].offsetWidth // force reflow @@ -139,12 +138,13 @@ }) } - , hideModal: function (that) { - this.$element - .hide() - .trigger('hidden') - - this.backdrop() + , hideModal: function () { + var that = this + this.$element.hide() + this.backdrop(function () { + that.removeBackdrop() + that.$element.trigger('hidden') + }) } , removeBackdrop: function () { @@ -172,6 +172,8 @@ this.$backdrop.addClass('in') + if (!callback) return + doAnimate ? this.$backdrop.one($.support.transition.end, callback) : callback() @@ -180,8 +182,8 @@ this.$backdrop.removeClass('in') $.support.transition && this.$element.hasClass('fade')? - this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) : - this.removeBackdrop() + this.$backdrop.one($.support.transition.end, callback) : + callback() } else if (callback) { callback() diff --git a/vendor/assets/javascripts/bootstrap-popover.js b/vendor/assets/javascripts/bootstrap-popover.js index 1a4f532a..0e7774bf 100644 --- a/vendor/assets/javascripts/bootstrap-popover.js +++ b/vendor/assets/javascripts/bootstrap-popover.js @@ -1,5 +1,5 @@ /* =========================================================== - * bootstrap-popover.js v2.2.2 + * bootstrap-popover.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#popovers * =========================================================== * Copyright 2012 Twitter, Inc. @@ -58,8 +58,8 @@ , $e = this.$element , o = this.options - content = $e.attr('data-content') - || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) + content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) + || $e.attr('data-content') return content } @@ -99,7 +99,7 @@ placement: 'right' , trigger: 'click' , content: '' - , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>' + , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' }) @@ -111,4 +111,4 @@ return this } -}(window.jQuery);
\ No newline at end of file +}(window.jQuery); diff --git a/vendor/assets/javascripts/bootstrap-scrollspy.js b/vendor/assets/javascripts/bootstrap-scrollspy.js index 07a5c3a5..dff9a3b3 100644 --- a/vendor/assets/javascripts/bootstrap-scrollspy.js +++ b/vendor/assets/javascripts/bootstrap-scrollspy.js @@ -1,5 +1,5 @@ /* ============================================================= - * bootstrap-scrollspy.js v2.2.2 + * bootstrap-scrollspy.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#scrollspy * ============================================================= * Copyright 2012 Twitter, Inc. @@ -59,7 +59,7 @@ , $href = /^#\w/.test(href) && $(href) return ( $href && $href.length - && [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null + && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null }) .sort(function (a, b) { return a[0] - b[0] }) .each(function () { diff --git a/vendor/assets/javascripts/bootstrap-tab.js b/vendor/assets/javascripts/bootstrap-tab.js index 84d4834a..bd77eb5c 100644 --- a/vendor/assets/javascripts/bootstrap-tab.js +++ b/vendor/assets/javascripts/bootstrap-tab.js @@ -1,5 +1,5 @@ /* ======================================================== - * bootstrap-tab.js v2.2.2 + * bootstrap-tab.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#tabs * ======================================================== * Copyright 2012 Twitter, Inc. diff --git a/vendor/assets/javascripts/bootstrap-tooltip.js b/vendor/assets/javascripts/bootstrap-tooltip.js index a08952a4..98131907 100644 --- a/vendor/assets/javascripts/bootstrap-tooltip.js +++ b/vendor/assets/javascripts/bootstrap-tooltip.js @@ -1,5 +1,5 @@ /* =========================================================== - * bootstrap-tooltip.js v2.2.2 + * bootstrap-tooltip.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#tooltips * Inspired by the original jQuery.tipsy by Jason Frame * =========================================================== @@ -38,19 +38,27 @@ , init: function (type, element, options) { var eventIn , eventOut + , triggers + , trigger + , i this.type = type this.$element = $(element) this.options = this.getOptions(options) this.enabled = true - if (this.options.trigger == 'click') { - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) - } else if (this.options.trigger != 'manual') { - eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus' - eventOut = this.options.trigger == 'hover' ? '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)) + triggers = this.options.trigger.split(' ') + + for (i = triggers.length; i--;) { + trigger = triggers[i] + if (trigger == 'click') { + this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) + } else if (trigger != 'manual') { + eventIn = trigger == 'hover' ? 'mouseenter' : 'focus' + eventOut = trigger == 'hover' ? '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 ? @@ -59,7 +67,7 @@ } , getOptions: function (options) { - options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data()) + options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options) if (options.delay && typeof options.delay == 'number') { options.delay = { @@ -97,14 +105,16 @@ , show: function () { var $tip - , inside , pos , actualWidth , actualHeight , placement , tp + , e = $.Event('show') if (this.hasContent() && this.enabled) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return $tip = this.tip() this.setContent() @@ -116,19 +126,18 @@ 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) + this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) + + pos = this.getPosition() actualWidth = $tip[0].offsetWidth actualHeight = $tip[0].offsetHeight - switch (inside ? placement.split(' ')[1] : placement) { + switch (placement) { case 'bottom': tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2} break @@ -143,11 +152,56 @@ break } - $tip - .offset(tp) - .addClass(placement) - .addClass('in') + this.applyPlacement(tp, placement) + this.$element.trigger('shown') + } + } + + , applyPlacement: function(offset, placement){ + var $tip = this.tip() + , width = $tip[0].offsetWidth + , height = $tip[0].offsetHeight + , actualWidth + , actualHeight + , delta + , replace + + $tip + .offset(offset) + .addClass(placement) + .addClass('in') + + actualWidth = $tip[0].offsetWidth + actualHeight = $tip[0].offsetHeight + + if (placement == 'top' && actualHeight != height) { + offset.top = offset.top + height - actualHeight + replace = true } + + if (placement == 'bottom' || placement == 'top') { + delta = 0 + + if (offset.left < 0){ + delta = offset.left * -2 + offset.left = 0 + $tip.offset(offset) + actualWidth = $tip[0].offsetWidth + actualHeight = $tip[0].offsetHeight + } + + this.replaceArrow(delta - width + actualWidth, actualWidth, 'left') + } else { + this.replaceArrow(actualHeight - height, actualHeight, 'top') + } + + if (replace) $tip.offset(offset) + } + + , replaceArrow: function(delta, dimension, position){ + this + .arrow() + .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '') } , setContent: function () { @@ -161,6 +215,10 @@ , hide: function () { var that = this , $tip = this.tip() + , e = $.Event('hide') + + this.$element.trigger(e) + if (e.isDefaultPrevented()) return $tip.removeClass('in') @@ -179,13 +237,15 @@ removeWithAnimation() : $tip.detach() + this.$element.trigger('hidden') + return this } , fixTitle: function () { var $e = this.$element if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') { - $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title') + $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') } } @@ -193,11 +253,12 @@ 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 - }) + , getPosition: function () { + var el = this.$element[0] + return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : { + width: el.offsetWidth + , height: el.offsetHeight + }, this.$element.offset()) } , getTitle: function () { @@ -215,6 +276,10 @@ return this.$tip = this.$tip || $(this.options.template) } + , arrow: function(){ + return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") + } + , validate: function () { if (!this.$element[0].parentNode) { this.hide() @@ -236,8 +301,8 @@ } , toggle: function (e) { - var self = $(e.currentTarget)[this.type](this._options).data(this.type) - self[self.tip().hasClass('in') ? 'hide' : 'show']() + var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this + self.tip().hasClass('in') ? self.hide() : self.show() } , destroy: function () { @@ -269,10 +334,11 @@ , placement: 'top' , selector: false , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' - , trigger: 'hover' + , trigger: 'hover focus' , title: '' , delay: 0 , html: false + , container: false } @@ -284,4 +350,4 @@ return this } -}(window.jQuery);
\ No newline at end of file +}(window.jQuery); diff --git a/vendor/assets/javascripts/bootstrap-transition.js b/vendor/assets/javascripts/bootstrap-transition.js index b0f12c26..64f27577 100644 --- a/vendor/assets/javascripts/bootstrap-transition.js +++ b/vendor/assets/javascripts/bootstrap-transition.js @@ -1,5 +1,5 @@ /* =================================================== - * bootstrap-transition.js v2.2.2 + * bootstrap-transition.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#transitions * =================================================== * Copyright 2012 Twitter, Inc. diff --git a/vendor/assets/javascripts/bootstrap-typeahead.js b/vendor/assets/javascripts/bootstrap-typeahead.js index 088e7ce9..960f2af8 100644 --- a/vendor/assets/javascripts/bootstrap-typeahead.js +++ b/vendor/assets/javascripts/bootstrap-typeahead.js @@ -1,5 +1,5 @@ /* ============================================================= - * bootstrap-typeahead.js v2.2.2 + * bootstrap-typeahead.js v2.3.0 * http://twitter.github.com/bootstrap/javascript.html#typeahead * ============================================================= * Copyright 2012 Twitter, Inc. @@ -172,6 +172,7 @@ , listen: function () { this.$element + .on('focus', $.proxy(this.focus, this)) .on('blur', $.proxy(this.blur, this)) .on('keypress', $.proxy(this.keypress, this)) .on('keyup', $.proxy(this.keyup, this)) @@ -183,6 +184,7 @@ this.$menu .on('click', $.proxy(this.click, this)) .on('mouseenter', 'li', $.proxy(this.mouseenter, this)) + .on('mouseleave', 'li', $.proxy(this.mouseleave, this)) } , eventSupported: function(eventName) { @@ -256,22 +258,33 @@ e.preventDefault() } + , focus: function (e) { + this.focused = true + } + , blur: function (e) { - var that = this - setTimeout(function () { that.hide() }, 150) + this.focused = false + if (!this.mousedover && this.shown) this.hide() } , click: function (e) { e.stopPropagation() e.preventDefault() this.select() + this.$element.focus() } , mouseenter: function (e) { + this.mousedover = true this.$menu.find('.active').removeClass('active') $(e.currentTarget).addClass('active') } + , mouseleave: function (e) { + this.mousedover = false + if (!this.focused && this.shown) this.hide() + } + } @@ -316,7 +329,6 @@ $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) { var $this = $(this) if ($this.data('typeahead')) return - e.preventDefault() $this.typeahead($this.data()) }) diff --git a/vendor/assets/stylesheets/bootstrap/_button-groups.scss b/vendor/assets/stylesheets/bootstrap/_button-groups.scss index 22aa0245..1b08d50f 100644 --- a/vendor/assets/stylesheets/bootstrap/_button-groups.scss +++ b/vendor/assets/stylesheets/bootstrap/_button-groups.scss @@ -164,8 +164,6 @@ margin-left: 0; } // Carets in other button sizes -.btn-mini .caret, -.btn-small .caret, .btn-large .caret { margin-top: 6px; } @@ -174,6 +172,10 @@ border-right-width: 5px; border-top-width: 5px; } +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} // Upside down carets for .dropup .dropup .btn-large .caret { border-bottom-width: 5px; diff --git a/vendor/assets/stylesheets/bootstrap/_buttons.scss b/vendor/assets/stylesheets/bootstrap/_buttons.scss index 90a86e27..a92268b5 100644 --- a/vendor/assets/stylesheets/bootstrap/_buttons.scss +++ b/vendor/assets/stylesheets/bootstrap/_buttons.scss @@ -25,13 +25,14 @@ @include ie7-restore-left-whitespace(); // Give IE7 some love @include box-shadow(inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)); - // Hover state - &:hover { + // Hover/focus state + &:hover, + &:focus { color: $grayDark; text-decoration: none; background-position: 0 -15px; - // transition is only when going to hover, otherwise the background + // transition is only when going to hover/focus, otherwise the background // behind the gradient (there for IE<=9 fallback) gets mismatched @include transition(background-position .1s linear); } @@ -141,11 +142,6 @@ input[type="button"] { // Set the backgrounds // ------------------------- -.btn { - // reset here as of 2.0.3 due to Recess property order - border-color: #c5c5c5; - border-color: rgba(0,0,0,.15) rgba(0,0,0,.15) rgba(0,0,0,.25); -} .btn-primary { @include buttonBackground($btnPrimaryBackground, $btnPrimaryBackgroundHighlight); } @@ -219,12 +215,14 @@ input[type="submit"].btn { color: $linkColor; @include border-radius(0); } -.btn-link:hover { +.btn-link:hover, +.btn-link:focus { color: $linkColorHover; text-decoration: underline; background-color: transparent; } -.btn-link[disabled]:hover { +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { color: $grayDark; text-decoration: none; } diff --git a/vendor/assets/stylesheets/bootstrap/_carousel.scss b/vendor/assets/stylesheets/bootstrap/_carousel.scss index f1fd64e7..22eaddb9 100644 --- a/vendor/assets/stylesheets/bootstrap/_carousel.scss +++ b/vendor/assets/stylesheets/bootstrap/_carousel.scss @@ -21,12 +21,13 @@ display: none; position: relative; @include transition(.6s ease-in-out left); - } // Account for jankitude on images - > .item > img { - display: block; - line-height: 1; + > img, + > a > img { + display: block; + line-height: 1; + } } > .active, @@ -97,14 +98,40 @@ right: 15px; } - // Hover state - &:hover { + // Hover/focus state + &:hover, + &:focus { color: $white; text-decoration: none; @include opacity(90); } } +// Carousel indicator pips +// ----------------------------- +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; + + li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255,255,255,.25); + border-radius: 5px; + } + .active { + background-color: #fff; + } +} // Caption for text below images // ----------------------------- diff --git a/vendor/assets/stylesheets/bootstrap/_close.scss b/vendor/assets/stylesheets/bootstrap/_close.scss index f5e7d1c8..ee14a6ba 100644 --- a/vendor/assets/stylesheets/bootstrap/_close.scss +++ b/vendor/assets/stylesheets/bootstrap/_close.scss @@ -11,7 +11,8 @@ color: $black; text-shadow: 0 1px 0 rgba(255,255,255,1); @include opacity(20); - &:hover { + &:hover, + &:focus { color: $black; text-decoration: none; cursor: pointer; diff --git a/vendor/assets/stylesheets/bootstrap/_dropdowns.scss b/vendor/assets/stylesheets/bootstrap/_dropdowns.scss index 975fa869..dbe1cb70 100644 --- a/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +++ b/vendor/assets/stylesheets/bootstrap/_dropdowns.scss @@ -72,7 +72,7 @@ } // Links within the dropdown menu - li > a { + > li > a { display: block; padding: 3px 20px; clear: both; @@ -83,11 +83,12 @@ } } -// Hover state +// Hover/Focus state // ----------- -.dropdown-menu li > a:hover, -.dropdown-menu li > a:focus, -.dropdown-submenu:hover > a { +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { text-decoration: none; color: $dropdownLinkColorHover; @include gradient-vertical($dropdownLinkBackgroundHover, darken($dropdownLinkBackgroundHover, 5%)); @@ -95,8 +96,9 @@ // Active state // ------------ -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { color: $dropdownLinkColorActive; text-decoration: none; outline: 0; @@ -105,13 +107,15 @@ // Disabled state // -------------- -// Gray out text and ensure the hover state remains gray -.dropdown-menu .disabled > a, -.dropdown-menu .disabled > a:hover { +// Gray out text and ensure the hover/focus state remains gray +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { color: $grayLight; } -// Nuke hover effects -.dropdown-menu .disabled > a:hover { +// Nuke hover/focus effects +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { text-decoration: none; background-color: transparent; background-image: none; // Remove CSS gradient diff --git a/vendor/assets/stylesheets/bootstrap/_forms.scss b/vendor/assets/stylesheets/bootstrap/_forms.scss index b371c522..6b05636c 100644 --- a/vendor/assets/stylesheets/bootstrap/_forms.scss +++ b/vendor/assets/stylesheets/bootstrap/_forms.scss @@ -421,7 +421,9 @@ select:focus:invalid { // Allow us to put symbols and text within the input field for a cleaner look .input-append, .input-prepend { - margin-bottom: 5px; + display: inline-block; + margin-bottom: $baseLineHeight / 2; + vertical-align: middle; font-size: 0; // white space collapse hack white-space: nowrap; // Prevent span and input from separating @@ -429,7 +431,8 @@ select:focus:invalid { input, select, .uneditable-input, - .dropdown-menu { + .dropdown-menu, + .popover { font-size: $baseFontSize; } diff --git a/vendor/assets/stylesheets/bootstrap/_labels-badges.scss b/vendor/assets/stylesheets/bootstrap/_labels-badges.scss index e459be73..8f17e58a 100644 --- a/vendor/assets/stylesheets/bootstrap/_labels-badges.scss +++ b/vendor/assets/stylesheets/bootstrap/_labels-badges.scss @@ -35,10 +35,12 @@ } } -// Hover state, but only for links +// Hover/focus state, but only for links a { &.label:hover, - &.badge:hover { + &.label:focus, + &.badge:hover, + &.badge:focus { color: $white; text-decoration: none; cursor: pointer; diff --git a/vendor/assets/stylesheets/bootstrap/_media.scss b/vendor/assets/stylesheets/bootstrap/_media.scss index 1decab71..e461e446 100644 --- a/vendor/assets/stylesheets/bootstrap/_media.scss +++ b/vendor/assets/stylesheets/bootstrap/_media.scss @@ -37,10 +37,10 @@ // Media image alignment // ------------------------- -.media .pull-left { +.media > .pull-left { margin-right: 10px; } -.media .pull-right { +.media > .pull-right { margin-left: 10px; } diff --git a/vendor/assets/stylesheets/bootstrap/_mixins.scss b/vendor/assets/stylesheets/bootstrap/_mixins.scss index 998c1cb9..a3ccb1d1 100644 --- a/vendor/assets/stylesheets/bootstrap/_mixins.scss +++ b/vendor/assets/stylesheets/bootstrap/_mixins.scss @@ -263,6 +263,12 @@ -o-transition-delay: $transition-delay; transition-delay: $transition-delay; } +@mixin transition-duration($transition-duration) { + -webkit-transition-duration: $transition-duration; + -moz-transition-duration: $transition-duration; + -o-transition-duration: $transition-duration; + transition-duration: $transition-duration; +} // Transformations @mixin rotate($degrees) { diff --git a/vendor/assets/stylesheets/bootstrap/_modals.scss b/vendor/assets/stylesheets/bootstrap/_modals.scss index bb1e24eb..749baa6a 100644 --- a/vendor/assets/stylesheets/bootstrap/_modals.scss +++ b/vendor/assets/stylesheets/bootstrap/_modals.scss @@ -23,11 +23,11 @@ // Base modal .modal { position: fixed; - top: 50%; + top: 10%; left: 50%; z-index: $zindexModal; width: 560px; - margin: -250px 0 0 -280px; + margin-left: -280px; background-color: $white; border: 1px solid #999; border: 1px solid rgba(0,0,0,.3); @@ -42,7 +42,7 @@ @include transition(opacity .3s linear, top .3s ease-out); top: -25%; } - &.fade.in { top: 50%; } + &.fade.in { top: 10%; } } .modal-header { padding: 9px 15px; diff --git a/vendor/assets/stylesheets/bootstrap/_navbar.scss b/vendor/assets/stylesheets/bootstrap/_navbar.scss index 22086428..a65aa4ab 100644 --- a/vendor/assets/stylesheets/bootstrap/_navbar.scss +++ b/vendor/assets/stylesheets/bootstrap/_navbar.scss @@ -56,7 +56,8 @@ font-weight: 200; color: $navbarBrandColor; text-shadow: 0 1px 0 $navbarBackgroundHighlight; - &:hover { + &:hover, + &:focus { text-decoration: none; } } @@ -73,7 +74,8 @@ // ------------------------- .navbar-link { color: $navbarLinkColor; - &:hover { + &:hover, + &:focus { color: $navbarLinkColorHover; } } @@ -95,7 +97,9 @@ } .navbar .btn-group .btn, .navbar .input-prepend .btn, -.navbar .input-append .btn { +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { margin-top: 0; // then undo the margin here so we don't accidentally double it } @@ -245,13 +249,12 @@ } .navbar .nav .dropdown-toggle .caret { margin-top: 8px; - } -// Hover +// Hover/focus .navbar .nav > li > a:focus, .navbar .nav > li > a:hover { - background-color: $navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active + background-color: $navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover/:focus from .active color: $navbarLinkColorHover; text-decoration: none; } @@ -335,8 +338,9 @@ } } -// Caret should match text color on hover -.navbar .nav li.dropdown > a:hover .caret { +// Caret should match text color on hover/focus +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { border-top-color: $navbarLinkColorActive; border-bottom-color: $navbarLinkColorActive; } @@ -396,7 +400,8 @@ .nav > li > a { color: $navbarInverseLinkColor; text-shadow: 0 -1px 0 rgba(0,0,0,.25); - &:hover { + &:hover, + &:focus { color: $navbarInverseLinkColorHover; } } @@ -425,7 +430,8 @@ // Inline text links .navbar-link { color: $navbarInverseLinkColor; - &:hover { + &:hover, + &:focus { color: $navbarInverseLinkColorHover; } } @@ -443,7 +449,8 @@ background-color: $navbarInverseLinkBackgroundActive; color: $navbarInverseLinkColorActive; } - .nav li.dropdown > a:hover .caret { + .nav li.dropdown > a:hover .caret, + .nav li.dropdown > a:focus .caret { border-top-color: $navbarInverseLinkColorActive; color: $navbarInverseLinkColorActive; } diff --git a/vendor/assets/stylesheets/bootstrap/_navs.scss b/vendor/assets/stylesheets/bootstrap/_navs.scss index 3ea1504a..31c4451d 100644 --- a/vendor/assets/stylesheets/bootstrap/_navs.scss +++ b/vendor/assets/stylesheets/bootstrap/_navs.scss @@ -16,7 +16,8 @@ .nav > li > a { display: block; } -.nav > li > a:hover { +.nav > li > a:hover, +.nav > li > a:focus { text-decoration: none; background-color: $grayLighter; } @@ -68,7 +69,8 @@ padding: 3px 15px; } .nav-list > .active > a, -.nav-list > .active > a:hover { +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { color: $white; text-shadow: 0 -1px 0 rgba(0,0,0,.2); background-color: $linkColor; @@ -122,13 +124,15 @@ line-height: $baseLineHeight; border: 1px solid transparent; @include border-radius(4px 4px 0 0); - &:hover { + &:hover, + &:focus { border-color: $grayLighter $grayLighter #ddd; } } -// Active state, and it's :hover to override normal :hover +// Active state, and it's :hover/:focus to override normal :hover/:focus .nav-tabs > .active > a, -.nav-tabs > .active > a:hover { +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { color: $gray; background-color: $bodyBackground; border: 1px solid #ddd; @@ -151,7 +155,8 @@ // Active state .nav-pills > .active > a, -.nav-pills > .active > a:hover { +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { color: $white; background-color: $linkColor; } @@ -183,7 +188,8 @@ .nav-tabs.nav-stacked > li:last-child > a { @include border-bottom-radius(4px); } -.nav-tabs.nav-stacked > li > a:hover { +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { border-color: #ddd; z-index: 2; } @@ -216,7 +222,8 @@ border-bottom-color: $linkColor; margin-top: 6px; } -.nav .dropdown-toggle:hover .caret { +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { border-top-color: $linkColorHover; border-bottom-color: $linkColorHover; } @@ -236,9 +243,10 @@ border-bottom-color: $gray; } -// Active:hover dropdown links +// Active:hover/:focus dropdown links // ------------------------- -.nav > .dropdown.active > a:hover { +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { cursor: pointer; } @@ -246,21 +254,24 @@ // ------------------------- .nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, -.nav > li.dropdown.open.active > a:hover { +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { color: $white; background-color: $grayLight; border-color: $grayLight; } .nav li.dropdown.open .caret, .nav li.dropdown.open.active .caret, -.nav li.dropdown.open a:hover .caret { +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { border-top-color: $white; border-bottom-color: $white; @include opacity(100); } // Dropdowns in stacked tabs -.tabs-stacked .open > a:hover { +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { border-color: $grayLight; } @@ -311,13 +322,15 @@ } .tabs-below > .nav-tabs > li > a { @include border-radius(0 0 4px 4px); - &:hover { + &:hover, + &:focus { border-bottom-color: transparent; border-top-color: #ddd; } } .tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover { +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { border-color: transparent #ddd #ddd #ddd; } @@ -346,11 +359,13 @@ margin-right: -1px; @include border-radius(4px 0 0 4px); } -.tabs-left > .nav-tabs > li > a:hover { +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { border-color: $grayLighter #ddd $grayLighter $grayLighter; } .tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover { +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { border-color: #ddd transparent #ddd #ddd; *border-right-color: $white; } @@ -365,11 +380,13 @@ margin-left: -1px; @include border-radius(0 4px 4px 0); } -.tabs-right > .nav-tabs > li > a:hover { +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { border-color: $grayLighter $grayLighter $grayLighter #ddd; } .tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover { +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { border-color: #ddd #ddd #ddd transparent; *border-left-color: $white; } @@ -383,8 +400,9 @@ .nav > .disabled > a { color: $grayLight; } -// Nuke hover effects -.nav > .disabled > a:hover { +// Nuke hover/focus effects +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { text-decoration: none; background-color: transparent; cursor: default; diff --git a/vendor/assets/stylesheets/bootstrap/_pager.scss b/vendor/assets/stylesheets/bootstrap/_pager.scss index 7df3e080..46df08f7 100644 --- a/vendor/assets/stylesheets/bootstrap/_pager.scss +++ b/vendor/assets/stylesheets/bootstrap/_pager.scss @@ -20,7 +20,8 @@ border: 1px solid #ddd; @include border-radius(15px); } -.pager li > a:hover { +.pager li > a:hover, +.pager li > a:focus { text-decoration: none; background-color: #f5f5f5; } @@ -34,6 +35,7 @@ } .pager .disabled > a, .pager .disabled > a:hover, +.pager .disabled > a:focus, .pager .disabled > span { color: $grayLight; background-color: #fff; diff --git a/vendor/assets/stylesheets/bootstrap/_pagination.scss b/vendor/assets/stylesheets/bootstrap/_pagination.scss index 36777565..8ab33baf 100644 --- a/vendor/assets/stylesheets/bootstrap/_pagination.scss +++ b/vendor/assets/stylesheets/bootstrap/_pagination.scss @@ -32,6 +32,7 @@ border-left-width: 0; } .pagination ul > li > a:hover, +.pagination ul > li > a:focus, .pagination ul > .active > a, .pagination ul > .active > span { background-color: $paginationActiveBackground; @@ -43,7 +44,8 @@ } .pagination ul > .disabled > span, .pagination ul > .disabled > a, -.pagination ul > .disabled > a:hover { +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { color: $grayLight; background-color: transparent; cursor: default; diff --git a/vendor/assets/stylesheets/bootstrap/_popovers.scss b/vendor/assets/stylesheets/bootstrap/_popovers.scss index 635fcdd2..18a1ca0c 100644 --- a/vendor/assets/stylesheets/bootstrap/_popovers.scss +++ b/vendor/assets/stylesheets/bootstrap/_popovers.scss @@ -9,7 +9,7 @@ left: 0; z-index: $zindexPopover; display: none; - width: 236px; + max-width: 276px; padding: 1px; text-align: left; // Reset given new insertion method background-color: $popoverBackground; @@ -40,6 +40,10 @@ background-color: $popoverTitleBackground; border-bottom: 1px solid darken($popoverTitleBackground, 5%); @include border-radius(5px 5px 0 0); + + &:empty { + display: none; + } } .popover-content { diff --git a/vendor/assets/stylesheets/bootstrap/_responsive-navbar.scss b/vendor/assets/stylesheets/bootstrap/_responsive-navbar.scss index ef5d50e6..9898a16e 100644 --- a/vendor/assets/stylesheets/bootstrap/_responsive-navbar.scss +++ b/vendor/assets/stylesheets/bootstrap/_responsive-navbar.scss @@ -81,7 +81,9 @@ margin-bottom: 2px; } .nav-collapse .nav > li > a:hover, - .nav-collapse .dropdown-menu a:hover { + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { background-color: $navbarBackground; } .navbar-inverse .nav-collapse .nav > li > a, @@ -89,7 +91,9 @@ color: $navbarInverseLinkColor; } .navbar-inverse .nav-collapse .nav > li > a:hover, - .navbar-inverse .nav-collapse .dropdown-menu a:hover { + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { background-color: $navbarInverseBackground; } // Buttons in the navbar diff --git a/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss b/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss index f77e6d9f..689b2650 100644 --- a/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss +++ b/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss @@ -3,19 +3,11 @@ // -------------------------------------------------- -// Clearing floats -.clearfix { - @include clearfix(); -} - -// Accessible yet invisible text -.hide-text { - @include hide-text(); -} - -// Uses box-sizing mixin, so must be defined here -.input-block-level { - @include input-block-level(); +// IE10 Metro responsive +// Required for Windows 8 Metro split-screen snapping with IE10 +// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ +@-ms-viewport{ + width: device-width; } // Hide from screenreaders and browsers @@ -56,3 +48,27 @@ // Hide .hidden-phone { display: none !important; } } + +// Print utilities +.visible-print { display: none !important; } +.hidden-print { } + +@media print { + .visible-print { display: inherit !important; } + .hidden-print { display: none !important; } +} + +// Clearing floats +.clearfix { + @include clearfix(); +} + +// Accessible yet invisible text +.hide-text { + @include hide-text(); +} + +// Uses box-sizing mixin, so must be defined here +.input-block-level { + @include input-block-level(); +} diff --git a/vendor/assets/stylesheets/bootstrap/_scaffolding.scss b/vendor/assets/stylesheets/bootstrap/_scaffolding.scss index cb6682a8..23d4a00f 100644 --- a/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +++ b/vendor/assets/stylesheets/bootstrap/_scaffolding.scss @@ -23,7 +23,8 @@ a { color: $linkColor; text-decoration: none; } -a:hover { +a:hover, +a:focus { color: $linkColorHover; text-decoration: underline; } diff --git a/vendor/assets/stylesheets/bootstrap/_sprites.scss b/vendor/assets/stylesheets/bootstrap/_sprites.scss index 99a8b8b0..a64472dc 100644 --- a/vendor/assets/stylesheets/bootstrap/_sprites.scss +++ b/vendor/assets/stylesheets/bootstrap/_sprites.scss @@ -28,7 +28,7 @@ margin-top: 1px; } -/* White icons with optional class, or on hover/active states of certain elements */ +/* White icons with optional class, or on hover/focus/active states of certain elements */ .icon-white, .nav-pills > .active > a > [class^="icon-"], .nav-pills > .active > a > [class*=" icon-"], @@ -37,11 +37,15 @@ .navbar-inverse .nav > .active > a > [class^="icon-"], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], .dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^="icon-"], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^="icon-"], -.dropdown-submenu:hover > a > [class*=" icon-"] { +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { background-image: url($iconWhiteSpritePath); } @@ -166,7 +170,7 @@ .icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off .icon-retweet { background-position: -336px -120px; } .icon-shopping-cart { background-position: -360px -120px; } -.icon-folder-close { background-position: -384px -120px; } +.icon-folder-close { background-position: -384px -120px; width: 16px; } .icon-folder-open { background-position: -408px -120px; width: 16px; } .icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off .icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off diff --git a/vendor/assets/stylesheets/bootstrap/_tables.scss b/vendor/assets/stylesheets/bootstrap/_tables.scss index 21ad7926..3db661e9 100644 --- a/vendor/assets/stylesheets/bootstrap/_tables.scss +++ b/vendor/assets/stylesheets/bootstrap/_tables.scss @@ -93,24 +93,32 @@ table { tbody:first-child tr:first-child td { border-top: 0; } - // For first th or td in the first row in the first thead or tbody + // For first th/td in the first row in the first thead or tbody thead:first-child tr:first-child > th:first-child, - tbody:first-child tr:first-child > td:first-child { + tbody:first-child tr:first-child > td:first-child, + tbody:first-child tr:first-child > th:first-child { @include border-top-left-radius($baseBorderRadius); } + // For last th/td in the first row in the first thead or tbody thead:first-child tr:first-child > th:last-child, - tbody:first-child tr:first-child > td:last-child { + tbody:first-child tr:first-child > td:last-child, + tbody:first-child tr:first-child > th:last-child { @include border-top-right-radius($baseBorderRadius); } - // For first th or td in the last row in the last thead or tbody + // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot thead:last-child tr:last-child > th:first-child, tbody:last-child tr:last-child > td:first-child, - tfoot:last-child tr:last-child > td:first-child { + tbody:last-child tr:last-child > th:first-child, + tfoot:last-child tr:last-child > td:first-child, + tfoot:last-child tr:last-child > th:first-child { @include border-bottom-left-radius($baseBorderRadius); } + // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot thead:last-child tr:last-child > th:last-child, tbody:last-child tr:last-child > td:last-child, - tfoot:last-child tr:last-child > td:last-child { + tbody:last-child tr:last-child > th:last-child, + tfoot:last-child tr:last-child > td:last-child, + tfoot:last-child tr:last-child > th:last-child { @include border-bottom-right-radius($baseBorderRadius); } @@ -122,7 +130,6 @@ table { @include border-bottom-right-radius(0); } - // Special fixes to round the left border on the first td/th caption + thead tr:first-child th:first-child, caption + tbody tr:first-child td:first-child, @@ -161,8 +168,8 @@ table { // Placed here since it has to come after the potential zebra striping .table-hover { tbody { - tr:hover td, - tr:hover th { + tr:hover > td, + tr:hover > th { background-color: $tableBackgroundHover; } } @@ -197,32 +204,32 @@ table th[class*="span"], // Exact selectors below required to override .table-striped .table tbody tr { - &.success td { + &.success > td { background-color: $successBackground; } - &.error td { + &.error > td { background-color: $errorBackground; } - &.warning td { + &.warning > td { background-color: $warningBackground; } - &.info td { + &.info > td { background-color: $infoBackground; } } // Hover states for .table-hover .table-hover tbody tr { - &.success:hover td { + &.success:hover > td { background-color: darken($successBackground, 5%); } - &.error:hover td { + &.error:hover > td { background-color: darken($errorBackground, 5%); } - &.warning:hover td { + &.warning:hover > td { background-color: darken($warningBackground, 5%); } - &.info:hover td { + &.info:hover > td { background-color: darken($infoBackground, 5%); } } diff --git a/vendor/assets/stylesheets/bootstrap/_thumbnails.scss b/vendor/assets/stylesheets/bootstrap/_thumbnails.scss index 29b6e410..6333d533 100644 --- a/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +++ b/vendor/assets/stylesheets/bootstrap/_thumbnails.scss @@ -33,8 +33,9 @@ @include box-shadow(0 1px 3px rgba(0,0,0,.055)); @include transition(all .2s ease-in-out); } -// Add a hover state for linked versions only -a.thumbnail:hover { +// Add a hover/focus state for linked versions only +a.thumbnail:hover, +a.thumbnail:focus { border-color: $linkColor; @include box-shadow(0 1px 4px rgba(0,105,214,.25)); } diff --git a/vendor/assets/stylesheets/bootstrap/_tooltip.scss b/vendor/assets/stylesheets/bootstrap/_tooltip.scss index 5a9a935b..af2d64cb 100644 --- a/vendor/assets/stylesheets/bootstrap/_tooltip.scss +++ b/vendor/assets/stylesheets/bootstrap/_tooltip.scss @@ -9,20 +9,20 @@ z-index: $zindexTooltip; display: block; visibility: visible; - padding: 5px; font-size: 11px; + line-height: 1.4; @include opacity(0); &.in { @include opacity(80); } - &.top { margin-top: -3px; } - &.right { margin-left: 3px; } - &.bottom { margin-top: 3px; } - &.left { margin-left: -3px; } + &.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; } } // Wrapper for the tooltip content .tooltip-inner { max-width: 200px; - padding: 3px 8px; + padding: 8px; color: $tooltipColor; text-align: center; text-decoration: none; diff --git a/vendor/assets/stylesheets/bootstrap/_type.scss b/vendor/assets/stylesheets/bootstrap/_type.scss index f659f417..f68e7ba2 100644 --- a/vendor/assets/stylesheets/bootstrap/_type.scss +++ b/vendor/assets/stylesheets/bootstrap/_type.scss @@ -11,7 +11,7 @@ p { } .lead { margin-bottom: $baseLineHeight; - font-size: $baseFontSize * 1.5;; + font-size: $baseFontSize * 1.5; font-weight: 200; line-height: $baseLineHeight * 1.5; } @@ -29,19 +29,28 @@ cite { font-style: normal; } // Utility classes .muted { color: $grayLight; } -a.muted:hover { color: darken($grayLight, 10%); } +a.muted:hover, +a.muted:focus { color: darken($grayLight, 10%); } .text-warning { color: $warningText; } -a.text-warning:hover { color: darken($warningText, 10%); } +a.text-warning:hover, +a.text-warning:focus { color: darken($warningText, 10%); } .text-error { color: $errorText; } -a.text-error:hover { color: darken($errorText, 10%); } +a.text-error:hover, +a.text-error:focus { color: darken($errorText, 10%); } .text-info { color: $infoText; } -a.text-info:hover { color: darken($infoText, 10%); } +a.text-info:hover, +a.text-info:focus { color: darken($infoText, 10%); } .text-success { color: $successText; } -a.text-success:hover { color: darken($successText, 10%); } +a.text-success:hover, +a.text-success:focus { color: darken($successText, 10%); } + +.text-left { text-align: left; } +.text-right { text-align: right; } +.text-center { text-align: center; } // Headings @@ -119,8 +128,9 @@ ul.inline, ol.inline { margin-left: 0; list-style: none; - & > li { + > li { display: inline-block; + @include ie7-inline-block(); padding-left: 5px; padding-right: 5px; } @@ -185,7 +195,9 @@ blockquote { border-left: 5px solid $grayLighter; p { margin-bottom: 0; - @include font-shorthand(16px,300,$baseLineHeight * 1.25); + font-size: $baseFontSize * 1.25; + font-weight: 300; + line-height: 1.25; } small { display: block; diff --git a/vendor/assets/stylesheets/bootstrap/_variables.scss b/vendor/assets/stylesheets/bootstrap/_variables.scss index 32b97619..eebdc56f 100644 --- a/vendor/assets/stylesheets/bootstrap/_variables.scss +++ b/vendor/assets/stylesheets/bootstrap/_variables.scss @@ -86,7 +86,7 @@ $tableBorder: #ddd !default; // table and cell border // ------------------------- $btnBackground: $white !default; $btnBackgroundHighlight: darken($white, 10%) !default; -$btnBorder: #bbb !default; +$btnBorder: #ccc !default; $btnPrimaryBackground: $linkColor !default; $btnPrimaryBackgroundHighlight: adjust-hue($btnPrimaryBackground, 20%) !default; diff --git a/vendor/assets/stylesheets/bootstrap/bootstrap.scss b/vendor/assets/stylesheets/bootstrap/bootstrap.scss index 62efb1e2..c0f66d71 100644 --- a/vendor/assets/stylesheets/bootstrap/bootstrap.scss +++ b/vendor/assets/stylesheets/bootstrap/bootstrap.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap v2.2.2 + * Bootstrap v2.3.0 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 diff --git a/vendor/assets/stylesheets/bootstrap/responsive.scss b/vendor/assets/stylesheets/bootstrap/responsive.scss index 9b9bca4b..ae45910d 100644 --- a/vendor/assets/stylesheets/bootstrap/responsive.scss +++ b/vendor/assets/stylesheets/bootstrap/responsive.scss @@ -1,5 +1,5 @@ /*! - * Bootstrap Responsive v2.2.2 + * Bootstrap Responsive v2.3.0 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 @@ -14,15 +14,6 @@ // ------------------------------------------------------------- -// IE10 Metro responsive -// Required for Windows 8 Metro split-screen snapping with IE10 -// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ - -@-ms-viewport{ - width: device-width; -} - - // REPEAT VARIABLES & MIXINS // ------------------------- // Required since we compile the responsive stuff separately |