diff --git a/Appraisals b/Appraisals index 50fe710..8e0b11c 100644 --- a/Appraisals +++ b/Appraisals @@ -1,5 +1,5 @@ appraise 'rails-3.2' do - gem 'rails', '3.2.21' + gem 'rails', '3.2.22' gem 'minitest', '~> 4.7' end @@ -8,9 +8,9 @@ appraise 'rails-4.0' do end appraise 'rails-4.1' do - gem 'rails', '4.1.10' + gem 'rails', '4.1.11' end appraise 'rails-4.2' do - gem 'rails', '4.2.1' + gem 'rails', '4.2.2' end diff --git a/CHANGELOG.md b/CHANGELOG.md index b525ca3..4dc490c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2.20.0 + +* bootstrap 3.3.5 +* Test against Rails 3.22, 4.1.11 and 4.2.2 + ## 2.19.0 * bootstrap 3.3.4 diff --git a/gemfiles/rails_3.2.gemfile b/gemfiles/rails_3.2.gemfile index 6aa0b43..6a22adc 100644 --- a/gemfiles/rails_3.2.gemfile +++ b/gemfiles/rails_3.2.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "rails", "3.2.21" +gem "rails", "3.2.22" gem "minitest", "~> 4.7" gemspec :path => "../" diff --git a/gemfiles/rails_4.1.gemfile b/gemfiles/rails_4.1.gemfile index 9537116..d71f298 100644 --- a/gemfiles/rails_4.1.gemfile +++ b/gemfiles/rails_4.1.gemfile @@ -2,6 +2,6 @@ source "https://rubygems.org" -gem "rails", "4.1.10" +gem "rails", "4.1.11" gemspec :path => "../" diff --git a/gemfiles/rails_4.2.gemfile b/gemfiles/rails_4.2.gemfile index 2ce2652..abc566f 100644 --- a/gemfiles/rails_4.2.gemfile +++ b/gemfiles/rails_4.2.gemfile @@ -2,6 +2,6 @@ source "https://rubygems.org" -gem "rails", "4.2.1" +gem "rails", "4.2.2" gemspec :path => "../" diff --git a/lib/twbs_less_rails/version.rb b/lib/twbs_less_rails/version.rb index 7113862..c51b5dd 100644 --- a/lib/twbs_less_rails/version.rb +++ b/lib/twbs_less_rails/version.rb @@ -1,3 +1,3 @@ module TwbsLessRails - VERSION = "2.19.0" + VERSION = "2.20.0" end diff --git a/src/twbs/bootstrap b/src/twbs/bootstrap index a10eb60..16b4825 160000 --- a/src/twbs/bootstrap +++ b/src/twbs/bootstrap @@ -1 +1 @@ -Subproject commit a10eb60bc0b07b747fa0c4ebd8821eb7307bd07f +Subproject commit 16b48259a62f576e52c903c476bd42b90ab22482 diff --git a/vendor/assets/javascripts/twbs/bootstrap/affix.js b/vendor/assets/javascripts/twbs/bootstrap/affix.js index 9819764..11a3d39 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/affix.js +++ b/vendor/assets/javascripts/twbs/bootstrap/affix.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: affix.js v3.3.4 + * Bootstrap: affix.js v3.3.5 * http://getbootstrap.com/javascript/#affix * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -28,7 +28,7 @@ this.checkPosition() } - Affix.VERSION = '3.3.4' + Affix.VERSION = '3.3.5' Affix.RESET = 'affix affix-top affix-bottom' @@ -78,7 +78,7 @@ var offset = this.options.offset var offsetTop = offset.top var offsetBottom = offset.bottom - var scrollHeight = $(document.body).height() + var scrollHeight = Math.max($(document).height(), $(document.body).height()) if (typeof offset != 'object') offsetBottom = offsetTop = offset if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) diff --git a/vendor/assets/javascripts/twbs/bootstrap/alert.js b/vendor/assets/javascripts/twbs/bootstrap/alert.js index 1925ef0..a7787cb 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/alert.js +++ b/vendor/assets/javascripts/twbs/bootstrap/alert.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: alert.js v3.3.4 + * Bootstrap: alert.js v3.3.5 * http://getbootstrap.com/javascript/#alerts * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -18,7 +18,7 @@ $(el).on('click', dismiss, this.close) } - Alert.VERSION = '3.3.4' + Alert.VERSION = '3.3.5' Alert.TRANSITION_DURATION = 150 diff --git a/vendor/assets/javascripts/twbs/bootstrap/button.js b/vendor/assets/javascripts/twbs/bootstrap/button.js index 7c7c021..15d7dca 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/button.js +++ b/vendor/assets/javascripts/twbs/bootstrap/button.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: button.js v3.3.4 + * Bootstrap: button.js v3.3.5 * http://getbootstrap.com/javascript/#buttons * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -19,7 +19,7 @@ this.isLoading = false } - Button.VERSION = '3.3.4' + Button.VERSION = '3.3.5' Button.DEFAULTS = { loadingText: 'loading...' @@ -31,7 +31,7 @@ var val = $el.is('input') ? 'val' : 'html' var data = $el.data() - state = state + 'Text' + state += 'Text' if (data.resetText == null) $el.data('resetText', $el[val]()) @@ -56,15 +56,19 @@ if ($parent.length) { var $input = this.$element.find('input') if ($input.prop('type') == 'radio') { - if ($input.prop('checked') && this.$element.hasClass('active')) changed = false - else $parent.find('.active').removeClass('active') + if ($input.prop('checked')) changed = false + $parent.find('.active').removeClass('active') + this.$element.addClass('active') + } else if ($input.prop('type') == 'checkbox') { + if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false + this.$element.toggleClass('active') } - if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') + $input.prop('checked', this.$element.hasClass('active')) + if (changed) $input.trigger('change') } else { this.$element.attr('aria-pressed', !this.$element.hasClass('active')) + this.$element.toggleClass('active') } - - if (changed) this.$element.toggleClass('active') } @@ -107,7 +111,7 @@ var $btn = $(e.target) if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') Plugin.call($btn, 'toggle') - e.preventDefault() + if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() }) .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) diff --git a/vendor/assets/javascripts/twbs/bootstrap/carousel.js b/vendor/assets/javascripts/twbs/bootstrap/carousel.js index a38ef14..6b2f1c4 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/carousel.js +++ b/vendor/assets/javascripts/twbs/bootstrap/carousel.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: carousel.js v3.3.4 + * Bootstrap: carousel.js v3.3.5 * http://getbootstrap.com/javascript/#carousel * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -30,7 +30,7 @@ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) } - Carousel.VERSION = '3.3.4' + Carousel.VERSION = '3.3.5' Carousel.TRANSITION_DURATION = 600 diff --git a/vendor/assets/javascripts/twbs/bootstrap/collapse.js b/vendor/assets/javascripts/twbs/bootstrap/collapse.js index 954513c..329e535 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/collapse.js +++ b/vendor/assets/javascripts/twbs/bootstrap/collapse.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: collapse.js v3.3.4 + * Bootstrap: collapse.js v3.3.5 * http://getbootstrap.com/javascript/#collapse * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -29,7 +29,7 @@ if (this.options.toggle) this.toggle() } - Collapse.VERSION = '3.3.4' + Collapse.VERSION = '3.3.5' Collapse.TRANSITION_DURATION = 350 diff --git a/vendor/assets/javascripts/twbs/bootstrap/dropdown.js b/vendor/assets/javascripts/twbs/bootstrap/dropdown.js index 9874600..bc4d373 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/dropdown.js +++ b/vendor/assets/javascripts/twbs/bootstrap/dropdown.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: dropdown.js v3.3.4 + * Bootstrap: dropdown.js v3.3.5 * http://getbootstrap.com/javascript/#dropdowns * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -19,7 +19,41 @@ $(element).on('click.bs.dropdown', this.toggle) } - Dropdown.VERSION = '3.3.4' + Dropdown.VERSION = '3.3.5' + + function getParent($this) { + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = selector && $(selector) + + return $parent && $parent.length ? $parent : $this.parent() + } + + function clearMenus(e) { + if (e && e.which === 3) return + $(backdrop).remove() + $(toggle).each(function () { + var $this = $(this) + var $parent = getParent($this) + var relatedTarget = { relatedTarget: this } + + if (!$parent.hasClass('open')) return + + if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return + + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) + + if (e.isDefaultPrevented()) return + + $this.attr('aria-expanded', 'false') + $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) + }) + } Dropdown.prototype.toggle = function (e) { var $this = $(this) @@ -34,7 +68,10 @@ if (!isActive) { if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { // if mobile we use a backdrop because click events don't delegate - $('
').insertAfter($(this)).on('click', clearMenus) + $(document.createElement('div')) + .addClass('dropdown-backdrop') + .insertAfter($(this)) + .on('click', clearMenus) } var relatedTarget = { relatedTarget: this } @@ -67,57 +104,25 @@ var $parent = getParent($this) var isActive = $parent.hasClass('open') - if ((!isActive && e.which != 27) || (isActive && e.which == 27)) { + if (!isActive && e.which != 27 || isActive && e.which == 27) { if (e.which == 27) $parent.find(toggle).trigger('focus') return $this.trigger('click') } var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc) + var $items = $parent.find('.dropdown-menu' + desc) if (!$items.length) return var index = $items.index(e.target) - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 + if (e.which == 38 && index > 0) index-- // up + if (e.which == 40 && index < $items.length - 1) index++ // down + if (!~index) index = 0 $items.eq(index).trigger('focus') } - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) - }) - } - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - // DROPDOWN PLUGIN DEFINITION // ========================== @@ -155,7 +160,6 @@ .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown) + .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) }(jQuery); diff --git a/vendor/assets/javascripts/twbs/bootstrap/modal.js b/vendor/assets/javascripts/twbs/bootstrap/modal.js index c1eb2a8..d50a856 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/modal.js +++ b/vendor/assets/javascripts/twbs/bootstrap/modal.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: modal.js v3.3.4 + * Bootstrap: modal.js v3.3.5 * http://getbootstrap.com/javascript/#modals * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -33,7 +33,7 @@ } } - Modal.VERSION = '3.3.4' + Modal.VERSION = '3.3.5' Modal.TRANSITION_DURATION = 300 Modal.BACKDROP_TRANSITION_DURATION = 150 @@ -90,9 +90,7 @@ that.$element[0].offsetWidth // force reflow } - that.$element - .addClass('in') - .attr('aria-hidden', false) + that.$element.addClass('in') that.enforceFocus() @@ -126,7 +124,6 @@ this.$element .removeClass('in') - .attr('aria-hidden', true) .off('click.dismiss.bs.modal') .off('mouseup.dismiss.bs.modal') @@ -190,7 +187,8 @@ if (this.isShown && this.options.backdrop) { var doAnimate = $.support.transition && animate - this.$backdrop = $('') + this.$backdrop = $(document.createElement('div')) + .addClass('modal-backdrop ' + animate) .appendTo(this.$body) this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { diff --git a/vendor/assets/javascripts/twbs/bootstrap/popover.js b/vendor/assets/javascripts/twbs/bootstrap/popover.js index 0b0755e..aef22d1 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/popover.js +++ b/vendor/assets/javascripts/twbs/bootstrap/popover.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: popover.js v3.3.4 + * Bootstrap: popover.js v3.3.5 * http://getbootstrap.com/javascript/#popovers * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -19,7 +19,7 @@ if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - Popover.VERSION = '3.3.4' + Popover.VERSION = '3.3.5' Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { placement: 'right', diff --git a/vendor/assets/javascripts/twbs/bootstrap/scrollspy.js b/vendor/assets/javascripts/twbs/bootstrap/scrollspy.js index f860c1a..7208e25 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/scrollspy.js +++ b/vendor/assets/javascripts/twbs/bootstrap/scrollspy.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: scrollspy.js v3.3.4 + * Bootstrap: scrollspy.js v3.3.5 * http://getbootstrap.com/javascript/#scrollspy * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -28,7 +28,7 @@ this.process() } - ScrollSpy.VERSION = '3.3.4' + ScrollSpy.VERSION = '3.3.5' ScrollSpy.DEFAULTS = { offset: 10 diff --git a/vendor/assets/javascripts/twbs/bootstrap/tab.js b/vendor/assets/javascripts/twbs/bootstrap/tab.js index 935d5bc..8d5361f 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/tab.js +++ b/vendor/assets/javascripts/twbs/bootstrap/tab.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: tab.js v3.3.4 + * Bootstrap: tab.js v3.3.5 * http://getbootstrap.com/javascript/#tabs * ======================================================================== * Copyright 2011-2015 Twitter, Inc. @@ -14,10 +14,12 @@ // ==================== var Tab = function (element) { + // jscs:disable requireDollarBeforejQueryAssignment this.element = $(element) + // jscs:enable requireDollarBeforejQueryAssignment } - Tab.VERSION = '3.3.4' + Tab.VERSION = '3.3.5' Tab.TRANSITION_DURATION = 150 @@ -65,7 +67,7 @@ var $active = container.find('> .active') var transition = callback && $.support.transition - && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length) + && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) function next() { $active diff --git a/vendor/assets/javascripts/twbs/bootstrap/tooltip.js b/vendor/assets/javascripts/twbs/bootstrap/tooltip.js index 2736788..c3fe4b0 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/tooltip.js +++ b/vendor/assets/javascripts/twbs/bootstrap/tooltip.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: tooltip.js v3.3.4 + * Bootstrap: tooltip.js v3.3.5 * http://getbootstrap.com/javascript/#tooltip * Inspired by the original jQuery.tipsy by Jason Frame * ======================================================================== @@ -21,11 +21,12 @@ this.timeout = null this.hoverState = null this.$element = null + this.inState = null this.init('tooltip', element, options) } - Tooltip.VERSION = '3.3.4' + Tooltip.VERSION = '3.3.5' Tooltip.TRANSITION_DURATION = 150 @@ -50,7 +51,8 @@ this.type = type this.$element = $(element) this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport) + this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) + this.inState = { click: false, hover: false, focus: false } if (this.$element[0] instanceof document.constructor && !this.options.selector) { throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') @@ -109,16 +111,20 @@ var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type) - if (self && self.$tip && self.$tip.is(':visible')) { - self.hoverState = 'in' - return - } - if (!self) { self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) $(obj.currentTarget).data('bs.' + this.type, self) } + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true + } + + if (self.tip().hasClass('in') || self.hoverState == 'in') { + self.hoverState = 'in' + return + } + clearTimeout(self.timeout) self.hoverState = 'in' @@ -130,6 +136,14 @@ }, self.options.delay.show) } + Tooltip.prototype.isInStateTrue = function () { + for (var key in this.inState) { + if (this.inState[key]) return true + } + + return false + } + Tooltip.prototype.leave = function (obj) { var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type) @@ -139,6 +153,12 @@ $(obj.currentTarget).data('bs.' + this.type, self) } + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false + } + + if (self.isInStateTrue()) return + clearTimeout(self.timeout) self.hoverState = 'out' @@ -185,6 +205,7 @@ .data('bs.' + this.type, this) this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) + this.$element.trigger('inserted.bs.' + this.type) var pos = this.getPosition() var actualWidth = $tip[0].offsetWidth @@ -192,13 +213,12 @@ if (autoPlace) { var orgPlacement = placement - var $container = this.options.container ? $(this.options.container) : this.$element.parent() - var containerDim = this.getPosition($container) + var viewportDim = this.getPosition(this.$viewport) - placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' : + placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : + placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : + placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : + placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : placement $tip @@ -239,8 +259,8 @@ if (isNaN(marginTop)) marginTop = 0 if (isNaN(marginLeft)) marginLeft = 0 - offset.top = offset.top + marginTop - offset.left = offset.left + marginLeft + offset.top += marginTop + offset.left += marginLeft // $.fn.offset doesn't round pixel values // so we use setOffset directly with our own function B-0 @@ -322,7 +342,7 @@ Tooltip.prototype.fixTitle = function () { var $e = this.$element - if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') { + if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') } } @@ -377,7 +397,7 @@ var rightEdgeOffset = pos.left + viewportPadding + actualWidth if (leftEdgeOffset < viewportDimensions.left) { // left overflow delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow + } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset } } @@ -403,7 +423,13 @@ } Tooltip.prototype.tip = function () { - return (this.$tip = this.$tip || $(this.options.template)) + if (!this.$tip) { + this.$tip = $(this.options.template) + if (this.$tip.length != 1) { + throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') + } + } + return this.$tip } Tooltip.prototype.arrow = function () { @@ -432,7 +458,13 @@ } } - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) + if (e) { + self.inState.click = !self.inState.click + if (self.isInStateTrue()) self.enter(self) + else self.leave(self) + } else { + self.tip().hasClass('in') ? self.leave(self) : self.enter(self) + } } Tooltip.prototype.destroy = function () { @@ -440,6 +472,12 @@ clearTimeout(this.timeout) this.hide(function () { that.$element.off('.' + that.type).removeData('bs.' + that.type) + if (that.$tip) { + that.$tip.detach() + } + that.$tip = null + that.$arrow = null + that.$viewport = null }) } diff --git a/vendor/assets/javascripts/twbs/bootstrap/transition.js b/vendor/assets/javascripts/twbs/bootstrap/transition.js index f23e6bd..cd89fc4 100644 --- a/vendor/assets/javascripts/twbs/bootstrap/transition.js +++ b/vendor/assets/javascripts/twbs/bootstrap/transition.js @@ -1,5 +1,5 @@ /* ======================================================================== - * Bootstrap: transition.js v3.3.4 + * Bootstrap: transition.js v3.3.5 * http://getbootstrap.com/javascript/#transitions * ======================================================================== * Copyright 2011-2015 Twitter, Inc. diff --git a/vendor/assets/stylesheets/twbs/bootstrap/badges.less b/vendor/assets/stylesheets/twbs/bootstrap/badges.less index c70bb93..6ee16dc 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/badges.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/badges.less @@ -12,7 +12,7 @@ font-weight: @badge-font-weight; color: @badge-color; line-height: @badge-line-height; - vertical-align: baseline; + vertical-align: middle; white-space: nowrap; text-align: center; background-color: @badge-bg; diff --git a/vendor/assets/stylesheets/twbs/bootstrap/bootstrap.less b/vendor/assets/stylesheets/twbs/bootstrap/bootstrap.less index fc07bed..5a702c5 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/bootstrap.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/bootstrap.less @@ -1,3 +1,9 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + // Core variables and mixins @import "variables.less"; @import "mixins.less"; diff --git a/vendor/assets/stylesheets/twbs/bootstrap/button-groups.less b/vendor/assets/stylesheets/twbs/bootstrap/button-groups.less index 13c1800..6a0c5a8 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/button-groups.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/button-groups.less @@ -36,6 +36,7 @@ margin-left: -5px; // Offset the first child's margin &:extend(.clearfix all); + .btn, .btn-group, .input-group { float: left; @@ -172,11 +173,11 @@ border-radius: 0; } &:first-child:not(:last-child) { - border-top-right-radius: @border-radius-base; + border-top-right-radius: @btn-border-radius-base; .border-bottom-radius(0); } &:last-child:not(:first-child) { - border-bottom-left-radius: @border-radius-base; + border-bottom-left-radius: @btn-border-radius-base; .border-top-radius(0); } } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/buttons.less b/vendor/assets/stylesheets/twbs/bootstrap/buttons.less index 5a74604..9cbb8f4 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/buttons.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/buttons.less @@ -17,7 +17,7 @@ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 border: 1px solid transparent; white-space: nowrap; - .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base); + .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base); .user-select(none); &, @@ -47,10 +47,16 @@ &[disabled], fieldset[disabled] & { cursor: @cursor-disabled; - pointer-events: none; // Future-proof disabling of clicks .opacity(.65); .box-shadow(none); } + + a& { + &.disabled, + fieldset[disabled] & { + pointer-events: none; // Future-proof disabling of clicks on `` elements + } + } } @@ -126,14 +132,14 @@ .btn-lg { // line-height: ensure even-numbered height of button next to large input - .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); + .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large); } .btn-sm { // line-height: ensure proper height of button next to small input - .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); + .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small); } .btn-xs { - .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small); + .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small); } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/carousel.less b/vendor/assets/stylesheets/twbs/bootstrap/carousel.less index 4bbe946..87ed696 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/carousel.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/carousel.less @@ -29,7 +29,7 @@ @media all and (transform-3d), (-webkit-transform-3d) { .transition-transform(~'0.6s ease-in-out'); .backface-visibility(~'hidden'); - .perspective(1000); + .perspective(1000px); &.next, &.active.right { @@ -130,6 +130,7 @@ .glyphicon-chevron-right { position: absolute; top: 50%; + margin-top: -10px; z-index: 5; display: inline-block; } @@ -147,7 +148,6 @@ .icon-next { width: 20px; height: 20px; - margin-top: -10px; line-height: 1; font-family: serif; } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/dropdowns.less b/vendor/assets/stylesheets/twbs/bootstrap/dropdowns.less index af34460..f6876c1 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/dropdowns.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/dropdowns.less @@ -11,6 +11,7 @@ margin-left: 2px; vertical-align: middle; border-top: @caret-width-base dashed; + border-top: @caret-width-base solid ~"\9"; // IE8 border-right: @caret-width-base solid transparent; border-left: @caret-width-base solid transparent; } @@ -184,7 +185,8 @@ // Reverse the caret .caret { border-top: 0; - border-bottom: @caret-width-base solid; + border-bottom: @caret-width-base dashed; + border-bottom: @caret-width-base solid ~"\9"; // IE8 content: ""; } // Different positioning for bottom up menu diff --git a/vendor/assets/stylesheets/twbs/bootstrap/forms.less b/vendor/assets/stylesheets/twbs/bootstrap/forms.less index e4b5062..b064ede 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/forms.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/forms.less @@ -56,7 +56,6 @@ input[type="checkbox"] { line-height: normal; } -// Set the height of file controls to match text inputs input[type="file"] { display: block; } @@ -175,13 +174,17 @@ input[type="search"] { // text within the input to become vertically misaligned. As a workaround, we // set a pixel line-height that matches the given height of the input, but only // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 +// +// Note that as of 8.3, iOS doesn't support `datetime` or `week`. @media screen and (-webkit-min-device-pixel-ratio: 0) { input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"] { - line-height: @input-height-base; + &.form-control { + line-height: @input-height-base; + } &.input-sm, .input-group-sm & { @@ -322,14 +325,26 @@ input[type="checkbox"] { } .form-group-sm { .form-control { - .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small); - } - .form-control-static { height: @input-height-small; padding: @padding-small-vertical @padding-small-horizontal; font-size: @font-size-small; line-height: @line-height-small; + border-radius: @input-border-radius-small; + } + select.form-control { + height: @input-height-small; + line-height: @input-height-small; + } + textarea.form-control, + select[multiple].form-control { + height: auto; + } + .form-control-static { + height: @input-height-small; min-height: (@line-height-computed + @font-size-small); + padding: (@padding-small-vertical + 1) @padding-small-horizontal; + font-size: @font-size-small; + line-height: @line-height-small; } } @@ -338,14 +353,26 @@ input[type="checkbox"] { } .form-group-lg { .form-control { - .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large); - } - .form-control-static { height: @input-height-large; padding: @padding-large-vertical @padding-large-horizontal; font-size: @font-size-large; line-height: @line-height-large; + border-radius: @input-border-radius-large; + } + select.form-control { + height: @input-height-large; + line-height: @input-height-large; + } + textarea.form-control, + select[multiple].form-control { + height: auto; + } + .form-control-static { + height: @input-height-large; min-height: (@line-height-computed + @font-size-large); + padding: (@padding-large-vertical + 1) @padding-large-horizontal; + font-size: @font-size-large; + line-height: @line-height-large; } } @@ -376,12 +403,16 @@ input[type="checkbox"] { text-align: center; pointer-events: none; } -.input-lg + .form-control-feedback { +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { width: @input-height-large; height: @input-height-large; line-height: @input-height-large; } -.input-sm + .form-control-feedback { +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { width: @input-height-small; height: @input-height-small; line-height: @input-height-small; @@ -550,7 +581,7 @@ input[type="checkbox"] { // Reposition the icon because it's now within a grid column and columns have // `position: relative;` on them. Also accounts for the grid gutter padding. .has-feedback .form-control-feedback { - right: (@grid-gutter-width / 2); + right: floor((@grid-gutter-width / 2)); } // Form group sizes @@ -561,6 +592,7 @@ input[type="checkbox"] { @media (min-width: @screen-sm-min) { .control-label { padding-top: ((@padding-large-vertical * @line-height-large) + 1); + font-size: @font-size-large; } } } @@ -568,6 +600,7 @@ input[type="checkbox"] { @media (min-width: @screen-sm-min) { .control-label { padding-top: (@padding-small-vertical + 1); + font-size: @font-size-small; } } } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/input-groups.less b/vendor/assets/stylesheets/twbs/bootstrap/input-groups.less index a8712f2..457ea60 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/input-groups.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/input-groups.less @@ -160,6 +160,7 @@ &:last-child { > .btn, > .btn-group { + z-index: 2; margin-left: -1px; } } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/jumbotron.less b/vendor/assets/stylesheets/twbs/bootstrap/jumbotron.less index 93036d3..fa80a38 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/jumbotron.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/jumbotron.less @@ -4,7 +4,8 @@ .jumbotron { - padding: @jumbotron-padding (@jumbotron-padding / 2); + padding-top: @jumbotron-padding; + padding-bottom: @jumbotron-padding; margin-bottom: @jumbotron-padding; color: @jumbotron-color; background-color: @jumbotron-bg; @@ -34,7 +35,8 @@ } @media screen and (min-width: @screen-sm-min) { - padding: (@jumbotron-padding * 1.6) 0; + padding-top: (@jumbotron-padding * 1.6); + padding-bottom: (@jumbotron-padding * 1.6); .container &, .container-fluid & { @@ -44,7 +46,7 @@ h1, .h1 { - font-size: (@font-size-base * 4.5); + font-size: @jumbotron-heading-font-size; } } } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/list-group.less b/vendor/assets/stylesheets/twbs/bootstrap/list-group.less index 1462ce1..216b912 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/list-group.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/list-group.less @@ -38,12 +38,13 @@ } -// Linked list items +// Interactive list items // -// Use anchor elements instead of `li`s or `div`s to create linked list items. +// Use anchor or button elements instead of `li`s or `div`s to create interactive items. // Includes an extra `.active` modifier class for showing selected items. -a.list-group-item { +a.list-group-item, +button.list-group-item { color: @list-group-link-color; .list-group-item-heading { @@ -59,6 +60,11 @@ a.list-group-item { } } +button.list-group-item { + width: 100%; + text-align: left; +} + .list-group-item { // Disabled state &.disabled, diff --git a/vendor/assets/stylesheets/twbs/bootstrap/media.less b/vendor/assets/stylesheets/twbs/bootstrap/media.less index a6bf781..8c835e8 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/media.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/media.less @@ -19,6 +19,11 @@ .media-object { display: block; + + // Fix collapse in webkit from max-width: 100% and display: table-cell. + &.img-thumbnail { + max-width: none; + } } .media-right, diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins.less index af4408f..e6f9fe6 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins.less @@ -11,6 +11,7 @@ @import "mixins/responsive-visibility.less"; @import "mixins/size.less"; @import "mixins/tab-focus.less"; +@import "mixins/reset-text.less"; @import "mixins/text-emphasis.less"; @import "mixins/text-overflow.less"; @import "mixins/vendor-prefixes.less"; diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/background-variant.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/background-variant.less index 556e490..a85c22b 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/background-variant.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/background-variant.less @@ -2,7 +2,8 @@ .bg-variant(@color) { background-color: @color; - a&:hover { + a&:hover, + a&:focus { background-color: darken(@color, 10%); } } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/buttons.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/buttons.less index 92d8a05..6875a97 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/buttons.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/buttons.less @@ -8,15 +8,31 @@ background-color: @background; border-color: @border; - &:hover, &:focus, - &.focus, + &.focus { + color: @color; + background-color: darken(@background, 10%); + border-color: darken(@border, 25%); + } + &:hover { + color: @color; + background-color: darken(@background, 10%); + border-color: darken(@border, 12%); + } &:active, &.active, .open > .dropdown-toggle& { color: @color; background-color: darken(@background, 10%); border-color: darken(@border, 12%); + + &:hover, + &:focus, + &.focus { + color: @color; + background-color: darken(@background, 17%); + border-color: darken(@border, 25%); + } } &:active, &.active, diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/grid-framework.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/grid-framework.less index f3b3929..8c23eed 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/grid-framework.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/grid-framework.less @@ -19,8 +19,8 @@ // 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); + padding-left: ceil((@grid-gutter-width / 2)); + padding-right: floor((@grid-gutter-width / 2)); } } .col(1); // kickstart it diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/grid.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/grid.less index cae5eaf..f144c15 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/grid.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/grid.less @@ -13,8 +13,8 @@ // Creates a wrapper for a series of columns .make-row(@gutter: @grid-gutter-width) { - margin-left: (@gutter / -2); - margin-right: (@gutter / -2); + margin-left: ceil((@gutter / -2)); + margin-right: floor((@gutter / -2)); &:extend(.clearfix all); } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/hide-text.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/hide-text.less index c2315e5..bc70118 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/hide-text.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/hide-text.less @@ -1,6 +1,6 @@ // CSS image replacement // -// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for +// Heads up! v3 launched 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()`. // diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/list-group.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/list-group.less index 8b5b065..03aa190 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/list-group.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/list-group.less @@ -5,7 +5,8 @@ color: @color; background-color: @background; - a& { + a&, + button& { color: @color; .list-group-item-heading { diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/pagination.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/pagination.less index 7deb505..618804f 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/pagination.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/pagination.less @@ -1,11 +1,12 @@ // Pagination -.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) { +.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { > li { > a, > span { padding: @padding-vertical @padding-horizontal; font-size: @font-size; + line-height: @line-height; } &:first-child { > a, diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/reset-text.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/reset-text.less new file mode 100644 index 0000000..58dd4d1 --- /dev/null +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/reset-text.less @@ -0,0 +1,18 @@ +.reset-text() { + font-family: @font-family-base; + // We deliberately do NOT reset font-size. + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: @line-height-base; + text-align: left; // Fallback for where `start` is not supported + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; +} diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/responsive-visibility.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/responsive-visibility.less index f7951c3..ecf1e97 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/responsive-visibility.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/responsive-visibility.less @@ -4,7 +4,7 @@ // More easily include all the states for responsive-utilities.less. .responsive-visibility() { display: block !important; - table& { display: table; } + table& { display: table !important; } tr& { display: table-row !important; } th&, td& { display: table-cell !important; } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/mixins/text-emphasis.less b/vendor/assets/stylesheets/twbs/bootstrap/mixins/text-emphasis.less index 0868ef9..9e8a77a 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/mixins/text-emphasis.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/mixins/text-emphasis.less @@ -2,7 +2,8 @@ .text-emphasis-variant(@color) { color: @color; - a&:hover { + a&:hover, + a&:focus { color: darken(@color, 10%); } } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/normalize.less b/vendor/assets/stylesheets/twbs/bootstrap/normalize.less index 62a085a..9dddf73 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/normalize.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/normalize.less @@ -1,9 +1,9 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ // // 1. Set default font family to sans-serif. -// 2. Prevent iOS text size adjust after orientation change, without disabling -// user zoom. +// 2. Prevent iOS and IE text size adjust after device orientation change, +// without disabling user zoom. // html { @@ -71,7 +71,7 @@ audio:not([controls]) { // // Address `[hidden]` styling not present in IE 8/9/10. -// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. +// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. // [hidden], @@ -91,7 +91,8 @@ a { } // -// Improve readability when focused and also mouse hovered in all browsers. +// Improve readability of focused elements when they are also in an +// active/hover state. // a:active, @@ -209,7 +210,6 @@ figure { // hr { - -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } @@ -350,15 +350,12 @@ input[type="number"]::-webkit-outer-spin-button { // // 1. Address `appearance` set to `searchfield` in Safari and Chrome. -// 2. Address `box-sizing` set to `border-box` in Safari and Chrome -// (include `-moz` to future-proof). +// 2. Address `box-sizing` set to `border-box` in Safari and Chrome. // input[type="search"] { -webkit-appearance: textfield; // 1 - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; // 2 - box-sizing: content-box; + box-sizing: content-box; //2 } // diff --git a/vendor/assets/stylesheets/twbs/bootstrap/pagination.less b/vendor/assets/stylesheets/twbs/bootstrap/pagination.less index 38c4c3d..31a23bf 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/pagination.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/pagination.less @@ -40,6 +40,7 @@ > li > span { &:hover, &:focus { + z-index: 3; color: @pagination-hover-color; background-color: @pagination-hover-bg; border-color: @pagination-hover-border; @@ -79,10 +80,10 @@ // Large .pagination-lg { - .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large); + .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); } // Small .pagination-sm { - .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small); + .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/panels.less b/vendor/assets/stylesheets/twbs/bootstrap/panels.less index 04eb2b3..425eb5e 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/panels.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/panels.less @@ -76,6 +76,7 @@ .border-top-radius((@panel-border-radius - 1)); } } + // Add border bottom radius for last one &:last-child { .list-group-item:last-child { @@ -84,6 +85,11 @@ } } } + > .panel-heading + .panel-collapse > .list-group { + .list-group-item:first-child { + .border-top-radius(0); + } + } } // Collapse space between when there's no additional content. .panel-heading + .list-group { diff --git a/vendor/assets/stylesheets/twbs/bootstrap/popovers.less b/vendor/assets/stylesheets/twbs/bootstrap/popovers.less index 2748eea..3a62a64 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/popovers.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/popovers.less @@ -11,12 +11,11 @@ display: none; max-width: @popover-max-width; padding: 1px; - // Reset font and text properties given new insertion method - font-family: @font-family-base; + // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element. + // So reset our font and text properties to avoid inheriting weird values. + .reset-text(); font-size: @font-size-base; - font-weight: normal; - line-height: @line-height-base; - text-align: left; + background-color: @popover-bg; background-clip: padding-box; border: 1px solid @popover-fallback-border-color; @@ -24,9 +23,6 @@ border-radius: @border-radius-large; .box-shadow(0 5px 10px rgba(0,0,0,.2)); - // Overrides for proper insertion - white-space: normal; - // Offset the popover to account for the popover arrow &.top { margin-top: -@popover-arrow-width; } &.right { margin-left: @popover-arrow-width; } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/print.less b/vendor/assets/stylesheets/twbs/bootstrap/print.less index 94ca58f..66e54ab 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/print.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/print.less @@ -67,12 +67,6 @@ } // Bootstrap specific changes start - // - // 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 { diff --git a/vendor/assets/stylesheets/twbs/bootstrap/scaffolding.less b/vendor/assets/stylesheets/twbs/bootstrap/scaffolding.less index 47b1d5a..1929bfc 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/scaffolding.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/scaffolding.less @@ -155,8 +155,7 @@ hr { // Fixes "clickability" issue (and more generally, the firing of events such as focus as well) // for traditionally non-focusable elements with role="button" // see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile -// Upstream patch for normalize.css submitted: https://github.com/necolas/normalize.css/pull/379 - remove this fix once that is merged [role="button"] { cursor: pointer; -} \ No newline at end of file +} diff --git a/vendor/assets/stylesheets/twbs/bootstrap/theme.less b/vendor/assets/stylesheets/twbs/bootstrap/theme.less index 6f2eb62..8371872 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/theme.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/theme.less @@ -1,3 +1,8 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ // // Load core variables and mixins @@ -28,6 +33,12 @@ .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); } + &.disabled, + &[disabled], + fieldset[disabled] & { + .box-shadow(none); + } + .badge { text-shadow: none; } @@ -53,10 +64,17 @@ } &.disabled, - &:disabled, - &[disabled] { - background-color: darken(@btn-color, 12%); - background-image: none; + &[disabled], + fieldset[disabled] & { + &, + &:hover, + &:focus, + &.focus, + &:active, + &.active { + background-color: darken(@btn-color, 12%); + background-image: none; + } } } @@ -132,7 +150,7 @@ .navbar-inverse { #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; see https://github.com/twbs/bootstrap/issues/10257 - + border-radius: @navbar-border-radius; .navbar-nav > .open > a, .navbar-nav > .active > a { #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%)); diff --git a/vendor/assets/stylesheets/twbs/bootstrap/tooltip.less b/vendor/assets/stylesheets/twbs/bootstrap/tooltip.less index 9d56847..b48d63e 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/tooltip.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/tooltip.less @@ -8,11 +8,11 @@ position: absolute; z-index: @zindex-tooltip; display: block; - // Reset font and text properties given new insertion method - font-family: @font-family-base; + // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. + // So reset our font and text properties to avoid inheriting weird values. + .reset-text(); font-size: @font-size-small; - font-weight: normal; - line-height: 1.4; + .opacity(0); &.in { .opacity(@tooltip-opacity); } @@ -28,7 +28,6 @@ padding: 3px 8px; color: @tooltip-color; text-align: center; - text-decoration: none; background-color: @tooltip-bg; border-radius: @border-radius-base; } diff --git a/vendor/assets/stylesheets/twbs/bootstrap/variables.less b/vendor/assets/stylesheets/twbs/bootstrap/variables.less index b5fb9d0..c1861a8 100644 --- a/vendor/assets/stylesheets/twbs/bootstrap/variables.less +++ b/vendor/assets/stylesheets/twbs/bootstrap/variables.less @@ -170,6 +170,11 @@ @btn-link-disabled-color: @gray-light; +// Allows for customizing button radius independently from global border radius +@btn-border-radius-base: @border-radius-base; +@btn-border-radius-large: @border-radius-large; +@btn-border-radius-small: @border-radius-small; + //== Forms // @@ -383,7 +388,7 @@ @navbar-default-toggle-border-color: #ddd; -// Inverted navbar +//=== Inverted navbar // Reset inverted navbar basics @navbar-inverse-color: lighten(@gray-light, 15%); @navbar-inverse-bg: #222; @@ -484,6 +489,7 @@ @jumbotron-bg: @gray-lighter; @jumbotron-heading-color: inherit; @jumbotron-font-size: ceil((@font-size-base * 1.5)); +@jumbotron-heading-font-size: ceil((@font-size-base * 4.5)); //== Form states and alerts