tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jkemn...@apache.org
Subject tapestry-5 git commit: upgrade Bootstrap to 3.3.7
Date Tue, 09 Aug 2016 13:32:31 GMT
Repository: tapestry-5
Updated Branches:
  refs/heads/master 9c89af933 -> d372f1e0d


upgrade Bootstrap to 3.3.7


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/d372f1e0
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/d372f1e0
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/d372f1e0

Branch: refs/heads/master
Commit: d372f1e0d1cfe62be79791747e2d27de7d95c04e
Parents: 9c89af9
Author: Jochen Kemnade <jochen.kemnade@eddyson.de>
Authored: Tue Aug 9 15:32:03 2016 +0200
Committer: Jochen Kemnade <jochen.kemnade@eddyson.de>
Committed: Tue Aug 9 15:32:03 2016 +0200

----------------------------------------------------------------------
 build.gradle                                    |   2 +-
 .../tapestry5/bootstrap/css/bootstrap-theme.css |   4 +-
 .../tapestry5/bootstrap/css/bootstrap.css       | 105 ++++++-------------
 .../assets/tapestry5/bootstrap/js/affix.js      |   6 +-
 .../assets/tapestry5/bootstrap/js/alert.js      |   8 +-
 .../assets/tapestry5/bootstrap/js/button.js     |  21 ++--
 .../assets/tapestry5/bootstrap/js/carousel.js   |   6 +-
 .../assets/tapestry5/bootstrap/js/collapse.js   |   7 +-
 .../assets/tapestry5/bootstrap/js/dropdown.js   |  10 +-
 .../assets/tapestry5/bootstrap/js/modal.js      |  10 +-
 .../assets/tapestry5/bootstrap/js/popover.js    |   6 +-
 .../assets/tapestry5/bootstrap/js/scrollspy.js  |   6 +-
 .../assets/tapestry5/bootstrap/js/tab.js        |   6 +-
 .../assets/tapestry5/bootstrap/js/tooltip.js    |  20 ++--
 .../assets/tapestry5/bootstrap/js/transition.js |   4 +-
 .../src/test/webapp/bootstrap/js/affix.js       |   6 +-
 .../src/test/webapp/bootstrap/js/alert.js       |   8 +-
 .../src/test/webapp/bootstrap/js/button.js      |  21 ++--
 .../src/test/webapp/bootstrap/js/carousel.js    |   6 +-
 .../src/test/webapp/bootstrap/js/collapse.js    |   7 +-
 .../src/test/webapp/bootstrap/js/dropdown.js    |   6 +-
 .../src/test/webapp/bootstrap/js/modal.js       |  10 +-
 .../src/test/webapp/bootstrap/js/popover.js     |   6 +-
 .../src/test/webapp/bootstrap/js/scrollspy.js   |   6 +-
 .../src/test/webapp/bootstrap/js/tab.js         |   6 +-
 .../src/test/webapp/bootstrap/js/tooltip.js     |  20 ++--
 .../src/test/webapp/bootstrap/js/transition.js  |   4 +-
 .../test/webapp/bootstrap/less/bootstrap.less   |   4 +-
 .../webapp/bootstrap/less/button-groups.less    |   2 +-
 .../src/test/webapp/bootstrap/less/forms.less   |   2 +-
 .../webapp/bootstrap/less/input-groups.less     |   2 +-
 .../webapp/bootstrap/less/mixins/tab-focus.less |   6 +-
 .../src/test/webapp/bootstrap/less/panels.less  |   2 +-
 .../test/webapp/bootstrap/less/scaffolding.less |   2 +-
 .../src/test/webapp/bootstrap/less/theme.less   |   4 +-
 .../test/webapp/bootstrap/less/variables.less   |   2 +-
 36 files changed, 169 insertions(+), 184 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 743e7a3..5026ab1 100755
--- a/build.gradle
+++ b/build.gradle
@@ -590,7 +590,7 @@ boolean isWindows() {
 }
 
 task updateBootstrap << {
-  def bootstrapVersion = '3.3.5'
+  def bootstrapVersion = '3.3.7'
   def target = new File(temporaryDir, 'bootstrap.zip')
   ant.get(src: "https://github.com/twbs/bootstrap/archive/v${bootstrapVersion}.zip", dest: target)
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap-theme.css
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap-theme.css b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap-theme.css
index 10a055e..b6941bf 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap-theme.css
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap-theme.css
@@ -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)
  */
 .btn-default,

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap.css
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap.css b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap.css
index e6f0d02..5dd08cf 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap.css
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/css/bootstrap.css
@@ -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)
  */
 /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
