diff --git a/app/assets/javascripts/twitter/bootstrap/affix.js b/app/assets/javascripts/twitter/bootstrap/affix.js index 11a3d39..7f65168 100644 --- a/app/assets/javascripts/twitter/bootstrap/affix.js +++ b/app/assets/javascripts/twitter/bootstrap/affix.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: affix.js v3.3.5 + * Bootstrap: affix.js v3.3.7 * http://getbootstrap.com/javascript/#affix * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -28,7 +28,7 @@ this.checkPosition() } - Affix.VERSION = '3.3.5' + Affix.VERSION = '3.3.7' Affix.RESET = 'affix affix-top affix-bottom' diff --git a/app/assets/javascripts/twitter/bootstrap/alert.js b/app/assets/javascripts/twitter/bootstrap/alert.js index a7787cb..db97f3b 100644 --- a/app/assets/javascripts/twitter/bootstrap/alert.js +++ b/app/assets/javascripts/twitter/bootstrap/alert.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: alert.js v3.3.5 + * Bootstrap: alert.js v3.3.7 * http://getbootstrap.com/javascript/#alerts * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -18,7 +18,7 @@ $(el).on('click', dismiss, this.close) } - Alert.VERSION = '3.3.5' + Alert.VERSION = '3.3.7' Alert.TRANSITION_DURATION = 150 @@ -31,7 +31,7 @@ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } - var $parent = $(selector) + var $parent = $(selector === '#' ? [] : selector) if (e) e.preventDefault() diff --git a/app/assets/javascripts/twitter/bootstrap/button.js b/app/assets/javascripts/twitter/bootstrap/button.js index 15d7dca..843b39c 100644 --- a/app/assets/javascripts/twitter/bootstrap/button.js +++ b/app/assets/javascripts/twitter/bootstrap/button.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: button.js v3.3.5 + * Bootstrap: button.js v3.3.7 * http://getbootstrap.com/javascript/#buttons * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -19,7 +19,7 @@ this.isLoading = false } - Button.VERSION = '3.3.5' + Button.VERSION = '3.3.7' Button.DEFAULTS = { loadingText: 'loading...' @@ -41,10 +41,10 @@ if (state == 'loadingText') { this.isLoading = true - $el.addClass(d).attr(d, d) + $el.addClass(d).attr(d, d).prop(d, true) } else if (this.isLoading) { this.isLoading = false - $el.removeClass(d).removeAttr(d) + $el.removeClass(d).removeAttr(d).prop(d, false) } }, this), 0) } @@ -108,10 +108,15 @@ $(document) .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + var $btn = $(e.target).closest('.btn') Plugin.call($btn, 'toggle') - if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() + if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { + // Prevent double click on radios, and the double selections (so cancellation) on checkboxes + e.preventDefault() + // The target component still receive the focus + if ($btn.is('input,button')) $btn.trigger('focus') + else $btn.find('input:visible,button:visible').first().trigger('focus') + } }) .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/app/assets/javascripts/twitter/bootstrap/carousel.js b/app/assets/javascripts/twitter/bootstrap/carousel.js index 6b2f1c4..6ff954c 100644 --- a/app/assets/javascripts/twitter/bootstrap/carousel.js +++ b/app/assets/javascripts/twitter/bootstrap/carousel.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: carousel.js v3.3.5 + * Bootstrap: carousel.js v3.3.7 * http://getbootstrap.com/javascript/#carousel * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -30,7 +30,7 @@ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) } - Carousel.VERSION = '3.3.5' + Carousel.VERSION = '3.3.7' Carousel.TRANSITION_DURATION = 600 diff --git a/app/assets/javascripts/twitter/bootstrap/collapse.js b/app/assets/javascripts/twitter/bootstrap/collapse.js index 329e535..1203869 100644 --- a/app/assets/javascripts/twitter/bootstrap/collapse.js +++ b/app/assets/javascripts/twitter/bootstrap/collapse.js @@ -1,11 +1,12 @@ /* ======================================================================== - * Bootstrap: collapse.js v3.3.5 + * Bootstrap: collapse.js v3.3.7 * http://getbootstrap.com/javascript/#collapse * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +/* jshint latedef: false */ +function ($) { 'use strict'; @@ -29,7 +30,7 @@ if (this.options.toggle) this.toggle() } - Collapse.VERSION = '3.3.5' + Collapse.VERSION = '3.3.7' Collapse.TRANSITION_DURATION = 350 diff --git a/app/assets/javascripts/twitter/bootstrap/dropdown.js b/app/assets/javascripts/twitter/bootstrap/dropdown.js index bc4d373..04e9c2d 100644 --- a/app/assets/javascripts/twitter/bootstrap/dropdown.js +++ b/app/assets/javascripts/twitter/bootstrap/dropdown.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: dropdown.js v3.3.5 + * Bootstrap: dropdown.js v3.3.7 * http://getbootstrap.com/javascript/#dropdowns * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -19,7 +19,7 @@ $(element).on('click.bs.dropdown', this.toggle) } - Dropdown.VERSION = '3.3.5' + Dropdown.VERSION = '3.3.7' function getParent($this) { var selector = $this.attr('data-target') @@ -51,7 +51,7 @@ if (e.isDefaultPrevented()) return $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) + $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) }) } @@ -85,7 +85,7 @@ $parent .toggleClass('open') - .trigger('shown.bs.dropdown', relatedTarget) + .trigger($.Event('shown.bs.dropdown', relatedTarget)) } return false diff --git a/app/assets/javascripts/twitter/bootstrap/modal.js b/app/assets/javascripts/twitter/bootstrap/modal.js index d50a856..f84142d 100644 --- a/app/assets/javascripts/twitter/bootstrap/modal.js +++ b/app/assets/javascripts/twitter/bootstrap/modal.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: modal.js v3.3.5 + * Bootstrap: modal.js v3.3.7 * http://getbootstrap.com/javascript/#modals * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -33,7 +33,7 @@ } } - Modal.VERSION = '3.3.5' + Modal.VERSION = '3.3.7' Modal.TRANSITION_DURATION = 300 Modal.BACKDROP_TRANSITION_DURATION = 150 @@ -140,7 +140,9 @@ $(document) .off('focusin.bs.modal') // guard against infinite focus loop .on('focusin.bs.modal', $.proxy(function (e) { - if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { + if (document !== e.target && + this.$element[0] !== e.target && + !this.$element.has(e.target).length) { this.$element.trigger('focus') } }, this)) diff --git a/app/assets/javascripts/twitter/bootstrap/popover.js b/app/assets/javascripts/twitter/bootstrap/popover.js index aef22d1..efe1956 100644 --- a/app/assets/javascripts/twitter/bootstrap/popover.js +++ b/app/assets/javascripts/twitter/bootstrap/popover.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: popover.js v3.3.5 + * Bootstrap: popover.js v3.3.7 * http://getbootstrap.com/javascript/#popovers * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -19,7 +19,7 @@ if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - Popover.VERSION = '3.3.5' + Popover.VERSION = '3.3.7' Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { placement: 'right', diff --git a/app/assets/javascripts/twitter/bootstrap/scrollspy.js b/app/assets/javascripts/twitter/bootstrap/scrollspy.js index 7208e25..fe19809 100644 --- a/app/assets/javascripts/twitter/bootstrap/scrollspy.js +++ b/app/assets/javascripts/twitter/bootstrap/scrollspy.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: scrollspy.js v3.3.5 + * Bootstrap: scrollspy.js v3.3.7 * http://getbootstrap.com/javascript/#scrollspy * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -28,7 +28,7 @@ this.process() } - ScrollSpy.VERSION = '3.3.5' + ScrollSpy.VERSION = '3.3.7' ScrollSpy.DEFAULTS = { offset: 10 diff --git a/app/assets/javascripts/twitter/bootstrap/tab.js b/app/assets/javascripts/twitter/bootstrap/tab.js index 8d5361f..c4a8635 100644 --- a/app/assets/javascripts/twitter/bootstrap/tab.js +++ b/app/assets/javascripts/twitter/bootstrap/tab.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: tab.js v3.3.5 + * Bootstrap: tab.js v3.3.7 * http://getbootstrap.com/javascript/#tabs * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -19,7 +19,7 @@ // jscs:enable requireDollarBeforejQueryAssignment } - Tab.VERSION = '3.3.5' + Tab.VERSION = '3.3.7' Tab.TRANSITION_DURATION = 150 diff --git a/app/assets/javascripts/twitter/bootstrap/tooltip.js b/app/assets/javascripts/twitter/bootstrap/tooltip.js index c3fe4b0..e35d9c7 100644 --- a/app/assets/javascripts/twitter/bootstrap/tooltip.js +++ b/app/assets/javascripts/twitter/bootstrap/tooltip.js @@ -1,9 +1,9 @@ /* ======================================================================== - * Bootstrap: tooltip.js v3.3.5 + * Bootstrap: tooltip.js v3.3.7 * http://getbootstrap.com/javascript/#tooltip * Inspired by the original jQuery.tipsy by Jason Frame * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ @@ -26,7 +26,7 @@ this.init('tooltip', element, options) } - Tooltip.VERSION = '3.3.5' + Tooltip.VERSION = '3.3.7' Tooltip.TRANSITION_DURATION = 150 @@ -317,9 +317,11 @@ function complete() { if (that.hoverState != 'in') $tip.detach() - that.$element - .removeAttr('aria-describedby') - .trigger('hidden.bs.' + that.type) + if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. + that.$element + .removeAttr('aria-describedby') + .trigger('hidden.bs.' + that.type) + } callback && callback() } @@ -362,7 +364,10 @@ // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) } - var elOffset = isBody ? { top: 0, left: 0 } : $element.offset() + var isSvg = window.SVGElement && el instanceof window.SVGElement + // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3. + // See https://github.com/twbs/bootstrap/issues/20280 + var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset()) var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null @@ -478,6 +483,7 @@ that.$tip = null that.$arrow = null that.$viewport = null + that.$element = null }) } diff --git a/app/assets/javascripts/twitter/bootstrap/transition.js b/app/assets/javascripts/twitter/bootstrap/transition.js index cd89fc4..db76596 100644 --- a/app/assets/javascripts/twitter/bootstrap/transition.js +++ b/app/assets/javascripts/twitter/bootstrap/transition.js @@ -1,8 +1,8 @@ /* ======================================================================== - * Bootstrap: transition.js v3.3.5 + * Bootstrap: transition.js v3.3.7 * http://getbootstrap.com/javascript/#transitions * ======================================================================== - * Copyright 2011-2015 Twitter, Inc. + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ diff --git a/app/frameworks/twitter/bootstrap/bootstrap.less b/app/frameworks/twitter/bootstrap/bootstrap.less index 4b9916e..f0aa08f 100644 --- a/app/frameworks/twitter/bootstrap/bootstrap.less +++ b/app/frameworks/twitter/bootstrap/bootstrap.less @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ diff --git a/app/frameworks/twitter/bootstrap/button-groups.less b/app/frameworks/twitter/bootstrap/button-groups.less index 6a0c5a8..16db0c6 100644 --- a/app/frameworks/twitter/bootstrap/button-groups.less +++ b/app/frameworks/twitter/bootstrap/button-groups.less @@ -59,7 +59,7 @@ .border-right-radius(0); } } -// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it +// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { .border-left-radius(0); @@ -173,12 +173,12 @@ border-radius: 0; } &:first-child:not(:last-child) { - border-top-right-radius: @btn-border-radius-base; + .border-top-radius(@btn-border-radius-base); .border-bottom-radius(0); } &:last-child:not(:first-child) { - border-bottom-left-radius: @btn-border-radius-base; .border-top-radius(0); + .border-bottom-radius(@btn-border-radius-base); } } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { diff --git a/app/frameworks/twitter/bootstrap/carousel.less b/app/frameworks/twitter/bootstrap/carousel.less index 87ed696..252011e 100644 --- a/app/frameworks/twitter/bootstrap/carousel.less +++ b/app/frameworks/twitter/bootstrap/carousel.less @@ -101,6 +101,7 @@ color: @carousel-control-color; text-align: center; text-shadow: @carousel-text-shadow; + background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug // We can't have this transition here because WebKit cancels the carousel // animation if you trip this while in the middle of another animation. @@ -240,18 +241,18 @@ .glyphicon-chevron-right, .icon-prev, .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; + width: (@carousel-control-font-size * 1.5); + height: (@carousel-control-font-size * 1.5); + margin-top: (@carousel-control-font-size / -2); + font-size: (@carousel-control-font-size * 1.5); } .glyphicon-chevron-left, .icon-prev { - margin-left: -15px; + margin-left: (@carousel-control-font-size / -2); } .glyphicon-chevron-right, .icon-next { - margin-right: -15px; + margin-right: (@carousel-control-font-size / -2); } } diff --git a/app/frameworks/twitter/bootstrap/forms.less b/app/frameworks/twitter/bootstrap/forms.less index b064ede..9377d38 100644 --- a/app/frameworks/twitter/bootstrap/forms.less +++ b/app/frameworks/twitter/bootstrap/forms.less @@ -132,6 +132,12 @@ output { // Placeholder .placeholder(); + // Unstyle the caret on `