@@ -279,10 +279,10 @@ th {
   -moz-osx-font-smoothing: grayscale;
 }
 .glyphicon-asterisk:before {
-  content: "\2a";
+  content: "\002a";
 }
 .glyphicon-plus:before {
-  content: "\2b";
+  content: "\002b";
 }
 .glyphicon-euro:before,
 .glyphicon-eur:before {
@@ -1106,7 +1106,6 @@ a:focus {
   text-decoration: underline;
 }
 a:focus {
-  outline: thin dotted;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
@@ -2537,7 +2536,6 @@ select[size] {
 input[type="file"]:focus,
 input[type="radio"]:focus,
 input[type="checkbox"]:focus {
-  outline: thin dotted;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
@@ -2582,6 +2580,10 @@ output {
 .form-control::-webkit-input-placeholder {
   color: #999;
 }
+.form-control::-ms-expand {
+  background-color: transparent;
+  border: 0;
+}
 .form-control[disabled],
 .form-control[readonly],
 fieldset[disabled] .form-control {
@@ -2988,7 +2990,7 @@ select[multiple].input-lg {
 }
 @media (min-width: 768px) {
   .form-horizontal .form-group-lg .control-label {
-    padding-top: 14.333333px;
+    padding-top: 11px;
     font-size: 18px;
   }
 }
@@ -3025,7 +3027,6 @@ select[multiple].input-lg {
 .btn.focus,
 .btn:active.focus,
 .btn.active.focus {
-  outline: thin dotted;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
@@ -3096,9 +3097,6 @@ fieldset[disabled] a.btn {
 .open > .dropdown-toggle.btn-default {
   background-image: none;
 }
-.btn-default.disabled,
-.btn-default[disabled],
-fieldset[disabled] .btn-default,
 .btn-default.disabled:hover,
 .btn-default[disabled]:hover,
 fieldset[disabled] .btn-default:hover,
@@ -3107,13 +3105,7 @@ fieldset[disabled] .btn-default:hover,
 fieldset[disabled] .btn-default:focus,
 .btn-default.disabled.focus,
 .btn-default[disabled].focus,
-fieldset[disabled] .btn-default.focus,
-.btn-default.disabled:active,
-.btn-default[disabled]:active,
-fieldset[disabled] .btn-default:active,
-.btn-default.disabled.active,
-.btn-default[disabled].active,
-fieldset[disabled] .btn-default.active {
+fieldset[disabled] .btn-default.focus {
   background-color: #fff;
   border-color: #ccc;
 }
@@ -3162,9 +3154,6 @@ fieldset[disabled] .btn-default.active {
 .open > .dropdown-toggle.btn-primary {
   background-image: none;
 }
-.btn-primary.disabled,
-.btn-primary[disabled],
-fieldset[disabled] .btn-primary,
 .btn-primary.disabled:hover,
 .btn-primary[disabled]:hover,
 fieldset[disabled] .btn-primary:hover,
@@ -3173,13 +3162,7 @@ fieldset[disabled] .btn-primary:hover,
 fieldset[disabled] .btn-primary:focus,
 .btn-primary.disabled.focus,
 .btn-primary[disabled].focus,
-fieldset[disabled] .btn-primary.focus,
-.btn-primary.disabled:active,
-.btn-primary[disabled]:active,
-fieldset[disabled] .btn-primary:active,
-.btn-primary.disabled.active,
-.btn-primary[disabled].active,
-fieldset[disabled] .btn-primary.active {
+fieldset[disabled] .btn-primary.focus {
   background-color: #337ab7;
   border-color: #2e6da4;
 }
@@ -3228,9 +3211,6 @@ fieldset[disabled] .btn-primary.active {
 .open > .dropdown-toggle.btn-success {
   background-image: none;
 }
-.btn-success.disabled,
-.btn-success[disabled],
-fieldset[disabled] .btn-success,
 .btn-success.disabled:hover,
 .btn-success[disabled]:hover,
 fieldset[disabled] .btn-success:hover,
@@ -3239,13 +3219,7 @@ fieldset[disabled] .btn-success:hover,
 fieldset[disabled] .btn-success:focus,
 .btn-success.disabled.focus,
 .btn-success[disabled].focus,
-fieldset[disabled] .btn-success.focus,
-.btn-success.disabled:active,
-.btn-success[disabled]:active,
-fieldset[disabled] .btn-success:active,
-.btn-success.disabled.active,
-.btn-success[disabled].active,
-fieldset[disabled] .btn-success.active {
+fieldset[disabled] .btn-success.focus {
   background-color: #5cb85c;
   border-color: #4cae4c;
 }
@@ -3294,9 +3268,6 @@ fieldset[disabled] .btn-success.active {
 .open > .dropdown-toggle.btn-info {
   background-image: none;
 }
-.btn-info.disabled,
-.btn-info[disabled],
-fieldset[disabled] .btn-info,
 .btn-info.disabled:hover,
 .btn-info[disabled]:hover,
 fieldset[disabled] .btn-info:hover,
@@ -3305,13 +3276,7 @@ fieldset[disabled] .btn-info:hover,
 fieldset[disabled] .btn-info:focus,
 .btn-info.disabled.focus,
 .btn-info[disabled].focus,
-fieldset[disabled] .btn-info.focus,
-.btn-info.disabled:active,
-.btn-info[disabled]:active,
-fieldset[disabled] .btn-info:active,
-.btn-info.disabled.active,
-.btn-info[disabled].active,
-fieldset[disabled] .btn-info.active {
+fieldset[disabled] .btn-info.focus {
   background-color: #5bc0de;
   border-color: #46b8da;
 }
@@ -3360,9 +3325,6 @@ fieldset[disabled] .btn-info.active {
 .open > .dropdown-toggle.btn-warning {
   background-image: none;
 }
-.btn-warning.disabled,
-.btn-warning[disabled],
-fieldset[disabled] .btn-warning,
 .btn-warning.disabled:hover,
 .btn-warning[disabled]:hover,
 fieldset[disabled] .btn-warning:hover,
@@ -3371,13 +3333,7 @@ fieldset[disabled] .btn-warning:hover,
 fieldset[disabled] .btn-warning:focus,
 .btn-warning.disabled.focus,
 .btn-warning[disabled].focus,
-fieldset[disabled] .btn-warning.focus,
-.btn-warning.disabled:active,
-.btn-warning[disabled]:active,
-fieldset[disabled] .btn-warning:active,
-.btn-warning.disabled.active,
-.btn-warning[disabled].active,
-fieldset[disabled] .btn-warning.active {
+fieldset[disabled] .btn-warning.focus {
   background-color: #f0ad4e;
   border-color: #eea236;
 }
@@ -3426,9 +3382,6 @@ fieldset[disabled] .btn-warning.active {
 .open > .dropdown-toggle.btn-danger {
   background-image: none;
 }
-.btn-danger.disabled,
-.btn-danger[disabled],
-fieldset[disabled] .btn-danger,
 .btn-danger.disabled:hover,
 .btn-danger[disabled]:hover,
 fieldset[disabled] .btn-danger:hover,
@@ -3437,13 +3390,7 @@ fieldset[disabled] .btn-danger:hover,
 fieldset[disabled] .btn-danger:focus,
 .btn-danger.disabled.focus,
 .btn-danger[disabled].focus,
-fieldset[disabled] .btn-danger.focus,
-.btn-danger.disabled:active,
-.btn-danger[disabled]:active,
-fieldset[disabled] .btn-danger:active,
-.btn-danger.disabled.active,
-.btn-danger[disabled].active,
-fieldset[disabled] .btn-danger.active {
+fieldset[disabled] .btn-danger.focus {
   background-color: #d9534f;
   border-color: #d43f3a;
 }
@@ -3817,6 +3764,7 @@ tbody.collapse.in {
   border-radius: 0;
 }
 .btn-group-vertical > .btn:first-child:not(:last-child) {
+  border-top-left-radius: 4px;
   border-top-right-radius: 4px;
   border-bottom-right-radius: 0;
   border-bottom-left-radius: 0;
@@ -3824,6 +3772,7 @@ tbody.collapse.in {
 .btn-group-vertical > .btn:last-child:not(:first-child) {
   border-top-left-radius: 0;
   border-top-right-radius: 0;
+  border-bottom-right-radius: 4px;
   border-bottom-left-radius: 4px;
 }
 .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
@@ -3881,6 +3830,9 @@ tbody.collapse.in {
   width: 100%;
   margin-bottom: 0;
 }
+.input-group .form-control:focus {
+  z-index: 3;
+}
 .input-group-lg > .form-control,
 .input-group-lg > .input-group-addon,
 .input-group-lg > .input-group-btn > .btn {
@@ -4792,7 +4744,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
 .pagination > li > span:hover,
 .pagination > li > a:focus,
 .pagination > li > span:focus {
-  z-index: 3;
+  z-index: 2;
   color: #23527c;
   background-color: #eee;
   border-color: #ddd;
@@ -4803,7 +4755,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
 .pagination > .active > span:hover,
 .pagination > .active > a:focus,
 .pagination > .active > span:focus {
-  z-index: 2;
+  z-index: 3;
   color: #fff;
   cursor: default;
   background-color: #337ab7;
@@ -5024,6 +4976,8 @@ a.badge:focus {
 }
 .container .jumbotron,
 .container-fluid .jumbotron {
+  padding-right: 15px;
+  padding-left: 15px;
   border-radius: 6px;
 }
 .jumbotron .container {
@@ -5978,7 +5932,6 @@ button.close {
   opacity: .5;
 }
 .modal-header {
-  min-height: 16.42857143px;
   padding: 15px;
   border-bottom: 1px solid #e5e5e5;
 }
@@ -6371,6 +6324,7 @@ button.close {
   color: #fff;
   text-align: center;
   text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
+  background-color: rgba(0, 0, 0, 0);
   filter: alpha(opacity=50);
   opacity: .5;
 }
@@ -6484,16 +6438,16 @@ button.close {
   .carousel-control .icon-next {
     width: 30px;
     height: 30px;
-    margin-top: -15px;
+    margin-top: -10px;
     font-size: 30px;
   }
   .carousel-control .glyphicon-chevron-left,
   .carousel-control .icon-prev {
-    margin-left: -15px;
+    margin-left: -10px;
   }
   .carousel-control .glyphicon-chevron-right,
   .carousel-control .icon-next {
-    margin-right: -15px;
+    margin-right: -10px;
   }
   .carousel-caption {
     right: 20%;
@@ -6532,6 +6486,8 @@ button.close {
 .pager:after,
 .panel-body:before,
 .panel-body:after,
+.modal-header:before,
+.modal-header:after,
 .modal-footer:before,
 .modal-footer:after {
   display: table;
@@ -6551,6 +6507,7 @@ button.close {
 .navbar-collapse:after,
 .pager:after,
 .panel-body:after,
+.modal-header:after,
 .modal-footer:after {
   clear: both;
 }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/affix.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/affix.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/affix.js
index 11a3d39..7f65168 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/affix.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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'
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/alert.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/alert.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/alert.js
index a7787cb..db97f3b 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/alert.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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()
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/button.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/button.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/button.js
index 15d7dca..843b39c 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/button.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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))

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/carousel.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/carousel.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/carousel.js
index 6b2f1c4..6ff954c 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/carousel.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/collapse.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/collapse.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/collapse.js
index 329e535..1203869 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/collapse.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/dropdown.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/dropdown.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/dropdown.js
index bc4d373..04e9c2d 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/dropdown.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/modal.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/modal.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/modal.js
index d50a856..f84142d 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/modal.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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))

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/popover.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/popover.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/popover.js
index aef22d1..efe1956 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/popover.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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',

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/scrollspy.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/scrollspy.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/scrollspy.js
index 7208e25..fe19809 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/scrollspy.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/tab.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/tab.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/tab.js
index 8d5361f..c4a8635 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/tab.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/tooltip.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/tooltip.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/tooltip.js
index c3fe4b0..e35d9c7 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/tooltip.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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
     })
   }
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/transition.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/transition.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/transition.js
index cd89fc4..db76596 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/transition.js
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/js/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)
  * ======================================================================== */
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js b/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js
index 2c5d5d6..7f65168 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: affix.js v3.3.6
+ * 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.6'
+  Affix.VERSION  = '3.3.7'
 
   Affix.RESET    = 'affix affix-top affix-bottom'
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js b/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js
index 5536755..db97f3b 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: alert.js v3.3.6
+ * 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.6'
+  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()
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/button.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/button.js b/tapestry-webresources/src/test/webapp/bootstrap/js/button.js
index 0f36e41..843b39c 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/button.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/button.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: button.js v3.3.6
+ * 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.6'
+  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))

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js b/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js
index 6cdbc79..6ff954c 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: carousel.js v3.3.6
+ * 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.6'
+  Carousel.VERSION  = '3.3.7'
 
   Carousel.TRANSITION_DURATION = 600
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js b/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js
index 9e26465..1203869 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js
@@ -1,11 +1,12 @@
 /* ========================================================================
- * Bootstrap: collapse.js v3.3.6
+ * 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.6'
+  Collapse.VERSION  = '3.3.7'
 
   Collapse.TRANSITION_DURATION = 350
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js b/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js
index df6be86..04e9c2d 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: dropdown.js v3.3.6
+ * 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.6'
+  Dropdown.VERSION = '3.3.7'
 
   function getParent($this) {
     var selector = $this.attr('data-target')

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js b/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js
index 5049ccc..f84142d 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: modal.js v3.3.6
+ * 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.6'
+  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))

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js b/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js
index f2362e0..efe1956 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: popover.js v3.3.6
+ * 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.6'
+  Popover.VERSION  = '3.3.7'
 
   Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
     placement: 'right',

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js b/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js
index 5970b06..fe19809 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: scrollspy.js v3.3.6
+ * 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.6'
+  ScrollSpy.VERSION  = '3.3.7'
 
   ScrollSpy.DEFAULTS = {
     offset: 10

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js b/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js
index 7d533e8..c4a8635 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: tab.js v3.3.6
+ * 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.6'
+  Tab.VERSION = '3.3.7'
 
   Tab.TRANSITION_DURATION = 150
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js b/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js
index 7094b34..e35d9c7 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js
@@ -1,9 +1,9 @@
 /* ========================================================================
- * Bootstrap: tooltip.js v3.3.6
+ * 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.6'
+  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
     })
   }
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js b/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js
index fae36ed..db76596 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js
@@ -1,8 +1,8 @@
 /* ========================================================================
- * Bootstrap: transition.js v3.3.6
+ * 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)
  * ======================================================================== */
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less b/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less
index 1c04778..f0aa08f 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less
@@ -1,6 +1,6 @@
 /*!
- * Bootstrap v3.3.6 (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)
  */
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/button-groups.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/button-groups.less b/tapestry-webresources/src/test/webapp/bootstrap/less/button-groups.less
index 293245a..16db0c6 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/button-groups.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/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);

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less b/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less
index e8b071a..9377d38 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less
@@ -181,7 +181,7 @@ input[type="search"] {
 // 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`.
+// Note that as of 9.3, iOS doesn't support `week`.
 
 @media screen and (-webkit-min-device-pixel-ratio: 0) {
   input[type="date"],

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less b/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less
index 5f73eec..d0763db 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less
@@ -29,7 +29,7 @@
 
     width: 100%;
     margin-bottom: 0;
-    
+
     &:focus {
       z-index: 3;
     }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/tab-focus.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/tab-focus.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/tab-focus.less
index 1f1f05a..d12d236 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/tab-focus.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/tab-focus.less
@@ -1,9 +1,9 @@
 // WebKit-style focus
 
 .tab-focus() {
-  // Default
-  outline: thin dotted;
-  // WebKit
+  // WebKit-specific. Other browsers will keep their default outline style.
+  // (Initially tried to also force default via `outline: initial`,
+  // but that seems to erroneously remove the outline in Firefox altogether.)
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less b/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less
index 425eb5e..65aa3a8 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less
@@ -214,7 +214,7 @@
 }
 
 
-// Collapsable panels (aka, accordion)
+// Collapsible panels (aka, accordion)
 //
 // Wrap a series of panels in `.panel-group` to turn them into an accordion with
 // the help of our collapse JavaScript plugin.

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less b/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less
index 1929bfc..64a29c6 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less
@@ -120,7 +120,7 @@ hr {
 
 // Only display content to screen readers
 //
-// See: http://a11yproject.com/posts/how-to-hide-content/
+// See: http://a11yproject.com/posts/how-to-hide-content
 
 .sr-only {
   position: absolute;

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less b/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less
index 8f51d91..fb61744 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less
@@ -1,6 +1,6 @@
 /*!
- * Bootstrap v3.3.6 (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)
  */
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d372f1e0/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less b/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less
index b057ef5..03b5498 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less
@@ -111,7 +111,7 @@
 //** Global background color for active items (e.g., navs or dropdowns).
 @component-active-bg:       @brand-primary;
 
-//** Width of the `border` for generating carets that indicator dropdowns.
+//** Width of the `border` for generating carets that indicate dropdowns.
 @caret-width-base:          4px;
 //** Carets increase slightly in size for larger components.
 @caret-width-large:         5px;


Mime
View raw message