You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2014/06/30 10:30:17 UTC
[1/6] git commit: add a task to update the Bootstrap resources
Repository: tapestry-5
Updated Branches:
refs/heads/master d2ccbe2df -> ef7f9c43e
add a task to update the Bootstrap resources
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/1a4e8b08
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/1a4e8b08
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/1a4e8b08
Branch: refs/heads/master
Commit: 1a4e8b087393e7a35eaa0e790b92bc78b1c2f474
Parents: d2ccbe2
Author: Jochen Kemnade <jo...@eddyson.de>
Authored: Mon Jun 30 10:19:07 2014 +0200
Committer: Jochen Kemnade <jo...@eddyson.de>
Committed: Mon Jun 30 10:19:07 2014 +0200
----------------------------------------------------------------------
build.gradle | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1a4e8b08/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index e8948fc..1869f64 100755
--- a/build.gradle
+++ b/build.gradle
@@ -572,3 +572,44 @@ boolean checkJDK() {
true
}
}
+
+task updateBootstrap << {
+ def bootstrapVersion = '3.2.0'
+ def target = new File(temporaryDir, 'bootstrap.zip')
+ ant.get(src: "https://github.com/twbs/bootstrap/archive/v${bootstrapVersion}.zip", dest: target)
+
+ def adjustDirectory = {
+ def relativePath = it.relativePath
+ if (relativePath.pathString.contains('/dist/')){
+ relativePath = new RelativePath(!it.file.isDirectory(), relativePath.segments[2..-1] as String[])
+ } else {
+ relativePath = new RelativePath(!it.file.isDirectory(), relativePath.segments[1..-1] as String[])
+ }
+ println "copying $it.relativePath to $relativePath"
+ it.relativePath = relativePath
+
+ }
+
+ copy {
+ from(zipTree(target)){
+ include('*/js/*.js')
+ include('*/dist/fonts/*')
+ include('*/dist/css/bootstrap.css')
+ include('*/dist/css/bootstrap-theme.css')
+
+ eachFile adjustDirectory
+ }
+ into('tapestry-core/src/main/resources/META-INF/assets/tapestry5/bootstrap/')
+ }
+
+ copy {
+ from(zipTree(target)){
+ include('*/js/*.js')
+ include('*/dist/fonts/*')
+ include('*/less/**/*.less')
+
+ eachFile adjustDirectory
+ }
+ into('tapestry-webresources/src/test/webapp/bootstrap/')
+ }
+}
\ No newline at end of file
[6/6] git commit: update Bootstrap to 3.2.0
Posted by jk...@apache.org.
update Bootstrap to 3.2.0
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/ef7f9c43
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/ef7f9c43
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/ef7f9c43
Branch: refs/heads/master
Commit: ef7f9c43ec4f8a4a7e76383c1877215e17d972a9
Parents: 1a4e8b0
Author: Jochen Kemnade <jo...@eddyson.de>
Authored: Mon Jun 30 10:29:50 2014 +0200
Committer: Jochen Kemnade <jo...@eddyson.de>
Committed: Mon Jun 30 10:29:50 2014 +0200
----------------------------------------------------------------------
.../tapestry5/bootstrap/css/bootstrap-theme.css | 97 +-
.../tapestry5/bootstrap/css/bootstrap.css | 5062 ++++++++++--------
.../assets/tapestry5/bootstrap/js/affix.js | 33 +-
.../assets/tapestry5/bootstrap/js/alert.js | 16 +-
.../assets/tapestry5/bootstrap/js/button.js | 19 +-
.../assets/tapestry5/bootstrap/js/carousel.js | 80 +-
.../assets/tapestry5/bootstrap/js/collapse.js | 44 +-
.../assets/tapestry5/bootstrap/js/dropdown.js | 30 +-
.../assets/tapestry5/bootstrap/js/modal.js | 95 +-
.../assets/tapestry5/bootstrap/js/popover.js | 17 +-
.../assets/tapestry5/bootstrap/js/scrollspy.js | 63 +-
.../assets/tapestry5/bootstrap/js/tab.js | 19 +-
.../assets/tapestry5/bootstrap/js/tooltip.js | 172 +-
.../assets/tapestry5/bootstrap/js/transition.js | 25 +-
.../src/test/webapp/bootstrap/js/affix.js | 33 +-
.../src/test/webapp/bootstrap/js/alert.js | 16 +-
.../src/test/webapp/bootstrap/js/button.js | 19 +-
.../src/test/webapp/bootstrap/js/carousel.js | 80 +-
.../src/test/webapp/bootstrap/js/collapse.js | 44 +-
.../src/test/webapp/bootstrap/js/dropdown.js | 30 +-
.../src/test/webapp/bootstrap/js/modal.js | 95 +-
.../src/test/webapp/bootstrap/js/popover.js | 17 +-
.../src/test/webapp/bootstrap/js/scrollspy.js | 63 +-
.../src/test/webapp/bootstrap/js/tab.js | 19 +-
.../src/test/webapp/bootstrap/js/tooltip.js | 172 +-
.../src/test/webapp/bootstrap/js/transition.js | 25 +-
.../src/test/webapp/bootstrap/less/alerts.less | 7 +-
.../src/test/webapp/bootstrap/less/badges.less | 36 +-
.../test/webapp/bootstrap/less/bootstrap.less | 5 +-
.../webapp/bootstrap/less/button-groups.less | 18 +-
.../src/test/webapp/bootstrap/less/buttons.less | 2 -
.../test/webapp/bootstrap/less/carousel.less | 19 +-
.../src/test/webapp/bootstrap/less/code.less | 7 +-
.../bootstrap/less/component-animations.less | 10 +-
.../test/webapp/bootstrap/less/dropdowns.less | 2 +
.../src/test/webapp/bootstrap/less/forms.less | 186 +-
.../test/webapp/bootstrap/less/glyphicons.less | 10 +-
.../webapp/bootstrap/less/input-groups.less | 8 +-
.../test/webapp/bootstrap/less/jumbotron.less | 4 +
.../src/test/webapp/bootstrap/less/labels.less | 2 +-
.../test/webapp/bootstrap/less/list-group.less | 23 +-
.../src/test/webapp/bootstrap/less/mixins.less | 960 +---
.../webapp/bootstrap/less/mixins/alerts.less | 14 +
.../less/mixins/background-variant.less | 8 +
.../bootstrap/less/mixins/border-radius.less | 18 +
.../webapp/bootstrap/less/mixins/buttons.less | 50 +
.../bootstrap/less/mixins/center-block.less | 7 +
.../webapp/bootstrap/less/mixins/clearfix.less | 22 +
.../webapp/bootstrap/less/mixins/forms.less | 81 +
.../webapp/bootstrap/less/mixins/gradients.less | 59 +
.../bootstrap/less/mixins/grid-framework.less | 91 +
.../test/webapp/bootstrap/less/mixins/grid.less | 122 +
.../webapp/bootstrap/less/mixins/hide-text.less | 21 +
.../webapp/bootstrap/less/mixins/image.less | 34 +
.../webapp/bootstrap/less/mixins/labels.less | 12 +
.../bootstrap/less/mixins/list-group.less | 29 +
.../bootstrap/less/mixins/nav-divider.less | 10 +
.../less/mixins/nav-vertical-align.less | 9 +
.../webapp/bootstrap/less/mixins/opacity.less | 8 +
.../bootstrap/less/mixins/pagination.less | 23 +
.../webapp/bootstrap/less/mixins/panels.less | 24 +
.../bootstrap/less/mixins/progress-bar.less | 10 +
.../bootstrap/less/mixins/reset-filter.less | 8 +
.../webapp/bootstrap/less/mixins/resize.less | 6 +
.../less/mixins/responsive-visibility.less | 15 +
.../test/webapp/bootstrap/less/mixins/size.less | 10 +
.../webapp/bootstrap/less/mixins/tab-focus.less | 9 +
.../webapp/bootstrap/less/mixins/table-row.less | 28 +
.../bootstrap/less/mixins/text-emphasis.less | 8 +
.../bootstrap/less/mixins/text-overflow.less | 8 +
.../bootstrap/less/mixins/vendor-prefixes.less | 224 +
.../src/test/webapp/bootstrap/less/modals.less | 25 +-
.../src/test/webapp/bootstrap/less/navbar.less | 43 +-
.../src/test/webapp/bootstrap/less/navs.less | 2 +-
.../test/webapp/bootstrap/less/normalize.less | 40 +-
.../src/test/webapp/bootstrap/less/panels.less | 14 +-
.../test/webapp/bootstrap/less/popovers.less | 2 +-
.../webapp/bootstrap/less/progress-bars.less | 29 +-
.../webapp/bootstrap/less/responsive-embed.less | 34 +
.../bootstrap/less/responsive-utilities.less | 104 +-
.../test/webapp/bootstrap/less/scaffolding.less | 18 +-
.../src/test/webapp/bootstrap/less/tables.less | 8 +-
.../src/test/webapp/bootstrap/less/theme.less | 11 +
.../src/test/webapp/bootstrap/less/type.less | 44 +-
.../test/webapp/bootstrap/less/utilities.less | 1 +
.../test/webapp/bootstrap/less/variables.less | 63 +-
86 files changed, 5226 insertions(+), 3864 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 a406992..f860bbc 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,5 +1,5 @@
/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Bootstrap v3.2.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -36,6 +36,8 @@
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+ background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -53,8 +55,15 @@
background-color: #e0e0e0;
border-color: #dbdbdb;
}
+.btn-default:disabled,
+.btn-default[disabled] {
+ background-color: #e0e0e0;
+ background-image: none;
+}
.btn-primary {
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -71,8 +80,15 @@
background-color: #2d6ca2;
border-color: #2b669a;
}
+.btn-primary:disabled,
+.btn-primary[disabled] {
+ background-color: #2d6ca2;
+ background-image: none;
+}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -89,8 +105,15 @@
background-color: #419641;
border-color: #3e8f3e;
}
+.btn-success:disabled,
+.btn-success[disabled] {
+ background-color: #419641;
+ background-image: none;
+}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -107,8 +130,15 @@
background-color: #2aabd2;
border-color: #28a4c9;
}
+.btn-info:disabled,
+.btn-info[disabled] {
+ background-color: #2aabd2;
+ background-image: none;
+}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -125,8 +155,15 @@
background-color: #eb9316;
border-color: #e38d13;
}
+.btn-warning:disabled,
+.btn-warning[disabled] {
+ background-color: #eb9316;
+ background-image: none;
+}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -143,6 +180,11 @@
background-color: #c12e2a;
border-color: #b92c28;
}
+.btn-danger:disabled,
+.btn-danger[disabled] {
+ background-color: #c12e2a;
+ background-image: none;
+}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
@@ -152,6 +194,8 @@
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
@@ -161,12 +205,16 @@
.dropdown-menu > .active > a:focus {
background-color: #357ebd;
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+ background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -177,6 +225,8 @@
}
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+ background-image: -o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f3f3f3));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
background-repeat: repeat-x;
@@ -189,6 +239,8 @@
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
+ background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -196,6 +248,8 @@
}
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
+ background-image: -o-linear-gradient(top, #222 0%, #282828 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#222), to(#282828));
background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
background-repeat: repeat-x;
@@ -218,6 +272,8 @@
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
@@ -225,6 +281,8 @@
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
@@ -232,6 +290,8 @@
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
@@ -239,6 +299,8 @@
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+ background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
@@ -246,40 +308,57 @@
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+ background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
+.progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
@@ -290,6 +369,8 @@
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #3071a9;
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
background-repeat: repeat-x;
@@ -301,42 +382,56 @@
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+ background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
[2/6] update Bootstrap to 3.2.0
Posted by jk...@apache.org.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/gradients.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/gradients.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/gradients.less
new file mode 100644
index 0000000..0b88a89
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/gradients.less
@@ -0,0 +1,59 @@
+// Gradients
+
+#gradient {
+
+ // Horizontal gradient, from left to right
+ //
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
+ // Color stops are not available in IE9 and below.
+ .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
+ background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
+ }
+
+ // Vertical gradient, from top to bottom
+ //
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
+ // Color stops are not available in IE9 and below.
+ .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
+ }
+
+ .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
+ background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ }
+ .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
+ background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
+ background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .radial(@inner-color: #555; @outer-color: #333) {
+ background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
+ background-image: radial-gradient(circle, @inner-color, @outer-color);
+ background-repeat: no-repeat;
+ }
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid-framework.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid-framework.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid-framework.less
new file mode 100644
index 0000000..6317854
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid-framework.less
@@ -0,0 +1,91 @@
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `@grid-columns`.
+
+.make-grid-columns() {
+ // Common styles for all sizes of grid columns, widths 1-12
+ .col(@index) when (@index = 1) { // initial
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
+ .col((@index + 1), @item);
+ }
+ .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
+ .col((@index + 1), ~"@{list}, @{item}");
+ }
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
+ @{list} {
+ position: relative;
+ // Prevent columns from collapsing when empty
+ min-height: 1px;
+ // Inner gutter via padding
+ padding-left: (@grid-gutter-width / 2);
+ padding-right: (@grid-gutter-width / 2);
+ }
+ }
+ .col(1); // kickstart it
+}
+
+.float-grid-columns(@class) {
+ .col(@index) when (@index = 1) { // initial
+ @item: ~".col-@{class}-@{index}";
+ .col((@index + 1), @item);
+ }
+ .col(@index, @list) when (@index =< @grid-columns) { // general
+ @item: ~".col-@{class}-@{index}";
+ .col((@index + 1), ~"@{list}, @{item}");
+ }
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
+ @{list} {
+ float: left;
+ }
+ }
+ .col(1); // kickstart it
+}
+
+.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
+ .col-@{class}-@{index} {
+ width: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
+ .col-@{class}-push-@{index} {
+ left: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
+ .col-@{class}-push-0 {
+ left: auto;
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
+ .col-@{class}-pull-@{index} {
+ right: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
+ .col-@{class}-pull-0 {
+ right: auto;
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = offset) {
+ .col-@{class}-offset-@{index} {
+ margin-left: percentage((@index / @grid-columns));
+ }
+}
+
+// Basic looping in LESS
+.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
+ .calc-grid-column(@index, @class, @type);
+ // next iteration
+ .loop-grid-columns((@index - 1), @class, @type);
+}
+
+// Create grid for specific class
+.make-grid(@class) {
+ .float-grid-columns(@class);
+ .loop-grid-columns(@grid-columns, @class, width);
+ .loop-grid-columns(@grid-columns, @class, pull);
+ .loop-grid-columns(@grid-columns, @class, push);
+ .loop-grid-columns(@grid-columns, @class, offset);
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid.less
new file mode 100644
index 0000000..cae5eaf
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid.less
@@ -0,0 +1,122 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+// Centered container element
+.container-fixed(@gutter: @grid-gutter-width) {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+ &:extend(.clearfix all);
+}
+
+// Creates a wrapper for a series of columns
+.make-row(@gutter: @grid-gutter-width) {
+ margin-left: (@gutter / -2);
+ margin-right: (@gutter / -2);
+ &:extend(.clearfix all);
+}
+
+// Generate the extra small columns
+.make-xs-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+}
+.make-xs-column-offset(@columns) {
+ margin-left: percentage((@columns / @grid-columns));
+}
+.make-xs-column-push(@columns) {
+ left: percentage((@columns / @grid-columns));
+}
+.make-xs-column-pull(@columns) {
+ right: percentage((@columns / @grid-columns));
+}
+
+// Generate the small columns
+.make-sm-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-sm-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-offset(@columns) {
+ @media (min-width: @screen-sm-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-push(@columns) {
+ @media (min-width: @screen-sm-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-pull(@columns) {
+ @media (min-width: @screen-sm-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
+
+// Generate the medium columns
+.make-md-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-md-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-offset(@columns) {
+ @media (min-width: @screen-md-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-push(@columns) {
+ @media (min-width: @screen-md-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-pull(@columns) {
+ @media (min-width: @screen-md-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
+
+// Generate the large columns
+.make-lg-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-lg-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-offset(@columns) {
+ @media (min-width: @screen-lg-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-push(@columns) {
+ @media (min-width: @screen-lg-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-pull(@columns) {
+ @media (min-width: @screen-lg-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/hide-text.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/hide-text.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/hide-text.less
new file mode 100644
index 0000000..c2315e5
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/hide-text.less
@@ -0,0 +1,21 @@
+// CSS image replacement
+//
+// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
+// mixins being reused as classes with the same name, this doesn't hold up. As
+// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
+//
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+
+// Deprecated as of v3.0.1 (will be removed in v4)
+.hide-text() {
+ font: ~"0/0" a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+// New mixin to use as of v3.0.1
+.text-hide() {
+ .hide-text();
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/image.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/image.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/image.less
new file mode 100644
index 0000000..5d2cccb
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/image.less
@@ -0,0 +1,34 @@
+// Image Mixins
+// - Responsive image
+// - Retina image
+
+
+// Responsive image
+//
+// Keep images from scaling beyond the width of their parents.
+.img-responsive(@display: block) {
+ display: @display;
+ width: 100% \9; // Force IE10 and below to size SVG images correctly
+ max-width: 100%; // Part 1: Set a maximum relative to the parent
+ height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
+}
+
+
+// Retina image
+//
+// Short retina mixin for setting background-image and -size. Note that the
+// spelling of `min--moz-device-pixel-ratio` is intentional.
+.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
+ background-image: url("@{file-1x}");
+
+ @media
+ only screen and (-webkit-min-device-pixel-ratio: 2),
+ only screen and ( min--moz-device-pixel-ratio: 2),
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
+ only screen and ( min-device-pixel-ratio: 2),
+ only screen and ( min-resolution: 192dpi),
+ only screen and ( min-resolution: 2dppx) {
+ background-image: url("@{file-2x}");
+ background-size: @width-1x @height-1x;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/labels.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/labels.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/labels.less
new file mode 100644
index 0000000..6f9e490
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/labels.less
@@ -0,0 +1,12 @@
+// Labels
+
+.label-variant(@color) {
+ background-color: @color;
+
+ &[href] {
+ &:hover,
+ &:focus {
+ background-color: darken(@color, 10%);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/list-group.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/list-group.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/list-group.less
new file mode 100644
index 0000000..8b5b065
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/list-group.less
@@ -0,0 +1,29 @@
+// List Groups
+
+.list-group-item-variant(@state; @background; @color) {
+ .list-group-item-@{state} {
+ color: @color;
+ background-color: @background;
+
+ a& {
+ color: @color;
+
+ .list-group-item-heading {
+ color: inherit;
+ }
+
+ &:hover,
+ &:focus {
+ color: @color;
+ background-color: darken(@background, 5%);
+ }
+ &.active,
+ &.active:hover,
+ &.active:focus {
+ color: #fff;
+ background-color: @color;
+ border-color: @color;
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-divider.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-divider.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-divider.less
new file mode 100644
index 0000000..feb1e9e
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-divider.less
@@ -0,0 +1,10 @@
+// Horizontal dividers
+//
+// Dividers (basically an hr) within dropdowns and nav lists
+
+.nav-divider(@color: #e5e5e5) {
+ height: 1px;
+ margin: ((@line-height-computed / 2) - 1) 0;
+ overflow: hidden;
+ background-color: @color;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-vertical-align.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-vertical-align.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-vertical-align.less
new file mode 100644
index 0000000..d458c78
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-vertical-align.less
@@ -0,0 +1,9 @@
+// Navbar vertical align
+//
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
+
+.navbar-vertical-align(@element-height) {
+ margin-top: ((@navbar-height - @element-height) / 2);
+ margin-bottom: ((@navbar-height - @element-height) / 2);
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/opacity.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/opacity.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/opacity.less
new file mode 100644
index 0000000..33ed25c
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/opacity.less
@@ -0,0 +1,8 @@
+// Opacity
+
+.opacity(@opacity) {
+ opacity: @opacity;
+ // IE8 filter
+ @opacity-ie: (@opacity * 100);
+ filter: ~"alpha(opacity=@{opacity-ie})";
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/pagination.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/pagination.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/pagination.less
new file mode 100644
index 0000000..7deb505
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/pagination.less
@@ -0,0 +1,23 @@
+// Pagination
+
+.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
+ > li {
+ > a,
+ > span {
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ }
+ &:first-child {
+ > a,
+ > span {
+ .border-left-radius(@border-radius);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ .border-right-radius(@border-radius);
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/panels.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/panels.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/panels.less
new file mode 100644
index 0000000..49ee10d
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/panels.less
@@ -0,0 +1,24 @@
+// Panels
+
+.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
+ border-color: @border;
+
+ & > .panel-heading {
+ color: @heading-text-color;
+ background-color: @heading-bg-color;
+ border-color: @heading-border;
+
+ + .panel-collapse > .panel-body {
+ border-top-color: @border;
+ }
+ .badge {
+ color: @heading-bg-color;
+ background-color: @heading-text-color;
+ }
+ }
+ & > .panel-footer {
+ + .panel-collapse > .panel-body {
+ border-bottom-color: @border;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/progress-bar.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/progress-bar.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/progress-bar.less
new file mode 100644
index 0000000..f07996a
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/progress-bar.less
@@ -0,0 +1,10 @@
+// Progress bars
+
+.progress-bar-variant(@color) {
+ background-color: @color;
+
+ // Deprecated parent class requirement as of v3.2.0
+ .progress-striped & {
+ #gradient > .striped();
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/reset-filter.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/reset-filter.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/reset-filter.less
new file mode 100644
index 0000000..68cdb5e
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/reset-filter.less
@@ -0,0 +1,8 @@
+// Reset filters for IE
+//
+// When you need to remove a gradient background, do not forget to use this to reset
+// the IE filter for IE9 and below.
+
+.reset-filter() {
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/resize.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/resize.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/resize.less
new file mode 100644
index 0000000..3acd3af
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/resize.less
@@ -0,0 +1,6 @@
+// Resize anything
+
+.resizable(@direction) {
+ resize: @direction; // Options: horizontal, vertical, both
+ overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/responsive-visibility.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/responsive-visibility.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/responsive-visibility.less
new file mode 100644
index 0000000..f7951c3
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/responsive-visibility.less
@@ -0,0 +1,15 @@
+// Responsive utilities
+
+//
+// More easily include all the states for responsive-utilities.less.
+.responsive-visibility() {
+ display: block !important;
+ table& { display: table; }
+ tr& { display: table-row !important; }
+ th&,
+ td& { display: table-cell !important; }
+}
+
+.responsive-invisibility() {
+ display: none !important;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/size.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/size.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/size.less
new file mode 100644
index 0000000..a8be650
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/size.less
@@ -0,0 +1,10 @@
+// Sizing shortcuts
+
+.size(@width; @height) {
+ width: @width;
+ height: @height;
+}
+
+.square(@size) {
+ .size(@size; @size);
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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
new file mode 100644
index 0000000..1f1f05a
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/tab-focus.less
@@ -0,0 +1,9 @@
+// WebKit-style focus
+
+.tab-focus() {
+ // Default
+ outline: thin dotted;
+ // WebKit
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/table-row.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/table-row.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/table-row.less
new file mode 100644
index 0000000..0f287f1
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/table-row.less
@@ -0,0 +1,28 @@
+// Tables
+
+.table-row-variant(@state; @background) {
+ // Exact selectors below required to override `.table-striped` and prevent
+ // inheritance to nested tables.
+ .table > thead > tr,
+ .table > tbody > tr,
+ .table > tfoot > tr {
+ > td.@{state},
+ > th.@{state},
+ &.@{state} > td,
+ &.@{state} > th {
+ background-color: @background;
+ }
+ }
+
+ // Hover states for `.table-hover`
+ // Note: this is not available for cells or rows within `thead` or `tfoot`.
+ .table-hover > tbody > tr {
+ > td.@{state}:hover,
+ > th.@{state}:hover,
+ &.@{state}:hover > td,
+ &:hover > .@{state},
+ &.@{state}:hover > th {
+ background-color: darken(@background, 5%);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-emphasis.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-emphasis.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-emphasis.less
new file mode 100644
index 0000000..0868ef9
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-emphasis.less
@@ -0,0 +1,8 @@
+// Typography
+
+.text-emphasis-variant(@color) {
+ color: @color;
+ a&:hover {
+ color: darken(@color, 10%);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-overflow.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-overflow.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-overflow.less
new file mode 100644
index 0000000..c11ad2f
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-overflow.less
@@ -0,0 +1,8 @@
+// Text overflow
+// Requires inline-block or block for proper styling
+
+.text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/vendor-prefixes.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/vendor-prefixes.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/vendor-prefixes.less
new file mode 100644
index 0000000..e2008c8
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/vendor-prefixes.less
@@ -0,0 +1,224 @@
+// Vendor Prefixes
+//
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
+// Autoprefixer in our Gruntfile. They will be removed in v4.
+
+// - Animations
+// - Backface visibility
+// - Box shadow
+// - Box sizing
+// - Content columns
+// - Hyphens
+// - Placeholder text
+// - Transformations
+// - Transitions
+// - User Select
+
+
+// Animations
+.animation(@animation) {
+ -webkit-animation: @animation;
+ -o-animation: @animation;
+ animation: @animation;
+}
+.animation-name(@name) {
+ -webkit-animation-name: @name;
+ animation-name: @name;
+}
+.animation-duration(@duration) {
+ -webkit-animation-duration: @duration;
+ animation-duration: @duration;
+}
+.animation-timing-function(@timing-function) {
+ -webkit-animation-timing-function: @timing-function;
+ animation-timing-function: @timing-function;
+}
+.animation-delay(@delay) {
+ -webkit-animation-delay: @delay;
+ animation-delay: @delay;
+}
+.animation-iteration-count(@iteration-count) {
+ -webkit-animation-iteration-count: @iteration-count;
+ animation-iteration-count: @iteration-count;
+}
+.animation-direction(@direction) {
+ -webkit-animation-direction: @direction;
+ animation-direction: @direction;
+}
+.animation-fill-mode(@fill-mode) {
+ -webkit-animation-fill-mode: @fill-mode;
+ animation-fill-mode: @fill-mode;
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden`
+
+.backface-visibility(@visibility){
+ -webkit-backface-visibility: @visibility;
+ -moz-backface-visibility: @visibility;
+ backface-visibility: @visibility;
+}
+
+// Drop shadows
+//
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
+// supported browsers that have box shadow capabilities now support it.
+
+.box-shadow(@shadow) {
+ -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
+ box-shadow: @shadow;
+}
+
+// Box sizing
+.box-sizing(@boxmodel) {
+ -webkit-box-sizing: @boxmodel;
+ -moz-box-sizing: @boxmodel;
+ box-sizing: @boxmodel;
+}
+
+// CSS3 Content Columns
+.content-columns(@column-count; @column-gap: @grid-gutter-width) {
+ -webkit-column-count: @column-count;
+ -moz-column-count: @column-count;
+ column-count: @column-count;
+ -webkit-column-gap: @column-gap;
+ -moz-column-gap: @column-gap;
+ column-gap: @column-gap;
+}
+
+// Optional hyphenation
+.hyphens(@mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: @mode;
+ -moz-hyphens: @mode;
+ -ms-hyphens: @mode; // IE10+
+ -o-hyphens: @mode;
+ hyphens: @mode;
+}
+
+// Placeholder text
+.placeholder(@color: @input-color-placeholder) {
+ &::-moz-placeholder { color: @color; // Firefox
+ opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
+ &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
+ &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
+}
+
+// Transformations
+.scale(@ratio) {
+ -webkit-transform: scale(@ratio);
+ -ms-transform: scale(@ratio); // IE9 only
+ -o-transform: scale(@ratio);
+ transform: scale(@ratio);
+}
+.scale(@ratioX; @ratioY) {
+ -webkit-transform: scale(@ratioX, @ratioY);
+ -ms-transform: scale(@ratioX, @ratioY); // IE9 only
+ -o-transform: scale(@ratioX, @ratioY);
+ transform: scale(@ratioX, @ratioY);
+}
+.scaleX(@ratio) {
+ -webkit-transform: scaleX(@ratio);
+ -ms-transform: scaleX(@ratio); // IE9 only
+ -o-transform: scaleX(@ratio);
+ transform: scaleX(@ratio);
+}
+.scaleY(@ratio) {
+ -webkit-transform: scaleY(@ratio);
+ -ms-transform: scaleY(@ratio); // IE9 only
+ -o-transform: scaleY(@ratio);
+ transform: scaleY(@ratio);
+}
+.skew(@x; @y) {
+ -webkit-transform: skewX(@x) skewY(@y);
+ -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
+ -o-transform: skewX(@x) skewY(@y);
+ transform: skewX(@x) skewY(@y);
+}
+.translate(@x; @y) {
+ -webkit-transform: translate(@x, @y);
+ -ms-transform: translate(@x, @y); // IE9 only
+ -o-transform: translate(@x, @y);
+ transform: translate(@x, @y);
+}
+.translate3d(@x; @y; @z) {
+ -webkit-transform: translate3d(@x, @y, @z);
+ transform: translate3d(@x, @y, @z);
+}
+.rotate(@degrees) {
+ -webkit-transform: rotate(@degrees);
+ -ms-transform: rotate(@degrees); // IE9 only
+ -o-transform: rotate(@degrees);
+ transform: rotate(@degrees);
+}
+.rotateX(@degrees) {
+ -webkit-transform: rotateX(@degrees);
+ -ms-transform: rotateX(@degrees); // IE9 only
+ -o-transform: rotateX(@degrees);
+ transform: rotateX(@degrees);
+}
+.rotateY(@degrees) {
+ -webkit-transform: rotateY(@degrees);
+ -ms-transform: rotateY(@degrees); // IE9 only
+ -o-transform: rotateY(@degrees);
+ transform: rotateY(@degrees);
+}
+.perspective(@perspective) {
+ -webkit-perspective: @perspective;
+ -moz-perspective: @perspective;
+ perspective: @perspective;
+}
+.perspective-origin(@perspective) {
+ -webkit-perspective-origin: @perspective;
+ -moz-perspective-origin: @perspective;
+ perspective-origin: @perspective;
+}
+.transform-origin(@origin) {
+ -webkit-transform-origin: @origin;
+ -moz-transform-origin: @origin;
+ -ms-transform-origin: @origin; // IE9 only
+ transform-origin: @origin;
+}
+
+
+// Transitions
+
+.transition(@transition) {
+ -webkit-transition: @transition;
+ -o-transition: @transition;
+ transition: @transition;
+}
+.transition-property(@transition-property) {
+ -webkit-transition-property: @transition-property;
+ transition-property: @transition-property;
+}
+.transition-delay(@transition-delay) {
+ -webkit-transition-delay: @transition-delay;
+ transition-delay: @transition-delay;
+}
+.transition-duration(@transition-duration) {
+ -webkit-transition-duration: @transition-duration;
+ transition-duration: @transition-duration;
+}
+.transition-timing-function(@timing-function) {
+ -webkit-transition-timing-function: @timing-function;
+ transition-timing-function: @timing-function;
+}
+.transition-transform(@transition) {
+ -webkit-transition: -webkit-transform @transition;
+ -moz-transition: -moz-transform @transition;
+ -o-transition: -o-transform @transition;
+ transition: transform @transition;
+}
+
+
+// User select
+// For selecting text on the page
+
+.user-select(@select) {
+ -webkit-user-select: @select;
+ -moz-user-select: @select;
+ -ms-user-select: @select; // IE10+
+ user-select: @select;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less b/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less
index 21cdee0..6da50ba 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less
@@ -15,8 +15,7 @@
// Container that the modal scrolls within
.modal {
display: none;
- overflow: auto;
- overflow-y: scroll;
+ overflow: hidden;
position: fixed;
top: 0;
right: 0;
@@ -31,10 +30,14 @@
// When fading in the modal, animate it to slide down
&.fade .modal-dialog {
- .translate(0, -25%);
+ .translate3d(0, -25%, 0);
.transition-transform(~"0.3s ease-out");
}
- &.in .modal-dialog { .translate(0, 0)}
+ &.in .modal-dialog { .translate3d(0, 0, 0) }
+}
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
}
// Shell div to position the modal with bottom padding
@@ -54,7 +57,7 @@
.box-shadow(0 3px 9px rgba(0,0,0,.5));
background-clip: padding-box;
// Remove focus outline from opened modal
- outline: none;
+ outline: 0;
}
// Modal background
@@ -98,8 +101,7 @@
// Footer (for actions)
.modal-footer {
- margin-top: 15px;
- padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;
+ padding: @modal-inner-padding;
text-align: right; // right align buttons
border-top: 1px solid @modal-footer-border-color;
&:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
@@ -119,6 +121,15 @@
}
}
+// Measure scrollbar width for padding body during modal show/hide
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+
// Scale up the modal
@media (min-width: @screen-sm-min) {
// Automatically set modal's width for larger viewports
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less b/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less
index 8c4c210..55bfd29 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less
@@ -48,7 +48,6 @@
// content for the user's viewport.
.navbar-collapse {
- max-height: @navbar-collapse-max-height;
overflow-x: visible;
padding-right: @navbar-padding-horizontal;
padding-left: @navbar-padding-horizontal;
@@ -88,6 +87,17 @@
}
}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ .navbar-collapse {
+ max-height: @navbar-collapse-max-height;
+
+ @media (max-width: @screen-xs-min) and (orientation: landscape) {
+ max-height: 200px;
+ }
+ }
+}
+
// Both navbar header and collapse
//
@@ -131,6 +141,7 @@
right: 0;
left: 0;
z-index: @zindex-navbar-fixed;
+ .translate3d(0, 0, 0);
// Undo the rounded corners
@media (min-width: @grid-float-breakpoint) {
@@ -190,7 +201,7 @@
// We remove the `outline` here, but later compensate by attaching `:hover`
// styles to `:focus`.
&:focus {
- outline: none;
+ outline: 0;
}
// Bars
@@ -492,6 +503,20 @@
}
}
+ .btn-link {
+ color: @navbar-default-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-disabled-color;
+ }
+ }
+ }
}
// Inverse navbar
@@ -613,4 +638,18 @@
}
}
+ .btn-link {
+ color: @navbar-inverse-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-disabled-color;
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less b/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less
index 9e729b3..98a6430 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less
@@ -162,7 +162,7 @@
> li {
float: none;
- > a {
+ > a {
text-align: center;
margin-bottom: 5px;
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less b/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less
index 024e257..ce04b6a 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less
@@ -1,4 +1,4 @@
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
//
// 1. Set default font family to sans-serif.
@@ -24,7 +24,9 @@ body {
// ==========================================================================
//
-// Correct `block` display not defined in IE 8/9.
+// Correct `block` display not defined for any HTML5 element in IE 8/9.
+// Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
+// Correct `block` display not defined for `main` in IE 11.
//
article,
@@ -66,8 +68,8 @@ audio:not([controls]) {
}
//
-// Address `[hidden]` styling not present in IE 8/9.
-// Hide the `template` element in IE, Safari, and Firefox < 22.
+// Address `[hidden]` styling not present in IE 8/9/10.
+// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
//
[hidden],
@@ -99,7 +101,7 @@ a:hover {
// ==========================================================================
//
-// Address styling not present in IE 8/9, Safari 5, and Chrome.
+// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
//
abbr[title] {
@@ -107,7 +109,7 @@ abbr[title] {
}
//
-// Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
+// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
//
b,
@@ -116,7 +118,7 @@ strong {
}
//
-// Address styling not present in Safari 5 and Chrome.
+// Address styling not present in Safari and Chrome.
//
dfn {
@@ -125,7 +127,7 @@ dfn {
//
// Address variable `h1` font-size and margin within `section` and `article`
-// contexts in Firefox 4+, Safari 5, and Chrome.
+// contexts in Firefox 4+, Safari, and Chrome.
//
h1 {
@@ -174,7 +176,7 @@ sub {
// ==========================================================================
//
-// Remove border when inside `a` element in IE 8/9.
+// Remove border when inside `a` element in IE 8/9/10.
//
img {
@@ -182,7 +184,7 @@ img {
}
//
-// Correct overflow displayed oddly in IE 9.
+// Correct overflow not hidden in IE 9/10/11.
//
svg:not(:root) {
@@ -193,7 +195,7 @@ svg:not(:root) {
// ==========================================================================
//
-// Address margin not present in IE 8/9 and Safari 5.
+// Address margin not present in IE 8/9 and Safari.
//
figure {
@@ -242,7 +244,7 @@ samp {
// 1. Correct color not being inherited.
// Known issue: affects color of disabled elements.
// 2. Correct font properties not being inherited.
-// 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
+// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
//
button,
@@ -256,7 +258,7 @@ textarea {
}
//
-// Address `overflow` set to `hidden` in IE 8/9/10.
+// Address `overflow` set to `hidden` in IE 8/9/10/11.
//
button {
@@ -266,7 +268,7 @@ button {
//
// Address inconsistent `text-transform` inheritance for `button` and `select`.
// All other form control elements do not inherit `text-transform` values.
-// Correct `button` style inheritance in Firefox, IE 8+, and Opera
+// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
// Correct `select` style inheritance in Firefox.
//
@@ -345,8 +347,8 @@ input[type="number"]::-webkit-outer-spin-button {
}
//
-// 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
-// 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+// 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).
//
@@ -379,7 +381,7 @@ fieldset {
}
//
-// 1. Correct `color` not being inherited in IE 8/9.
+// 1. Correct `color` not being inherited in IE 8/9/10/11.
// 2. Remove padding so people aren't caught out if they zero out fieldsets.
//
@@ -389,7 +391,7 @@ legend {
}
//
-// Remove default vertical scrollbar in IE 8/9.
+// Remove default vertical scrollbar in IE 8/9/10/11.
//
textarea {
@@ -420,4 +422,4 @@ table {
td,
th {
padding: 0;
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 20dd149..2dc2131 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less
@@ -20,7 +20,7 @@
// Optional heading
.panel-heading {
- padding: 10px 15px;
+ padding: @panel-heading-padding;
border-bottom: 1px solid transparent;
.border-top-radius((@panel-border-radius - 1));
@@ -43,7 +43,7 @@
// Optional footer (stays gray in every modifier class)
.panel-footer {
- padding: 10px 15px;
+ padding: @panel-footer-padding;
background-color: @panel-footer-bg;
border-top: 1px solid @panel-inner-border;
.border-bottom-radius((@panel-border-radius - 1));
@@ -86,7 +86,9 @@
border-top-width: 0;
}
}
-
+.list-group + .panel-footer {
+ border-top-width: 0;
+}
// Tables in panels
//
@@ -95,7 +97,8 @@
.panel {
> .table,
- > .table-responsive > .table {
+ > .table-responsive > .table,
+ > .panel-collapse > .table {
margin-bottom: 0;
}
// Add border top radius for first one
@@ -199,7 +202,6 @@
.panel {
margin-bottom: 0;
border-radius: @panel-border-radius;
- overflow: hidden; // crop contents when collapsed
+ .panel {
margin-top: 5px;
}
@@ -207,7 +209,7 @@
.panel-heading {
border-bottom: 0;
- + .panel-collapse .panel-body {
+ + .panel-collapse > .panel-body {
border-top: 1px solid @panel-inner-border;
}
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less b/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less
index 696d74c..bf6af40 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less
@@ -37,7 +37,7 @@
line-height: 18px;
background-color: @popover-title-bg;
border-bottom: 1px solid darken(@popover-title-bg, 5%);
- border-radius: 5px 5px 0 0;
+ border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
}
.popover-content {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less b/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less
index 76c87be..3ac52a2 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less
@@ -48,16 +48,41 @@
}
// Striped bars
-.progress-striped .progress-bar {
+//
+// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar-striped` class, which you just add to an existing
+// `.progress-bar`.
+.progress-striped .progress-bar,
+.progress-bar-striped {
#gradient > .striped();
background-size: 40px 40px;
}
// Call animation for the active one
-.progress.active .progress-bar {
+//
+// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar.active` approach.
+.progress.active .progress-bar,
+.progress-bar.active {
.animation(progress-bar-stripes 2s linear infinite);
}
+// Account for lower percentages
+.progress-bar {
+ &[aria-valuenow="1"],
+ &[aria-valuenow="2"] {
+ min-width: 30px;
+ }
+
+ &[aria-valuenow="0"] {
+ color: @gray-light;
+ min-width: 30px;
+ background-color: transparent;
+ background-image: none;
+ box-shadow: none;
+ }
+}
+
// Variations
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-embed.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-embed.less b/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-embed.less
new file mode 100644
index 0000000..a884d49
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-embed.less
@@ -0,0 +1,34 @@
+// Embeds responsive
+//
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+
+ .embed-responsive-item,
+ iframe,
+ embed,
+ object {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 100%;
+ border: 0;
+ }
+
+ // Modifier class for 16:9 aspect ratio
+ &.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+ }
+
+ // Modifier class for 4:3 aspect ratio
+ &.embed-responsive-4by3 {
+ padding-bottom: 75%;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less b/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less
index 027a264..b1db31d 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less
@@ -14,7 +14,8 @@
// For more information, see the following:
//
// Issue: https://github.com/twbs/bootstrap/issues/10497
-// Docs: http://getbootstrap.com/getting-started/#browsers
+// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
+// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
@-ms-viewport {
@@ -23,6 +24,7 @@
// Visibility utilities
+// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
.visible-xs,
.visible-sm,
.visible-md,
@@ -30,26 +32,104 @@
.responsive-invisibility();
}
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important;
+}
+
.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
}
}
+.visible-xs-block {
+ @media (max-width: @screen-xs-max) {
+ display: block !important;
+ }
+}
+.visible-xs-inline {
+ @media (max-width: @screen-xs-max) {
+ display: inline !important;
+ }
+}
+.visible-xs-inline-block {
+ @media (max-width: @screen-xs-max) {
+ display: inline-block !important;
+ }
+}
+
.visible-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
+.visible-sm-block {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: block !important;
+ }
+}
+.visible-sm-inline {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: inline !important;
+ }
+}
+.visible-sm-inline-block {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: inline-block !important;
+ }
+}
+
.visible-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
}
}
+.visible-md-block {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: block !important;
+ }
+}
+.visible-md-inline {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: inline !important;
+ }
+}
+.visible-md-inline-block {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: inline-block !important;
+ }
+}
+
.visible-lg {
@media (min-width: @screen-lg-min) {
.responsive-visibility();
}
}
+.visible-lg-block {
+ @media (min-width: @screen-lg-min) {
+ display: block !important;
+ }
+}
+.visible-lg-inline {
+ @media (min-width: @screen-lg-min) {
+ display: inline !important;
+ }
+}
+.visible-lg-inline-block {
+ @media (min-width: @screen-lg-min) {
+ display: inline-block !important;
+ }
+}
.hidden-xs {
@media (max-width: @screen-xs-max) {
@@ -77,6 +157,7 @@
//
// Media queries are placed on the inside to be mixin-friendly.
+// Note: Deprecated .visible-print as of v3.2.0
.visible-print {
.responsive-invisibility();
@@ -84,6 +165,27 @@
.responsive-visibility();
}
}
+.visible-print-block {
+ display: none !important;
+
+ @media print {
+ display: block !important;
+ }
+}
+.visible-print-inline {
+ display: none !important;
+
+ @media print {
+ display: inline !important;
+ }
+}
+.visible-print-inline-block {
+ display: none !important;
+
+ @media print {
+ display: inline-block !important;
+ }
+}
.hidden-print {
@media print {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 fe29f2d..c1e270f 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less
@@ -20,7 +20,7 @@
// Body reset
html {
- font-size: 62.5%;
+ font-size: 10px;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
@@ -132,3 +132,19 @@ hr {
clip: rect(0,0,0,0);
border: 0;
}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+// Credit: HTML5 Boilerplate
+
+.sr-only-focusable {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less b/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less
index c41989c..2e1ef33 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less
@@ -4,7 +4,6 @@
table {
- max-width: 100%;
background-color: @table-bg;
}
th {
@@ -16,6 +15,7 @@ th {
.table {
width: 100%;
+ max-width: 100%;
margin-bottom: @line-height-computed;
// Cells
> thead,
@@ -168,12 +168,12 @@ table {
// by enabling horizontal scrolling. Only applies <768px. Everything above that
// will display normally.
-@media (max-width: @screen-xs-max) {
- .table-responsive {
+.table-responsive {
+ @media screen and (max-width: @screen-xs-max) {
width: 100%;
margin-bottom: (@line-height-computed * 0.75);
overflow-y: hidden;
- overflow-x: scroll;
+ overflow-x: auto;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid @table-border-color;
-webkit-overflow-scrolling: touch;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 6f957fb..b089424 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less
@@ -48,6 +48,12 @@
background-color: darken(@btn-color, 12%);
border-color: darken(@btn-color, 14%);
}
+
+ &:disabled,
+ &[disabled] {
+ background-color: darken(@btn-color, 12%);
+ background-image: none;
+ }
}
// Common styles
@@ -191,6 +197,11 @@
.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }
.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }
+// Reset the striped class because our mixins don't do multiple gradients and
+// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
+.progress-bar-striped {
+ #gradient > .striped();
+}
//
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/type.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/type.less b/tapestry-webresources/src/test/webapp/bootstrap/less/type.less
index 5e2a219..9b1e48b 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/type.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/type.less
@@ -62,7 +62,7 @@ p {
.lead {
margin-bottom: @line-height-computed;
font-size: floor((@font-size-base * 1.15));
- font-weight: 200;
+ font-weight: 300;
line-height: 1.4;
@media (min-width: @screen-sm-min) {
@@ -74,18 +74,34 @@ p {
// Emphasis & misc
// -------------------------
-// Ex: 14px base font * 85% = about 12px
+// Ex: (12px small font / 14px base font) * 100% = about 85%
small,
-.small { font-size: 85%; }
+.small {
+ font-size: floor((100% * @font-size-small / @font-size-base));
+}
// Undo browser default styling
-cite { font-style: normal; }
+cite {
+ font-style: normal;
+}
+
+mark,
+.mark {
+ background-color: @state-warning-bg;
+ padding: .2em;
+}
// Alignment
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-justify { text-align: justify; }
+.text-nowrap { white-space: nowrap; }
+
+// Transformation
+.text-lowercase { text-transform: lowercase; }
+.text-uppercase { text-transform: uppercase; }
+.text-capitalize { text-transform: capitalize; }
// Contextual colors
.text-muted {
@@ -141,7 +157,7 @@ cite { font-style: normal; }
// Lists
-// --------------------------------------------------
+// -------------------------
// Unordered and Ordered lists
ul,
@@ -195,24 +211,28 @@ dd {
// Defaults to being stacked without any of the below styles applied, until the
// grid breakpoint is reached (default of ~768px).
-@media (min-width: @grid-float-breakpoint) {
- .dl-horizontal {
+.dl-horizontal {
+ dd {
+ &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
+ }
+
+ @media (min-width: @grid-float-breakpoint) {
dt {
float: left;
- width: (@component-offset-horizontal - 20);
+ width: (@dl-horizontal-offset - 20);
clear: left;
text-align: right;
.text-overflow();
}
dd {
- margin-left: @component-offset-horizontal;
- &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
+ margin-left: @dl-horizontal-offset;
}
}
}
-// MISC
-// ----
+
+// Misc
+// -------------------------
// Abbreviations and acronyms
abbr[title],
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less b/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less
index a260312..c0becab 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less
@@ -53,4 +53,5 @@
.affix {
position: fixed;
+ .translate3d(0, 0, 0);
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 3846adc..582f0f8 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less
@@ -10,7 +10,7 @@
@gray-darker: lighten(#000, 13.5%); // #222
@gray-dark: lighten(#000, 20%); // #333
@gray: lighten(#000, 33.5%); // #555
-@gray-light: lighten(#000, 60%); // #999
+@gray-light: lighten(#000, 46.7%); // #777
@gray-lighter: lighten(#000, 93.5%); // #eee
@brand-primary: #428bca;
@@ -22,7 +22,7 @@
//== Scaffolding
//
-// ## Settings for some of the most global styles.
+//## Settings for some of the most global styles.
//** Background color for `<body>`.
@body-bg: #fff;
@@ -68,14 +68,18 @@
@headings-color: inherit;
-//-- Iconography
+//== Iconography
//
-//## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+//** Load fonts from this directory.
@icon-font-path: "../fonts/";
+//** File name for all font files.
@icon-font-name: "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
@icon-font-svg-id: "glyphicons_halflingsregular";
+
//== Components
//
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
@@ -232,7 +236,7 @@
//** Text color for headers within dropdown menus.
@dropdown-header-color: @gray-light;
-// Note: Deprecated @dropdown-caret-color as of v3.1.0
+//** Deprecated `@dropdown-caret-color` as of v3.1.0
@dropdown-caret-color: #000;
@@ -245,8 +249,8 @@
@zindex-navbar: 1000;
@zindex-dropdown: 1000;
-@zindex-popover: 1010;
-@zindex-tooltip: 1030;
+@zindex-popover: 1060;
+@zindex-tooltip: 1070;
@zindex-navbar-fixed: 1030;
@zindex-modal-background: 1040;
@zindex-modal: 1050;
@@ -257,27 +261,32 @@
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
// Extra small screen / phone
-// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1
+//** Deprecated `@screen-xs` as of v3.0.1
@screen-xs: 480px;
+//** Deprecated `@screen-xs-min` as of v3.2.0
@screen-xs-min: @screen-xs;
+//** Deprecated `@screen-phone` as of v3.0.1
@screen-phone: @screen-xs-min;
// Small screen / tablet
-// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1
+//** Deprecated `@screen-sm` as of v3.0.1
@screen-sm: 768px;
@screen-sm-min: @screen-sm;
+//** Deprecated `@screen-tablet` as of v3.0.1
@screen-tablet: @screen-sm-min;
// Medium screen / desktop
-// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1
+//** Deprecated `@screen-md` as of v3.0.1
@screen-md: 992px;
@screen-md-min: @screen-md;
+//** Deprecated `@screen-desktop` as of v3.0.1
@screen-desktop: @screen-md-min;
// Large screen / wide desktop
-// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1
+//** Deprecated `@screen-lg` as of v3.0.1
@screen-lg: 1200px;
@screen-lg-min: @screen-lg;
+//** Deprecated `@screen-lg-desktop` as of v3.0.1
@screen-lg-desktop: @screen-lg-min;
// So media queries don't overlap when required, provide a maximum
@@ -558,7 +567,7 @@
//##
//** Padding applied to the modal body
-@modal-inner-padding: 20px;
+@modal-inner-padding: 15px;
//** Padding applied to the modal title
@modal-title-padding: 15px;
@@ -643,17 +652,26 @@
//** List group border radius
@list-group-border-radius: @border-radius-base;
-//** Background color of single list elements on hover
+//** Background color of single list items on hover
@list-group-hover-bg: #f5f5f5;
-//** Text color of active list elements
+//** Text color of active list items
@list-group-active-color: @component-active-color;
-//** Background color of active list elements
+//** Background color of active list items
@list-group-active-bg: @component-active-bg;
//** Border color of active list elements
@list-group-active-border: @list-group-active-bg;
+//** Text color for content within active list items
@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
+//** Text color of disabled list items
+@list-group-disabled-color: @gray-light;
+//** Background color of disabled list items
+@list-group-disabled-bg: @gray-lighter;
+//** Text color for content within disabled list items
+@list-group-disabled-text-color: @list-group-disabled-color;
+
@list-group-link-color: #555;
+@list-group-link-hover-color: @list-group-link-color;
@list-group-link-heading-color: #333;
@@ -663,6 +681,8 @@
@panel-bg: #fff;
@panel-body-padding: 15px;
+@panel-heading-padding: 10px 15px;
+@panel-footer-padding: @panel-heading-padding;
@panel-border-radius: @border-radius-base;
//** Border color for elements within panels
@@ -802,6 +822,8 @@
//
//##
+//** Horizontal offset for forms and lists.
+@component-offset-horizontal: 180px;
//** Text muted color
@text-muted: @gray-light;
//** Abbreviations and acronyms border color
@@ -816,14 +838,9 @@
@blockquote-border-color: @gray-lighter;
//** Page header border color
@page-header-border-color: @gray-lighter;
-
-
-//== Miscellaneous
-//
-//##
-
+//** Width of horizontal description list titles
+@dl-horizontal-offset: @component-offset-horizontal;
//** Horizontal line color.
@hr-border: @gray-lighter;
-//** Horizontal offset for forms and lists.
-@component-offset-horizontal: 180px;
+
[3/6] update Bootstrap to 3.2.0
Posted by jk...@apache.org.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 23aa829..825e1b3 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: popover.js v3.1.1
+ * Bootstrap: popover.js v3.2.0
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -19,11 +19,13 @@
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
+ Popover.VERSION = '3.2.0'
+
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
placement: 'right',
trigger: 'click',
content: '',
- template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+ template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
})
@@ -44,7 +46,7 @@
var content = this.getContent()
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
- $tip.find('.popover-content')[ // we use append for html objects to maintain js events
+ $tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
](content)
@@ -70,7 +72,7 @@
}
Popover.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.arrow')
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
}
Popover.prototype.tip = function () {
@@ -82,9 +84,7 @@
// POPOVER PLUGIN DEFINITION
// =========================
- var old = $.fn.popover
-
- $.fn.popover = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.popover')
@@ -96,6 +96,9 @@
})
}
+ var old = $.fn.popover
+
+ $.fn.popover = Plugin
$.fn.popover.Constructor = Popover
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 4346c86..db23787 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: scrollspy.js v3.1.1
+ * Bootstrap: scrollspy.js v3.2.0
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,36 +14,48 @@
// ==========================
function ScrollSpy(element, options) {
- var href
var process = $.proxy(this.process, this)
- this.$element = $(element).is('body') ? $(window) : $(element)
this.$body = $('body')
- this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
+ this.$scrollElement = $(element).is('body') ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
- this.selector = (this.options.target
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
- || '') + ' .nav li > a'
- this.offsets = $([])
- this.targets = $([])
+ this.selector = (this.options.target || '') + ' .nav li > a'
+ this.offsets = []
+ this.targets = []
this.activeTarget = null
+ this.scrollHeight = 0
+ this.$scrollElement.on('scroll.bs.scrollspy', process)
this.refresh()
this.process()
}
+ ScrollSpy.VERSION = '3.2.0'
+
ScrollSpy.DEFAULTS = {
offset: 10
}
+ ScrollSpy.prototype.getScrollHeight = function () {
+ return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+ }
+
ScrollSpy.prototype.refresh = function () {
- var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
+ var offsetMethod = 'offset'
+ var offsetBase = 0
- this.offsets = $([])
- this.targets = $([])
+ if (!$.isWindow(this.$scrollElement[0])) {
+ offsetMethod = 'position'
+ offsetBase = this.$scrollElement.scrollTop()
+ }
+
+ this.offsets = []
+ this.targets = []
+ this.scrollHeight = this.getScrollHeight()
var self = this
- var $targets = this.$body
+
+ this.$body
.find(this.selector)
.map(function () {
var $el = $(this)
@@ -53,7 +65,7 @@
return ($href
&& $href.length
&& $href.is(':visible')
- && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
+ && [[$href[offsetMethod]().top + offsetBase, href]]) || null
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
@@ -64,15 +76,19 @@
ScrollSpy.prototype.process = function () {
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
- var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
- var maxScroll = scrollHeight - this.$scrollElement.height()
+ var scrollHeight = this.getScrollHeight()
+ var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
var offsets = this.offsets
var targets = this.targets
var activeTarget = this.activeTarget
var i
+ if (this.scrollHeight != scrollHeight) {
+ this.refresh()
+ }
+
if (scrollTop >= maxScroll) {
- return activeTarget != (i = targets.last()[0]) && this.activate(i)
+ return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
}
if (activeTarget && scrollTop <= offsets[0]) {
@@ -83,7 +99,7 @@
activeTarget != targets[i]
&& scrollTop >= offsets[i]
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
- && this.activate( targets[i] )
+ && this.activate(targets[i])
}
}
@@ -115,9 +131,7 @@
// SCROLLSPY PLUGIN DEFINITION
// ===========================
- var old = $.fn.scrollspy
-
- $.fn.scrollspy = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.scrollspy')
@@ -128,6 +142,9 @@
})
}
+ var old = $.fn.scrollspy
+
+ $.fn.scrollspy = Plugin
$.fn.scrollspy.Constructor = ScrollSpy
@@ -143,10 +160,10 @@
// SCROLLSPY DATA-API
// ==================
- $(window).on('load', function () {
+ $(window).on('load.bs.scrollspy.data-api', function () {
$('[data-spy="scroll"]').each(function () {
var $spy = $(this)
- $spy.scrollspy($spy.data())
+ Plugin.call($spy, $spy.data())
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 400cb7b..c0e1e46 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: tab.js v3.1.1
+ * Bootstrap: tab.js v3.2.0
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -17,6 +17,8 @@
this.element = $(element)
}
+ Tab.VERSION = '3.2.0'
+
Tab.prototype.show = function () {
var $this = this.element
var $ul = $this.closest('ul:not(.dropdown-menu)')
@@ -24,7 +26,7 @@
if (!selector) {
selector = $this.attr('href')
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
if ($this.parent('li').hasClass('active')) return
@@ -40,7 +42,7 @@
var $target = $(selector)
- this.activate($this.parent('li'), $ul)
+ this.activate($this.closest('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
type: 'shown.bs.tab',
@@ -79,7 +81,7 @@
transition ?
$active
- .one($.support.transition.end, next)
+ .one('bsTransitionEnd', next)
.emulateTransitionEnd(150) :
next()
@@ -90,9 +92,7 @@
// TAB PLUGIN DEFINITION
// =====================
- var old = $.fn.tab
-
- $.fn.tab = function ( option ) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tab')
@@ -102,6 +102,9 @@
})
}
+ var old = $.fn.tab
+
+ $.fn.tab = Plugin
$.fn.tab.Constructor = Tab
@@ -119,7 +122,7 @@
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
- $(this).tab('show')
+ Plugin.call($(this), 'show')
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f6c0a37..9cdb6c9 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: tooltip.js v3.1.1
+ * Bootstrap: tooltip.js v3.2.0
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
@@ -25,23 +25,30 @@
this.init('tooltip', element, options)
}
+ Tooltip.VERSION = '3.2.0'
+
Tooltip.DEFAULTS = {
animation: true,
placement: 'top',
selector: false,
- template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+ template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
- container: false
+ container: false,
+ viewport: {
+ selector: 'body',
+ padding: 0
+ }
}
Tooltip.prototype.init = function (type, element, options) {
- this.enabled = true
- this.type = type
- this.$element = $(element)
- this.options = this.getOptions(options)
+ this.enabled = true
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
var triggers = this.options.trigger.split(' ')
@@ -94,7 +101,12 @@
Tooltip.prototype.enter = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -109,7 +121,12 @@
Tooltip.prototype.leave = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -128,12 +145,17 @@
if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
- var that = this;
+ var inDom = $.contains(document.documentElement, this.$element[0])
+ if (e.isDefaultPrevented() || !inDom) return
+ var that = this
var $tip = this.tip()
+ var tipId = this.getUID(this.type)
+
this.setContent()
+ $tip.attr('id', tipId)
+ this.$element.attr('aria-describedby', tipId)
if (this.options.animation) $tip.addClass('fade')
@@ -149,6 +171,7 @@
.detach()
.css({ top: 0, left: 0, display: 'block' })
.addClass(placement)
+ .data('bs.' + this.type, this)
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
@@ -157,18 +180,14 @@
var actualHeight = $tip[0].offsetHeight
if (autoPlace) {
- var $parent = this.$element.parent()
-
var orgPlacement = placement
- var docScroll = document.documentElement.scrollTop || document.body.scrollTop
- var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
- var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
- var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
-
- placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
- placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
- placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
- placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
+ var $parent = this.$element.parent()
+ var parentDim = this.getPosition($parent)
+
+ placement = placement == 'bottom' && pos.top + pos.height + actualHeight - parentDim.scroll > parentDim.height ? 'top' :
+ placement == 'top' && pos.top - parentDim.scroll - actualHeight < 0 ? 'bottom' :
+ placement == 'right' && pos.right + actualWidth > parentDim.width ? 'left' :
+ placement == 'left' && pos.left - actualWidth < parentDim.left ? 'right' :
placement
$tip
@@ -179,22 +198,21 @@
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
this.applyPlacement(calculatedOffset, placement)
- this.hoverState = null
- var complete = function() {
+ var complete = function () {
that.$element.trigger('shown.bs.' + that.type)
+ that.hoverState = null
}
$.support.transition && this.$tip.hasClass('fade') ?
$tip
- .one($.support.transition.end, complete)
+ .one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
}
}
Tooltip.prototype.applyPlacement = function (offset, placement) {
- var replace
var $tip = this.tip()
var width = $tip[0].offsetWidth
var height = $tip[0].offsetHeight
@@ -228,29 +246,20 @@
var actualHeight = $tip[0].offsetHeight
if (placement == 'top' && actualHeight != height) {
- replace = true
offset.top = offset.top + height - actualHeight
}
- if (/bottom|top/.test(placement)) {
- var delta = 0
+ var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
- if (offset.left < 0) {
- delta = offset.left * -2
- offset.left = 0
+ if (delta.left) offset.left += delta.left
+ else offset.top += delta.top
- $tip.offset(offset)
+ var arrowDelta = delta.left ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
+ var arrowPosition = delta.left ? 'left' : 'top'
+ var arrowOffsetPosition = delta.left ? 'offsetWidth' : 'offsetHeight'
- actualWidth = $tip[0].offsetWidth
- actualHeight = $tip[0].offsetHeight
- }
-
- this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
- } else {
- this.replaceArrow(actualHeight - height, actualHeight, 'top')
- }
-
- if (replace) $tip.offset(offset)
+ $tip.offset(offset)
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], arrowPosition)
}
Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
@@ -270,6 +279,8 @@
var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type)
+ this.$element.removeAttr('aria-describedby')
+
function complete() {
if (that.hoverState != 'in') $tip.detach()
that.$element.trigger('hidden.bs.' + that.type)
@@ -283,7 +294,7 @@
$.support.transition && this.$tip.hasClass('fade') ?
$tip
- .one($.support.transition.end, complete)
+ .one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
@@ -294,7 +305,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', '')
}
}
@@ -303,12 +314,15 @@
return this.getTitle()
}
- Tooltip.prototype.getPosition = function () {
- var el = this.$element[0]
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
- width: el.offsetWidth,
- height: el.offsetHeight
- }, this.$element.offset())
+ Tooltip.prototype.getPosition = function ($element) {
+ $element = $element || this.$element
+ var el = $element[0]
+ var isBody = el.tagName == 'BODY'
+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
+ scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
+ width: isBody ? $(window).width() : $element.outerWidth(),
+ height: isBody ? $(window).height() : $element.outerHeight()
+ }, isBody ? { top: 0, left: 0 } : $element.offset())
}
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
@@ -316,6 +330,35 @@
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
+
+ }
+
+ Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
+ var delta = { top: 0, left: 0 }
+ if (!this.$viewport) return delta
+
+ var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
+ var viewportDimensions = this.getPosition(this.$viewport)
+
+ if (/right|left/.test(placement)) {
+ var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
+ var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
+ if (topEdgeOffset < viewportDimensions.top) { // top overflow
+ delta.top = viewportDimensions.top - topEdgeOffset
+ } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
+ delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
+ }
+ } else {
+ var leftEdgeOffset = pos.left - viewportPadding
+ var rightEdgeOffset = pos.left + viewportPadding + actualWidth
+ if (leftEdgeOffset < viewportDimensions.left) { // left overflow
+ delta.left = viewportDimensions.left - leftEdgeOffset
+ } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
+ delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
+ }
+ }
+
+ return delta
}
Tooltip.prototype.getTitle = function () {
@@ -329,12 +372,18 @@
return title
}
+ Tooltip.prototype.getUID = function (prefix) {
+ do prefix += ~~(Math.random() * 1000000)
+ while (document.getElementById(prefix))
+ return prefix
+ }
+
Tooltip.prototype.tip = function () {
- return this.$tip = this.$tip || $(this.options.template)
+ return (this.$tip = this.$tip || $(this.options.template))
}
Tooltip.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
}
Tooltip.prototype.validate = function () {
@@ -358,7 +407,15 @@
}
Tooltip.prototype.toggle = function (e) {
- var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
+ var self = this
+ if (e) {
+ self = $(e.currentTarget).data('bs.' + this.type)
+ if (!self) {
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
+ $(e.currentTarget).data('bs.' + this.type, self)
+ }
+ }
+
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
}
@@ -371,9 +428,7 @@
// TOOLTIP PLUGIN DEFINITION
// =========================
- var old = $.fn.tooltip
-
- $.fn.tooltip = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tooltip')
@@ -385,6 +440,9 @@
})
}
+ var old = $.fn.tooltip
+
+ $.fn.tooltip = Plugin
$.fn.tooltip.Constructor = Tooltip
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 efa8c17..83f85bf 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: transition.js v3.1.1
+ * Bootstrap: transition.js v3.2.0
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -17,10 +17,10 @@
var el = document.createElement('bootstrap')
var transEndEventNames = {
- 'WebkitTransition' : 'webkitTransitionEnd',
- 'MozTransition' : 'transitionend',
- 'OTransition' : 'oTransitionEnd otransitionend',
- 'transition' : 'transitionend'
+ WebkitTransition : 'webkitTransitionEnd',
+ MozTransition : 'transitionend',
+ OTransition : 'oTransitionEnd otransitionend',
+ transition : 'transitionend'
}
for (var name in transEndEventNames) {
@@ -34,8 +34,9 @@
// http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) {
- var called = false, $el = this
- $(this).one($.support.transition.end, function () { called = true })
+ var called = false
+ var $el = this
+ $(this).one('bsTransitionEnd', function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration)
return this
@@ -43,6 +44,16 @@
$(function () {
$.support.transition = transitionEnd()
+
+ if (!$.support.transition) return
+
+ $.event.special.bsTransitionEnd = {
+ bindType: $.support.transition.end,
+ delegateType: $.support.transition.end,
+ handle: function (e) {
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
+ }
+ }
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less b/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less
index 3eab066..df070b8 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less
@@ -33,12 +33,13 @@
}
}
-// Dismissable alerts
+// Dismissible alerts
//
// Expand the right padding and account for the close button's positioning.
-.alert-dismissable {
- padding-right: (@alert-padding + 20);
+.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
+.alert-dismissible {
+ padding-right: (@alert-padding + 20);
// Adjust close link position
.close {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less b/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less
index 56828ca..20624f3 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less
@@ -3,7 +3,7 @@
// --------------------------------------------------
-// Base classes
+// Base class
.badge {
display: inline-block;
min-width: 10px;
@@ -32,24 +32,24 @@
top: 0;
padding: 1px 5px;
}
-}
-// Hover state, but only for links
-a.badge {
- &:hover,
- &:focus {
- color: @badge-link-hover-color;
- text-decoration: none;
- cursor: pointer;
+ // Hover state, but only for links
+ a& {
+ &:hover,
+ &:focus {
+ color: @badge-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
}
-}
-// Account for counters in navs
-a.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
- color: @badge-active-color;
- background-color: @badge-active-bg;
-}
-.nav-pills > li > a > .badge {
- margin-left: 3px;
+ // Account for badges in navs
+ a.list-group-item.active > &,
+ .nav-pills > .active > a > & {
+ color: @badge-active-color;
+ background-color: @badge-active-bg;
+ }
+ .nav-pills > li > a > & {
+ margin-left: 3px;
+ }
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 b368b87..61b7747 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less
@@ -2,9 +2,10 @@
@import "variables.less";
@import "mixins.less";
-// Reset
+// Reset and dependencies
@import "normalize.less";
@import "print.less";
+@import "glyphicons.less";
// Core CSS
@import "scaffolding.less";
@@ -17,7 +18,6 @@
// Components
@import "component-animations.less";
-@import "glyphicons.less";
@import "dropdowns.less";
@import "button-groups.less";
@import "input-groups.less";
@@ -35,6 +35,7 @@
@import "media.less";
@import "list-group.less";
@import "panels.less";
+@import "responsive-embed.less";
@import "wells.less";
@import "close.less";
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 27eb796..7021ecd 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/button-groups.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/button-groups.less
@@ -20,7 +20,7 @@
}
&:focus {
// Remove focus outline when dropdown JS adds it after closing the menu
- outline: none;
+ outline: 0;
}
}
}
@@ -216,11 +216,25 @@
> .btn-group .btn {
width: 100%;
}
+
+ > .btn-group .dropdown-menu {
+ left: auto;
+ }
}
// Checkbox and radio options
+//
+// In order to support the browser's form validation feedback, powered by the
+// `required` attribute, we have to "hide" the inputs via `opacity`. We cannot
+// use `display: none;` or `visibility: hidden;` as that also hides the popover.
+// This way, we ensure a DOM element is visible to position the popover from.
+//
+// See https://github.com/twbs/bootstrap/pull/12794 for more.
+
[data-toggle="buttons"] > .btn > input[type="radio"],
[data-toggle="buttons"] > .btn > input[type="checkbox"] {
- display: none;
+ position: absolute;
+ z-index: -1;
+ .opacity(0);
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less b/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less
index d4fc156..492bdc6 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less
@@ -140,8 +140,6 @@
.btn-block {
display: block;
width: 100%;
- padding-left: 0;
- padding-right: 0;
}
// Vertically space out multiple block buttons
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less b/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less
index e3fb8a2..1644ddf 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less
@@ -28,7 +28,9 @@
> .active,
> .next,
- > .prev { display: block; }
+ > .prev {
+ display: block;
+ }
> .active {
left: 0;
@@ -91,7 +93,7 @@
// Hover/focus state
&:hover,
&:focus {
- outline: none;
+ outline: 0;
color: @carousel-control-color;
text-decoration: none;
.opacity(.9);
@@ -110,20 +112,22 @@
.icon-prev,
.glyphicon-chevron-left {
left: 50%;
+ margin-left: -10px;
}
.icon-next,
.glyphicon-chevron-right {
right: 50%;
+ margin-right: -10px;
}
.icon-prev,
.icon-next {
width: 20px;
height: 20px;
margin-top: -10px;
- margin-left: -10px;
font-family: serif;
}
+
.icon-prev {
&:before {
content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
@@ -213,9 +217,16 @@
width: 30px;
height: 30px;
margin-top: -15px;
- margin-left: -15px;
font-size: 30px;
}
+ .glyphicon-chevron-left,
+ .icon-prev {
+ margin-left: -15px;
+ }
+ .glyphicon-chevron-right,
+ .icon-next {
+ margin-right: -15px;
+ }
}
// Show and left align the captions
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/code.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/code.less b/tapestry-webresources/src/test/webapp/bootstrap/less/code.less
index 3eed26c..baa13df 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/code.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/code.less
@@ -17,7 +17,6 @@ code {
font-size: 90%;
color: @code-color;
background-color: @code-bg;
- white-space: nowrap;
border-radius: @border-radius-base;
}
@@ -29,6 +28,12 @@ kbd {
background-color: @kbd-bg;
border-radius: @border-radius-small;
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
+
+ kbd {
+ padding: 0;
+ font-size: 100%;
+ box-shadow: none;
+ }
}
// Blocks of code
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less b/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less
index 1efe45e..9400a0d 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less
@@ -5,7 +5,7 @@
// Heads up!
//
// We don't use the `.opacity()` mixin here since it causes a bug with text
-// fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552.
+// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
.fade {
opacity: 0;
@@ -17,10 +17,12 @@
.collapse {
display: none;
- &.in {
- display: block;
- }
+
+ &.in { display: block; }
+ tr&.in { display: table-row; }
+ tbody&.in { display: table-row-group; }
}
+
.collapsing {
position: relative;
height: 0;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less b/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less
index f165165..3eb7fc0 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less
@@ -38,6 +38,7 @@
margin: 2px 0 0; // override default ul
list-style: none;
font-size: @font-size-base;
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
background-color: @dropdown-bg;
border: 1px solid @dropdown-fallback-border; // IE8 fallback
border: 1px solid @dropdown-border;
@@ -154,6 +155,7 @@
font-size: @font-size-small;
line-height: @line-height-base;
color: @dropdown-header-color;
+ white-space: nowrap; // as with > li > a
}
// Backdrop to catch body clicks on mobile, etc.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f607b85..2c5e9bf 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less
@@ -11,7 +11,7 @@ fieldset {
padding: 0;
margin: 0;
border: 0;
- // Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,
+ // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
// so we reset that to ensure it behaves more like a standard block element.
// See https://github.com/twbs/bootstrap/issues/12359.
min-width: 0;
@@ -31,6 +31,7 @@ legend {
label {
display: inline-block;
+ max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
margin-bottom: 5px;
font-weight: bold;
}
@@ -51,7 +52,7 @@ input[type="search"] {
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
- margin-top: 1px \9; /* IE8-9 */
+ margin-top: 1px \9; // IE8-9
line-height: normal;
}
@@ -164,13 +165,28 @@ input[type="search"] {
}
-// Special styles for iOS date input
+// Special styles for iOS temporal inputs
//
-// In Mobile Safari, date inputs require a pixel line-height that matches the
-// given height of the input.
-
-input[type="date"] {
+// In Mobile Safari, setting `display: block` on temporal inputs causes the
+// 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. Since this fucks up everything else, we have to
+// appropriately reset it for Internet Explorer and the size variations.
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
line-height: @input-height-base;
+ // IE8+ misaligns the text within date inputs, so we reset
+ line-height: @line-height-base ~"\0";
+
+ &.input-sm {
+ line-height: @input-height-small;
+ }
+ &.input-lg {
+ line-height: @input-height-large;
+ }
}
@@ -190,13 +206,15 @@ input[type="date"] {
.radio,
.checkbox {
+ position: relative;
display: block;
min-height: @line-height-computed; // clear the floating input if there is no label text
margin-top: 10px;
margin-bottom: 10px;
- padding-left: 20px;
+
label {
- display: inline;
+ padding-left: 20px;
+ margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
@@ -205,9 +223,11 @@ input[type="date"] {
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
- float: left;
+ position: absolute;
margin-left: -20px;
+ margin-top: 4px \9;
}
+
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
@@ -230,19 +250,55 @@ input[type="date"] {
}
// Apply same disabled cursor tweak as for inputs
+// Some special care is needed because <label>s don't inherit their parent's `cursor`.
//
// Note: Neither radios nor checkboxes can be readonly.
input[type="radio"],
-input[type="checkbox"],
-.radio,
+input[type="checkbox"] {
+ &[disabled],
+ &.disabled,
+ fieldset[disabled] & {
+ cursor: not-allowed;
+ }
+}
+// These classes are used directly on <label>s
.radio-inline,
-.checkbox,
.checkbox-inline {
- &[disabled],
+ &.disabled,
fieldset[disabled] & {
cursor: not-allowed;
}
}
+// These classes are used on elements with <label> descendants
+.radio,
+.checkbox {
+ &.disabled,
+ fieldset[disabled] & {
+ label {
+ cursor: not-allowed;
+ }
+ }
+}
+
+
+// Static form control text
+//
+// Apply class to a `p` element to make any string of text align with labels in
+// a horizontal form layout.
+
+.form-control-static {
+ // Size it appropriately next to real form controls
+ padding-top: (@padding-base-vertical + 1);
+ padding-bottom: (@padding-base-vertical + 1);
+ // Remove default margin from `p`
+ margin-bottom: 0;
+
+ &.input-lg,
+ &.input-sm {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
// Form control sizing
@@ -271,18 +327,28 @@ input[type="checkbox"],
.form-control {
padding-right: (@input-height-base * 1.25);
}
-
- // Feedback icon (requires .glyphicon classes)
- .form-control-feedback {
- position: absolute;
- top: (@line-height-computed + 5); // Height of the `label` and its margin
- right: 0;
- display: block;
- width: @input-height-base;
- height: @input-height-base;
- line-height: @input-height-base;
- text-align: center;
- }
+}
+// Feedback icon (requires .glyphicon classes)
+.form-control-feedback {
+ position: absolute;
+ top: (@line-height-computed + 5); // Height of the `label` and its margin
+ right: 0;
+ z-index: 2; // Ensure icon is above input groups
+ display: block;
+ width: @input-height-base;
+ height: @input-height-base;
+ line-height: @input-height-base;
+ text-align: center;
+}
+.input-lg + .form-control-feedback {
+ width: @input-height-large;
+ height: @input-height-large;
+ line-height: @input-height-large;
+}
+.input-sm + .form-control-feedback {
+ width: @input-height-small;
+ height: @input-height-small;
+ line-height: @input-height-small;
}
// Feedback states
@@ -297,13 +363,9 @@ input[type="checkbox"],
}
-// Static form control text
-//
-// Apply class to a `p` element to make any string of text align with labels in
-// a horizontal form layout.
-
-.form-control-static {
- margin-bottom: 0; // Remove default margin from `p`
+// Reposition feedback icon if label is hidden with "screenreader only" state
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0;
}
@@ -349,6 +411,18 @@ input[type="checkbox"],
width: auto; // Prevent labels from stacking above inputs in `.form-group`
vertical-align: middle;
}
+
+ .input-group {
+ display: inline-table;
+ vertical-align: middle;
+
+ .input-group-addon,
+ .input-group-btn,
+ .form-control {
+ width: auto;
+ }
+ }
+
// Input groups need that 100% width though
.input-group > .form-control {
width: 100%;
@@ -367,12 +441,15 @@ input[type="checkbox"],
display: inline-block;
margin-top: 0;
margin-bottom: 0;
- padding-left: 0;
vertical-align: middle;
+
+ label {
+ padding-left: 0;
+ }
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
- float: none;
+ position: relative;
margin-left: 0;
}
@@ -394,8 +471,9 @@ input[type="checkbox"],
.form-horizontal {
- // Consistent vertical alignment of labels, radios, and checkboxes
- .control-label,
+ // Consistent vertical alignment of radios and checkboxes
+ //
+ // Labels also get some reset styles, but that is scoped to a media query below.
.radio,
.checkbox,
.radio-inline,
@@ -416,14 +494,13 @@ input[type="checkbox"],
.make-row();
}
- .form-control-static {
- padding-top: (@padding-base-vertical + 1);
- }
-
- // Only right align form labels here when the columns stop stacking
+ // Reset spacing and right align labels, but scope to media queries so that
+ // labels on narrow viewports stack the same as a default form example.
@media (min-width: @screen-sm-min) {
.control-label {
text-align: right;
+ margin-bottom: 0;
+ padding-top: (@padding-base-vertical + 1); // Default padding plus a border
}
}
@@ -435,4 +512,29 @@ input[type="checkbox"],
top: 0;
right: (@grid-gutter-width / 2);
}
+
+ // Form group sizes
+ //
+ // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
+ // inputs and labels within a `.form-group`.
+ .form-group-lg {
+ @media (min-width: @screen-sm-min) {
+ .control-label {
+ padding-top: ((@padding-large-vertical * @line-height-large) + 1);
+ }
+ }
+ .form-control {
+ &:extend(.input-lg);
+ }
+ }
+ .form-group-sm {
+ @media (min-width: @screen-sm-min) {
+ .control-label {
+ padding-top: (@padding-small-vertical + 1);
+ }
+ }
+ .form-control {
+ &:extend(.input-sm);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less b/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less
index 789c5e7..d3485dc 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less
@@ -10,11 +10,11 @@
// Import the fonts
@font-face {
font-family: 'Glyphicons Halflings';
- src: ~"url('@{icon-font-path}@{icon-font-name}.eot')";
- src: ~"url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype')",
- ~"url('@{icon-font-path}@{icon-font-name}.woff') format('woff')",
- ~"url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype')",
- ~"url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg')";
+ src: url('@{icon-font-path}@{icon-font-name}.eot');
+ src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
+ url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
+ url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
+ url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');
}
// Catchall baseclass
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 a111474..a8712f2 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less
@@ -39,10 +39,14 @@
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn { .input-lg(); }
+.input-group-lg > .input-group-btn > .btn {
+ .input-lg();
+}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn { .input-sm(); }
+.input-group-sm > .input-group-btn > .btn {
+ .input-sm();
+}
// Display as table-cell
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less b/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less
index a15e169..27cd8b8 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less
@@ -19,6 +19,10 @@
font-weight: 200;
}
+ > hr {
+ border-top-color: darken(@jumbotron-bg, 10%);
+ }
+
.container & {
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less b/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less
index 5db1ed1..9a5a270 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less
@@ -15,7 +15,7 @@
border-radius: .25em;
// Add hover effects, but only for links
- &[href] {
+ a& {
&:hover,
&:focus {
color: @label-link-hover-color;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less b/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less
index 3343f8e..1946bf5 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less
@@ -62,8 +62,27 @@ a.list-group-item {
&:hover,
&:focus {
text-decoration: none;
+ color: @list-group-link-hover-color;
background-color: @list-group-hover-bg;
}
+}
+
+.list-group-item {
+ // Disabled state
+ &.disabled,
+ &.disabled:hover,
+ &.disabled:focus {
+ background-color: @list-group-disabled-bg;
+ color: @list-group-disabled-color;
+
+ // Force color to inherit for custom content
+ .list-group-item-heading {
+ color: inherit;
+ }
+ .list-group-item-text {
+ color: @list-group-disabled-text-color;
+ }
+ }
// Active class on item itself, not parent
&.active,
@@ -75,7 +94,9 @@ a.list-group-item {
border-color: @list-group-active-border;
// Force color to inherit for custom content
- .list-group-item-heading {
+ .list-group-item-heading,
+ .list-group-item-heading > small,
+ .list-group-item-heading > .small {
color: inherit;
}
.list-group-item-text {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less
index 71723db..af4408f 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less
@@ -1,929 +1,39 @@
-//
// Mixins
// --------------------------------------------------
-
// Utilities
-// -------------------------
-
-// Clearfix
-// Source: http://nicolasgallagher.com/micro-clearfix-hack/
-//
-// For modern browsers
-// 1. The space content is one way to avoid an Opera bug when the
-// contenteditable attribute is included anywhere else in the document.
-// Otherwise it causes space to appear at the top and bottom of elements
-// that are clearfixed.
-// 2. The use of `table` rather than `block` is only necessary if using
-// `:before` to contain the top-margins of child elements.
-.clearfix() {
- &:before,
- &:after {
- content: " "; // 1
- display: table; // 2
- }
- &:after {
- clear: both;
- }
-}
-
-// WebKit-style focus
-.tab-focus() {
- // Default
- outline: thin dotted;
- // WebKit
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-
-// Center-align a block level element
-.center-block() {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-// Sizing shortcuts
-.size(@width; @height) {
- width: @width;
- height: @height;
-}
-.square(@size) {
- .size(@size; @size);
-}
-
-// Placeholder text
-.placeholder(@color: @input-color-placeholder) {
- &::-moz-placeholder { color: @color; // Firefox
- opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
- &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
- &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
-}
-
-// Text overflow
-// Requires inline-block or block for proper styling
-.text-overflow() {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-// CSS image replacement
-//
-// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
-// mixins being reused as classes with the same name, this doesn't hold up. As
-// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note
-// that we cannot chain the mixins together in Less, so they are repeated.
-//
-// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
-
-// Deprecated as of v3.0.1 (will be removed in v4)
-.hide-text() {
- font: ~"0/0" a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-// New mixin to use as of v3.0.1
-.text-hide() {
- .hide-text();
-}
-
-
-
-// CSS3 PROPERTIES
-// --------------------------------------------------
-
-// Single side border-radius
-.border-top-radius(@radius) {
- border-top-right-radius: @radius;
- border-top-left-radius: @radius;
-}
-.border-right-radius(@radius) {
- border-bottom-right-radius: @radius;
- border-top-right-radius: @radius;
-}
-.border-bottom-radius(@radius) {
- border-bottom-right-radius: @radius;
- border-bottom-left-radius: @radius;
-}
-.border-left-radius(@radius) {
- border-bottom-left-radius: @radius;
- border-top-left-radius: @radius;
-}
-
-// Drop shadows
-//
-// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
-// supported browsers that have box shadow capabilities now support the
-// standard `box-shadow` property.
-.box-shadow(@shadow) {
- -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
- box-shadow: @shadow;
-}
-
-// Transitions
-.transition(@transition) {
- -webkit-transition: @transition;
- transition: @transition;
-}
-.transition-property(@transition-property) {
- -webkit-transition-property: @transition-property;
- transition-property: @transition-property;
-}
-.transition-delay(@transition-delay) {
- -webkit-transition-delay: @transition-delay;
- transition-delay: @transition-delay;
-}
-.transition-duration(@transition-duration) {
- -webkit-transition-duration: @transition-duration;
- transition-duration: @transition-duration;
-}
-.transition-transform(@transition) {
- -webkit-transition: -webkit-transform @transition;
- -moz-transition: -moz-transform @transition;
- -o-transition: -o-transform @transition;
- transition: transform @transition;
-}
-
-// Transformations
-.rotate(@degrees) {
- -webkit-transform: rotate(@degrees);
- -ms-transform: rotate(@degrees); // IE9 only
- transform: rotate(@degrees);
-}
-.scale(@ratio; @ratio-y...) {
- -webkit-transform: scale(@ratio, @ratio-y);
- -ms-transform: scale(@ratio, @ratio-y); // IE9 only
- transform: scale(@ratio, @ratio-y);
-}
-.translate(@x; @y) {
- -webkit-transform: translate(@x, @y);
- -ms-transform: translate(@x, @y); // IE9 only
- transform: translate(@x, @y);
-}
-.skew(@x; @y) {
- -webkit-transform: skew(@x, @y);
- -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
- transform: skew(@x, @y);
-}
-.translate3d(@x; @y; @z) {
- -webkit-transform: translate3d(@x, @y, @z);
- transform: translate3d(@x, @y, @z);
-}
-
-.rotateX(@degrees) {
- -webkit-transform: rotateX(@degrees);
- -ms-transform: rotateX(@degrees); // IE9 only
- transform: rotateX(@degrees);
-}
-.rotateY(@degrees) {
- -webkit-transform: rotateY(@degrees);
- -ms-transform: rotateY(@degrees); // IE9 only
- transform: rotateY(@degrees);
-}
-.perspective(@perspective) {
- -webkit-perspective: @perspective;
- -moz-perspective: @perspective;
- perspective: @perspective;
-}
-.perspective-origin(@perspective) {
- -webkit-perspective-origin: @perspective;
- -moz-perspective-origin: @perspective;
- perspective-origin: @perspective;
-}
-.transform-origin(@origin) {
- -webkit-transform-origin: @origin;
- -moz-transform-origin: @origin;
- -ms-transform-origin: @origin; // IE9 only
- transform-origin: @origin;
-}
-
-// Animations
-.animation(@animation) {
- -webkit-animation: @animation;
- animation: @animation;
-}
-.animation-name(@name) {
- -webkit-animation-name: @name;
- animation-name: @name;
-}
-.animation-duration(@duration) {
- -webkit-animation-duration: @duration;
- animation-duration: @duration;
-}
-.animation-timing-function(@timing-function) {
- -webkit-animation-timing-function: @timing-function;
- animation-timing-function: @timing-function;
-}
-.animation-delay(@delay) {
- -webkit-animation-delay: @delay;
- animation-delay: @delay;
-}
-.animation-iteration-count(@iteration-count) {
- -webkit-animation-iteration-count: @iteration-count;
- animation-iteration-count: @iteration-count;
-}
-.animation-direction(@direction) {
- -webkit-animation-direction: @direction;
- animation-direction: @direction;
-}
-
-// Backface visibility
-// Prevent browsers from flickering when using CSS 3D transforms.
-// Default value is `visible`, but can be changed to `hidden`
-.backface-visibility(@visibility){
- -webkit-backface-visibility: @visibility;
- -moz-backface-visibility: @visibility;
- backface-visibility: @visibility;
-}
-
-// Box sizing
-.box-sizing(@boxmodel) {
- -webkit-box-sizing: @boxmodel;
- -moz-box-sizing: @boxmodel;
- box-sizing: @boxmodel;
-}
-
-// User select
-// For selecting text on the page
-.user-select(@select) {
- -webkit-user-select: @select;
- -moz-user-select: @select;
- -ms-user-select: @select; // IE10+
- user-select: @select;
-}
-
-// Resize anything
-.resizable(@direction) {
- resize: @direction; // Options: horizontal, vertical, both
- overflow: auto; // Safari fix
-}
-
-// CSS3 Content Columns
-.content-columns(@column-count; @column-gap: @grid-gutter-width) {
- -webkit-column-count: @column-count;
- -moz-column-count: @column-count;
- column-count: @column-count;
- -webkit-column-gap: @column-gap;
- -moz-column-gap: @column-gap;
- column-gap: @column-gap;
-}
-
-// Optional hyphenation
-.hyphens(@mode: auto) {
- word-wrap: break-word;
- -webkit-hyphens: @mode;
- -moz-hyphens: @mode;
- -ms-hyphens: @mode; // IE10+
- -o-hyphens: @mode;
- hyphens: @mode;
-}
-
-// Opacity
-.opacity(@opacity) {
- opacity: @opacity;
- // IE8 filter
- @opacity-ie: (@opacity * 100);
- filter: ~"alpha(opacity=@{opacity-ie})";
-}
-
-
-
-// GRADIENTS
-// --------------------------------------------------
-
-#gradient {
-
- // Horizontal gradient, from left to right
- //
- // Creates two color stops, start and end, by specifying a color and position for each color stop.
- // Color stops are not available in IE9 and below.
- .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
- background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+
- background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
- }
-
- // Vertical gradient, from top to bottom
- //
- // Creates two color stops, start and end, by specifying a color and position for each color stop.
- // Color stops are not available in IE9 and below.
- .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
- background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
- background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
- }
-
- .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
- background-repeat: repeat-x;
- background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
- background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- }
- .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
- background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
- background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
- background-repeat: no-repeat;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
- }
- .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
- background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-repeat: no-repeat;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
- }
- .radial(@inner-color: #555; @outer-color: #333) {
- background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
- background-image: radial-gradient(circle, @inner-color, @outer-color);
- background-repeat: no-repeat;
- }
- .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
- background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- }
-}
-
-// Reset filters for IE
-//
-// When you need to remove a gradient background, do not forget to use this to reset
-// the IE filter for IE9 and below.
-.reset-filter() {
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
-}
-
-
-
-// Retina images
-//
-// Short retina mixin for setting background-image and -size
-
-.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
- background-image: url("@{file-1x}");
-
- @media
- only screen and (-webkit-min-device-pixel-ratio: 2),
- only screen and ( min--moz-device-pixel-ratio: 2),
- only screen and ( -o-min-device-pixel-ratio: 2/1),
- only screen and ( min-device-pixel-ratio: 2),
- only screen and ( min-resolution: 192dpi),
- only screen and ( min-resolution: 2dppx) {
- background-image: url("@{file-2x}");
- background-size: @width-1x @height-1x;
- }
-}
-
-
-// Responsive image
-//
-// Keep images from scaling beyond the width of their parents.
-
-.img-responsive(@display: block) {
- display: @display;
- max-width: 100%; // Part 1: Set a maximum relative to the parent
- height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
-}
-
-
-// COMPONENT MIXINS
-// --------------------------------------------------
-
-// Horizontal dividers
-// -------------------------
-// Dividers (basically an hr) within dropdowns and nav lists
-.nav-divider(@color: #e5e5e5) {
- height: 1px;
- margin: ((@line-height-computed / 2) - 1) 0;
- overflow: hidden;
- background-color: @color;
-}
-
-// Panels
-// -------------------------
-.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
- border-color: @border;
-
- & > .panel-heading {
- color: @heading-text-color;
- background-color: @heading-bg-color;
- border-color: @heading-border;
-
- + .panel-collapse .panel-body {
- border-top-color: @border;
- }
- }
- & > .panel-footer {
- + .panel-collapse .panel-body {
- border-bottom-color: @border;
- }
- }
-}
-
-// Alerts
-// -------------------------
-.alert-variant(@background; @border; @text-color) {
- background-color: @background;
- border-color: @border;
- color: @text-color;
-
- hr {
- border-top-color: darken(@border, 5%);
- }
- .alert-link {
- color: darken(@text-color, 10%);
- }
-}
-
-// Tables
-// -------------------------
-.table-row-variant(@state; @background) {
- // Exact selectors below required to override `.table-striped` and prevent
- // inheritance to nested tables.
- .table > thead > tr,
- .table > tbody > tr,
- .table > tfoot > tr {
- > td.@{state},
- > th.@{state},
- &.@{state} > td,
- &.@{state} > th {
- background-color: @background;
- }
- }
-
- // Hover states for `.table-hover`
- // Note: this is not available for cells or rows within `thead` or `tfoot`.
- .table-hover > tbody > tr {
- > td.@{state}:hover,
- > th.@{state}:hover,
- &.@{state}:hover > td,
- &.@{state}:hover > th {
- background-color: darken(@background, 5%);
- }
- }
-}
-
-// List Groups
-// -------------------------
-.list-group-item-variant(@state; @background; @color) {
- .list-group-item-@{state} {
- color: @color;
- background-color: @background;
-
- a& {
- color: @color;
-
- .list-group-item-heading { color: inherit; }
-
- &:hover,
- &:focus {
- color: @color;
- background-color: darken(@background, 5%);
- }
- &.active,
- &.active:hover,
- &.active:focus {
- color: #fff;
- background-color: @color;
- border-color: @color;
- }
- }
- }
-}
-
-// Button variants
-// -------------------------
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-.button-variant(@color; @background; @border) {
- color: @color;
- background-color: @background;
- border-color: @border;
-
- &:hover,
- &:focus,
- &:active,
- &.active,
- .open .dropdown-toggle& {
- color: @color;
- background-color: darken(@background, 8%);
- border-color: darken(@border, 12%);
- }
- &:active,
- &.active,
- .open .dropdown-toggle& {
- background-image: none;
- }
- &.disabled,
- &[disabled],
- fieldset[disabled] & {
- &,
- &:hover,
- &:focus,
- &:active,
- &.active {
- background-color: @background;
- border-color: @border;
- }
- }
-
- .badge {
- color: @background;
- background-color: @color;
- }
-}
-
-// Button sizes
-// -------------------------
-.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- border-radius: @border-radius;
-}
-
-// Pagination
-// -------------------------
-.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
- > li {
- > a,
- > span {
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- }
- &:first-child {
- > a,
- > span {
- .border-left-radius(@border-radius);
- }
- }
- &:last-child {
- > a,
- > span {
- .border-right-radius(@border-radius);
- }
- }
- }
-}
-
-// Labels
-// -------------------------
-.label-variant(@color) {
- background-color: @color;
- &[href] {
- &:hover,
- &:focus {
- background-color: darken(@color, 10%);
- }
- }
-}
-
-// Contextual backgrounds
-// -------------------------
-.bg-variant(@color) {
- background-color: @color;
- a&:hover {
- background-color: darken(@color, 10%);
- }
-}
-
-// Typography
-// -------------------------
-.text-emphasis-variant(@color) {
- color: @color;
- a&:hover {
- color: darken(@color, 10%);
- }
-}
-
-// Navbar vertical align
-// -------------------------
-// Vertically center elements in the navbar.
-// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
-.navbar-vertical-align(@element-height) {
- margin-top: ((@navbar-height - @element-height) / 2);
- margin-bottom: ((@navbar-height - @element-height) / 2);
-}
-
-// Progress bars
-// -------------------------
-.progress-bar-variant(@color) {
- background-color: @color;
- .progress-striped & {
- #gradient > .striped();
- }
-}
-
-// Responsive utilities
-// -------------------------
-// More easily include all the states for responsive-utilities.less.
-.responsive-visibility() {
- display: block !important;
- table& { display: table; }
- tr& { display: table-row !important; }
- th&,
- td& { display: table-cell !important; }
-}
-
-.responsive-invisibility() {
- display: none !important;
-}
-
-
-// Grid System
-// -----------
-
-// Centered container element
-.container-fixed() {
- margin-right: auto;
- margin-left: auto;
- padding-left: (@grid-gutter-width / 2);
- padding-right: (@grid-gutter-width / 2);
- &:extend(.clearfix all);
-}
-
-// Creates a wrapper for a series of columns
-.make-row(@gutter: @grid-gutter-width) {
- margin-left: (@gutter / -2);
- margin-right: (@gutter / -2);
- &:extend(.clearfix all);
-}
-
-// Generate the extra small columns
-.make-xs-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- float: left;
- width: percentage((@columns / @grid-columns));
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-}
-.make-xs-column-offset(@columns) {
- @media (min-width: @screen-xs-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-xs-column-push(@columns) {
- @media (min-width: @screen-xs-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-xs-column-pull(@columns) {
- @media (min-width: @screen-xs-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-
-// Generate the small columns
-.make-sm-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-sm-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-offset(@columns) {
- @media (min-width: @screen-sm-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-push(@columns) {
- @media (min-width: @screen-sm-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-pull(@columns) {
- @media (min-width: @screen-sm-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-
-// Generate the medium columns
-.make-md-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-md-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-offset(@columns) {
- @media (min-width: @screen-md-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-push(@columns) {
- @media (min-width: @screen-md-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-pull(@columns) {
- @media (min-width: @screen-md-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-
-// Generate the large columns
-.make-lg-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-lg-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-offset(@columns) {
- @media (min-width: @screen-lg-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-push(@columns) {
- @media (min-width: @screen-lg-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-pull(@columns) {
- @media (min-width: @screen-lg-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `@grid-columns`.
-
-.make-grid-columns() {
- // Common styles for all sizes of grid columns, widths 1-12
- .col(@index) when (@index = 1) { // initial
- @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
- .col((@index + 1), @item);
- }
- .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
- @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
- .col((@index + 1), ~"@{list}, @{item}");
- }
- .col(@index, @list) when (@index > @grid-columns) { // terminal
- @{list} {
- position: relative;
- // Prevent columns from collapsing when empty
- min-height: 1px;
- // Inner gutter via padding
- padding-left: (@grid-gutter-width / 2);
- padding-right: (@grid-gutter-width / 2);
- }
- }
- .col(1); // kickstart it
-}
-
-.float-grid-columns(@class) {
- .col(@index) when (@index = 1) { // initial
- @item: ~".col-@{class}-@{index}";
- .col((@index + 1), @item);
- }
- .col(@index, @list) when (@index =< @grid-columns) { // general
- @item: ~".col-@{class}-@{index}";
- .col((@index + 1), ~"@{list}, @{item}");
- }
- .col(@index, @list) when (@index > @grid-columns) { // terminal
- @{list} {
- float: left;
- }
- }
- .col(1); // kickstart it
-}
-
-.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
- .col-@{class}-@{index} {
- width: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = push) {
- .col-@{class}-push-@{index} {
- left: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = pull) {
- .col-@{class}-pull-@{index} {
- right: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = offset) {
- .col-@{class}-offset-@{index} {
- margin-left: percentage((@index / @grid-columns));
- }
-}
-
-// Basic looping in LESS
-.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
- .calc-grid-column(@index, @class, @type);
- // next iteration
- .loop-grid-columns((@index - 1), @class, @type);
-}
-
-// Create grid for specific class
-.make-grid(@class) {
- .float-grid-columns(@class);
- .loop-grid-columns(@grid-columns, @class, width);
- .loop-grid-columns(@grid-columns, @class, pull);
- .loop-grid-columns(@grid-columns, @class, push);
- .loop-grid-columns(@grid-columns, @class, offset);
-}
-
-// Form validation states
-//
-// Used in forms.less to generate the form validation CSS for warnings, errors,
-// and successes.
-
-.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
- // Color the label and help text
- .help-block,
- .control-label,
- .radio,
- .checkbox,
- .radio-inline,
- .checkbox-inline {
- color: @text-color;
- }
- // Set the border and box shadow on specific inputs to match
- .form-control {
- border-color: @border-color;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
- &:focus {
- border-color: darken(@border-color, 10%);
- @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
- .box-shadow(@shadow);
- }
- }
- // Set validation states also for addons
- .input-group-addon {
- color: @text-color;
- border-color: @border-color;
- background-color: @background-color;
- }
- // Optional feedback icon
- .form-control-feedback {
- color: @text-color;
- }
-}
-
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `@input-focus-border` variable.
-//
-// We highly encourage you to not customize the default value, but instead use
-// this to tweak colors on an as-needed basis. This aesthetic change is based on
-// WebKit's default styles, but applicable to a wider range of browsers. Its
-// usability and accessibility should be taken into account with any change.
-//
-// Example usage: change the default blue border and shadow to white for better
-// contrast against a dark gray background.
-
-.form-control-focus(@color: @input-border-focus) {
- @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
- &:focus {
- border-color: @color;
- outline: 0;
- .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
- }
-}
-
-// Form control sizing
-//
-// Relative text size, padding, and border-radii changes for form controls. For
-// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
-// element gets special love because it's special, and that's a fact!
-
-.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- height: @input-height;
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- border-radius: @border-radius;
-
- select& {
- height: @input-height;
- line-height: @input-height;
- }
-
- textarea&,
- select[multiple]& {
- height: auto;
- }
-}
+@import "mixins/hide-text.less";
+@import "mixins/opacity.less";
+@import "mixins/image.less";
+@import "mixins/labels.less";
+@import "mixins/reset-filter.less";
+@import "mixins/resize.less";
+@import "mixins/responsive-visibility.less";
+@import "mixins/size.less";
+@import "mixins/tab-focus.less";
+@import "mixins/text-emphasis.less";
+@import "mixins/text-overflow.less";
+@import "mixins/vendor-prefixes.less";
+
+// Components
+@import "mixins/alerts.less";
+@import "mixins/buttons.less";
+@import "mixins/panels.less";
+@import "mixins/pagination.less";
+@import "mixins/list-group.less";
+@import "mixins/nav-divider.less";
+@import "mixins/forms.less";
+@import "mixins/progress-bar.less";
+@import "mixins/table-row.less";
+
+// Skins
+@import "mixins/background-variant.less";
+@import "mixins/border-radius.less";
+@import "mixins/gradients.less";
+
+// Layout
+@import "mixins/clearfix.less";
+@import "mixins/center-block.less";
+@import "mixins/nav-vertical-align.less";
+@import "mixins/grid-framework.less";
+@import "mixins/grid.less";
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/alerts.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/alerts.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/alerts.less
new file mode 100644
index 0000000..396196f
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/alerts.less
@@ -0,0 +1,14 @@
+// Alerts
+
+.alert-variant(@background; @border; @text-color) {
+ background-color: @background;
+ border-color: @border;
+ color: @text-color;
+
+ hr {
+ border-top-color: darken(@border, 5%);
+ }
+ .alert-link {
+ color: darken(@text-color, 10%);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/background-variant.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/background-variant.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/background-variant.less
new file mode 100644
index 0000000..556e490
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/background-variant.less
@@ -0,0 +1,8 @@
+// Contextual backgrounds
+
+.bg-variant(@color) {
+ background-color: @color;
+ a&:hover {
+ background-color: darken(@color, 10%);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/border-radius.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/border-radius.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/border-radius.less
new file mode 100644
index 0000000..ca05dbf
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/border-radius.less
@@ -0,0 +1,18 @@
+// Single side border-radius
+
+.border-top-radius(@radius) {
+ border-top-right-radius: @radius;
+ border-top-left-radius: @radius;
+}
+.border-right-radius(@radius) {
+ border-bottom-right-radius: @radius;
+ border-top-right-radius: @radius;
+}
+.border-bottom-radius(@radius) {
+ border-bottom-right-radius: @radius;
+ border-bottom-left-radius: @radius;
+}
+.border-left-radius(@radius) {
+ border-bottom-left-radius: @radius;
+ border-top-left-radius: @radius;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/buttons.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/buttons.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/buttons.less
new file mode 100644
index 0000000..409f8f2
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/buttons.less
@@ -0,0 +1,50 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+.button-variant(@color; @background; @border) {
+ color: @color;
+ background-color: @background;
+ border-color: @border;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &.active,
+ .open > .dropdown-toggle& {
+ color: @color;
+ background-color: darken(@background, 10%);
+ border-color: darken(@border, 12%);
+ }
+ &:active,
+ &.active,
+ .open > .dropdown-toggle& {
+ background-image: none;
+ }
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &:active,
+ &.active {
+ background-color: @background;
+ border-color: @border;
+ }
+ }
+
+ .badge {
+ color: @background;
+ background-color: @color;
+ }
+}
+
+// Button sizes
+.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ line-height: @line-height;
+ border-radius: @border-radius;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/center-block.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/center-block.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/center-block.less
new file mode 100644
index 0000000..d18d6de
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/center-block.less
@@ -0,0 +1,7 @@
+// Center-align a block level element
+
+.center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/clearfix.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/clearfix.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/clearfix.less
new file mode 100644
index 0000000..3f7a382
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/clearfix.less
@@ -0,0 +1,22 @@
+// Clearfix
+//
+// For modern browsers
+// 1. The space content is one way to avoid an Opera bug when the
+// contenteditable attribute is included anywhere else in the document.
+// Otherwise it causes space to appear at the top and bottom of elements
+// that are clearfixed.
+// 2. The use of `table` rather than `block` is only necessary if using
+// `:before` to contain the top-margins of child elements.
+//
+// Source: http://nicolasgallagher.com/micro-clearfix-hack/
+
+.clearfix() {
+ &:before,
+ &:after {
+ content: " "; // 1
+ display: table; // 2
+ }
+ &:after {
+ clear: both;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/forms.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/forms.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/forms.less
new file mode 100644
index 0000000..e36c4a8
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/forms.less
@@ -0,0 +1,81 @@
+// Form validation states
+//
+// Used in forms.less to generate the form validation CSS for warnings, errors,
+// and successes.
+
+.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
+ // Color the label and help text
+ .help-block,
+ .control-label,
+ .radio,
+ .checkbox,
+ .radio-inline,
+ .checkbox-inline {
+ color: @text-color;
+ }
+ // Set the border and box shadow on specific inputs to match
+ .form-control {
+ border-color: @border-color;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken(@border-color, 10%);
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
+ .box-shadow(@shadow);
+ }
+ }
+ // Set validation states also for addons
+ .input-group-addon {
+ color: @text-color;
+ border-color: @border-color;
+ background-color: @background-color;
+ }
+ // Optional feedback icon
+ .form-control-feedback {
+ color: @text-color;
+ }
+}
+
+
+// Form control focus state
+//
+// Generate a customized focus state and for any input with the specified color,
+// which defaults to the `@input-border-focus` variable.
+//
+// We highly encourage you to not customize the default value, but instead use
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
+// WebKit's default styles, but applicable to a wider range of browsers. Its
+// usability and accessibility should be taken into account with any change.
+//
+// Example usage: change the default blue border and shadow to white for better
+// contrast against a dark gray background.
+.form-control-focus(@color: @input-border-focus) {
+ @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
+ &:focus {
+ border-color: @color;
+ outline: 0;
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
+ }
+}
+
+// Form control sizing
+//
+// Relative text size, padding, and border-radii changes for form controls. For
+// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
+// element gets special love because it's special, and that's a fact!
+.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
+ height: @input-height;
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ line-height: @line-height;
+ border-radius: @border-radius;
+
+ select& {
+ height: @input-height;
+ line-height: @input-height;
+ }
+
+ textarea&,
+ select[multiple]& {
+ height: auto;
+ }
+}
[4/6] update Bootstrap to 3.2.0
Posted by jk...@apache.org.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 05c909e..7d404eb 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: affix.js v3.1.1
+ * Bootstrap: affix.js v3.2.0
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -15,7 +15,8 @@
var Affix = function (element, options) {
this.options = $.extend({}, Affix.DEFAULTS, options)
- this.$window = $(window)
+
+ this.$target = $(this.options.target)
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
@@ -27,16 +28,19 @@
this.checkPosition()
}
- Affix.RESET = 'affix affix-top affix-bottom'
+ Affix.VERSION = '3.2.0'
+
+ Affix.RESET = 'affix affix-top affix-bottom'
Affix.DEFAULTS = {
- offset: 0
+ offset: 0,
+ target: window
}
Affix.prototype.getPinnedOffset = function () {
if (this.pinnedOffset) return this.pinnedOffset
this.$element.removeClass(Affix.RESET).addClass('affix')
- var scrollTop = this.$window.scrollTop()
+ var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
return (this.pinnedOffset = position.top - scrollTop)
}
@@ -49,14 +53,12 @@
if (!this.$element.is(':visible')) return
var scrollHeight = $(document).height()
- var scrollTop = this.$window.scrollTop()
+ var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
- if (this.affixed == 'top') position.top += scrollTop
-
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
@@ -66,7 +68,7 @@
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
if (this.affixed === affix) return
- if (this.unpin) this.$element.css('top', '')
+ if (this.unpin != null) this.$element.css('top', '')
var affixType = 'affix' + (affix ? '-' + affix : '')
var e = $.Event(affixType + '.bs.affix')
@@ -84,7 +86,9 @@
.trigger($.Event(affixType.replace('affix', 'affixed')))
if (affix == 'bottom') {
- this.$element.offset({ top: scrollHeight - offsetBottom - this.$element.height() })
+ this.$element.offset({
+ top: scrollHeight - this.$element.height() - offsetBottom
+ })
}
}
@@ -92,9 +96,7 @@
// AFFIX PLUGIN DEFINITION
// =======================
- var old = $.fn.affix
-
- $.fn.affix = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.affix')
@@ -105,6 +107,9 @@
})
}
+ var old = $.fn.affix
+
+ $.fn.affix = Plugin
$.fn.affix.Constructor = Affix
@@ -130,7 +135,7 @@
if (data.offsetBottom) data.offset.bottom = data.offsetBottom
if (data.offsetTop) data.offset.top = data.offsetTop
- $spy.affix(data)
+ Plugin.call($spy, data)
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 516fe4f..0efd92c 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: alert.js v3.1.1
+ * Bootstrap: alert.js v3.2.0
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -18,6 +18,8 @@
$(el).on('click', dismiss, this.close)
}
+ Alert.VERSION = '3.2.0'
+
Alert.prototype.close = function (e) {
var $this = $(this)
var selector = $this.attr('data-target')
@@ -42,12 +44,13 @@
$parent.removeClass('in')
function removeElement() {
- $parent.trigger('closed.bs.alert').remove()
+ // detach from parent, fire event then clean up data
+ $parent.detach().trigger('closed.bs.alert').remove()
}
$.support.transition && $parent.hasClass('fade') ?
$parent
- .one($.support.transition.end, removeElement)
+ .one('bsTransitionEnd', removeElement)
.emulateTransitionEnd(150) :
removeElement()
}
@@ -56,9 +59,7 @@
// ALERT PLUGIN DEFINITION
// =======================
- var old = $.fn.alert
-
- $.fn.alert = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.alert')
@@ -68,6 +69,9 @@
})
}
+ var old = $.fn.alert
+
+ $.fn.alert = Plugin
$.fn.alert.Constructor = Alert
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f4d8d8b..dc3164f 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: button.js v3.1.1
+ * Bootstrap: button.js v3.2.0
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -19,6 +19,8 @@
this.isLoading = false
}
+ Button.VERSION = '3.2.0'
+
Button.DEFAULTS = {
loadingText: 'loading...'
}
@@ -31,9 +33,9 @@
state = state + 'Text'
- if (!data.resetText) $el.data('resetText', $el[val]())
+ if (data.resetText == null) $el.data('resetText', $el[val]())
- $el[val](data[state] || this.options[state])
+ $el[val](data[state] == null ? this.options[state] : data[state])
// push to event loop to allow forms to submit
setTimeout($.proxy(function () {
@@ -67,9 +69,7 @@
// BUTTON PLUGIN DEFINITION
// ========================
- var old = $.fn.button
-
- $.fn.button = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.button')
@@ -82,6 +82,9 @@
})
}
+ var old = $.fn.button
+
+ $.fn.button = Plugin
$.fn.button.Constructor = Button
@@ -97,10 +100,10 @@
// BUTTON DATA-API
// ===============
- $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
+ $(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
var $btn = $(e.target)
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
- $btn.button('toggle')
+ Plugin.call($btn, 'toggle')
e.preventDefault()
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 19e9af1..b7da1ba 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: carousel.js v3.1.1
+ * Bootstrap: carousel.js v3.2.0
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,7 +14,7 @@
// =========================
var Carousel = function (element, options) {
- this.$element = $(element)
+ this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.paused =
@@ -24,17 +24,29 @@
this.$items = null
this.options.pause == 'hover' && this.$element
- .on('mouseenter', $.proxy(this.pause, this))
- .on('mouseleave', $.proxy(this.cycle, this))
+ .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
+ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
}
+ Carousel.VERSION = '3.2.0'
+
Carousel.DEFAULTS = {
interval: 5000,
pause: 'hover',
wrap: true
}
- Carousel.prototype.cycle = function (e) {
+ Carousel.prototype.keydown = function (e) {
+ switch (e.which) {
+ case 37: this.prev(); break
+ case 39: this.next(); break
+ default: return
+ }
+
+ e.preventDefault()
+ }
+
+ Carousel.prototype.cycle = function (e) {
e || (this.paused = false)
this.interval && clearInterval(this.interval)
@@ -46,20 +58,18 @@
return this
}
- Carousel.prototype.getActiveIndex = function () {
- this.$active = this.$element.find('.item.active')
- this.$items = this.$active.parent().children()
-
- return this.$items.index(this.$active)
+ Carousel.prototype.getItemIndex = function (item) {
+ this.$items = item.parent().children('.item')
+ return this.$items.index(item || this.$active)
}
Carousel.prototype.to = function (pos) {
var that = this
- var activeIndex = this.getActiveIndex()
+ var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
if (pos > (this.$items.length - 1) || pos < 0) return
- if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
+ if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
if (activeIndex == pos) return this.pause().cycle()
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
@@ -101,11 +111,15 @@
$next = this.$element.find('.item')[fallback]()
}
- if ($next.hasClass('active')) return this.sliding = false
+ if ($next.hasClass('active')) return (this.sliding = false)
- var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
+ var relatedTarget = $next[0]
+ var slideEvent = $.Event('slide.bs.carousel', {
+ relatedTarget: relatedTarget,
+ direction: direction
+ })
+ this.$element.trigger(slideEvent)
+ if (slideEvent.isDefaultPrevented()) return
this.sliding = true
@@ -113,30 +127,31 @@
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
- this.$element.one('slid.bs.carousel', function () {
- var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
- $nextIndicator && $nextIndicator.addClass('active')
- })
+ var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
+ $nextIndicator && $nextIndicator.addClass('active')
}
+ var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
if ($.support.transition && this.$element.hasClass('slide')) {
$next.addClass(type)
$next[0].offsetWidth // force reflow
$active.addClass(direction)
$next.addClass(direction)
$active
- .one($.support.transition.end, function () {
+ .one('bsTransitionEnd', function () {
$next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' '))
that.sliding = false
- setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
+ setTimeout(function () {
+ that.$element.trigger(slidEvent)
+ }, 0)
})
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
} else {
$active.removeClass('active')
$next.addClass('active')
this.sliding = false
- this.$element.trigger('slid.bs.carousel')
+ this.$element.trigger(slidEvent)
}
isCycling && this.cycle()
@@ -148,9 +163,7 @@
// CAROUSEL PLUGIN DEFINITION
// ==========================
- var old = $.fn.carousel
-
- $.fn.carousel = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.carousel')
@@ -164,6 +177,9 @@
})
}
+ var old = $.fn.carousel
+
+ $.fn.carousel = Plugin
$.fn.carousel.Constructor = Carousel
@@ -180,15 +196,17 @@
// =================
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
- var $this = $(this), href
- var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
+ var href
+ var $this = $(this)
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
+ if (!$target.hasClass('carousel')) return
var options = $.extend({}, $target.data(), $this.data())
var slideIndex = $this.attr('data-slide-to')
if (slideIndex) options.interval = false
- $target.carousel(options)
+ Plugin.call($target, options)
- if (slideIndex = $this.attr('data-slide-to')) {
+ if (slideIndex) {
$target.data('bs.carousel').to(slideIndex)
}
@@ -198,7 +216,7 @@
$(window).on('load', function () {
$('[data-ride="carousel"]').each(function () {
var $carousel = $(this)
- $carousel.carousel($carousel.data())
+ Plugin.call($carousel, $carousel.data())
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 7130282..e4e6d79 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: collapse.js v3.1.1
+ * Bootstrap: collapse.js v3.2.0
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -22,6 +22,8 @@
if (this.options.toggle) this.toggle()
}
+ Collapse.VERSION = '3.2.0'
+
Collapse.DEFAULTS = {
toggle: true
}
@@ -43,7 +45,7 @@
if (actives && actives.length) {
var hasData = actives.data('bs.collapse')
if (hasData && hasData.transitioning) return
- actives.collapse('hide')
+ Plugin.call(actives, 'hide')
hasData || actives.data('bs.collapse', null)
}
@@ -51,18 +53,17 @@
this.$element
.removeClass('collapse')
- .addClass('collapsing')
- [dimension](0)
+ .addClass('collapsing')[dimension](0)
this.transitioning = 1
var complete = function () {
this.$element
.removeClass('collapsing')
- .addClass('collapse in')
- [dimension]('auto')
+ .addClass('collapse in')[dimension]('')
this.transitioning = 0
- this.$element.trigger('shown.bs.collapse')
+ this.$element
+ .trigger('shown.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
@@ -70,9 +71,8 @@
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
this.$element
- .one($.support.transition.end, $.proxy(complete, this))
- .emulateTransitionEnd(350)
- [dimension](this.$element[0][scrollSize])
+ .one('bsTransitionEnd', $.proxy(complete, this))
+ .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
}
Collapse.prototype.hide = function () {
@@ -84,9 +84,7 @@
var dimension = this.dimension()
- this.$element
- [dimension](this.$element[dimension]())
- [0].offsetHeight
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight
this.$element
.addClass('collapsing')
@@ -107,7 +105,7 @@
this.$element
[dimension](0)
- .one($.support.transition.end, $.proxy(complete, this))
+ .one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(350)
}
@@ -119,9 +117,7 @@
// COLLAPSE PLUGIN DEFINITION
// ==========================
- var old = $.fn.collapse
-
- $.fn.collapse = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.collapse')
@@ -133,6 +129,9 @@
})
}
+ var old = $.fn.collapse
+
+ $.fn.collapse = Plugin
$.fn.collapse.Constructor = Collapse
@@ -148,11 +147,12 @@
// COLLAPSE DATA-API
// =================
- $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
- var $this = $(this), href
+ $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
+ var href
+ var $this = $(this)
var target = $this.attr('data-target')
|| e.preventDefault()
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
var $target = $(target)
var data = $target.data('bs.collapse')
var option = data ? 'toggle' : $this.data()
@@ -160,11 +160,11 @@
var $parent = parent && $(parent)
if (!data || !data.transitioning) {
- if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
+ if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed')
$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
}
- $target.collapse(option)
+ Plugin.call($target, option)
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 43d7ae3..88f118c 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: dropdown.js v3.1.1
+ * Bootstrap: dropdown.js v3.2.0
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,11 +14,13 @@
// =========================
var backdrop = '.dropdown-backdrop'
- var toggle = '[data-toggle=dropdown]'
+ var toggle = '[data-toggle="dropdown"]'
var Dropdown = function (element) {
$(element).on('click.bs.dropdown', this.toggle)
}
+ Dropdown.VERSION = '3.2.0'
+
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
@@ -40,11 +42,11 @@
if (e.isDefaultPrevented()) return
+ $this.trigger('focus')
+
$parent
.toggleClass('open')
.trigger('shown.bs.dropdown', relatedTarget)
-
- $this.focus()
}
return false
@@ -64,12 +66,12 @@
var isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) {
- if (e.which == 27) $parent.find(toggle).focus()
- return $this.click()
+ if (e.which == 27) $parent.find(toggle).trigger('focus')
+ return $this.trigger('click')
}
var desc = ' li:not(.divider):visible a'
- var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
+ var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
if (!$items.length) return
@@ -79,10 +81,11 @@
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
if (!~index) index = 0
- $items.eq(index).focus()
+ $items.eq(index).trigger('focus')
}
function clearMenus(e) {
+ if (e && e.which === 3) return
$(backdrop).remove()
$(toggle).each(function () {
var $parent = getParent($(this))
@@ -99,7 +102,7 @@
if (!selector) {
selector = $this.attr('href')
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
var $parent = selector && $(selector)
@@ -111,9 +114,7 @@
// DROPDOWN PLUGIN DEFINITION
// ==========================
- var old = $.fn.dropdown
-
- $.fn.dropdown = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.dropdown')
@@ -123,6 +124,9 @@
})
}
+ var old = $.fn.dropdown
+
+ $.fn.dropdown = Plugin
$.fn.dropdown.Constructor = Dropdown
@@ -142,6 +146,6 @@
.on('click.bs.dropdown.data-api', clearMenus)
.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 + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 20ff270..29eedf1 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: modal.js v3.1.1
+ * Bootstrap: modal.js v3.2.0
* http://getbootstrap.com/javascript/#modals
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,10 +14,12 @@
// ======================
var Modal = function (element, options) {
- this.options = options
- this.$element = $(element)
- this.$backdrop =
- this.isShown = null
+ this.options = options
+ this.$body = $(document.body)
+ this.$element = $(element)
+ this.$backdrop =
+ this.isShown = null
+ this.scrollbarWidth = 0
if (this.options.remote) {
this.$element
@@ -28,6 +30,8 @@
}
}
+ Modal.VERSION = '3.2.0'
+
Modal.DEFAULTS = {
backdrop: true,
keyboard: true,
@@ -35,7 +39,7 @@
}
Modal.prototype.toggle = function (_relatedTarget) {
- return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
+ return this.isShown ? this.hide() : this.show(_relatedTarget)
}
Modal.prototype.show = function (_relatedTarget) {
@@ -48,6 +52,10 @@
this.isShown = true
+ this.checkScrollbar()
+ this.$body.addClass('modal-open')
+
+ this.setScrollbar()
this.escape()
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
@@ -56,7 +64,7 @@
var transition = $.support.transition && that.$element.hasClass('fade')
if (!that.$element.parent().length) {
- that.$element.appendTo(document.body) // don't move modals dom position
+ that.$element.appendTo(that.$body) // don't move modals dom position
}
that.$element
@@ -77,11 +85,11 @@
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
- .one($.support.transition.end, function () {
- that.$element.focus().trigger(e)
+ .one('bsTransitionEnd', function () {
+ that.$element.trigger('focus').trigger(e)
})
.emulateTransitionEnd(300) :
- that.$element.focus().trigger(e)
+ that.$element.trigger('focus').trigger(e)
})
}
@@ -96,6 +104,9 @@
this.isShown = false
+ this.$body.removeClass('modal-open')
+
+ this.resetScrollbar()
this.escape()
$(document).off('focusin.bs.modal')
@@ -107,7 +118,7 @@
$.support.transition && this.$element.hasClass('fade') ?
this.$element
- .one($.support.transition.end, $.proxy(this.hideModal, this))
+ .one('bsTransitionEnd', $.proxy(this.hideModal, this))
.emulateTransitionEnd(300) :
this.hideModal()
}
@@ -117,7 +128,7 @@
.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) {
- this.$element.focus()
+ this.$element.trigger('focus')
}
}, this))
}
@@ -136,7 +147,6 @@
var that = this
this.$element.hide()
this.backdrop(function () {
- that.removeBackdrop()
that.$element.trigger('hidden.bs.modal')
})
}
@@ -147,13 +157,14 @@
}
Modal.prototype.backdrop = function (callback) {
+ var that = this
var animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
- .appendTo(document.body)
+ .appendTo(this.$body)
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
@@ -170,31 +181,56 @@
doAnimate ?
this.$backdrop
- .one($.support.transition.end, callback)
+ .one('bsTransitionEnd', callback)
.emulateTransitionEnd(150) :
callback()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
+ var callbackRemove = function () {
+ that.removeBackdrop()
+ callback && callback()
+ }
$.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
- .one($.support.transition.end, callback)
+ .one('bsTransitionEnd', callbackRemove)
.emulateTransitionEnd(150) :
- callback()
+ callbackRemove()
} else if (callback) {
callback()
}
}
+ Modal.prototype.checkScrollbar = function () {
+ if (document.body.clientWidth >= window.innerWidth) return
+ this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
+ }
+
+ Modal.prototype.setScrollbar = function () {
+ var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
+ if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
+ }
+
+ Modal.prototype.resetScrollbar = function () {
+ this.$body.css('padding-right', '')
+ }
+
+ Modal.prototype.measureScrollbar = function () { // thx walsh
+ var scrollDiv = document.createElement('div')
+ scrollDiv.className = 'modal-scrollbar-measure'
+ this.$body.append(scrollDiv)
+ var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
+ this.$body[0].removeChild(scrollDiv)
+ return scrollbarWidth
+ }
+
// MODAL PLUGIN DEFINITION
// =======================
- var old = $.fn.modal
-
- $.fn.modal = function (option, _relatedTarget) {
+ function Plugin(option, _relatedTarget) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.modal')
@@ -206,6 +242,9 @@
})
}
+ var old = $.fn.modal
+
+ $.fn.modal = Plugin
$.fn.modal.Constructor = Modal
@@ -224,20 +263,18 @@
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
var href = $this.attr('href')
- var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
if ($this.is('a')) e.preventDefault()
- $target
- .modal(option, this)
- .one('hide', function () {
- $this.is(':visible') && $this.focus()
+ $target.one('show.bs.modal', function (showEvent) {
+ if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
+ $target.one('hidden.bs.modal', function () {
+ $this.is(':visible') && $this.trigger('focus')
})
+ })
+ Plugin.call($target, option, this)
})
- $(document)
- .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
- .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
-
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 23aa829..825e1b3 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: popover.js v3.1.1
+ * Bootstrap: popover.js v3.2.0
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -19,11 +19,13 @@
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
+ Popover.VERSION = '3.2.0'
+
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
placement: 'right',
trigger: 'click',
content: '',
- template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+ template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
})
@@ -44,7 +46,7 @@
var content = this.getContent()
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
- $tip.find('.popover-content')[ // we use append for html objects to maintain js events
+ $tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
](content)
@@ -70,7 +72,7 @@
}
Popover.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.arrow')
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
}
Popover.prototype.tip = function () {
@@ -82,9 +84,7 @@
// POPOVER PLUGIN DEFINITION
// =========================
- var old = $.fn.popover
-
- $.fn.popover = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.popover')
@@ -96,6 +96,9 @@
})
}
+ var old = $.fn.popover
+
+ $.fn.popover = Plugin
$.fn.popover.Constructor = Popover
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 4346c86..db23787 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: scrollspy.js v3.1.1
+ * Bootstrap: scrollspy.js v3.2.0
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,36 +14,48 @@
// ==========================
function ScrollSpy(element, options) {
- var href
var process = $.proxy(this.process, this)
- this.$element = $(element).is('body') ? $(window) : $(element)
this.$body = $('body')
- this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
+ this.$scrollElement = $(element).is('body') ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
- this.selector = (this.options.target
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
- || '') + ' .nav li > a'
- this.offsets = $([])
- this.targets = $([])
+ this.selector = (this.options.target || '') + ' .nav li > a'
+ this.offsets = []
+ this.targets = []
this.activeTarget = null
+ this.scrollHeight = 0
+ this.$scrollElement.on('scroll.bs.scrollspy', process)
this.refresh()
this.process()
}
+ ScrollSpy.VERSION = '3.2.0'
+
ScrollSpy.DEFAULTS = {
offset: 10
}
+ ScrollSpy.prototype.getScrollHeight = function () {
+ return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+ }
+
ScrollSpy.prototype.refresh = function () {
- var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
+ var offsetMethod = 'offset'
+ var offsetBase = 0
- this.offsets = $([])
- this.targets = $([])
+ if (!$.isWindow(this.$scrollElement[0])) {
+ offsetMethod = 'position'
+ offsetBase = this.$scrollElement.scrollTop()
+ }
+
+ this.offsets = []
+ this.targets = []
+ this.scrollHeight = this.getScrollHeight()
var self = this
- var $targets = this.$body
+
+ this.$body
.find(this.selector)
.map(function () {
var $el = $(this)
@@ -53,7 +65,7 @@
return ($href
&& $href.length
&& $href.is(':visible')
- && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
+ && [[$href[offsetMethod]().top + offsetBase, href]]) || null
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
@@ -64,15 +76,19 @@
ScrollSpy.prototype.process = function () {
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
- var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
- var maxScroll = scrollHeight - this.$scrollElement.height()
+ var scrollHeight = this.getScrollHeight()
+ var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
var offsets = this.offsets
var targets = this.targets
var activeTarget = this.activeTarget
var i
+ if (this.scrollHeight != scrollHeight) {
+ this.refresh()
+ }
+
if (scrollTop >= maxScroll) {
- return activeTarget != (i = targets.last()[0]) && this.activate(i)
+ return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
}
if (activeTarget && scrollTop <= offsets[0]) {
@@ -83,7 +99,7 @@
activeTarget != targets[i]
&& scrollTop >= offsets[i]
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
- && this.activate( targets[i] )
+ && this.activate(targets[i])
}
}
@@ -115,9 +131,7 @@
// SCROLLSPY PLUGIN DEFINITION
// ===========================
- var old = $.fn.scrollspy
-
- $.fn.scrollspy = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.scrollspy')
@@ -128,6 +142,9 @@
})
}
+ var old = $.fn.scrollspy
+
+ $.fn.scrollspy = Plugin
$.fn.scrollspy.Constructor = ScrollSpy
@@ -143,10 +160,10 @@
// SCROLLSPY DATA-API
// ==================
- $(window).on('load', function () {
+ $(window).on('load.bs.scrollspy.data-api', function () {
$('[data-spy="scroll"]').each(function () {
var $spy = $(this)
- $spy.scrollspy($spy.data())
+ Plugin.call($spy, $spy.data())
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 400cb7b..c0e1e46 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: tab.js v3.1.1
+ * Bootstrap: tab.js v3.2.0
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -17,6 +17,8 @@
this.element = $(element)
}
+ Tab.VERSION = '3.2.0'
+
Tab.prototype.show = function () {
var $this = this.element
var $ul = $this.closest('ul:not(.dropdown-menu)')
@@ -24,7 +26,7 @@
if (!selector) {
selector = $this.attr('href')
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
if ($this.parent('li').hasClass('active')) return
@@ -40,7 +42,7 @@
var $target = $(selector)
- this.activate($this.parent('li'), $ul)
+ this.activate($this.closest('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
type: 'shown.bs.tab',
@@ -79,7 +81,7 @@
transition ?
$active
- .one($.support.transition.end, next)
+ .one('bsTransitionEnd', next)
.emulateTransitionEnd(150) :
next()
@@ -90,9 +92,7 @@
// TAB PLUGIN DEFINITION
// =====================
- var old = $.fn.tab
-
- $.fn.tab = function ( option ) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tab')
@@ -102,6 +102,9 @@
})
}
+ var old = $.fn.tab
+
+ $.fn.tab = Plugin
$.fn.tab.Constructor = Tab
@@ -119,7 +122,7 @@
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
- $(this).tab('show')
+ Plugin.call($(this), 'show')
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f6c0a37..9cdb6c9 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: tooltip.js v3.1.1
+ * Bootstrap: tooltip.js v3.2.0
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
@@ -25,23 +25,30 @@
this.init('tooltip', element, options)
}
+ Tooltip.VERSION = '3.2.0'
+
Tooltip.DEFAULTS = {
animation: true,
placement: 'top',
selector: false,
- template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+ template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
- container: false
+ container: false,
+ viewport: {
+ selector: 'body',
+ padding: 0
+ }
}
Tooltip.prototype.init = function (type, element, options) {
- this.enabled = true
- this.type = type
- this.$element = $(element)
- this.options = this.getOptions(options)
+ this.enabled = true
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
var triggers = this.options.trigger.split(' ')
@@ -94,7 +101,12 @@
Tooltip.prototype.enter = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -109,7 +121,12 @@
Tooltip.prototype.leave = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -128,12 +145,17 @@
if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
- var that = this;
+ var inDom = $.contains(document.documentElement, this.$element[0])
+ if (e.isDefaultPrevented() || !inDom) return
+ var that = this
var $tip = this.tip()
+ var tipId = this.getUID(this.type)
+
this.setContent()
+ $tip.attr('id', tipId)
+ this.$element.attr('aria-describedby', tipId)
if (this.options.animation) $tip.addClass('fade')
@@ -149,6 +171,7 @@
.detach()
.css({ top: 0, left: 0, display: 'block' })
.addClass(placement)
+ .data('bs.' + this.type, this)
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
@@ -157,18 +180,14 @@
var actualHeight = $tip[0].offsetHeight
if (autoPlace) {
- var $parent = this.$element.parent()
-
var orgPlacement = placement
- var docScroll = document.documentElement.scrollTop || document.body.scrollTop
- var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
- var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
- var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
-
- placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
- placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
- placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
- placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
+ var $parent = this.$element.parent()
+ var parentDim = this.getPosition($parent)
+
+ placement = placement == 'bottom' && pos.top + pos.height + actualHeight - parentDim.scroll > parentDim.height ? 'top' :
+ placement == 'top' && pos.top - parentDim.scroll - actualHeight < 0 ? 'bottom' :
+ placement == 'right' && pos.right + actualWidth > parentDim.width ? 'left' :
+ placement == 'left' && pos.left - actualWidth < parentDim.left ? 'right' :
placement
$tip
@@ -179,22 +198,21 @@
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
this.applyPlacement(calculatedOffset, placement)
- this.hoverState = null
- var complete = function() {
+ var complete = function () {
that.$element.trigger('shown.bs.' + that.type)
+ that.hoverState = null
}
$.support.transition && this.$tip.hasClass('fade') ?
$tip
- .one($.support.transition.end, complete)
+ .one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
}
}
Tooltip.prototype.applyPlacement = function (offset, placement) {
- var replace
var $tip = this.tip()
var width = $tip[0].offsetWidth
var height = $tip[0].offsetHeight
@@ -228,29 +246,20 @@
var actualHeight = $tip[0].offsetHeight
if (placement == 'top' && actualHeight != height) {
- replace = true
offset.top = offset.top + height - actualHeight
}
- if (/bottom|top/.test(placement)) {
- var delta = 0
+ var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
- if (offset.left < 0) {
- delta = offset.left * -2
- offset.left = 0
+ if (delta.left) offset.left += delta.left
+ else offset.top += delta.top
- $tip.offset(offset)
+ var arrowDelta = delta.left ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
+ var arrowPosition = delta.left ? 'left' : 'top'
+ var arrowOffsetPosition = delta.left ? 'offsetWidth' : 'offsetHeight'
- actualWidth = $tip[0].offsetWidth
- actualHeight = $tip[0].offsetHeight
- }
-
- this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
- } else {
- this.replaceArrow(actualHeight - height, actualHeight, 'top')
- }
-
- if (replace) $tip.offset(offset)
+ $tip.offset(offset)
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], arrowPosition)
}
Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
@@ -270,6 +279,8 @@
var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type)
+ this.$element.removeAttr('aria-describedby')
+
function complete() {
if (that.hoverState != 'in') $tip.detach()
that.$element.trigger('hidden.bs.' + that.type)
@@ -283,7 +294,7 @@
$.support.transition && this.$tip.hasClass('fade') ?
$tip
- .one($.support.transition.end, complete)
+ .one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
@@ -294,7 +305,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', '')
}
}
@@ -303,12 +314,15 @@
return this.getTitle()
}
- Tooltip.prototype.getPosition = function () {
- var el = this.$element[0]
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
- width: el.offsetWidth,
- height: el.offsetHeight
- }, this.$element.offset())
+ Tooltip.prototype.getPosition = function ($element) {
+ $element = $element || this.$element
+ var el = $element[0]
+ var isBody = el.tagName == 'BODY'
+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
+ scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
+ width: isBody ? $(window).width() : $element.outerWidth(),
+ height: isBody ? $(window).height() : $element.outerHeight()
+ }, isBody ? { top: 0, left: 0 } : $element.offset())
}
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
@@ -316,6 +330,35 @@
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
+
+ }
+
+ Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
+ var delta = { top: 0, left: 0 }
+ if (!this.$viewport) return delta
+
+ var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
+ var viewportDimensions = this.getPosition(this.$viewport)
+
+ if (/right|left/.test(placement)) {
+ var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
+ var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
+ if (topEdgeOffset < viewportDimensions.top) { // top overflow
+ delta.top = viewportDimensions.top - topEdgeOffset
+ } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
+ delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
+ }
+ } else {
+ var leftEdgeOffset = pos.left - viewportPadding
+ var rightEdgeOffset = pos.left + viewportPadding + actualWidth
+ if (leftEdgeOffset < viewportDimensions.left) { // left overflow
+ delta.left = viewportDimensions.left - leftEdgeOffset
+ } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
+ delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
+ }
+ }
+
+ return delta
}
Tooltip.prototype.getTitle = function () {
@@ -329,12 +372,18 @@
return title
}
+ Tooltip.prototype.getUID = function (prefix) {
+ do prefix += ~~(Math.random() * 1000000)
+ while (document.getElementById(prefix))
+ return prefix
+ }
+
Tooltip.prototype.tip = function () {
- return this.$tip = this.$tip || $(this.options.template)
+ return (this.$tip = this.$tip || $(this.options.template))
}
Tooltip.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
}
Tooltip.prototype.validate = function () {
@@ -358,7 +407,15 @@
}
Tooltip.prototype.toggle = function (e) {
- var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
+ var self = this
+ if (e) {
+ self = $(e.currentTarget).data('bs.' + this.type)
+ if (!self) {
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
+ $(e.currentTarget).data('bs.' + this.type, self)
+ }
+ }
+
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
}
@@ -371,9 +428,7 @@
// TOOLTIP PLUGIN DEFINITION
// =========================
- var old = $.fn.tooltip
-
- $.fn.tooltip = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tooltip')
@@ -385,6 +440,9 @@
})
}
+ var old = $.fn.tooltip
+
+ $.fn.tooltip = Plugin
$.fn.tooltip.Constructor = Tooltip
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 efa8c17..83f85bf 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: transition.js v3.1.1
+ * Bootstrap: transition.js v3.2.0
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -17,10 +17,10 @@
var el = document.createElement('bootstrap')
var transEndEventNames = {
- 'WebkitTransition' : 'webkitTransitionEnd',
- 'MozTransition' : 'transitionend',
- 'OTransition' : 'oTransitionEnd otransitionend',
- 'transition' : 'transitionend'
+ WebkitTransition : 'webkitTransitionEnd',
+ MozTransition : 'transitionend',
+ OTransition : 'oTransitionEnd otransitionend',
+ transition : 'transitionend'
}
for (var name in transEndEventNames) {
@@ -34,8 +34,9 @@
// http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) {
- var called = false, $el = this
- $(this).one($.support.transition.end, function () { called = true })
+ var called = false
+ var $el = this
+ $(this).one('bsTransitionEnd', function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration)
return this
@@ -43,6 +44,16 @@
$(function () {
$.support.transition = transitionEnd()
+
+ if (!$.support.transition) return
+
+ $.event.special.bsTransitionEnd = {
+ bindType: $.support.transition.end,
+ delegateType: $.support.transition.end,
+ handle: function (e) {
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
+ }
+ }
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 05c909e..7d404eb 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: affix.js v3.1.1
+ * Bootstrap: affix.js v3.2.0
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -15,7 +15,8 @@
var Affix = function (element, options) {
this.options = $.extend({}, Affix.DEFAULTS, options)
- this.$window = $(window)
+
+ this.$target = $(this.options.target)
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
@@ -27,16 +28,19 @@
this.checkPosition()
}
- Affix.RESET = 'affix affix-top affix-bottom'
+ Affix.VERSION = '3.2.0'
+
+ Affix.RESET = 'affix affix-top affix-bottom'
Affix.DEFAULTS = {
- offset: 0
+ offset: 0,
+ target: window
}
Affix.prototype.getPinnedOffset = function () {
if (this.pinnedOffset) return this.pinnedOffset
this.$element.removeClass(Affix.RESET).addClass('affix')
- var scrollTop = this.$window.scrollTop()
+ var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
return (this.pinnedOffset = position.top - scrollTop)
}
@@ -49,14 +53,12 @@
if (!this.$element.is(':visible')) return
var scrollHeight = $(document).height()
- var scrollTop = this.$window.scrollTop()
+ var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
- if (this.affixed == 'top') position.top += scrollTop
-
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
@@ -66,7 +68,7 @@
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
if (this.affixed === affix) return
- if (this.unpin) this.$element.css('top', '')
+ if (this.unpin != null) this.$element.css('top', '')
var affixType = 'affix' + (affix ? '-' + affix : '')
var e = $.Event(affixType + '.bs.affix')
@@ -84,7 +86,9 @@
.trigger($.Event(affixType.replace('affix', 'affixed')))
if (affix == 'bottom') {
- this.$element.offset({ top: scrollHeight - offsetBottom - this.$element.height() })
+ this.$element.offset({
+ top: scrollHeight - this.$element.height() - offsetBottom
+ })
}
}
@@ -92,9 +96,7 @@
// AFFIX PLUGIN DEFINITION
// =======================
- var old = $.fn.affix
-
- $.fn.affix = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.affix')
@@ -105,6 +107,9 @@
})
}
+ var old = $.fn.affix
+
+ $.fn.affix = Plugin
$.fn.affix.Constructor = Affix
@@ -130,7 +135,7 @@
if (data.offsetBottom) data.offset.bottom = data.offsetBottom
if (data.offsetTop) data.offset.top = data.offsetTop
- $spy.affix(data)
+ Plugin.call($spy, data)
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 516fe4f..0efd92c 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: alert.js v3.1.1
+ * Bootstrap: alert.js v3.2.0
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -18,6 +18,8 @@
$(el).on('click', dismiss, this.close)
}
+ Alert.VERSION = '3.2.0'
+
Alert.prototype.close = function (e) {
var $this = $(this)
var selector = $this.attr('data-target')
@@ -42,12 +44,13 @@
$parent.removeClass('in')
function removeElement() {
- $parent.trigger('closed.bs.alert').remove()
+ // detach from parent, fire event then clean up data
+ $parent.detach().trigger('closed.bs.alert').remove()
}
$.support.transition && $parent.hasClass('fade') ?
$parent
- .one($.support.transition.end, removeElement)
+ .one('bsTransitionEnd', removeElement)
.emulateTransitionEnd(150) :
removeElement()
}
@@ -56,9 +59,7 @@
// ALERT PLUGIN DEFINITION
// =======================
- var old = $.fn.alert
-
- $.fn.alert = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.alert')
@@ -68,6 +69,9 @@
})
}
+ var old = $.fn.alert
+
+ $.fn.alert = Plugin
$.fn.alert.Constructor = Alert
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f4d8d8b..dc3164f 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/button.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/button.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: button.js v3.1.1
+ * Bootstrap: button.js v3.2.0
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -19,6 +19,8 @@
this.isLoading = false
}
+ Button.VERSION = '3.2.0'
+
Button.DEFAULTS = {
loadingText: 'loading...'
}
@@ -31,9 +33,9 @@
state = state + 'Text'
- if (!data.resetText) $el.data('resetText', $el[val]())
+ if (data.resetText == null) $el.data('resetText', $el[val]())
- $el[val](data[state] || this.options[state])
+ $el[val](data[state] == null ? this.options[state] : data[state])
// push to event loop to allow forms to submit
setTimeout($.proxy(function () {
@@ -67,9 +69,7 @@
// BUTTON PLUGIN DEFINITION
// ========================
- var old = $.fn.button
-
- $.fn.button = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.button')
@@ -82,6 +82,9 @@
})
}
+ var old = $.fn.button
+
+ $.fn.button = Plugin
$.fn.button.Constructor = Button
@@ -97,10 +100,10 @@
// BUTTON DATA-API
// ===============
- $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
+ $(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
var $btn = $(e.target)
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
- $btn.button('toggle')
+ Plugin.call($btn, 'toggle')
e.preventDefault()
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 19e9af1..b7da1ba 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: carousel.js v3.1.1
+ * Bootstrap: carousel.js v3.2.0
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,7 +14,7 @@
// =========================
var Carousel = function (element, options) {
- this.$element = $(element)
+ this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.paused =
@@ -24,17 +24,29 @@
this.$items = null
this.options.pause == 'hover' && this.$element
- .on('mouseenter', $.proxy(this.pause, this))
- .on('mouseleave', $.proxy(this.cycle, this))
+ .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
+ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
}
+ Carousel.VERSION = '3.2.0'
+
Carousel.DEFAULTS = {
interval: 5000,
pause: 'hover',
wrap: true
}
- Carousel.prototype.cycle = function (e) {
+ Carousel.prototype.keydown = function (e) {
+ switch (e.which) {
+ case 37: this.prev(); break
+ case 39: this.next(); break
+ default: return
+ }
+
+ e.preventDefault()
+ }
+
+ Carousel.prototype.cycle = function (e) {
e || (this.paused = false)
this.interval && clearInterval(this.interval)
@@ -46,20 +58,18 @@
return this
}
- Carousel.prototype.getActiveIndex = function () {
- this.$active = this.$element.find('.item.active')
- this.$items = this.$active.parent().children()
-
- return this.$items.index(this.$active)
+ Carousel.prototype.getItemIndex = function (item) {
+ this.$items = item.parent().children('.item')
+ return this.$items.index(item || this.$active)
}
Carousel.prototype.to = function (pos) {
var that = this
- var activeIndex = this.getActiveIndex()
+ var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
if (pos > (this.$items.length - 1) || pos < 0) return
- if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
+ if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
if (activeIndex == pos) return this.pause().cycle()
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
@@ -101,11 +111,15 @@
$next = this.$element.find('.item')[fallback]()
}
- if ($next.hasClass('active')) return this.sliding = false
+ if ($next.hasClass('active')) return (this.sliding = false)
- var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
+ var relatedTarget = $next[0]
+ var slideEvent = $.Event('slide.bs.carousel', {
+ relatedTarget: relatedTarget,
+ direction: direction
+ })
+ this.$element.trigger(slideEvent)
+ if (slideEvent.isDefaultPrevented()) return
this.sliding = true
@@ -113,30 +127,31 @@
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
- this.$element.one('slid.bs.carousel', function () {
- var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
- $nextIndicator && $nextIndicator.addClass('active')
- })
+ var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
+ $nextIndicator && $nextIndicator.addClass('active')
}
+ var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
if ($.support.transition && this.$element.hasClass('slide')) {
$next.addClass(type)
$next[0].offsetWidth // force reflow
$active.addClass(direction)
$next.addClass(direction)
$active
- .one($.support.transition.end, function () {
+ .one('bsTransitionEnd', function () {
$next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' '))
that.sliding = false
- setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
+ setTimeout(function () {
+ that.$element.trigger(slidEvent)
+ }, 0)
})
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
} else {
$active.removeClass('active')
$next.addClass('active')
this.sliding = false
- this.$element.trigger('slid.bs.carousel')
+ this.$element.trigger(slidEvent)
}
isCycling && this.cycle()
@@ -148,9 +163,7 @@
// CAROUSEL PLUGIN DEFINITION
// ==========================
- var old = $.fn.carousel
-
- $.fn.carousel = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.carousel')
@@ -164,6 +177,9 @@
})
}
+ var old = $.fn.carousel
+
+ $.fn.carousel = Plugin
$.fn.carousel.Constructor = Carousel
@@ -180,15 +196,17 @@
// =================
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
- var $this = $(this), href
- var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
+ var href
+ var $this = $(this)
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
+ if (!$target.hasClass('carousel')) return
var options = $.extend({}, $target.data(), $this.data())
var slideIndex = $this.attr('data-slide-to')
if (slideIndex) options.interval = false
- $target.carousel(options)
+ Plugin.call($target, options)
- if (slideIndex = $this.attr('data-slide-to')) {
+ if (slideIndex) {
$target.data('bs.carousel').to(slideIndex)
}
@@ -198,7 +216,7 @@
$(window).on('load', function () {
$('[data-ride="carousel"]').each(function () {
var $carousel = $(this)
- $carousel.carousel($carousel.data())
+ Plugin.call($carousel, $carousel.data())
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 7130282..e4e6d79 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: collapse.js v3.1.1
+ * Bootstrap: collapse.js v3.2.0
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -22,6 +22,8 @@
if (this.options.toggle) this.toggle()
}
+ Collapse.VERSION = '3.2.0'
+
Collapse.DEFAULTS = {
toggle: true
}
@@ -43,7 +45,7 @@
if (actives && actives.length) {
var hasData = actives.data('bs.collapse')
if (hasData && hasData.transitioning) return
- actives.collapse('hide')
+ Plugin.call(actives, 'hide')
hasData || actives.data('bs.collapse', null)
}
@@ -51,18 +53,17 @@
this.$element
.removeClass('collapse')
- .addClass('collapsing')
- [dimension](0)
+ .addClass('collapsing')[dimension](0)
this.transitioning = 1
var complete = function () {
this.$element
.removeClass('collapsing')
- .addClass('collapse in')
- [dimension]('auto')
+ .addClass('collapse in')[dimension]('')
this.transitioning = 0
- this.$element.trigger('shown.bs.collapse')
+ this.$element
+ .trigger('shown.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
@@ -70,9 +71,8 @@
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
this.$element
- .one($.support.transition.end, $.proxy(complete, this))
- .emulateTransitionEnd(350)
- [dimension](this.$element[0][scrollSize])
+ .one('bsTransitionEnd', $.proxy(complete, this))
+ .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
}
Collapse.prototype.hide = function () {
@@ -84,9 +84,7 @@
var dimension = this.dimension()
- this.$element
- [dimension](this.$element[dimension]())
- [0].offsetHeight
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight
this.$element
.addClass('collapsing')
@@ -107,7 +105,7 @@
this.$element
[dimension](0)
- .one($.support.transition.end, $.proxy(complete, this))
+ .one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(350)
}
@@ -119,9 +117,7 @@
// COLLAPSE PLUGIN DEFINITION
// ==========================
- var old = $.fn.collapse
-
- $.fn.collapse = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.collapse')
@@ -133,6 +129,9 @@
})
}
+ var old = $.fn.collapse
+
+ $.fn.collapse = Plugin
$.fn.collapse.Constructor = Collapse
@@ -148,11 +147,12 @@
// COLLAPSE DATA-API
// =================
- $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
- var $this = $(this), href
+ $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
+ var href
+ var $this = $(this)
var target = $this.attr('data-target')
|| e.preventDefault()
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
var $target = $(target)
var data = $target.data('bs.collapse')
var option = data ? 'toggle' : $this.data()
@@ -160,11 +160,11 @@
var $parent = parent && $(parent)
if (!data || !data.transitioning) {
- if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
+ if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed')
$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
}
- $target.collapse(option)
+ Plugin.call($target, option)
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 43d7ae3..88f118c 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: dropdown.js v3.1.1
+ * Bootstrap: dropdown.js v3.2.0
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,11 +14,13 @@
// =========================
var backdrop = '.dropdown-backdrop'
- var toggle = '[data-toggle=dropdown]'
+ var toggle = '[data-toggle="dropdown"]'
var Dropdown = function (element) {
$(element).on('click.bs.dropdown', this.toggle)
}
+ Dropdown.VERSION = '3.2.0'
+
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
@@ -40,11 +42,11 @@
if (e.isDefaultPrevented()) return
+ $this.trigger('focus')
+
$parent
.toggleClass('open')
.trigger('shown.bs.dropdown', relatedTarget)
-
- $this.focus()
}
return false
@@ -64,12 +66,12 @@
var isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) {
- if (e.which == 27) $parent.find(toggle).focus()
- return $this.click()
+ if (e.which == 27) $parent.find(toggle).trigger('focus')
+ return $this.trigger('click')
}
var desc = ' li:not(.divider):visible a'
- var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
+ var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
if (!$items.length) return
@@ -79,10 +81,11 @@
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
if (!~index) index = 0
- $items.eq(index).focus()
+ $items.eq(index).trigger('focus')
}
function clearMenus(e) {
+ if (e && e.which === 3) return
$(backdrop).remove()
$(toggle).each(function () {
var $parent = getParent($(this))
@@ -99,7 +102,7 @@
if (!selector) {
selector = $this.attr('href')
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
var $parent = selector && $(selector)
@@ -111,9 +114,7 @@
// DROPDOWN PLUGIN DEFINITION
// ==========================
- var old = $.fn.dropdown
-
- $.fn.dropdown = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.dropdown')
@@ -123,6 +124,9 @@
})
}
+ var old = $.fn.dropdown
+
+ $.fn.dropdown = Plugin
$.fn.dropdown.Constructor = Dropdown
@@ -142,6 +146,6 @@
.on('click.bs.dropdown.data-api', clearMenus)
.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 + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 20ff270..29eedf1 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: modal.js v3.1.1
+ * Bootstrap: modal.js v3.2.0
* http://getbootstrap.com/javascript/#modals
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,10 +14,12 @@
// ======================
var Modal = function (element, options) {
- this.options = options
- this.$element = $(element)
- this.$backdrop =
- this.isShown = null
+ this.options = options
+ this.$body = $(document.body)
+ this.$element = $(element)
+ this.$backdrop =
+ this.isShown = null
+ this.scrollbarWidth = 0
if (this.options.remote) {
this.$element
@@ -28,6 +30,8 @@
}
}
+ Modal.VERSION = '3.2.0'
+
Modal.DEFAULTS = {
backdrop: true,
keyboard: true,
@@ -35,7 +39,7 @@
}
Modal.prototype.toggle = function (_relatedTarget) {
- return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
+ return this.isShown ? this.hide() : this.show(_relatedTarget)
}
Modal.prototype.show = function (_relatedTarget) {
@@ -48,6 +52,10 @@
this.isShown = true
+ this.checkScrollbar()
+ this.$body.addClass('modal-open')
+
+ this.setScrollbar()
this.escape()
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
@@ -56,7 +64,7 @@
var transition = $.support.transition && that.$element.hasClass('fade')
if (!that.$element.parent().length) {
- that.$element.appendTo(document.body) // don't move modals dom position
+ that.$element.appendTo(that.$body) // don't move modals dom position
}
that.$element
@@ -77,11 +85,11 @@
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
- .one($.support.transition.end, function () {
- that.$element.focus().trigger(e)
+ .one('bsTransitionEnd', function () {
+ that.$element.trigger('focus').trigger(e)
})
.emulateTransitionEnd(300) :
- that.$element.focus().trigger(e)
+ that.$element.trigger('focus').trigger(e)
})
}
@@ -96,6 +104,9 @@
this.isShown = false
+ this.$body.removeClass('modal-open')
+
+ this.resetScrollbar()
this.escape()
$(document).off('focusin.bs.modal')
@@ -107,7 +118,7 @@
$.support.transition && this.$element.hasClass('fade') ?
this.$element
- .one($.support.transition.end, $.proxy(this.hideModal, this))
+ .one('bsTransitionEnd', $.proxy(this.hideModal, this))
.emulateTransitionEnd(300) :
this.hideModal()
}
@@ -117,7 +128,7 @@
.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) {
- this.$element.focus()
+ this.$element.trigger('focus')
}
}, this))
}
@@ -136,7 +147,6 @@
var that = this
this.$element.hide()
this.backdrop(function () {
- that.removeBackdrop()
that.$element.trigger('hidden.bs.modal')
})
}
@@ -147,13 +157,14 @@
}
Modal.prototype.backdrop = function (callback) {
+ var that = this
var animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
- .appendTo(document.body)
+ .appendTo(this.$body)
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
@@ -170,31 +181,56 @@
doAnimate ?
this.$backdrop
- .one($.support.transition.end, callback)
+ .one('bsTransitionEnd', callback)
.emulateTransitionEnd(150) :
callback()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
+ var callbackRemove = function () {
+ that.removeBackdrop()
+ callback && callback()
+ }
$.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
- .one($.support.transition.end, callback)
+ .one('bsTransitionEnd', callbackRemove)
.emulateTransitionEnd(150) :
- callback()
+ callbackRemove()
} else if (callback) {
callback()
}
}
+ Modal.prototype.checkScrollbar = function () {
+ if (document.body.clientWidth >= window.innerWidth) return
+ this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
+ }
+
+ Modal.prototype.setScrollbar = function () {
+ var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
+ if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
+ }
+
+ Modal.prototype.resetScrollbar = function () {
+ this.$body.css('padding-right', '')
+ }
+
+ Modal.prototype.measureScrollbar = function () { // thx walsh
+ var scrollDiv = document.createElement('div')
+ scrollDiv.className = 'modal-scrollbar-measure'
+ this.$body.append(scrollDiv)
+ var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
+ this.$body[0].removeChild(scrollDiv)
+ return scrollbarWidth
+ }
+
// MODAL PLUGIN DEFINITION
// =======================
- var old = $.fn.modal
-
- $.fn.modal = function (option, _relatedTarget) {
+ function Plugin(option, _relatedTarget) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.modal')
@@ -206,6 +242,9 @@
})
}
+ var old = $.fn.modal
+
+ $.fn.modal = Plugin
$.fn.modal.Constructor = Modal
@@ -224,20 +263,18 @@
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
var href = $this.attr('href')
- var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
if ($this.is('a')) e.preventDefault()
- $target
- .modal(option, this)
- .one('hide', function () {
- $this.is(':visible') && $this.focus()
+ $target.one('show.bs.modal', function (showEvent) {
+ if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
+ $target.one('hidden.bs.modal', function () {
+ $this.is(':visible') && $this.trigger('focus')
})
+ })
+ Plugin.call($target, option, this)
})
- $(document)
- .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
- .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
-
}(jQuery);
[3/6] update Bootstrap to 3.2.0
Posted by jk...@apache.org.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 23aa829..825e1b3 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/popover.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: popover.js v3.1.1
+ * Bootstrap: popover.js v3.2.0
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -19,11 +19,13 @@
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
+ Popover.VERSION = '3.2.0'
+
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
placement: 'right',
trigger: 'click',
content: '',
- template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+ template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
})
@@ -44,7 +46,7 @@
var content = this.getContent()
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
- $tip.find('.popover-content')[ // we use append for html objects to maintain js events
+ $tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
](content)
@@ -70,7 +72,7 @@
}
Popover.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.arrow')
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
}
Popover.prototype.tip = function () {
@@ -82,9 +84,7 @@
// POPOVER PLUGIN DEFINITION
// =========================
- var old = $.fn.popover
-
- $.fn.popover = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.popover')
@@ -96,6 +96,9 @@
})
}
+ var old = $.fn.popover
+
+ $.fn.popover = Plugin
$.fn.popover.Constructor = Popover
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 4346c86..db23787 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/scrollspy.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: scrollspy.js v3.1.1
+ * Bootstrap: scrollspy.js v3.2.0
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,36 +14,48 @@
// ==========================
function ScrollSpy(element, options) {
- var href
var process = $.proxy(this.process, this)
- this.$element = $(element).is('body') ? $(window) : $(element)
this.$body = $('body')
- this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
+ this.$scrollElement = $(element).is('body') ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
- this.selector = (this.options.target
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
- || '') + ' .nav li > a'
- this.offsets = $([])
- this.targets = $([])
+ this.selector = (this.options.target || '') + ' .nav li > a'
+ this.offsets = []
+ this.targets = []
this.activeTarget = null
+ this.scrollHeight = 0
+ this.$scrollElement.on('scroll.bs.scrollspy', process)
this.refresh()
this.process()
}
+ ScrollSpy.VERSION = '3.2.0'
+
ScrollSpy.DEFAULTS = {
offset: 10
}
+ ScrollSpy.prototype.getScrollHeight = function () {
+ return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+ }
+
ScrollSpy.prototype.refresh = function () {
- var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
+ var offsetMethod = 'offset'
+ var offsetBase = 0
- this.offsets = $([])
- this.targets = $([])
+ if (!$.isWindow(this.$scrollElement[0])) {
+ offsetMethod = 'position'
+ offsetBase = this.$scrollElement.scrollTop()
+ }
+
+ this.offsets = []
+ this.targets = []
+ this.scrollHeight = this.getScrollHeight()
var self = this
- var $targets = this.$body
+
+ this.$body
.find(this.selector)
.map(function () {
var $el = $(this)
@@ -53,7 +65,7 @@
return ($href
&& $href.length
&& $href.is(':visible')
- && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
+ && [[$href[offsetMethod]().top + offsetBase, href]]) || null
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
@@ -64,15 +76,19 @@
ScrollSpy.prototype.process = function () {
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
- var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
- var maxScroll = scrollHeight - this.$scrollElement.height()
+ var scrollHeight = this.getScrollHeight()
+ var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
var offsets = this.offsets
var targets = this.targets
var activeTarget = this.activeTarget
var i
+ if (this.scrollHeight != scrollHeight) {
+ this.refresh()
+ }
+
if (scrollTop >= maxScroll) {
- return activeTarget != (i = targets.last()[0]) && this.activate(i)
+ return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
}
if (activeTarget && scrollTop <= offsets[0]) {
@@ -83,7 +99,7 @@
activeTarget != targets[i]
&& scrollTop >= offsets[i]
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
- && this.activate( targets[i] )
+ && this.activate(targets[i])
}
}
@@ -115,9 +131,7 @@
// SCROLLSPY PLUGIN DEFINITION
// ===========================
- var old = $.fn.scrollspy
-
- $.fn.scrollspy = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.scrollspy')
@@ -128,6 +142,9 @@
})
}
+ var old = $.fn.scrollspy
+
+ $.fn.scrollspy = Plugin
$.fn.scrollspy.Constructor = ScrollSpy
@@ -143,10 +160,10 @@
// SCROLLSPY DATA-API
// ==================
- $(window).on('load', function () {
+ $(window).on('load.bs.scrollspy.data-api', function () {
$('[data-spy="scroll"]').each(function () {
var $spy = $(this)
- $spy.scrollspy($spy.data())
+ Plugin.call($spy, $spy.data())
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 400cb7b..c0e1e46 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/tab.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: tab.js v3.1.1
+ * Bootstrap: tab.js v3.2.0
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -17,6 +17,8 @@
this.element = $(element)
}
+ Tab.VERSION = '3.2.0'
+
Tab.prototype.show = function () {
var $this = this.element
var $ul = $this.closest('ul:not(.dropdown-menu)')
@@ -24,7 +26,7 @@
if (!selector) {
selector = $this.attr('href')
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
if ($this.parent('li').hasClass('active')) return
@@ -40,7 +42,7 @@
var $target = $(selector)
- this.activate($this.parent('li'), $ul)
+ this.activate($this.closest('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
type: 'shown.bs.tab',
@@ -79,7 +81,7 @@
transition ?
$active
- .one($.support.transition.end, next)
+ .one('bsTransitionEnd', next)
.emulateTransitionEnd(150) :
next()
@@ -90,9 +92,7 @@
// TAB PLUGIN DEFINITION
// =====================
- var old = $.fn.tab
-
- $.fn.tab = function ( option ) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tab')
@@ -102,6 +102,9 @@
})
}
+ var old = $.fn.tab
+
+ $.fn.tab = Plugin
$.fn.tab.Constructor = Tab
@@ -119,7 +122,7 @@
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
- $(this).tab('show')
+ Plugin.call($(this), 'show')
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f6c0a37..9cdb6c9 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/tooltip.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: tooltip.js v3.1.1
+ * Bootstrap: tooltip.js v3.2.0
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
@@ -25,23 +25,30 @@
this.init('tooltip', element, options)
}
+ Tooltip.VERSION = '3.2.0'
+
Tooltip.DEFAULTS = {
animation: true,
placement: 'top',
selector: false,
- template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+ template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
- container: false
+ container: false,
+ viewport: {
+ selector: 'body',
+ padding: 0
+ }
}
Tooltip.prototype.init = function (type, element, options) {
- this.enabled = true
- this.type = type
- this.$element = $(element)
- this.options = this.getOptions(options)
+ this.enabled = true
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
var triggers = this.options.trigger.split(' ')
@@ -94,7 +101,12 @@
Tooltip.prototype.enter = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -109,7 +121,12 @@
Tooltip.prototype.leave = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -128,12 +145,17 @@
if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
- var that = this;
+ var inDom = $.contains(document.documentElement, this.$element[0])
+ if (e.isDefaultPrevented() || !inDom) return
+ var that = this
var $tip = this.tip()
+ var tipId = this.getUID(this.type)
+
this.setContent()
+ $tip.attr('id', tipId)
+ this.$element.attr('aria-describedby', tipId)
if (this.options.animation) $tip.addClass('fade')
@@ -149,6 +171,7 @@
.detach()
.css({ top: 0, left: 0, display: 'block' })
.addClass(placement)
+ .data('bs.' + this.type, this)
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
@@ -157,18 +180,14 @@
var actualHeight = $tip[0].offsetHeight
if (autoPlace) {
- var $parent = this.$element.parent()
-
var orgPlacement = placement
- var docScroll = document.documentElement.scrollTop || document.body.scrollTop
- var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
- var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
- var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
-
- placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
- placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
- placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
- placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
+ var $parent = this.$element.parent()
+ var parentDim = this.getPosition($parent)
+
+ placement = placement == 'bottom' && pos.top + pos.height + actualHeight - parentDim.scroll > parentDim.height ? 'top' :
+ placement == 'top' && pos.top - parentDim.scroll - actualHeight < 0 ? 'bottom' :
+ placement == 'right' && pos.right + actualWidth > parentDim.width ? 'left' :
+ placement == 'left' && pos.left - actualWidth < parentDim.left ? 'right' :
placement
$tip
@@ -179,22 +198,21 @@
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
this.applyPlacement(calculatedOffset, placement)
- this.hoverState = null
- var complete = function() {
+ var complete = function () {
that.$element.trigger('shown.bs.' + that.type)
+ that.hoverState = null
}
$.support.transition && this.$tip.hasClass('fade') ?
$tip
- .one($.support.transition.end, complete)
+ .one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
}
}
Tooltip.prototype.applyPlacement = function (offset, placement) {
- var replace
var $tip = this.tip()
var width = $tip[0].offsetWidth
var height = $tip[0].offsetHeight
@@ -228,29 +246,20 @@
var actualHeight = $tip[0].offsetHeight
if (placement == 'top' && actualHeight != height) {
- replace = true
offset.top = offset.top + height - actualHeight
}
- if (/bottom|top/.test(placement)) {
- var delta = 0
+ var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
- if (offset.left < 0) {
- delta = offset.left * -2
- offset.left = 0
+ if (delta.left) offset.left += delta.left
+ else offset.top += delta.top
- $tip.offset(offset)
+ var arrowDelta = delta.left ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
+ var arrowPosition = delta.left ? 'left' : 'top'
+ var arrowOffsetPosition = delta.left ? 'offsetWidth' : 'offsetHeight'
- actualWidth = $tip[0].offsetWidth
- actualHeight = $tip[0].offsetHeight
- }
-
- this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
- } else {
- this.replaceArrow(actualHeight - height, actualHeight, 'top')
- }
-
- if (replace) $tip.offset(offset)
+ $tip.offset(offset)
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], arrowPosition)
}
Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
@@ -270,6 +279,8 @@
var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type)
+ this.$element.removeAttr('aria-describedby')
+
function complete() {
if (that.hoverState != 'in') $tip.detach()
that.$element.trigger('hidden.bs.' + that.type)
@@ -283,7 +294,7 @@
$.support.transition && this.$tip.hasClass('fade') ?
$tip
- .one($.support.transition.end, complete)
+ .one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
@@ -294,7 +305,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', '')
}
}
@@ -303,12 +314,15 @@
return this.getTitle()
}
- Tooltip.prototype.getPosition = function () {
- var el = this.$element[0]
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
- width: el.offsetWidth,
- height: el.offsetHeight
- }, this.$element.offset())
+ Tooltip.prototype.getPosition = function ($element) {
+ $element = $element || this.$element
+ var el = $element[0]
+ var isBody = el.tagName == 'BODY'
+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
+ scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
+ width: isBody ? $(window).width() : $element.outerWidth(),
+ height: isBody ? $(window).height() : $element.outerHeight()
+ }, isBody ? { top: 0, left: 0 } : $element.offset())
}
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
@@ -316,6 +330,35 @@
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
+
+ }
+
+ Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
+ var delta = { top: 0, left: 0 }
+ if (!this.$viewport) return delta
+
+ var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
+ var viewportDimensions = this.getPosition(this.$viewport)
+
+ if (/right|left/.test(placement)) {
+ var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
+ var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
+ if (topEdgeOffset < viewportDimensions.top) { // top overflow
+ delta.top = viewportDimensions.top - topEdgeOffset
+ } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
+ delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
+ }
+ } else {
+ var leftEdgeOffset = pos.left - viewportPadding
+ var rightEdgeOffset = pos.left + viewportPadding + actualWidth
+ if (leftEdgeOffset < viewportDimensions.left) { // left overflow
+ delta.left = viewportDimensions.left - leftEdgeOffset
+ } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
+ delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
+ }
+ }
+
+ return delta
}
Tooltip.prototype.getTitle = function () {
@@ -329,12 +372,18 @@
return title
}
+ Tooltip.prototype.getUID = function (prefix) {
+ do prefix += ~~(Math.random() * 1000000)
+ while (document.getElementById(prefix))
+ return prefix
+ }
+
Tooltip.prototype.tip = function () {
- return this.$tip = this.$tip || $(this.options.template)
+ return (this.$tip = this.$tip || $(this.options.template))
}
Tooltip.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
}
Tooltip.prototype.validate = function () {
@@ -358,7 +407,15 @@
}
Tooltip.prototype.toggle = function (e) {
- var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
+ var self = this
+ if (e) {
+ self = $(e.currentTarget).data('bs.' + this.type)
+ if (!self) {
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
+ $(e.currentTarget).data('bs.' + this.type, self)
+ }
+ }
+
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
}
@@ -371,9 +428,7 @@
// TOOLTIP PLUGIN DEFINITION
// =========================
- var old = $.fn.tooltip
-
- $.fn.tooltip = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tooltip')
@@ -385,6 +440,9 @@
})
}
+ var old = $.fn.tooltip
+
+ $.fn.tooltip = Plugin
$.fn.tooltip.Constructor = Tooltip
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 efa8c17..83f85bf 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/transition.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: transition.js v3.1.1
+ * Bootstrap: transition.js v3.2.0
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -17,10 +17,10 @@
var el = document.createElement('bootstrap')
var transEndEventNames = {
- 'WebkitTransition' : 'webkitTransitionEnd',
- 'MozTransition' : 'transitionend',
- 'OTransition' : 'oTransitionEnd otransitionend',
- 'transition' : 'transitionend'
+ WebkitTransition : 'webkitTransitionEnd',
+ MozTransition : 'transitionend',
+ OTransition : 'oTransitionEnd otransitionend',
+ transition : 'transitionend'
}
for (var name in transEndEventNames) {
@@ -34,8 +34,9 @@
// http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) {
- var called = false, $el = this
- $(this).one($.support.transition.end, function () { called = true })
+ var called = false
+ var $el = this
+ $(this).one('bsTransitionEnd', function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration)
return this
@@ -43,6 +44,16 @@
$(function () {
$.support.transition = transitionEnd()
+
+ if (!$.support.transition) return
+
+ $.event.special.bsTransitionEnd = {
+ bindType: $.support.transition.end,
+ delegateType: $.support.transition.end,
+ handle: function (e) {
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
+ }
+ }
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less b/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less
index 3eab066..df070b8 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/alerts.less
@@ -33,12 +33,13 @@
}
}
-// Dismissable alerts
+// Dismissible alerts
//
// Expand the right padding and account for the close button's positioning.
-.alert-dismissable {
- padding-right: (@alert-padding + 20);
+.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
+.alert-dismissible {
+ padding-right: (@alert-padding + 20);
// Adjust close link position
.close {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less b/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less
index 56828ca..20624f3 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/badges.less
@@ -3,7 +3,7 @@
// --------------------------------------------------
-// Base classes
+// Base class
.badge {
display: inline-block;
min-width: 10px;
@@ -32,24 +32,24 @@
top: 0;
padding: 1px 5px;
}
-}
-// Hover state, but only for links
-a.badge {
- &:hover,
- &:focus {
- color: @badge-link-hover-color;
- text-decoration: none;
- cursor: pointer;
+ // Hover state, but only for links
+ a& {
+ &:hover,
+ &:focus {
+ color: @badge-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
}
-}
-// Account for counters in navs
-a.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
- color: @badge-active-color;
- background-color: @badge-active-bg;
-}
-.nav-pills > li > a > .badge {
- margin-left: 3px;
+ // Account for badges in navs
+ a.list-group-item.active > &,
+ .nav-pills > .active > a > & {
+ color: @badge-active-color;
+ background-color: @badge-active-bg;
+ }
+ .nav-pills > li > a > & {
+ margin-left: 3px;
+ }
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 b368b87..61b7747 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/bootstrap.less
@@ -2,9 +2,10 @@
@import "variables.less";
@import "mixins.less";
-// Reset
+// Reset and dependencies
@import "normalize.less";
@import "print.less";
+@import "glyphicons.less";
// Core CSS
@import "scaffolding.less";
@@ -17,7 +18,6 @@
// Components
@import "component-animations.less";
-@import "glyphicons.less";
@import "dropdowns.less";
@import "button-groups.less";
@import "input-groups.less";
@@ -35,6 +35,7 @@
@import "media.less";
@import "list-group.less";
@import "panels.less";
+@import "responsive-embed.less";
@import "wells.less";
@import "close.less";
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 27eb796..7021ecd 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/button-groups.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/button-groups.less
@@ -20,7 +20,7 @@
}
&:focus {
// Remove focus outline when dropdown JS adds it after closing the menu
- outline: none;
+ outline: 0;
}
}
}
@@ -216,11 +216,25 @@
> .btn-group .btn {
width: 100%;
}
+
+ > .btn-group .dropdown-menu {
+ left: auto;
+ }
}
// Checkbox and radio options
+//
+// In order to support the browser's form validation feedback, powered by the
+// `required` attribute, we have to "hide" the inputs via `opacity`. We cannot
+// use `display: none;` or `visibility: hidden;` as that also hides the popover.
+// This way, we ensure a DOM element is visible to position the popover from.
+//
+// See https://github.com/twbs/bootstrap/pull/12794 for more.
+
[data-toggle="buttons"] > .btn > input[type="radio"],
[data-toggle="buttons"] > .btn > input[type="checkbox"] {
- display: none;
+ position: absolute;
+ z-index: -1;
+ .opacity(0);
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less b/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less
index d4fc156..492bdc6 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/buttons.less
@@ -140,8 +140,6 @@
.btn-block {
display: block;
width: 100%;
- padding-left: 0;
- padding-right: 0;
}
// Vertically space out multiple block buttons
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less b/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less
index e3fb8a2..1644ddf 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/carousel.less
@@ -28,7 +28,9 @@
> .active,
> .next,
- > .prev { display: block; }
+ > .prev {
+ display: block;
+ }
> .active {
left: 0;
@@ -91,7 +93,7 @@
// Hover/focus state
&:hover,
&:focus {
- outline: none;
+ outline: 0;
color: @carousel-control-color;
text-decoration: none;
.opacity(.9);
@@ -110,20 +112,22 @@
.icon-prev,
.glyphicon-chevron-left {
left: 50%;
+ margin-left: -10px;
}
.icon-next,
.glyphicon-chevron-right {
right: 50%;
+ margin-right: -10px;
}
.icon-prev,
.icon-next {
width: 20px;
height: 20px;
margin-top: -10px;
- margin-left: -10px;
font-family: serif;
}
+
.icon-prev {
&:before {
content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
@@ -213,9 +217,16 @@
width: 30px;
height: 30px;
margin-top: -15px;
- margin-left: -15px;
font-size: 30px;
}
+ .glyphicon-chevron-left,
+ .icon-prev {
+ margin-left: -15px;
+ }
+ .glyphicon-chevron-right,
+ .icon-next {
+ margin-right: -15px;
+ }
}
// Show and left align the captions
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/code.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/code.less b/tapestry-webresources/src/test/webapp/bootstrap/less/code.less
index 3eed26c..baa13df 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/code.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/code.less
@@ -17,7 +17,6 @@ code {
font-size: 90%;
color: @code-color;
background-color: @code-bg;
- white-space: nowrap;
border-radius: @border-radius-base;
}
@@ -29,6 +28,12 @@ kbd {
background-color: @kbd-bg;
border-radius: @border-radius-small;
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
+
+ kbd {
+ padding: 0;
+ font-size: 100%;
+ box-shadow: none;
+ }
}
// Blocks of code
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less b/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less
index 1efe45e..9400a0d 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/component-animations.less
@@ -5,7 +5,7 @@
// Heads up!
//
// We don't use the `.opacity()` mixin here since it causes a bug with text
-// fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552.
+// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
.fade {
opacity: 0;
@@ -17,10 +17,12 @@
.collapse {
display: none;
- &.in {
- display: block;
- }
+
+ &.in { display: block; }
+ tr&.in { display: table-row; }
+ tbody&.in { display: table-row-group; }
}
+
.collapsing {
position: relative;
height: 0;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less b/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less
index f165165..3eb7fc0 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/dropdowns.less
@@ -38,6 +38,7 @@
margin: 2px 0 0; // override default ul
list-style: none;
font-size: @font-size-base;
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
background-color: @dropdown-bg;
border: 1px solid @dropdown-fallback-border; // IE8 fallback
border: 1px solid @dropdown-border;
@@ -154,6 +155,7 @@
font-size: @font-size-small;
line-height: @line-height-base;
color: @dropdown-header-color;
+ white-space: nowrap; // as with > li > a
}
// Backdrop to catch body clicks on mobile, etc.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f607b85..2c5e9bf 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/forms.less
@@ -11,7 +11,7 @@ fieldset {
padding: 0;
margin: 0;
border: 0;
- // Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,
+ // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
// so we reset that to ensure it behaves more like a standard block element.
// See https://github.com/twbs/bootstrap/issues/12359.
min-width: 0;
@@ -31,6 +31,7 @@ legend {
label {
display: inline-block;
+ max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
margin-bottom: 5px;
font-weight: bold;
}
@@ -51,7 +52,7 @@ input[type="search"] {
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
- margin-top: 1px \9; /* IE8-9 */
+ margin-top: 1px \9; // IE8-9
line-height: normal;
}
@@ -164,13 +165,28 @@ input[type="search"] {
}
-// Special styles for iOS date input
+// Special styles for iOS temporal inputs
//
-// In Mobile Safari, date inputs require a pixel line-height that matches the
-// given height of the input.
-
-input[type="date"] {
+// In Mobile Safari, setting `display: block` on temporal inputs causes the
+// 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. Since this fucks up everything else, we have to
+// appropriately reset it for Internet Explorer and the size variations.
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
line-height: @input-height-base;
+ // IE8+ misaligns the text within date inputs, so we reset
+ line-height: @line-height-base ~"\0";
+
+ &.input-sm {
+ line-height: @input-height-small;
+ }
+ &.input-lg {
+ line-height: @input-height-large;
+ }
}
@@ -190,13 +206,15 @@ input[type="date"] {
.radio,
.checkbox {
+ position: relative;
display: block;
min-height: @line-height-computed; // clear the floating input if there is no label text
margin-top: 10px;
margin-bottom: 10px;
- padding-left: 20px;
+
label {
- display: inline;
+ padding-left: 20px;
+ margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
@@ -205,9 +223,11 @@ input[type="date"] {
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
- float: left;
+ position: absolute;
margin-left: -20px;
+ margin-top: 4px \9;
}
+
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
@@ -230,19 +250,55 @@ input[type="date"] {
}
// Apply same disabled cursor tweak as for inputs
+// Some special care is needed because <label>s don't inherit their parent's `cursor`.
//
// Note: Neither radios nor checkboxes can be readonly.
input[type="radio"],
-input[type="checkbox"],
-.radio,
+input[type="checkbox"] {
+ &[disabled],
+ &.disabled,
+ fieldset[disabled] & {
+ cursor: not-allowed;
+ }
+}
+// These classes are used directly on <label>s
.radio-inline,
-.checkbox,
.checkbox-inline {
- &[disabled],
+ &.disabled,
fieldset[disabled] & {
cursor: not-allowed;
}
}
+// These classes are used on elements with <label> descendants
+.radio,
+.checkbox {
+ &.disabled,
+ fieldset[disabled] & {
+ label {
+ cursor: not-allowed;
+ }
+ }
+}
+
+
+// Static form control text
+//
+// Apply class to a `p` element to make any string of text align with labels in
+// a horizontal form layout.
+
+.form-control-static {
+ // Size it appropriately next to real form controls
+ padding-top: (@padding-base-vertical + 1);
+ padding-bottom: (@padding-base-vertical + 1);
+ // Remove default margin from `p`
+ margin-bottom: 0;
+
+ &.input-lg,
+ &.input-sm {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
// Form control sizing
@@ -271,18 +327,28 @@ input[type="checkbox"],
.form-control {
padding-right: (@input-height-base * 1.25);
}
-
- // Feedback icon (requires .glyphicon classes)
- .form-control-feedback {
- position: absolute;
- top: (@line-height-computed + 5); // Height of the `label` and its margin
- right: 0;
- display: block;
- width: @input-height-base;
- height: @input-height-base;
- line-height: @input-height-base;
- text-align: center;
- }
+}
+// Feedback icon (requires .glyphicon classes)
+.form-control-feedback {
+ position: absolute;
+ top: (@line-height-computed + 5); // Height of the `label` and its margin
+ right: 0;
+ z-index: 2; // Ensure icon is above input groups
+ display: block;
+ width: @input-height-base;
+ height: @input-height-base;
+ line-height: @input-height-base;
+ text-align: center;
+}
+.input-lg + .form-control-feedback {
+ width: @input-height-large;
+ height: @input-height-large;
+ line-height: @input-height-large;
+}
+.input-sm + .form-control-feedback {
+ width: @input-height-small;
+ height: @input-height-small;
+ line-height: @input-height-small;
}
// Feedback states
@@ -297,13 +363,9 @@ input[type="checkbox"],
}
-// Static form control text
-//
-// Apply class to a `p` element to make any string of text align with labels in
-// a horizontal form layout.
-
-.form-control-static {
- margin-bottom: 0; // Remove default margin from `p`
+// Reposition feedback icon if label is hidden with "screenreader only" state
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0;
}
@@ -349,6 +411,18 @@ input[type="checkbox"],
width: auto; // Prevent labels from stacking above inputs in `.form-group`
vertical-align: middle;
}
+
+ .input-group {
+ display: inline-table;
+ vertical-align: middle;
+
+ .input-group-addon,
+ .input-group-btn,
+ .form-control {
+ width: auto;
+ }
+ }
+
// Input groups need that 100% width though
.input-group > .form-control {
width: 100%;
@@ -367,12 +441,15 @@ input[type="checkbox"],
display: inline-block;
margin-top: 0;
margin-bottom: 0;
- padding-left: 0;
vertical-align: middle;
+
+ label {
+ padding-left: 0;
+ }
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
- float: none;
+ position: relative;
margin-left: 0;
}
@@ -394,8 +471,9 @@ input[type="checkbox"],
.form-horizontal {
- // Consistent vertical alignment of labels, radios, and checkboxes
- .control-label,
+ // Consistent vertical alignment of radios and checkboxes
+ //
+ // Labels also get some reset styles, but that is scoped to a media query below.
.radio,
.checkbox,
.radio-inline,
@@ -416,14 +494,13 @@ input[type="checkbox"],
.make-row();
}
- .form-control-static {
- padding-top: (@padding-base-vertical + 1);
- }
-
- // Only right align form labels here when the columns stop stacking
+ // Reset spacing and right align labels, but scope to media queries so that
+ // labels on narrow viewports stack the same as a default form example.
@media (min-width: @screen-sm-min) {
.control-label {
text-align: right;
+ margin-bottom: 0;
+ padding-top: (@padding-base-vertical + 1); // Default padding plus a border
}
}
@@ -435,4 +512,29 @@ input[type="checkbox"],
top: 0;
right: (@grid-gutter-width / 2);
}
+
+ // Form group sizes
+ //
+ // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
+ // inputs and labels within a `.form-group`.
+ .form-group-lg {
+ @media (min-width: @screen-sm-min) {
+ .control-label {
+ padding-top: ((@padding-large-vertical * @line-height-large) + 1);
+ }
+ }
+ .form-control {
+ &:extend(.input-lg);
+ }
+ }
+ .form-group-sm {
+ @media (min-width: @screen-sm-min) {
+ .control-label {
+ padding-top: (@padding-small-vertical + 1);
+ }
+ }
+ .form-control {
+ &:extend(.input-sm);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less b/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less
index 789c5e7..d3485dc 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/glyphicons.less
@@ -10,11 +10,11 @@
// Import the fonts
@font-face {
font-family: 'Glyphicons Halflings';
- src: ~"url('@{icon-font-path}@{icon-font-name}.eot')";
- src: ~"url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype')",
- ~"url('@{icon-font-path}@{icon-font-name}.woff') format('woff')",
- ~"url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype')",
- ~"url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg')";
+ src: url('@{icon-font-path}@{icon-font-name}.eot');
+ src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
+ url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
+ url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
+ url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');
}
// Catchall baseclass
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 a111474..a8712f2 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/input-groups.less
@@ -39,10 +39,14 @@
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn { .input-lg(); }
+.input-group-lg > .input-group-btn > .btn {
+ .input-lg();
+}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn { .input-sm(); }
+.input-group-sm > .input-group-btn > .btn {
+ .input-sm();
+}
// Display as table-cell
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less b/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less
index a15e169..27cd8b8 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/jumbotron.less
@@ -19,6 +19,10 @@
font-weight: 200;
}
+ > hr {
+ border-top-color: darken(@jumbotron-bg, 10%);
+ }
+
.container & {
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less b/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less
index 5db1ed1..9a5a270 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/labels.less
@@ -15,7 +15,7 @@
border-radius: .25em;
// Add hover effects, but only for links
- &[href] {
+ a& {
&:hover,
&:focus {
color: @label-link-hover-color;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less b/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less
index 3343f8e..1946bf5 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/list-group.less
@@ -62,8 +62,27 @@ a.list-group-item {
&:hover,
&:focus {
text-decoration: none;
+ color: @list-group-link-hover-color;
background-color: @list-group-hover-bg;
}
+}
+
+.list-group-item {
+ // Disabled state
+ &.disabled,
+ &.disabled:hover,
+ &.disabled:focus {
+ background-color: @list-group-disabled-bg;
+ color: @list-group-disabled-color;
+
+ // Force color to inherit for custom content
+ .list-group-item-heading {
+ color: inherit;
+ }
+ .list-group-item-text {
+ color: @list-group-disabled-text-color;
+ }
+ }
// Active class on item itself, not parent
&.active,
@@ -75,7 +94,9 @@ a.list-group-item {
border-color: @list-group-active-border;
// Force color to inherit for custom content
- .list-group-item-heading {
+ .list-group-item-heading,
+ .list-group-item-heading > small,
+ .list-group-item-heading > .small {
color: inherit;
}
.list-group-item-text {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less
index 71723db..af4408f 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins.less
@@ -1,929 +1,39 @@
-//
// Mixins
// --------------------------------------------------
-
// Utilities
-// -------------------------
-
-// Clearfix
-// Source: http://nicolasgallagher.com/micro-clearfix-hack/
-//
-// For modern browsers
-// 1. The space content is one way to avoid an Opera bug when the
-// contenteditable attribute is included anywhere else in the document.
-// Otherwise it causes space to appear at the top and bottom of elements
-// that are clearfixed.
-// 2. The use of `table` rather than `block` is only necessary if using
-// `:before` to contain the top-margins of child elements.
-.clearfix() {
- &:before,
- &:after {
- content: " "; // 1
- display: table; // 2
- }
- &:after {
- clear: both;
- }
-}
-
-// WebKit-style focus
-.tab-focus() {
- // Default
- outline: thin dotted;
- // WebKit
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-
-// Center-align a block level element
-.center-block() {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-// Sizing shortcuts
-.size(@width; @height) {
- width: @width;
- height: @height;
-}
-.square(@size) {
- .size(@size; @size);
-}
-
-// Placeholder text
-.placeholder(@color: @input-color-placeholder) {
- &::-moz-placeholder { color: @color; // Firefox
- opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
- &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
- &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
-}
-
-// Text overflow
-// Requires inline-block or block for proper styling
-.text-overflow() {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-// CSS image replacement
-//
-// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
-// mixins being reused as classes with the same name, this doesn't hold up. As
-// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note
-// that we cannot chain the mixins together in Less, so they are repeated.
-//
-// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
-
-// Deprecated as of v3.0.1 (will be removed in v4)
-.hide-text() {
- font: ~"0/0" a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-// New mixin to use as of v3.0.1
-.text-hide() {
- .hide-text();
-}
-
-
-
-// CSS3 PROPERTIES
-// --------------------------------------------------
-
-// Single side border-radius
-.border-top-radius(@radius) {
- border-top-right-radius: @radius;
- border-top-left-radius: @radius;
-}
-.border-right-radius(@radius) {
- border-bottom-right-radius: @radius;
- border-top-right-radius: @radius;
-}
-.border-bottom-radius(@radius) {
- border-bottom-right-radius: @radius;
- border-bottom-left-radius: @radius;
-}
-.border-left-radius(@radius) {
- border-bottom-left-radius: @radius;
- border-top-left-radius: @radius;
-}
-
-// Drop shadows
-//
-// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
-// supported browsers that have box shadow capabilities now support the
-// standard `box-shadow` property.
-.box-shadow(@shadow) {
- -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
- box-shadow: @shadow;
-}
-
-// Transitions
-.transition(@transition) {
- -webkit-transition: @transition;
- transition: @transition;
-}
-.transition-property(@transition-property) {
- -webkit-transition-property: @transition-property;
- transition-property: @transition-property;
-}
-.transition-delay(@transition-delay) {
- -webkit-transition-delay: @transition-delay;
- transition-delay: @transition-delay;
-}
-.transition-duration(@transition-duration) {
- -webkit-transition-duration: @transition-duration;
- transition-duration: @transition-duration;
-}
-.transition-transform(@transition) {
- -webkit-transition: -webkit-transform @transition;
- -moz-transition: -moz-transform @transition;
- -o-transition: -o-transform @transition;
- transition: transform @transition;
-}
-
-// Transformations
-.rotate(@degrees) {
- -webkit-transform: rotate(@degrees);
- -ms-transform: rotate(@degrees); // IE9 only
- transform: rotate(@degrees);
-}
-.scale(@ratio; @ratio-y...) {
- -webkit-transform: scale(@ratio, @ratio-y);
- -ms-transform: scale(@ratio, @ratio-y); // IE9 only
- transform: scale(@ratio, @ratio-y);
-}
-.translate(@x; @y) {
- -webkit-transform: translate(@x, @y);
- -ms-transform: translate(@x, @y); // IE9 only
- transform: translate(@x, @y);
-}
-.skew(@x; @y) {
- -webkit-transform: skew(@x, @y);
- -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
- transform: skew(@x, @y);
-}
-.translate3d(@x; @y; @z) {
- -webkit-transform: translate3d(@x, @y, @z);
- transform: translate3d(@x, @y, @z);
-}
-
-.rotateX(@degrees) {
- -webkit-transform: rotateX(@degrees);
- -ms-transform: rotateX(@degrees); // IE9 only
- transform: rotateX(@degrees);
-}
-.rotateY(@degrees) {
- -webkit-transform: rotateY(@degrees);
- -ms-transform: rotateY(@degrees); // IE9 only
- transform: rotateY(@degrees);
-}
-.perspective(@perspective) {
- -webkit-perspective: @perspective;
- -moz-perspective: @perspective;
- perspective: @perspective;
-}
-.perspective-origin(@perspective) {
- -webkit-perspective-origin: @perspective;
- -moz-perspective-origin: @perspective;
- perspective-origin: @perspective;
-}
-.transform-origin(@origin) {
- -webkit-transform-origin: @origin;
- -moz-transform-origin: @origin;
- -ms-transform-origin: @origin; // IE9 only
- transform-origin: @origin;
-}
-
-// Animations
-.animation(@animation) {
- -webkit-animation: @animation;
- animation: @animation;
-}
-.animation-name(@name) {
- -webkit-animation-name: @name;
- animation-name: @name;
-}
-.animation-duration(@duration) {
- -webkit-animation-duration: @duration;
- animation-duration: @duration;
-}
-.animation-timing-function(@timing-function) {
- -webkit-animation-timing-function: @timing-function;
- animation-timing-function: @timing-function;
-}
-.animation-delay(@delay) {
- -webkit-animation-delay: @delay;
- animation-delay: @delay;
-}
-.animation-iteration-count(@iteration-count) {
- -webkit-animation-iteration-count: @iteration-count;
- animation-iteration-count: @iteration-count;
-}
-.animation-direction(@direction) {
- -webkit-animation-direction: @direction;
- animation-direction: @direction;
-}
-
-// Backface visibility
-// Prevent browsers from flickering when using CSS 3D transforms.
-// Default value is `visible`, but can be changed to `hidden`
-.backface-visibility(@visibility){
- -webkit-backface-visibility: @visibility;
- -moz-backface-visibility: @visibility;
- backface-visibility: @visibility;
-}
-
-// Box sizing
-.box-sizing(@boxmodel) {
- -webkit-box-sizing: @boxmodel;
- -moz-box-sizing: @boxmodel;
- box-sizing: @boxmodel;
-}
-
-// User select
-// For selecting text on the page
-.user-select(@select) {
- -webkit-user-select: @select;
- -moz-user-select: @select;
- -ms-user-select: @select; // IE10+
- user-select: @select;
-}
-
-// Resize anything
-.resizable(@direction) {
- resize: @direction; // Options: horizontal, vertical, both
- overflow: auto; // Safari fix
-}
-
-// CSS3 Content Columns
-.content-columns(@column-count; @column-gap: @grid-gutter-width) {
- -webkit-column-count: @column-count;
- -moz-column-count: @column-count;
- column-count: @column-count;
- -webkit-column-gap: @column-gap;
- -moz-column-gap: @column-gap;
- column-gap: @column-gap;
-}
-
-// Optional hyphenation
-.hyphens(@mode: auto) {
- word-wrap: break-word;
- -webkit-hyphens: @mode;
- -moz-hyphens: @mode;
- -ms-hyphens: @mode; // IE10+
- -o-hyphens: @mode;
- hyphens: @mode;
-}
-
-// Opacity
-.opacity(@opacity) {
- opacity: @opacity;
- // IE8 filter
- @opacity-ie: (@opacity * 100);
- filter: ~"alpha(opacity=@{opacity-ie})";
-}
-
-
-
-// GRADIENTS
-// --------------------------------------------------
-
-#gradient {
-
- // Horizontal gradient, from left to right
- //
- // Creates two color stops, start and end, by specifying a color and position for each color stop.
- // Color stops are not available in IE9 and below.
- .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
- background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+
- background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
- }
-
- // Vertical gradient, from top to bottom
- //
- // Creates two color stops, start and end, by specifying a color and position for each color stop.
- // Color stops are not available in IE9 and below.
- .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
- background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
- background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
- }
-
- .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
- background-repeat: repeat-x;
- background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
- background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- }
- .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
- background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
- background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
- background-repeat: no-repeat;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
- }
- .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
- background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
- background-repeat: no-repeat;
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
- }
- .radial(@inner-color: #555; @outer-color: #333) {
- background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
- background-image: radial-gradient(circle, @inner-color, @outer-color);
- background-repeat: no-repeat;
- }
- .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
- background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- }
-}
-
-// Reset filters for IE
-//
-// When you need to remove a gradient background, do not forget to use this to reset
-// the IE filter for IE9 and below.
-.reset-filter() {
- filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
-}
-
-
-
-// Retina images
-//
-// Short retina mixin for setting background-image and -size
-
-.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
- background-image: url("@{file-1x}");
-
- @media
- only screen and (-webkit-min-device-pixel-ratio: 2),
- only screen and ( min--moz-device-pixel-ratio: 2),
- only screen and ( -o-min-device-pixel-ratio: 2/1),
- only screen and ( min-device-pixel-ratio: 2),
- only screen and ( min-resolution: 192dpi),
- only screen and ( min-resolution: 2dppx) {
- background-image: url("@{file-2x}");
- background-size: @width-1x @height-1x;
- }
-}
-
-
-// Responsive image
-//
-// Keep images from scaling beyond the width of their parents.
-
-.img-responsive(@display: block) {
- display: @display;
- max-width: 100%; // Part 1: Set a maximum relative to the parent
- height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
-}
-
-
-// COMPONENT MIXINS
-// --------------------------------------------------
-
-// Horizontal dividers
-// -------------------------
-// Dividers (basically an hr) within dropdowns and nav lists
-.nav-divider(@color: #e5e5e5) {
- height: 1px;
- margin: ((@line-height-computed / 2) - 1) 0;
- overflow: hidden;
- background-color: @color;
-}
-
-// Panels
-// -------------------------
-.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
- border-color: @border;
-
- & > .panel-heading {
- color: @heading-text-color;
- background-color: @heading-bg-color;
- border-color: @heading-border;
-
- + .panel-collapse .panel-body {
- border-top-color: @border;
- }
- }
- & > .panel-footer {
- + .panel-collapse .panel-body {
- border-bottom-color: @border;
- }
- }
-}
-
-// Alerts
-// -------------------------
-.alert-variant(@background; @border; @text-color) {
- background-color: @background;
- border-color: @border;
- color: @text-color;
-
- hr {
- border-top-color: darken(@border, 5%);
- }
- .alert-link {
- color: darken(@text-color, 10%);
- }
-}
-
-// Tables
-// -------------------------
-.table-row-variant(@state; @background) {
- // Exact selectors below required to override `.table-striped` and prevent
- // inheritance to nested tables.
- .table > thead > tr,
- .table > tbody > tr,
- .table > tfoot > tr {
- > td.@{state},
- > th.@{state},
- &.@{state} > td,
- &.@{state} > th {
- background-color: @background;
- }
- }
-
- // Hover states for `.table-hover`
- // Note: this is not available for cells or rows within `thead` or `tfoot`.
- .table-hover > tbody > tr {
- > td.@{state}:hover,
- > th.@{state}:hover,
- &.@{state}:hover > td,
- &.@{state}:hover > th {
- background-color: darken(@background, 5%);
- }
- }
-}
-
-// List Groups
-// -------------------------
-.list-group-item-variant(@state; @background; @color) {
- .list-group-item-@{state} {
- color: @color;
- background-color: @background;
-
- a& {
- color: @color;
-
- .list-group-item-heading { color: inherit; }
-
- &:hover,
- &:focus {
- color: @color;
- background-color: darken(@background, 5%);
- }
- &.active,
- &.active:hover,
- &.active:focus {
- color: #fff;
- background-color: @color;
- border-color: @color;
- }
- }
- }
-}
-
-// Button variants
-// -------------------------
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-.button-variant(@color; @background; @border) {
- color: @color;
- background-color: @background;
- border-color: @border;
-
- &:hover,
- &:focus,
- &:active,
- &.active,
- .open .dropdown-toggle& {
- color: @color;
- background-color: darken(@background, 8%);
- border-color: darken(@border, 12%);
- }
- &:active,
- &.active,
- .open .dropdown-toggle& {
- background-image: none;
- }
- &.disabled,
- &[disabled],
- fieldset[disabled] & {
- &,
- &:hover,
- &:focus,
- &:active,
- &.active {
- background-color: @background;
- border-color: @border;
- }
- }
-
- .badge {
- color: @background;
- background-color: @color;
- }
-}
-
-// Button sizes
-// -------------------------
-.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- border-radius: @border-radius;
-}
-
-// Pagination
-// -------------------------
-.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
- > li {
- > a,
- > span {
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- }
- &:first-child {
- > a,
- > span {
- .border-left-radius(@border-radius);
- }
- }
- &:last-child {
- > a,
- > span {
- .border-right-radius(@border-radius);
- }
- }
- }
-}
-
-// Labels
-// -------------------------
-.label-variant(@color) {
- background-color: @color;
- &[href] {
- &:hover,
- &:focus {
- background-color: darken(@color, 10%);
- }
- }
-}
-
-// Contextual backgrounds
-// -------------------------
-.bg-variant(@color) {
- background-color: @color;
- a&:hover {
- background-color: darken(@color, 10%);
- }
-}
-
-// Typography
-// -------------------------
-.text-emphasis-variant(@color) {
- color: @color;
- a&:hover {
- color: darken(@color, 10%);
- }
-}
-
-// Navbar vertical align
-// -------------------------
-// Vertically center elements in the navbar.
-// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
-.navbar-vertical-align(@element-height) {
- margin-top: ((@navbar-height - @element-height) / 2);
- margin-bottom: ((@navbar-height - @element-height) / 2);
-}
-
-// Progress bars
-// -------------------------
-.progress-bar-variant(@color) {
- background-color: @color;
- .progress-striped & {
- #gradient > .striped();
- }
-}
-
-// Responsive utilities
-// -------------------------
-// More easily include all the states for responsive-utilities.less.
-.responsive-visibility() {
- display: block !important;
- table& { display: table; }
- tr& { display: table-row !important; }
- th&,
- td& { display: table-cell !important; }
-}
-
-.responsive-invisibility() {
- display: none !important;
-}
-
-
-// Grid System
-// -----------
-
-// Centered container element
-.container-fixed() {
- margin-right: auto;
- margin-left: auto;
- padding-left: (@grid-gutter-width / 2);
- padding-right: (@grid-gutter-width / 2);
- &:extend(.clearfix all);
-}
-
-// Creates a wrapper for a series of columns
-.make-row(@gutter: @grid-gutter-width) {
- margin-left: (@gutter / -2);
- margin-right: (@gutter / -2);
- &:extend(.clearfix all);
-}
-
-// Generate the extra small columns
-.make-xs-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- float: left;
- width: percentage((@columns / @grid-columns));
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-}
-.make-xs-column-offset(@columns) {
- @media (min-width: @screen-xs-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-xs-column-push(@columns) {
- @media (min-width: @screen-xs-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-xs-column-pull(@columns) {
- @media (min-width: @screen-xs-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-
-// Generate the small columns
-.make-sm-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-sm-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-offset(@columns) {
- @media (min-width: @screen-sm-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-push(@columns) {
- @media (min-width: @screen-sm-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-sm-column-pull(@columns) {
- @media (min-width: @screen-sm-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-
-// Generate the medium columns
-.make-md-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-md-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-offset(@columns) {
- @media (min-width: @screen-md-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-push(@columns) {
- @media (min-width: @screen-md-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-md-column-pull(@columns) {
- @media (min-width: @screen-md-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-
-// Generate the large columns
-.make-lg-column(@columns; @gutter: @grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: (@gutter / 2);
- padding-right: (@gutter / 2);
-
- @media (min-width: @screen-lg-min) {
- float: left;
- width: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-offset(@columns) {
- @media (min-width: @screen-lg-min) {
- margin-left: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-push(@columns) {
- @media (min-width: @screen-lg-min) {
- left: percentage((@columns / @grid-columns));
- }
-}
-.make-lg-column-pull(@columns) {
- @media (min-width: @screen-lg-min) {
- right: percentage((@columns / @grid-columns));
- }
-}
-
-
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `@grid-columns`.
-
-.make-grid-columns() {
- // Common styles for all sizes of grid columns, widths 1-12
- .col(@index) when (@index = 1) { // initial
- @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
- .col((@index + 1), @item);
- }
- .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
- @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
- .col((@index + 1), ~"@{list}, @{item}");
- }
- .col(@index, @list) when (@index > @grid-columns) { // terminal
- @{list} {
- position: relative;
- // Prevent columns from collapsing when empty
- min-height: 1px;
- // Inner gutter via padding
- padding-left: (@grid-gutter-width / 2);
- padding-right: (@grid-gutter-width / 2);
- }
- }
- .col(1); // kickstart it
-}
-
-.float-grid-columns(@class) {
- .col(@index) when (@index = 1) { // initial
- @item: ~".col-@{class}-@{index}";
- .col((@index + 1), @item);
- }
- .col(@index, @list) when (@index =< @grid-columns) { // general
- @item: ~".col-@{class}-@{index}";
- .col((@index + 1), ~"@{list}, @{item}");
- }
- .col(@index, @list) when (@index > @grid-columns) { // terminal
- @{list} {
- float: left;
- }
- }
- .col(1); // kickstart it
-}
-
-.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
- .col-@{class}-@{index} {
- width: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = push) {
- .col-@{class}-push-@{index} {
- left: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = pull) {
- .col-@{class}-pull-@{index} {
- right: percentage((@index / @grid-columns));
- }
-}
-.calc-grid-column(@index, @class, @type) when (@type = offset) {
- .col-@{class}-offset-@{index} {
- margin-left: percentage((@index / @grid-columns));
- }
-}
-
-// Basic looping in LESS
-.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
- .calc-grid-column(@index, @class, @type);
- // next iteration
- .loop-grid-columns((@index - 1), @class, @type);
-}
-
-// Create grid for specific class
-.make-grid(@class) {
- .float-grid-columns(@class);
- .loop-grid-columns(@grid-columns, @class, width);
- .loop-grid-columns(@grid-columns, @class, pull);
- .loop-grid-columns(@grid-columns, @class, push);
- .loop-grid-columns(@grid-columns, @class, offset);
-}
-
-// Form validation states
-//
-// Used in forms.less to generate the form validation CSS for warnings, errors,
-// and successes.
-
-.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
- // Color the label and help text
- .help-block,
- .control-label,
- .radio,
- .checkbox,
- .radio-inline,
- .checkbox-inline {
- color: @text-color;
- }
- // Set the border and box shadow on specific inputs to match
- .form-control {
- border-color: @border-color;
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
- &:focus {
- border-color: darken(@border-color, 10%);
- @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
- .box-shadow(@shadow);
- }
- }
- // Set validation states also for addons
- .input-group-addon {
- color: @text-color;
- border-color: @border-color;
- background-color: @background-color;
- }
- // Optional feedback icon
- .form-control-feedback {
- color: @text-color;
- }
-}
-
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `@input-focus-border` variable.
-//
-// We highly encourage you to not customize the default value, but instead use
-// this to tweak colors on an as-needed basis. This aesthetic change is based on
-// WebKit's default styles, but applicable to a wider range of browsers. Its
-// usability and accessibility should be taken into account with any change.
-//
-// Example usage: change the default blue border and shadow to white for better
-// contrast against a dark gray background.
-
-.form-control-focus(@color: @input-border-focus) {
- @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
- &:focus {
- border-color: @color;
- outline: 0;
- .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
- }
-}
-
-// Form control sizing
-//
-// Relative text size, padding, and border-radii changes for form controls. For
-// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
-// element gets special love because it's special, and that's a fact!
-
-.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
- height: @input-height;
- padding: @padding-vertical @padding-horizontal;
- font-size: @font-size;
- line-height: @line-height;
- border-radius: @border-radius;
-
- select& {
- height: @input-height;
- line-height: @input-height;
- }
-
- textarea&,
- select[multiple]& {
- height: auto;
- }
-}
+@import "mixins/hide-text.less";
+@import "mixins/opacity.less";
+@import "mixins/image.less";
+@import "mixins/labels.less";
+@import "mixins/reset-filter.less";
+@import "mixins/resize.less";
+@import "mixins/responsive-visibility.less";
+@import "mixins/size.less";
+@import "mixins/tab-focus.less";
+@import "mixins/text-emphasis.less";
+@import "mixins/text-overflow.less";
+@import "mixins/vendor-prefixes.less";
+
+// Components
+@import "mixins/alerts.less";
+@import "mixins/buttons.less";
+@import "mixins/panels.less";
+@import "mixins/pagination.less";
+@import "mixins/list-group.less";
+@import "mixins/nav-divider.less";
+@import "mixins/forms.less";
+@import "mixins/progress-bar.less";
+@import "mixins/table-row.less";
+
+// Skins
+@import "mixins/background-variant.less";
+@import "mixins/border-radius.less";
+@import "mixins/gradients.less";
+
+// Layout
+@import "mixins/clearfix.less";
+@import "mixins/center-block.less";
+@import "mixins/nav-vertical-align.less";
+@import "mixins/grid-framework.less";
+@import "mixins/grid.less";
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/alerts.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/alerts.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/alerts.less
new file mode 100644
index 0000000..396196f
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/alerts.less
@@ -0,0 +1,14 @@
+// Alerts
+
+.alert-variant(@background; @border; @text-color) {
+ background-color: @background;
+ border-color: @border;
+ color: @text-color;
+
+ hr {
+ border-top-color: darken(@border, 5%);
+ }
+ .alert-link {
+ color: darken(@text-color, 10%);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/background-variant.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/background-variant.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/background-variant.less
new file mode 100644
index 0000000..556e490
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/background-variant.less
@@ -0,0 +1,8 @@
+// Contextual backgrounds
+
+.bg-variant(@color) {
+ background-color: @color;
+ a&:hover {
+ background-color: darken(@color, 10%);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/border-radius.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/border-radius.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/border-radius.less
new file mode 100644
index 0000000..ca05dbf
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/border-radius.less
@@ -0,0 +1,18 @@
+// Single side border-radius
+
+.border-top-radius(@radius) {
+ border-top-right-radius: @radius;
+ border-top-left-radius: @radius;
+}
+.border-right-radius(@radius) {
+ border-bottom-right-radius: @radius;
+ border-top-right-radius: @radius;
+}
+.border-bottom-radius(@radius) {
+ border-bottom-right-radius: @radius;
+ border-bottom-left-radius: @radius;
+}
+.border-left-radius(@radius) {
+ border-bottom-left-radius: @radius;
+ border-top-left-radius: @radius;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/buttons.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/buttons.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/buttons.less
new file mode 100644
index 0000000..409f8f2
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/buttons.less
@@ -0,0 +1,50 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+.button-variant(@color; @background; @border) {
+ color: @color;
+ background-color: @background;
+ border-color: @border;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &.active,
+ .open > .dropdown-toggle& {
+ color: @color;
+ background-color: darken(@background, 10%);
+ border-color: darken(@border, 12%);
+ }
+ &:active,
+ &.active,
+ .open > .dropdown-toggle& {
+ background-image: none;
+ }
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &:active,
+ &.active {
+ background-color: @background;
+ border-color: @border;
+ }
+ }
+
+ .badge {
+ color: @background;
+ background-color: @color;
+ }
+}
+
+// Button sizes
+.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ line-height: @line-height;
+ border-radius: @border-radius;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/center-block.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/center-block.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/center-block.less
new file mode 100644
index 0000000..d18d6de
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/center-block.less
@@ -0,0 +1,7 @@
+// Center-align a block level element
+
+.center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/clearfix.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/clearfix.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/clearfix.less
new file mode 100644
index 0000000..3f7a382
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/clearfix.less
@@ -0,0 +1,22 @@
+// Clearfix
+//
+// For modern browsers
+// 1. The space content is one way to avoid an Opera bug when the
+// contenteditable attribute is included anywhere else in the document.
+// Otherwise it causes space to appear at the top and bottom of elements
+// that are clearfixed.
+// 2. The use of `table` rather than `block` is only necessary if using
+// `:before` to contain the top-margins of child elements.
+//
+// Source: http://nicolasgallagher.com/micro-clearfix-hack/
+
+.clearfix() {
+ &:before,
+ &:after {
+ content: " "; // 1
+ display: table; // 2
+ }
+ &:after {
+ clear: both;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/forms.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/forms.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/forms.less
new file mode 100644
index 0000000..e36c4a8
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/forms.less
@@ -0,0 +1,81 @@
+// Form validation states
+//
+// Used in forms.less to generate the form validation CSS for warnings, errors,
+// and successes.
+
+.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
+ // Color the label and help text
+ .help-block,
+ .control-label,
+ .radio,
+ .checkbox,
+ .radio-inline,
+ .checkbox-inline {
+ color: @text-color;
+ }
+ // Set the border and box shadow on specific inputs to match
+ .form-control {
+ border-color: @border-color;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken(@border-color, 10%);
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
+ .box-shadow(@shadow);
+ }
+ }
+ // Set validation states also for addons
+ .input-group-addon {
+ color: @text-color;
+ border-color: @border-color;
+ background-color: @background-color;
+ }
+ // Optional feedback icon
+ .form-control-feedback {
+ color: @text-color;
+ }
+}
+
+
+// Form control focus state
+//
+// Generate a customized focus state and for any input with the specified color,
+// which defaults to the `@input-border-focus` variable.
+//
+// We highly encourage you to not customize the default value, but instead use
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
+// WebKit's default styles, but applicable to a wider range of browsers. Its
+// usability and accessibility should be taken into account with any change.
+//
+// Example usage: change the default blue border and shadow to white for better
+// contrast against a dark gray background.
+.form-control-focus(@color: @input-border-focus) {
+ @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
+ &:focus {
+ border-color: @color;
+ outline: 0;
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
+ }
+}
+
+// Form control sizing
+//
+// Relative text size, padding, and border-radii changes for form controls. For
+// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
+// element gets special love because it's special, and that's a fact!
+.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
+ height: @input-height;
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ line-height: @line-height;
+ border-radius: @border-radius;
+
+ select& {
+ height: @input-height;
+ line-height: @input-height;
+ }
+
+ textarea&,
+ select[multiple]& {
+ height: auto;
+ }
+}
[2/6] update Bootstrap to 3.2.0
Posted by jk...@apache.org.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/gradients.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/gradients.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/gradients.less
new file mode 100644
index 0000000..0b88a89
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/gradients.less
@@ -0,0 +1,59 @@
+// Gradients
+
+#gradient {
+
+ // Horizontal gradient, from left to right
+ //
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
+ // Color stops are not available in IE9 and below.
+ .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
+ background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
+ }
+
+ // Vertical gradient, from top to bottom
+ //
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
+ // Color stops are not available in IE9 and below.
+ .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
+ }
+
+ .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
+ background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ }
+ .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
+ background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
+ background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .radial(@inner-color: #555; @outer-color: #333) {
+ background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
+ background-image: radial-gradient(circle, @inner-color, @outer-color);
+ background-repeat: no-repeat;
+ }
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid-framework.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid-framework.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid-framework.less
new file mode 100644
index 0000000..6317854
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid-framework.less
@@ -0,0 +1,91 @@
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `@grid-columns`.
+
+.make-grid-columns() {
+ // Common styles for all sizes of grid columns, widths 1-12
+ .col(@index) when (@index = 1) { // initial
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
+ .col((@index + 1), @item);
+ }
+ .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
+ .col((@index + 1), ~"@{list}, @{item}");
+ }
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
+ @{list} {
+ position: relative;
+ // Prevent columns from collapsing when empty
+ min-height: 1px;
+ // Inner gutter via padding
+ padding-left: (@grid-gutter-width / 2);
+ padding-right: (@grid-gutter-width / 2);
+ }
+ }
+ .col(1); // kickstart it
+}
+
+.float-grid-columns(@class) {
+ .col(@index) when (@index = 1) { // initial
+ @item: ~".col-@{class}-@{index}";
+ .col((@index + 1), @item);
+ }
+ .col(@index, @list) when (@index =< @grid-columns) { // general
+ @item: ~".col-@{class}-@{index}";
+ .col((@index + 1), ~"@{list}, @{item}");
+ }
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
+ @{list} {
+ float: left;
+ }
+ }
+ .col(1); // kickstart it
+}
+
+.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
+ .col-@{class}-@{index} {
+ width: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
+ .col-@{class}-push-@{index} {
+ left: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
+ .col-@{class}-push-0 {
+ left: auto;
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
+ .col-@{class}-pull-@{index} {
+ right: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
+ .col-@{class}-pull-0 {
+ right: auto;
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = offset) {
+ .col-@{class}-offset-@{index} {
+ margin-left: percentage((@index / @grid-columns));
+ }
+}
+
+// Basic looping in LESS
+.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
+ .calc-grid-column(@index, @class, @type);
+ // next iteration
+ .loop-grid-columns((@index - 1), @class, @type);
+}
+
+// Create grid for specific class
+.make-grid(@class) {
+ .float-grid-columns(@class);
+ .loop-grid-columns(@grid-columns, @class, width);
+ .loop-grid-columns(@grid-columns, @class, pull);
+ .loop-grid-columns(@grid-columns, @class, push);
+ .loop-grid-columns(@grid-columns, @class, offset);
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid.less
new file mode 100644
index 0000000..cae5eaf
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/grid.less
@@ -0,0 +1,122 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+// Centered container element
+.container-fixed(@gutter: @grid-gutter-width) {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+ &:extend(.clearfix all);
+}
+
+// Creates a wrapper for a series of columns
+.make-row(@gutter: @grid-gutter-width) {
+ margin-left: (@gutter / -2);
+ margin-right: (@gutter / -2);
+ &:extend(.clearfix all);
+}
+
+// Generate the extra small columns
+.make-xs-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+}
+.make-xs-column-offset(@columns) {
+ margin-left: percentage((@columns / @grid-columns));
+}
+.make-xs-column-push(@columns) {
+ left: percentage((@columns / @grid-columns));
+}
+.make-xs-column-pull(@columns) {
+ right: percentage((@columns / @grid-columns));
+}
+
+// Generate the small columns
+.make-sm-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-sm-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-offset(@columns) {
+ @media (min-width: @screen-sm-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-push(@columns) {
+ @media (min-width: @screen-sm-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-pull(@columns) {
+ @media (min-width: @screen-sm-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
+
+// Generate the medium columns
+.make-md-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-md-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-offset(@columns) {
+ @media (min-width: @screen-md-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-push(@columns) {
+ @media (min-width: @screen-md-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-pull(@columns) {
+ @media (min-width: @screen-md-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
+
+// Generate the large columns
+.make-lg-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-lg-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-offset(@columns) {
+ @media (min-width: @screen-lg-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-push(@columns) {
+ @media (min-width: @screen-lg-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-pull(@columns) {
+ @media (min-width: @screen-lg-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/hide-text.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/hide-text.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/hide-text.less
new file mode 100644
index 0000000..c2315e5
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/hide-text.less
@@ -0,0 +1,21 @@
+// CSS image replacement
+//
+// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
+// mixins being reused as classes with the same name, this doesn't hold up. As
+// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
+//
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+
+// Deprecated as of v3.0.1 (will be removed in v4)
+.hide-text() {
+ font: ~"0/0" a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+// New mixin to use as of v3.0.1
+.text-hide() {
+ .hide-text();
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/image.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/image.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/image.less
new file mode 100644
index 0000000..5d2cccb
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/image.less
@@ -0,0 +1,34 @@
+// Image Mixins
+// - Responsive image
+// - Retina image
+
+
+// Responsive image
+//
+// Keep images from scaling beyond the width of their parents.
+.img-responsive(@display: block) {
+ display: @display;
+ width: 100% \9; // Force IE10 and below to size SVG images correctly
+ max-width: 100%; // Part 1: Set a maximum relative to the parent
+ height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
+}
+
+
+// Retina image
+//
+// Short retina mixin for setting background-image and -size. Note that the
+// spelling of `min--moz-device-pixel-ratio` is intentional.
+.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
+ background-image: url("@{file-1x}");
+
+ @media
+ only screen and (-webkit-min-device-pixel-ratio: 2),
+ only screen and ( min--moz-device-pixel-ratio: 2),
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
+ only screen and ( min-device-pixel-ratio: 2),
+ only screen and ( min-resolution: 192dpi),
+ only screen and ( min-resolution: 2dppx) {
+ background-image: url("@{file-2x}");
+ background-size: @width-1x @height-1x;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/labels.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/labels.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/labels.less
new file mode 100644
index 0000000..6f9e490
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/labels.less
@@ -0,0 +1,12 @@
+// Labels
+
+.label-variant(@color) {
+ background-color: @color;
+
+ &[href] {
+ &:hover,
+ &:focus {
+ background-color: darken(@color, 10%);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/list-group.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/list-group.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/list-group.less
new file mode 100644
index 0000000..8b5b065
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/list-group.less
@@ -0,0 +1,29 @@
+// List Groups
+
+.list-group-item-variant(@state; @background; @color) {
+ .list-group-item-@{state} {
+ color: @color;
+ background-color: @background;
+
+ a& {
+ color: @color;
+
+ .list-group-item-heading {
+ color: inherit;
+ }
+
+ &:hover,
+ &:focus {
+ color: @color;
+ background-color: darken(@background, 5%);
+ }
+ &.active,
+ &.active:hover,
+ &.active:focus {
+ color: #fff;
+ background-color: @color;
+ border-color: @color;
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-divider.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-divider.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-divider.less
new file mode 100644
index 0000000..feb1e9e
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-divider.less
@@ -0,0 +1,10 @@
+// Horizontal dividers
+//
+// Dividers (basically an hr) within dropdowns and nav lists
+
+.nav-divider(@color: #e5e5e5) {
+ height: 1px;
+ margin: ((@line-height-computed / 2) - 1) 0;
+ overflow: hidden;
+ background-color: @color;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-vertical-align.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-vertical-align.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-vertical-align.less
new file mode 100644
index 0000000..d458c78
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/nav-vertical-align.less
@@ -0,0 +1,9 @@
+// Navbar vertical align
+//
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
+
+.navbar-vertical-align(@element-height) {
+ margin-top: ((@navbar-height - @element-height) / 2);
+ margin-bottom: ((@navbar-height - @element-height) / 2);
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/opacity.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/opacity.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/opacity.less
new file mode 100644
index 0000000..33ed25c
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/opacity.less
@@ -0,0 +1,8 @@
+// Opacity
+
+.opacity(@opacity) {
+ opacity: @opacity;
+ // IE8 filter
+ @opacity-ie: (@opacity * 100);
+ filter: ~"alpha(opacity=@{opacity-ie})";
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/pagination.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/pagination.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/pagination.less
new file mode 100644
index 0000000..7deb505
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/pagination.less
@@ -0,0 +1,23 @@
+// Pagination
+
+.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {
+ > li {
+ > a,
+ > span {
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ }
+ &:first-child {
+ > a,
+ > span {
+ .border-left-radius(@border-radius);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ .border-right-radius(@border-radius);
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/panels.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/panels.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/panels.less
new file mode 100644
index 0000000..49ee10d
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/panels.less
@@ -0,0 +1,24 @@
+// Panels
+
+.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
+ border-color: @border;
+
+ & > .panel-heading {
+ color: @heading-text-color;
+ background-color: @heading-bg-color;
+ border-color: @heading-border;
+
+ + .panel-collapse > .panel-body {
+ border-top-color: @border;
+ }
+ .badge {
+ color: @heading-bg-color;
+ background-color: @heading-text-color;
+ }
+ }
+ & > .panel-footer {
+ + .panel-collapse > .panel-body {
+ border-bottom-color: @border;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/progress-bar.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/progress-bar.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/progress-bar.less
new file mode 100644
index 0000000..f07996a
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/progress-bar.less
@@ -0,0 +1,10 @@
+// Progress bars
+
+.progress-bar-variant(@color) {
+ background-color: @color;
+
+ // Deprecated parent class requirement as of v3.2.0
+ .progress-striped & {
+ #gradient > .striped();
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/reset-filter.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/reset-filter.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/reset-filter.less
new file mode 100644
index 0000000..68cdb5e
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/reset-filter.less
@@ -0,0 +1,8 @@
+// Reset filters for IE
+//
+// When you need to remove a gradient background, do not forget to use this to reset
+// the IE filter for IE9 and below.
+
+.reset-filter() {
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/resize.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/resize.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/resize.less
new file mode 100644
index 0000000..3acd3af
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/resize.less
@@ -0,0 +1,6 @@
+// Resize anything
+
+.resizable(@direction) {
+ resize: @direction; // Options: horizontal, vertical, both
+ overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/responsive-visibility.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/responsive-visibility.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/responsive-visibility.less
new file mode 100644
index 0000000..f7951c3
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/responsive-visibility.less
@@ -0,0 +1,15 @@
+// Responsive utilities
+
+//
+// More easily include all the states for responsive-utilities.less.
+.responsive-visibility() {
+ display: block !important;
+ table& { display: table; }
+ tr& { display: table-row !important; }
+ th&,
+ td& { display: table-cell !important; }
+}
+
+.responsive-invisibility() {
+ display: none !important;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/size.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/size.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/size.less
new file mode 100644
index 0000000..a8be650
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/size.less
@@ -0,0 +1,10 @@
+// Sizing shortcuts
+
+.size(@width; @height) {
+ width: @width;
+ height: @height;
+}
+
+.square(@size) {
+ .size(@size; @size);
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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
new file mode 100644
index 0000000..1f1f05a
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/tab-focus.less
@@ -0,0 +1,9 @@
+// WebKit-style focus
+
+.tab-focus() {
+ // Default
+ outline: thin dotted;
+ // WebKit
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/table-row.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/table-row.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/table-row.less
new file mode 100644
index 0000000..0f287f1
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/table-row.less
@@ -0,0 +1,28 @@
+// Tables
+
+.table-row-variant(@state; @background) {
+ // Exact selectors below required to override `.table-striped` and prevent
+ // inheritance to nested tables.
+ .table > thead > tr,
+ .table > tbody > tr,
+ .table > tfoot > tr {
+ > td.@{state},
+ > th.@{state},
+ &.@{state} > td,
+ &.@{state} > th {
+ background-color: @background;
+ }
+ }
+
+ // Hover states for `.table-hover`
+ // Note: this is not available for cells or rows within `thead` or `tfoot`.
+ .table-hover > tbody > tr {
+ > td.@{state}:hover,
+ > th.@{state}:hover,
+ &.@{state}:hover > td,
+ &:hover > .@{state},
+ &.@{state}:hover > th {
+ background-color: darken(@background, 5%);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-emphasis.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-emphasis.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-emphasis.less
new file mode 100644
index 0000000..0868ef9
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-emphasis.less
@@ -0,0 +1,8 @@
+// Typography
+
+.text-emphasis-variant(@color) {
+ color: @color;
+ a&:hover {
+ color: darken(@color, 10%);
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-overflow.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-overflow.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-overflow.less
new file mode 100644
index 0000000..c11ad2f
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/text-overflow.less
@@ -0,0 +1,8 @@
+// Text overflow
+// Requires inline-block or block for proper styling
+
+.text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/vendor-prefixes.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/vendor-prefixes.less b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/vendor-prefixes.less
new file mode 100644
index 0000000..e2008c8
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/mixins/vendor-prefixes.less
@@ -0,0 +1,224 @@
+// Vendor Prefixes
+//
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
+// Autoprefixer in our Gruntfile. They will be removed in v4.
+
+// - Animations
+// - Backface visibility
+// - Box shadow
+// - Box sizing
+// - Content columns
+// - Hyphens
+// - Placeholder text
+// - Transformations
+// - Transitions
+// - User Select
+
+
+// Animations
+.animation(@animation) {
+ -webkit-animation: @animation;
+ -o-animation: @animation;
+ animation: @animation;
+}
+.animation-name(@name) {
+ -webkit-animation-name: @name;
+ animation-name: @name;
+}
+.animation-duration(@duration) {
+ -webkit-animation-duration: @duration;
+ animation-duration: @duration;
+}
+.animation-timing-function(@timing-function) {
+ -webkit-animation-timing-function: @timing-function;
+ animation-timing-function: @timing-function;
+}
+.animation-delay(@delay) {
+ -webkit-animation-delay: @delay;
+ animation-delay: @delay;
+}
+.animation-iteration-count(@iteration-count) {
+ -webkit-animation-iteration-count: @iteration-count;
+ animation-iteration-count: @iteration-count;
+}
+.animation-direction(@direction) {
+ -webkit-animation-direction: @direction;
+ animation-direction: @direction;
+}
+.animation-fill-mode(@fill-mode) {
+ -webkit-animation-fill-mode: @fill-mode;
+ animation-fill-mode: @fill-mode;
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden`
+
+.backface-visibility(@visibility){
+ -webkit-backface-visibility: @visibility;
+ -moz-backface-visibility: @visibility;
+ backface-visibility: @visibility;
+}
+
+// Drop shadows
+//
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
+// supported browsers that have box shadow capabilities now support it.
+
+.box-shadow(@shadow) {
+ -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
+ box-shadow: @shadow;
+}
+
+// Box sizing
+.box-sizing(@boxmodel) {
+ -webkit-box-sizing: @boxmodel;
+ -moz-box-sizing: @boxmodel;
+ box-sizing: @boxmodel;
+}
+
+// CSS3 Content Columns
+.content-columns(@column-count; @column-gap: @grid-gutter-width) {
+ -webkit-column-count: @column-count;
+ -moz-column-count: @column-count;
+ column-count: @column-count;
+ -webkit-column-gap: @column-gap;
+ -moz-column-gap: @column-gap;
+ column-gap: @column-gap;
+}
+
+// Optional hyphenation
+.hyphens(@mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: @mode;
+ -moz-hyphens: @mode;
+ -ms-hyphens: @mode; // IE10+
+ -o-hyphens: @mode;
+ hyphens: @mode;
+}
+
+// Placeholder text
+.placeholder(@color: @input-color-placeholder) {
+ &::-moz-placeholder { color: @color; // Firefox
+ opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
+ &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
+ &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
+}
+
+// Transformations
+.scale(@ratio) {
+ -webkit-transform: scale(@ratio);
+ -ms-transform: scale(@ratio); // IE9 only
+ -o-transform: scale(@ratio);
+ transform: scale(@ratio);
+}
+.scale(@ratioX; @ratioY) {
+ -webkit-transform: scale(@ratioX, @ratioY);
+ -ms-transform: scale(@ratioX, @ratioY); // IE9 only
+ -o-transform: scale(@ratioX, @ratioY);
+ transform: scale(@ratioX, @ratioY);
+}
+.scaleX(@ratio) {
+ -webkit-transform: scaleX(@ratio);
+ -ms-transform: scaleX(@ratio); // IE9 only
+ -o-transform: scaleX(@ratio);
+ transform: scaleX(@ratio);
+}
+.scaleY(@ratio) {
+ -webkit-transform: scaleY(@ratio);
+ -ms-transform: scaleY(@ratio); // IE9 only
+ -o-transform: scaleY(@ratio);
+ transform: scaleY(@ratio);
+}
+.skew(@x; @y) {
+ -webkit-transform: skewX(@x) skewY(@y);
+ -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
+ -o-transform: skewX(@x) skewY(@y);
+ transform: skewX(@x) skewY(@y);
+}
+.translate(@x; @y) {
+ -webkit-transform: translate(@x, @y);
+ -ms-transform: translate(@x, @y); // IE9 only
+ -o-transform: translate(@x, @y);
+ transform: translate(@x, @y);
+}
+.translate3d(@x; @y; @z) {
+ -webkit-transform: translate3d(@x, @y, @z);
+ transform: translate3d(@x, @y, @z);
+}
+.rotate(@degrees) {
+ -webkit-transform: rotate(@degrees);
+ -ms-transform: rotate(@degrees); // IE9 only
+ -o-transform: rotate(@degrees);
+ transform: rotate(@degrees);
+}
+.rotateX(@degrees) {
+ -webkit-transform: rotateX(@degrees);
+ -ms-transform: rotateX(@degrees); // IE9 only
+ -o-transform: rotateX(@degrees);
+ transform: rotateX(@degrees);
+}
+.rotateY(@degrees) {
+ -webkit-transform: rotateY(@degrees);
+ -ms-transform: rotateY(@degrees); // IE9 only
+ -o-transform: rotateY(@degrees);
+ transform: rotateY(@degrees);
+}
+.perspective(@perspective) {
+ -webkit-perspective: @perspective;
+ -moz-perspective: @perspective;
+ perspective: @perspective;
+}
+.perspective-origin(@perspective) {
+ -webkit-perspective-origin: @perspective;
+ -moz-perspective-origin: @perspective;
+ perspective-origin: @perspective;
+}
+.transform-origin(@origin) {
+ -webkit-transform-origin: @origin;
+ -moz-transform-origin: @origin;
+ -ms-transform-origin: @origin; // IE9 only
+ transform-origin: @origin;
+}
+
+
+// Transitions
+
+.transition(@transition) {
+ -webkit-transition: @transition;
+ -o-transition: @transition;
+ transition: @transition;
+}
+.transition-property(@transition-property) {
+ -webkit-transition-property: @transition-property;
+ transition-property: @transition-property;
+}
+.transition-delay(@transition-delay) {
+ -webkit-transition-delay: @transition-delay;
+ transition-delay: @transition-delay;
+}
+.transition-duration(@transition-duration) {
+ -webkit-transition-duration: @transition-duration;
+ transition-duration: @transition-duration;
+}
+.transition-timing-function(@timing-function) {
+ -webkit-transition-timing-function: @timing-function;
+ transition-timing-function: @timing-function;
+}
+.transition-transform(@transition) {
+ -webkit-transition: -webkit-transform @transition;
+ -moz-transition: -moz-transform @transition;
+ -o-transition: -o-transform @transition;
+ transition: transform @transition;
+}
+
+
+// User select
+// For selecting text on the page
+
+.user-select(@select) {
+ -webkit-user-select: @select;
+ -moz-user-select: @select;
+ -ms-user-select: @select; // IE10+
+ user-select: @select;
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less b/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less
index 21cdee0..6da50ba 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/modals.less
@@ -15,8 +15,7 @@
// Container that the modal scrolls within
.modal {
display: none;
- overflow: auto;
- overflow-y: scroll;
+ overflow: hidden;
position: fixed;
top: 0;
right: 0;
@@ -31,10 +30,14 @@
// When fading in the modal, animate it to slide down
&.fade .modal-dialog {
- .translate(0, -25%);
+ .translate3d(0, -25%, 0);
.transition-transform(~"0.3s ease-out");
}
- &.in .modal-dialog { .translate(0, 0)}
+ &.in .modal-dialog { .translate3d(0, 0, 0) }
+}
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
}
// Shell div to position the modal with bottom padding
@@ -54,7 +57,7 @@
.box-shadow(0 3px 9px rgba(0,0,0,.5));
background-clip: padding-box;
// Remove focus outline from opened modal
- outline: none;
+ outline: 0;
}
// Modal background
@@ -98,8 +101,7 @@
// Footer (for actions)
.modal-footer {
- margin-top: 15px;
- padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;
+ padding: @modal-inner-padding;
text-align: right; // right align buttons
border-top: 1px solid @modal-footer-border-color;
&:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
@@ -119,6 +121,15 @@
}
}
+// Measure scrollbar width for padding body during modal show/hide
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+
// Scale up the modal
@media (min-width: @screen-sm-min) {
// Automatically set modal's width for larger viewports
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less b/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less
index 8c4c210..55bfd29 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/navbar.less
@@ -48,7 +48,6 @@
// content for the user's viewport.
.navbar-collapse {
- max-height: @navbar-collapse-max-height;
overflow-x: visible;
padding-right: @navbar-padding-horizontal;
padding-left: @navbar-padding-horizontal;
@@ -88,6 +87,17 @@
}
}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ .navbar-collapse {
+ max-height: @navbar-collapse-max-height;
+
+ @media (max-width: @screen-xs-min) and (orientation: landscape) {
+ max-height: 200px;
+ }
+ }
+}
+
// Both navbar header and collapse
//
@@ -131,6 +141,7 @@
right: 0;
left: 0;
z-index: @zindex-navbar-fixed;
+ .translate3d(0, 0, 0);
// Undo the rounded corners
@media (min-width: @grid-float-breakpoint) {
@@ -190,7 +201,7 @@
// We remove the `outline` here, but later compensate by attaching `:hover`
// styles to `:focus`.
&:focus {
- outline: none;
+ outline: 0;
}
// Bars
@@ -492,6 +503,20 @@
}
}
+ .btn-link {
+ color: @navbar-default-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-disabled-color;
+ }
+ }
+ }
}
// Inverse navbar
@@ -613,4 +638,18 @@
}
}
+ .btn-link {
+ color: @navbar-inverse-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-disabled-color;
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less b/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less
index 9e729b3..98a6430 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/navs.less
@@ -162,7 +162,7 @@
> li {
float: none;
- > a {
+ > a {
text-align: center;
margin-bottom: 5px;
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less b/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less
index 024e257..ce04b6a 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/normalize.less
@@ -1,4 +1,4 @@
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
//
// 1. Set default font family to sans-serif.
@@ -24,7 +24,9 @@ body {
// ==========================================================================
//
-// Correct `block` display not defined in IE 8/9.
+// Correct `block` display not defined for any HTML5 element in IE 8/9.
+// Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
+// Correct `block` display not defined for `main` in IE 11.
//
article,
@@ -66,8 +68,8 @@ audio:not([controls]) {
}
//
-// Address `[hidden]` styling not present in IE 8/9.
-// Hide the `template` element in IE, Safari, and Firefox < 22.
+// Address `[hidden]` styling not present in IE 8/9/10.
+// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
//
[hidden],
@@ -99,7 +101,7 @@ a:hover {
// ==========================================================================
//
-// Address styling not present in IE 8/9, Safari 5, and Chrome.
+// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
//
abbr[title] {
@@ -107,7 +109,7 @@ abbr[title] {
}
//
-// Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
+// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
//
b,
@@ -116,7 +118,7 @@ strong {
}
//
-// Address styling not present in Safari 5 and Chrome.
+// Address styling not present in Safari and Chrome.
//
dfn {
@@ -125,7 +127,7 @@ dfn {
//
// Address variable `h1` font-size and margin within `section` and `article`
-// contexts in Firefox 4+, Safari 5, and Chrome.
+// contexts in Firefox 4+, Safari, and Chrome.
//
h1 {
@@ -174,7 +176,7 @@ sub {
// ==========================================================================
//
-// Remove border when inside `a` element in IE 8/9.
+// Remove border when inside `a` element in IE 8/9/10.
//
img {
@@ -182,7 +184,7 @@ img {
}
//
-// Correct overflow displayed oddly in IE 9.
+// Correct overflow not hidden in IE 9/10/11.
//
svg:not(:root) {
@@ -193,7 +195,7 @@ svg:not(:root) {
// ==========================================================================
//
-// Address margin not present in IE 8/9 and Safari 5.
+// Address margin not present in IE 8/9 and Safari.
//
figure {
@@ -242,7 +244,7 @@ samp {
// 1. Correct color not being inherited.
// Known issue: affects color of disabled elements.
// 2. Correct font properties not being inherited.
-// 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
+// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
//
button,
@@ -256,7 +258,7 @@ textarea {
}
//
-// Address `overflow` set to `hidden` in IE 8/9/10.
+// Address `overflow` set to `hidden` in IE 8/9/10/11.
//
button {
@@ -266,7 +268,7 @@ button {
//
// Address inconsistent `text-transform` inheritance for `button` and `select`.
// All other form control elements do not inherit `text-transform` values.
-// Correct `button` style inheritance in Firefox, IE 8+, and Opera
+// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
// Correct `select` style inheritance in Firefox.
//
@@ -345,8 +347,8 @@ input[type="number"]::-webkit-outer-spin-button {
}
//
-// 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
-// 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+// 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).
//
@@ -379,7 +381,7 @@ fieldset {
}
//
-// 1. Correct `color` not being inherited in IE 8/9.
+// 1. Correct `color` not being inherited in IE 8/9/10/11.
// 2. Remove padding so people aren't caught out if they zero out fieldsets.
//
@@ -389,7 +391,7 @@ legend {
}
//
-// Remove default vertical scrollbar in IE 8/9.
+// Remove default vertical scrollbar in IE 8/9/10/11.
//
textarea {
@@ -420,4 +422,4 @@ table {
td,
th {
padding: 0;
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 20dd149..2dc2131 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/panels.less
@@ -20,7 +20,7 @@
// Optional heading
.panel-heading {
- padding: 10px 15px;
+ padding: @panel-heading-padding;
border-bottom: 1px solid transparent;
.border-top-radius((@panel-border-radius - 1));
@@ -43,7 +43,7 @@
// Optional footer (stays gray in every modifier class)
.panel-footer {
- padding: 10px 15px;
+ padding: @panel-footer-padding;
background-color: @panel-footer-bg;
border-top: 1px solid @panel-inner-border;
.border-bottom-radius((@panel-border-radius - 1));
@@ -86,7 +86,9 @@
border-top-width: 0;
}
}
-
+.list-group + .panel-footer {
+ border-top-width: 0;
+}
// Tables in panels
//
@@ -95,7 +97,8 @@
.panel {
> .table,
- > .table-responsive > .table {
+ > .table-responsive > .table,
+ > .panel-collapse > .table {
margin-bottom: 0;
}
// Add border top radius for first one
@@ -199,7 +202,6 @@
.panel {
margin-bottom: 0;
border-radius: @panel-border-radius;
- overflow: hidden; // crop contents when collapsed
+ .panel {
margin-top: 5px;
}
@@ -207,7 +209,7 @@
.panel-heading {
border-bottom: 0;
- + .panel-collapse .panel-body {
+ + .panel-collapse > .panel-body {
border-top: 1px solid @panel-inner-border;
}
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less b/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less
index 696d74c..bf6af40 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/popovers.less
@@ -37,7 +37,7 @@
line-height: 18px;
background-color: @popover-title-bg;
border-bottom: 1px solid darken(@popover-title-bg, 5%);
- border-radius: 5px 5px 0 0;
+ border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
}
.popover-content {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less b/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less
index 76c87be..3ac52a2 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/progress-bars.less
@@ -48,16 +48,41 @@
}
// Striped bars
-.progress-striped .progress-bar {
+//
+// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar-striped` class, which you just add to an existing
+// `.progress-bar`.
+.progress-striped .progress-bar,
+.progress-bar-striped {
#gradient > .striped();
background-size: 40px 40px;
}
// Call animation for the active one
-.progress.active .progress-bar {
+//
+// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar.active` approach.
+.progress.active .progress-bar,
+.progress-bar.active {
.animation(progress-bar-stripes 2s linear infinite);
}
+// Account for lower percentages
+.progress-bar {
+ &[aria-valuenow="1"],
+ &[aria-valuenow="2"] {
+ min-width: 30px;
+ }
+
+ &[aria-valuenow="0"] {
+ color: @gray-light;
+ min-width: 30px;
+ background-color: transparent;
+ background-image: none;
+ box-shadow: none;
+ }
+}
+
// Variations
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-embed.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-embed.less b/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-embed.less
new file mode 100644
index 0000000..a884d49
--- /dev/null
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-embed.less
@@ -0,0 +1,34 @@
+// Embeds responsive
+//
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+
+ .embed-responsive-item,
+ iframe,
+ embed,
+ object {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 100%;
+ border: 0;
+ }
+
+ // Modifier class for 16:9 aspect ratio
+ &.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+ }
+
+ // Modifier class for 4:3 aspect ratio
+ &.embed-responsive-4by3 {
+ padding-bottom: 75%;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less b/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less
index 027a264..b1db31d 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/responsive-utilities.less
@@ -14,7 +14,8 @@
// For more information, see the following:
//
// Issue: https://github.com/twbs/bootstrap/issues/10497
-// Docs: http://getbootstrap.com/getting-started/#browsers
+// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
+// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
@-ms-viewport {
@@ -23,6 +24,7 @@
// Visibility utilities
+// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
.visible-xs,
.visible-sm,
.visible-md,
@@ -30,26 +32,104 @@
.responsive-invisibility();
}
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important;
+}
+
.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
}
}
+.visible-xs-block {
+ @media (max-width: @screen-xs-max) {
+ display: block !important;
+ }
+}
+.visible-xs-inline {
+ @media (max-width: @screen-xs-max) {
+ display: inline !important;
+ }
+}
+.visible-xs-inline-block {
+ @media (max-width: @screen-xs-max) {
+ display: inline-block !important;
+ }
+}
+
.visible-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
+.visible-sm-block {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: block !important;
+ }
+}
+.visible-sm-inline {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: inline !important;
+ }
+}
+.visible-sm-inline-block {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: inline-block !important;
+ }
+}
+
.visible-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
}
}
+.visible-md-block {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: block !important;
+ }
+}
+.visible-md-inline {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: inline !important;
+ }
+}
+.visible-md-inline-block {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: inline-block !important;
+ }
+}
+
.visible-lg {
@media (min-width: @screen-lg-min) {
.responsive-visibility();
}
}
+.visible-lg-block {
+ @media (min-width: @screen-lg-min) {
+ display: block !important;
+ }
+}
+.visible-lg-inline {
+ @media (min-width: @screen-lg-min) {
+ display: inline !important;
+ }
+}
+.visible-lg-inline-block {
+ @media (min-width: @screen-lg-min) {
+ display: inline-block !important;
+ }
+}
.hidden-xs {
@media (max-width: @screen-xs-max) {
@@ -77,6 +157,7 @@
//
// Media queries are placed on the inside to be mixin-friendly.
+// Note: Deprecated .visible-print as of v3.2.0
.visible-print {
.responsive-invisibility();
@@ -84,6 +165,27 @@
.responsive-visibility();
}
}
+.visible-print-block {
+ display: none !important;
+
+ @media print {
+ display: block !important;
+ }
+}
+.visible-print-inline {
+ display: none !important;
+
+ @media print {
+ display: inline !important;
+ }
+}
+.visible-print-inline-block {
+ display: none !important;
+
+ @media print {
+ display: inline-block !important;
+ }
+}
.hidden-print {
@media print {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 fe29f2d..c1e270f 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/scaffolding.less
@@ -20,7 +20,7 @@
// Body reset
html {
- font-size: 62.5%;
+ font-size: 10px;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
@@ -132,3 +132,19 @@ hr {
clip: rect(0,0,0,0);
border: 0;
}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+// Credit: HTML5 Boilerplate
+
+.sr-only-focusable {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ }
+}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less b/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less
index c41989c..2e1ef33 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/tables.less
@@ -4,7 +4,6 @@
table {
- max-width: 100%;
background-color: @table-bg;
}
th {
@@ -16,6 +15,7 @@ th {
.table {
width: 100%;
+ max-width: 100%;
margin-bottom: @line-height-computed;
// Cells
> thead,
@@ -168,12 +168,12 @@ table {
// by enabling horizontal scrolling. Only applies <768px. Everything above that
// will display normally.
-@media (max-width: @screen-xs-max) {
- .table-responsive {
+.table-responsive {
+ @media screen and (max-width: @screen-xs-max) {
width: 100%;
margin-bottom: (@line-height-computed * 0.75);
overflow-y: hidden;
- overflow-x: scroll;
+ overflow-x: auto;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid @table-border-color;
-webkit-overflow-scrolling: touch;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 6f957fb..b089424 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/theme.less
@@ -48,6 +48,12 @@
background-color: darken(@btn-color, 12%);
border-color: darken(@btn-color, 14%);
}
+
+ &:disabled,
+ &[disabled] {
+ background-color: darken(@btn-color, 12%);
+ background-image: none;
+ }
}
// Common styles
@@ -191,6 +197,11 @@
.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }
.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }
+// Reset the striped class because our mixins don't do multiple gradients and
+// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
+.progress-bar-striped {
+ #gradient > .striped();
+}
//
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/type.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/type.less b/tapestry-webresources/src/test/webapp/bootstrap/less/type.less
index 5e2a219..9b1e48b 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/type.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/type.less
@@ -62,7 +62,7 @@ p {
.lead {
margin-bottom: @line-height-computed;
font-size: floor((@font-size-base * 1.15));
- font-weight: 200;
+ font-weight: 300;
line-height: 1.4;
@media (min-width: @screen-sm-min) {
@@ -74,18 +74,34 @@ p {
// Emphasis & misc
// -------------------------
-// Ex: 14px base font * 85% = about 12px
+// Ex: (12px small font / 14px base font) * 100% = about 85%
small,
-.small { font-size: 85%; }
+.small {
+ font-size: floor((100% * @font-size-small / @font-size-base));
+}
// Undo browser default styling
-cite { font-style: normal; }
+cite {
+ font-style: normal;
+}
+
+mark,
+.mark {
+ background-color: @state-warning-bg;
+ padding: .2em;
+}
// Alignment
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-justify { text-align: justify; }
+.text-nowrap { white-space: nowrap; }
+
+// Transformation
+.text-lowercase { text-transform: lowercase; }
+.text-uppercase { text-transform: uppercase; }
+.text-capitalize { text-transform: capitalize; }
// Contextual colors
.text-muted {
@@ -141,7 +157,7 @@ cite { font-style: normal; }
// Lists
-// --------------------------------------------------
+// -------------------------
// Unordered and Ordered lists
ul,
@@ -195,24 +211,28 @@ dd {
// Defaults to being stacked without any of the below styles applied, until the
// grid breakpoint is reached (default of ~768px).
-@media (min-width: @grid-float-breakpoint) {
- .dl-horizontal {
+.dl-horizontal {
+ dd {
+ &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
+ }
+
+ @media (min-width: @grid-float-breakpoint) {
dt {
float: left;
- width: (@component-offset-horizontal - 20);
+ width: (@dl-horizontal-offset - 20);
clear: left;
text-align: right;
.text-overflow();
}
dd {
- margin-left: @component-offset-horizontal;
- &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
+ margin-left: @dl-horizontal-offset;
}
}
}
-// MISC
-// ----
+
+// Misc
+// -------------------------
// Abbreviations and acronyms
abbr[title],
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less b/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less
index a260312..c0becab 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/utilities.less
@@ -53,4 +53,5 @@
.affix {
position: fixed;
+ .translate3d(0, 0, 0);
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 3846adc..582f0f8 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less
+++ b/tapestry-webresources/src/test/webapp/bootstrap/less/variables.less
@@ -10,7 +10,7 @@
@gray-darker: lighten(#000, 13.5%); // #222
@gray-dark: lighten(#000, 20%); // #333
@gray: lighten(#000, 33.5%); // #555
-@gray-light: lighten(#000, 60%); // #999
+@gray-light: lighten(#000, 46.7%); // #777
@gray-lighter: lighten(#000, 93.5%); // #eee
@brand-primary: #428bca;
@@ -22,7 +22,7 @@
//== Scaffolding
//
-// ## Settings for some of the most global styles.
+//## Settings for some of the most global styles.
//** Background color for `<body>`.
@body-bg: #fff;
@@ -68,14 +68,18 @@
@headings-color: inherit;
-//-- Iconography
+//== Iconography
//
-//## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+//** Load fonts from this directory.
@icon-font-path: "../fonts/";
+//** File name for all font files.
@icon-font-name: "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
@icon-font-svg-id: "glyphicons_halflingsregular";
+
//== Components
//
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
@@ -232,7 +236,7 @@
//** Text color for headers within dropdown menus.
@dropdown-header-color: @gray-light;
-// Note: Deprecated @dropdown-caret-color as of v3.1.0
+//** Deprecated `@dropdown-caret-color` as of v3.1.0
@dropdown-caret-color: #000;
@@ -245,8 +249,8 @@
@zindex-navbar: 1000;
@zindex-dropdown: 1000;
-@zindex-popover: 1010;
-@zindex-tooltip: 1030;
+@zindex-popover: 1060;
+@zindex-tooltip: 1070;
@zindex-navbar-fixed: 1030;
@zindex-modal-background: 1040;
@zindex-modal: 1050;
@@ -257,27 +261,32 @@
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
// Extra small screen / phone
-// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1
+//** Deprecated `@screen-xs` as of v3.0.1
@screen-xs: 480px;
+//** Deprecated `@screen-xs-min` as of v3.2.0
@screen-xs-min: @screen-xs;
+//** Deprecated `@screen-phone` as of v3.0.1
@screen-phone: @screen-xs-min;
// Small screen / tablet
-// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1
+//** Deprecated `@screen-sm` as of v3.0.1
@screen-sm: 768px;
@screen-sm-min: @screen-sm;
+//** Deprecated `@screen-tablet` as of v3.0.1
@screen-tablet: @screen-sm-min;
// Medium screen / desktop
-// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1
+//** Deprecated `@screen-md` as of v3.0.1
@screen-md: 992px;
@screen-md-min: @screen-md;
+//** Deprecated `@screen-desktop` as of v3.0.1
@screen-desktop: @screen-md-min;
// Large screen / wide desktop
-// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1
+//** Deprecated `@screen-lg` as of v3.0.1
@screen-lg: 1200px;
@screen-lg-min: @screen-lg;
+//** Deprecated `@screen-lg-desktop` as of v3.0.1
@screen-lg-desktop: @screen-lg-min;
// So media queries don't overlap when required, provide a maximum
@@ -558,7 +567,7 @@
//##
//** Padding applied to the modal body
-@modal-inner-padding: 20px;
+@modal-inner-padding: 15px;
//** Padding applied to the modal title
@modal-title-padding: 15px;
@@ -643,17 +652,26 @@
//** List group border radius
@list-group-border-radius: @border-radius-base;
-//** Background color of single list elements on hover
+//** Background color of single list items on hover
@list-group-hover-bg: #f5f5f5;
-//** Text color of active list elements
+//** Text color of active list items
@list-group-active-color: @component-active-color;
-//** Background color of active list elements
+//** Background color of active list items
@list-group-active-bg: @component-active-bg;
//** Border color of active list elements
@list-group-active-border: @list-group-active-bg;
+//** Text color for content within active list items
@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
+//** Text color of disabled list items
+@list-group-disabled-color: @gray-light;
+//** Background color of disabled list items
+@list-group-disabled-bg: @gray-lighter;
+//** Text color for content within disabled list items
+@list-group-disabled-text-color: @list-group-disabled-color;
+
@list-group-link-color: #555;
+@list-group-link-hover-color: @list-group-link-color;
@list-group-link-heading-color: #333;
@@ -663,6 +681,8 @@
@panel-bg: #fff;
@panel-body-padding: 15px;
+@panel-heading-padding: 10px 15px;
+@panel-footer-padding: @panel-heading-padding;
@panel-border-radius: @border-radius-base;
//** Border color for elements within panels
@@ -802,6 +822,8 @@
//
//##
+//** Horizontal offset for forms and lists.
+@component-offset-horizontal: 180px;
//** Text muted color
@text-muted: @gray-light;
//** Abbreviations and acronyms border color
@@ -816,14 +838,9 @@
@blockquote-border-color: @gray-lighter;
//** Page header border color
@page-header-border-color: @gray-lighter;
-
-
-//== Miscellaneous
-//
-//##
-
+//** Width of horizontal description list titles
+@dl-horizontal-offset: @component-offset-horizontal;
//** Horizontal line color.
@hr-border: @gray-lighter;
-//** Horizontal offset for forms and lists.
-@component-offset-horizontal: 180px;
+
[4/6] update Bootstrap to 3.2.0
Posted by jk...@apache.org.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 05c909e..7d404eb 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: affix.js v3.1.1
+ * Bootstrap: affix.js v3.2.0
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -15,7 +15,8 @@
var Affix = function (element, options) {
this.options = $.extend({}, Affix.DEFAULTS, options)
- this.$window = $(window)
+
+ this.$target = $(this.options.target)
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
@@ -27,16 +28,19 @@
this.checkPosition()
}
- Affix.RESET = 'affix affix-top affix-bottom'
+ Affix.VERSION = '3.2.0'
+
+ Affix.RESET = 'affix affix-top affix-bottom'
Affix.DEFAULTS = {
- offset: 0
+ offset: 0,
+ target: window
}
Affix.prototype.getPinnedOffset = function () {
if (this.pinnedOffset) return this.pinnedOffset
this.$element.removeClass(Affix.RESET).addClass('affix')
- var scrollTop = this.$window.scrollTop()
+ var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
return (this.pinnedOffset = position.top - scrollTop)
}
@@ -49,14 +53,12 @@
if (!this.$element.is(':visible')) return
var scrollHeight = $(document).height()
- var scrollTop = this.$window.scrollTop()
+ var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
- if (this.affixed == 'top') position.top += scrollTop
-
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
@@ -66,7 +68,7 @@
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
if (this.affixed === affix) return
- if (this.unpin) this.$element.css('top', '')
+ if (this.unpin != null) this.$element.css('top', '')
var affixType = 'affix' + (affix ? '-' + affix : '')
var e = $.Event(affixType + '.bs.affix')
@@ -84,7 +86,9 @@
.trigger($.Event(affixType.replace('affix', 'affixed')))
if (affix == 'bottom') {
- this.$element.offset({ top: scrollHeight - offsetBottom - this.$element.height() })
+ this.$element.offset({
+ top: scrollHeight - this.$element.height() - offsetBottom
+ })
}
}
@@ -92,9 +96,7 @@
// AFFIX PLUGIN DEFINITION
// =======================
- var old = $.fn.affix
-
- $.fn.affix = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.affix')
@@ -105,6 +107,9 @@
})
}
+ var old = $.fn.affix
+
+ $.fn.affix = Plugin
$.fn.affix.Constructor = Affix
@@ -130,7 +135,7 @@
if (data.offsetBottom) data.offset.bottom = data.offsetBottom
if (data.offsetTop) data.offset.top = data.offsetTop
- $spy.affix(data)
+ Plugin.call($spy, data)
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 516fe4f..0efd92c 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: alert.js v3.1.1
+ * Bootstrap: alert.js v3.2.0
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -18,6 +18,8 @@
$(el).on('click', dismiss, this.close)
}
+ Alert.VERSION = '3.2.0'
+
Alert.prototype.close = function (e) {
var $this = $(this)
var selector = $this.attr('data-target')
@@ -42,12 +44,13 @@
$parent.removeClass('in')
function removeElement() {
- $parent.trigger('closed.bs.alert').remove()
+ // detach from parent, fire event then clean up data
+ $parent.detach().trigger('closed.bs.alert').remove()
}
$.support.transition && $parent.hasClass('fade') ?
$parent
- .one($.support.transition.end, removeElement)
+ .one('bsTransitionEnd', removeElement)
.emulateTransitionEnd(150) :
removeElement()
}
@@ -56,9 +59,7 @@
// ALERT PLUGIN DEFINITION
// =======================
- var old = $.fn.alert
-
- $.fn.alert = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.alert')
@@ -68,6 +69,9 @@
})
}
+ var old = $.fn.alert
+
+ $.fn.alert = Plugin
$.fn.alert.Constructor = Alert
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f4d8d8b..dc3164f 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: button.js v3.1.1
+ * Bootstrap: button.js v3.2.0
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -19,6 +19,8 @@
this.isLoading = false
}
+ Button.VERSION = '3.2.0'
+
Button.DEFAULTS = {
loadingText: 'loading...'
}
@@ -31,9 +33,9 @@
state = state + 'Text'
- if (!data.resetText) $el.data('resetText', $el[val]())
+ if (data.resetText == null) $el.data('resetText', $el[val]())
- $el[val](data[state] || this.options[state])
+ $el[val](data[state] == null ? this.options[state] : data[state])
// push to event loop to allow forms to submit
setTimeout($.proxy(function () {
@@ -67,9 +69,7 @@
// BUTTON PLUGIN DEFINITION
// ========================
- var old = $.fn.button
-
- $.fn.button = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.button')
@@ -82,6 +82,9 @@
})
}
+ var old = $.fn.button
+
+ $.fn.button = Plugin
$.fn.button.Constructor = Button
@@ -97,10 +100,10 @@
// BUTTON DATA-API
// ===============
- $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
+ $(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
var $btn = $(e.target)
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
- $btn.button('toggle')
+ Plugin.call($btn, 'toggle')
e.preventDefault()
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 19e9af1..b7da1ba 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: carousel.js v3.1.1
+ * Bootstrap: carousel.js v3.2.0
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,7 +14,7 @@
// =========================
var Carousel = function (element, options) {
- this.$element = $(element)
+ this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.paused =
@@ -24,17 +24,29 @@
this.$items = null
this.options.pause == 'hover' && this.$element
- .on('mouseenter', $.proxy(this.pause, this))
- .on('mouseleave', $.proxy(this.cycle, this))
+ .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
+ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
}
+ Carousel.VERSION = '3.2.0'
+
Carousel.DEFAULTS = {
interval: 5000,
pause: 'hover',
wrap: true
}
- Carousel.prototype.cycle = function (e) {
+ Carousel.prototype.keydown = function (e) {
+ switch (e.which) {
+ case 37: this.prev(); break
+ case 39: this.next(); break
+ default: return
+ }
+
+ e.preventDefault()
+ }
+
+ Carousel.prototype.cycle = function (e) {
e || (this.paused = false)
this.interval && clearInterval(this.interval)
@@ -46,20 +58,18 @@
return this
}
- Carousel.prototype.getActiveIndex = function () {
- this.$active = this.$element.find('.item.active')
- this.$items = this.$active.parent().children()
-
- return this.$items.index(this.$active)
+ Carousel.prototype.getItemIndex = function (item) {
+ this.$items = item.parent().children('.item')
+ return this.$items.index(item || this.$active)
}
Carousel.prototype.to = function (pos) {
var that = this
- var activeIndex = this.getActiveIndex()
+ var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
if (pos > (this.$items.length - 1) || pos < 0) return
- if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
+ if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
if (activeIndex == pos) return this.pause().cycle()
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
@@ -101,11 +111,15 @@
$next = this.$element.find('.item')[fallback]()
}
- if ($next.hasClass('active')) return this.sliding = false
+ if ($next.hasClass('active')) return (this.sliding = false)
- var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
+ var relatedTarget = $next[0]
+ var slideEvent = $.Event('slide.bs.carousel', {
+ relatedTarget: relatedTarget,
+ direction: direction
+ })
+ this.$element.trigger(slideEvent)
+ if (slideEvent.isDefaultPrevented()) return
this.sliding = true
@@ -113,30 +127,31 @@
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
- this.$element.one('slid.bs.carousel', function () {
- var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
- $nextIndicator && $nextIndicator.addClass('active')
- })
+ var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
+ $nextIndicator && $nextIndicator.addClass('active')
}
+ var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
if ($.support.transition && this.$element.hasClass('slide')) {
$next.addClass(type)
$next[0].offsetWidth // force reflow
$active.addClass(direction)
$next.addClass(direction)
$active
- .one($.support.transition.end, function () {
+ .one('bsTransitionEnd', function () {
$next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' '))
that.sliding = false
- setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
+ setTimeout(function () {
+ that.$element.trigger(slidEvent)
+ }, 0)
})
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
} else {
$active.removeClass('active')
$next.addClass('active')
this.sliding = false
- this.$element.trigger('slid.bs.carousel')
+ this.$element.trigger(slidEvent)
}
isCycling && this.cycle()
@@ -148,9 +163,7 @@
// CAROUSEL PLUGIN DEFINITION
// ==========================
- var old = $.fn.carousel
-
- $.fn.carousel = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.carousel')
@@ -164,6 +177,9 @@
})
}
+ var old = $.fn.carousel
+
+ $.fn.carousel = Plugin
$.fn.carousel.Constructor = Carousel
@@ -180,15 +196,17 @@
// =================
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
- var $this = $(this), href
- var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
+ var href
+ var $this = $(this)
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
+ if (!$target.hasClass('carousel')) return
var options = $.extend({}, $target.data(), $this.data())
var slideIndex = $this.attr('data-slide-to')
if (slideIndex) options.interval = false
- $target.carousel(options)
+ Plugin.call($target, options)
- if (slideIndex = $this.attr('data-slide-to')) {
+ if (slideIndex) {
$target.data('bs.carousel').to(slideIndex)
}
@@ -198,7 +216,7 @@
$(window).on('load', function () {
$('[data-ride="carousel"]').each(function () {
var $carousel = $(this)
- $carousel.carousel($carousel.data())
+ Plugin.call($carousel, $carousel.data())
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 7130282..e4e6d79 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: collapse.js v3.1.1
+ * Bootstrap: collapse.js v3.2.0
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -22,6 +22,8 @@
if (this.options.toggle) this.toggle()
}
+ Collapse.VERSION = '3.2.0'
+
Collapse.DEFAULTS = {
toggle: true
}
@@ -43,7 +45,7 @@
if (actives && actives.length) {
var hasData = actives.data('bs.collapse')
if (hasData && hasData.transitioning) return
- actives.collapse('hide')
+ Plugin.call(actives, 'hide')
hasData || actives.data('bs.collapse', null)
}
@@ -51,18 +53,17 @@
this.$element
.removeClass('collapse')
- .addClass('collapsing')
- [dimension](0)
+ .addClass('collapsing')[dimension](0)
this.transitioning = 1
var complete = function () {
this.$element
.removeClass('collapsing')
- .addClass('collapse in')
- [dimension]('auto')
+ .addClass('collapse in')[dimension]('')
this.transitioning = 0
- this.$element.trigger('shown.bs.collapse')
+ this.$element
+ .trigger('shown.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
@@ -70,9 +71,8 @@
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
this.$element
- .one($.support.transition.end, $.proxy(complete, this))
- .emulateTransitionEnd(350)
- [dimension](this.$element[0][scrollSize])
+ .one('bsTransitionEnd', $.proxy(complete, this))
+ .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
}
Collapse.prototype.hide = function () {
@@ -84,9 +84,7 @@
var dimension = this.dimension()
- this.$element
- [dimension](this.$element[dimension]())
- [0].offsetHeight
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight
this.$element
.addClass('collapsing')
@@ -107,7 +105,7 @@
this.$element
[dimension](0)
- .one($.support.transition.end, $.proxy(complete, this))
+ .one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(350)
}
@@ -119,9 +117,7 @@
// COLLAPSE PLUGIN DEFINITION
// ==========================
- var old = $.fn.collapse
-
- $.fn.collapse = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.collapse')
@@ -133,6 +129,9 @@
})
}
+ var old = $.fn.collapse
+
+ $.fn.collapse = Plugin
$.fn.collapse.Constructor = Collapse
@@ -148,11 +147,12 @@
// COLLAPSE DATA-API
// =================
- $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
- var $this = $(this), href
+ $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
+ var href
+ var $this = $(this)
var target = $this.attr('data-target')
|| e.preventDefault()
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
var $target = $(target)
var data = $target.data('bs.collapse')
var option = data ? 'toggle' : $this.data()
@@ -160,11 +160,11 @@
var $parent = parent && $(parent)
if (!data || !data.transitioning) {
- if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
+ if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed')
$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
}
- $target.collapse(option)
+ Plugin.call($target, option)
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 43d7ae3..88f118c 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: dropdown.js v3.1.1
+ * Bootstrap: dropdown.js v3.2.0
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,11 +14,13 @@
// =========================
var backdrop = '.dropdown-backdrop'
- var toggle = '[data-toggle=dropdown]'
+ var toggle = '[data-toggle="dropdown"]'
var Dropdown = function (element) {
$(element).on('click.bs.dropdown', this.toggle)
}
+ Dropdown.VERSION = '3.2.0'
+
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
@@ -40,11 +42,11 @@
if (e.isDefaultPrevented()) return
+ $this.trigger('focus')
+
$parent
.toggleClass('open')
.trigger('shown.bs.dropdown', relatedTarget)
-
- $this.focus()
}
return false
@@ -64,12 +66,12 @@
var isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) {
- if (e.which == 27) $parent.find(toggle).focus()
- return $this.click()
+ if (e.which == 27) $parent.find(toggle).trigger('focus')
+ return $this.trigger('click')
}
var desc = ' li:not(.divider):visible a'
- var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
+ var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
if (!$items.length) return
@@ -79,10 +81,11 @@
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
if (!~index) index = 0
- $items.eq(index).focus()
+ $items.eq(index).trigger('focus')
}
function clearMenus(e) {
+ if (e && e.which === 3) return
$(backdrop).remove()
$(toggle).each(function () {
var $parent = getParent($(this))
@@ -99,7 +102,7 @@
if (!selector) {
selector = $this.attr('href')
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
var $parent = selector && $(selector)
@@ -111,9 +114,7 @@
// DROPDOWN PLUGIN DEFINITION
// ==========================
- var old = $.fn.dropdown
-
- $.fn.dropdown = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.dropdown')
@@ -123,6 +124,9 @@
})
}
+ var old = $.fn.dropdown
+
+ $.fn.dropdown = Plugin
$.fn.dropdown.Constructor = Dropdown
@@ -142,6 +146,6 @@
.on('click.bs.dropdown.data-api', clearMenus)
.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 + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 20ff270..29eedf1 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: modal.js v3.1.1
+ * Bootstrap: modal.js v3.2.0
* http://getbootstrap.com/javascript/#modals
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,10 +14,12 @@
// ======================
var Modal = function (element, options) {
- this.options = options
- this.$element = $(element)
- this.$backdrop =
- this.isShown = null
+ this.options = options
+ this.$body = $(document.body)
+ this.$element = $(element)
+ this.$backdrop =
+ this.isShown = null
+ this.scrollbarWidth = 0
if (this.options.remote) {
this.$element
@@ -28,6 +30,8 @@
}
}
+ Modal.VERSION = '3.2.0'
+
Modal.DEFAULTS = {
backdrop: true,
keyboard: true,
@@ -35,7 +39,7 @@
}
Modal.prototype.toggle = function (_relatedTarget) {
- return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
+ return this.isShown ? this.hide() : this.show(_relatedTarget)
}
Modal.prototype.show = function (_relatedTarget) {
@@ -48,6 +52,10 @@
this.isShown = true
+ this.checkScrollbar()
+ this.$body.addClass('modal-open')
+
+ this.setScrollbar()
this.escape()
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
@@ -56,7 +64,7 @@
var transition = $.support.transition && that.$element.hasClass('fade')
if (!that.$element.parent().length) {
- that.$element.appendTo(document.body) // don't move modals dom position
+ that.$element.appendTo(that.$body) // don't move modals dom position
}
that.$element
@@ -77,11 +85,11 @@
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
- .one($.support.transition.end, function () {
- that.$element.focus().trigger(e)
+ .one('bsTransitionEnd', function () {
+ that.$element.trigger('focus').trigger(e)
})
.emulateTransitionEnd(300) :
- that.$element.focus().trigger(e)
+ that.$element.trigger('focus').trigger(e)
})
}
@@ -96,6 +104,9 @@
this.isShown = false
+ this.$body.removeClass('modal-open')
+
+ this.resetScrollbar()
this.escape()
$(document).off('focusin.bs.modal')
@@ -107,7 +118,7 @@
$.support.transition && this.$element.hasClass('fade') ?
this.$element
- .one($.support.transition.end, $.proxy(this.hideModal, this))
+ .one('bsTransitionEnd', $.proxy(this.hideModal, this))
.emulateTransitionEnd(300) :
this.hideModal()
}
@@ -117,7 +128,7 @@
.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) {
- this.$element.focus()
+ this.$element.trigger('focus')
}
}, this))
}
@@ -136,7 +147,6 @@
var that = this
this.$element.hide()
this.backdrop(function () {
- that.removeBackdrop()
that.$element.trigger('hidden.bs.modal')
})
}
@@ -147,13 +157,14 @@
}
Modal.prototype.backdrop = function (callback) {
+ var that = this
var animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
- .appendTo(document.body)
+ .appendTo(this.$body)
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
@@ -170,31 +181,56 @@
doAnimate ?
this.$backdrop
- .one($.support.transition.end, callback)
+ .one('bsTransitionEnd', callback)
.emulateTransitionEnd(150) :
callback()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
+ var callbackRemove = function () {
+ that.removeBackdrop()
+ callback && callback()
+ }
$.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
- .one($.support.transition.end, callback)
+ .one('bsTransitionEnd', callbackRemove)
.emulateTransitionEnd(150) :
- callback()
+ callbackRemove()
} else if (callback) {
callback()
}
}
+ Modal.prototype.checkScrollbar = function () {
+ if (document.body.clientWidth >= window.innerWidth) return
+ this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
+ }
+
+ Modal.prototype.setScrollbar = function () {
+ var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
+ if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
+ }
+
+ Modal.prototype.resetScrollbar = function () {
+ this.$body.css('padding-right', '')
+ }
+
+ Modal.prototype.measureScrollbar = function () { // thx walsh
+ var scrollDiv = document.createElement('div')
+ scrollDiv.className = 'modal-scrollbar-measure'
+ this.$body.append(scrollDiv)
+ var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
+ this.$body[0].removeChild(scrollDiv)
+ return scrollbarWidth
+ }
+
// MODAL PLUGIN DEFINITION
// =======================
- var old = $.fn.modal
-
- $.fn.modal = function (option, _relatedTarget) {
+ function Plugin(option, _relatedTarget) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.modal')
@@ -206,6 +242,9 @@
})
}
+ var old = $.fn.modal
+
+ $.fn.modal = Plugin
$.fn.modal.Constructor = Modal
@@ -224,20 +263,18 @@
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
var href = $this.attr('href')
- var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
if ($this.is('a')) e.preventDefault()
- $target
- .modal(option, this)
- .one('hide', function () {
- $this.is(':visible') && $this.focus()
+ $target.one('show.bs.modal', function (showEvent) {
+ if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
+ $target.one('hidden.bs.modal', function () {
+ $this.is(':visible') && $this.trigger('focus')
})
+ })
+ Plugin.call($target, option, this)
})
- $(document)
- .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
- .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
-
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 23aa829..825e1b3 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: popover.js v3.1.1
+ * Bootstrap: popover.js v3.2.0
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -19,11 +19,13 @@
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
+ Popover.VERSION = '3.2.0'
+
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
placement: 'right',
trigger: 'click',
content: '',
- template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+ template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
})
@@ -44,7 +46,7 @@
var content = this.getContent()
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
- $tip.find('.popover-content')[ // we use append for html objects to maintain js events
+ $tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
](content)
@@ -70,7 +72,7 @@
}
Popover.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.arrow')
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
}
Popover.prototype.tip = function () {
@@ -82,9 +84,7 @@
// POPOVER PLUGIN DEFINITION
// =========================
- var old = $.fn.popover
-
- $.fn.popover = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.popover')
@@ -96,6 +96,9 @@
})
}
+ var old = $.fn.popover
+
+ $.fn.popover = Plugin
$.fn.popover.Constructor = Popover
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 4346c86..db23787 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: scrollspy.js v3.1.1
+ * Bootstrap: scrollspy.js v3.2.0
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,36 +14,48 @@
// ==========================
function ScrollSpy(element, options) {
- var href
var process = $.proxy(this.process, this)
- this.$element = $(element).is('body') ? $(window) : $(element)
this.$body = $('body')
- this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
+ this.$scrollElement = $(element).is('body') ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
- this.selector = (this.options.target
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
- || '') + ' .nav li > a'
- this.offsets = $([])
- this.targets = $([])
+ this.selector = (this.options.target || '') + ' .nav li > a'
+ this.offsets = []
+ this.targets = []
this.activeTarget = null
+ this.scrollHeight = 0
+ this.$scrollElement.on('scroll.bs.scrollspy', process)
this.refresh()
this.process()
}
+ ScrollSpy.VERSION = '3.2.0'
+
ScrollSpy.DEFAULTS = {
offset: 10
}
+ ScrollSpy.prototype.getScrollHeight = function () {
+ return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+ }
+
ScrollSpy.prototype.refresh = function () {
- var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
+ var offsetMethod = 'offset'
+ var offsetBase = 0
- this.offsets = $([])
- this.targets = $([])
+ if (!$.isWindow(this.$scrollElement[0])) {
+ offsetMethod = 'position'
+ offsetBase = this.$scrollElement.scrollTop()
+ }
+
+ this.offsets = []
+ this.targets = []
+ this.scrollHeight = this.getScrollHeight()
var self = this
- var $targets = this.$body
+
+ this.$body
.find(this.selector)
.map(function () {
var $el = $(this)
@@ -53,7 +65,7 @@
return ($href
&& $href.length
&& $href.is(':visible')
- && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
+ && [[$href[offsetMethod]().top + offsetBase, href]]) || null
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
@@ -64,15 +76,19 @@
ScrollSpy.prototype.process = function () {
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
- var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
- var maxScroll = scrollHeight - this.$scrollElement.height()
+ var scrollHeight = this.getScrollHeight()
+ var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
var offsets = this.offsets
var targets = this.targets
var activeTarget = this.activeTarget
var i
+ if (this.scrollHeight != scrollHeight) {
+ this.refresh()
+ }
+
if (scrollTop >= maxScroll) {
- return activeTarget != (i = targets.last()[0]) && this.activate(i)
+ return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
}
if (activeTarget && scrollTop <= offsets[0]) {
@@ -83,7 +99,7 @@
activeTarget != targets[i]
&& scrollTop >= offsets[i]
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
- && this.activate( targets[i] )
+ && this.activate(targets[i])
}
}
@@ -115,9 +131,7 @@
// SCROLLSPY PLUGIN DEFINITION
// ===========================
- var old = $.fn.scrollspy
-
- $.fn.scrollspy = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.scrollspy')
@@ -128,6 +142,9 @@
})
}
+ var old = $.fn.scrollspy
+
+ $.fn.scrollspy = Plugin
$.fn.scrollspy.Constructor = ScrollSpy
@@ -143,10 +160,10 @@
// SCROLLSPY DATA-API
// ==================
- $(window).on('load', function () {
+ $(window).on('load.bs.scrollspy.data-api', function () {
$('[data-spy="scroll"]').each(function () {
var $spy = $(this)
- $spy.scrollspy($spy.data())
+ Plugin.call($spy, $spy.data())
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 400cb7b..c0e1e46 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: tab.js v3.1.1
+ * Bootstrap: tab.js v3.2.0
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -17,6 +17,8 @@
this.element = $(element)
}
+ Tab.VERSION = '3.2.0'
+
Tab.prototype.show = function () {
var $this = this.element
var $ul = $this.closest('ul:not(.dropdown-menu)')
@@ -24,7 +26,7 @@
if (!selector) {
selector = $this.attr('href')
- selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
if ($this.parent('li').hasClass('active')) return
@@ -40,7 +42,7 @@
var $target = $(selector)
- this.activate($this.parent('li'), $ul)
+ this.activate($this.closest('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
type: 'shown.bs.tab',
@@ -79,7 +81,7 @@
transition ?
$active
- .one($.support.transition.end, next)
+ .one('bsTransitionEnd', next)
.emulateTransitionEnd(150) :
next()
@@ -90,9 +92,7 @@
// TAB PLUGIN DEFINITION
// =====================
- var old = $.fn.tab
-
- $.fn.tab = function ( option ) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tab')
@@ -102,6 +102,9 @@
})
}
+ var old = $.fn.tab
+
+ $.fn.tab = Plugin
$.fn.tab.Constructor = Tab
@@ -119,7 +122,7 @@
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
- $(this).tab('show')
+ Plugin.call($(this), 'show')
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f6c0a37..9cdb6c9 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: tooltip.js v3.1.1
+ * Bootstrap: tooltip.js v3.2.0
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
@@ -25,23 +25,30 @@
this.init('tooltip', element, options)
}
+ Tooltip.VERSION = '3.2.0'
+
Tooltip.DEFAULTS = {
animation: true,
placement: 'top',
selector: false,
- template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+ template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
- container: false
+ container: false,
+ viewport: {
+ selector: 'body',
+ padding: 0
+ }
}
Tooltip.prototype.init = function (type, element, options) {
- this.enabled = true
- this.type = type
- this.$element = $(element)
- this.options = this.getOptions(options)
+ this.enabled = true
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
var triggers = this.options.trigger.split(' ')
@@ -94,7 +101,12 @@
Tooltip.prototype.enter = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -109,7 +121,12 @@
Tooltip.prototype.leave = function (obj) {
var self = obj instanceof this.constructor ?
- obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
clearTimeout(self.timeout)
@@ -128,12 +145,17 @@
if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
- var that = this;
+ var inDom = $.contains(document.documentElement, this.$element[0])
+ if (e.isDefaultPrevented() || !inDom) return
+ var that = this
var $tip = this.tip()
+ var tipId = this.getUID(this.type)
+
this.setContent()
+ $tip.attr('id', tipId)
+ this.$element.attr('aria-describedby', tipId)
if (this.options.animation) $tip.addClass('fade')
@@ -149,6 +171,7 @@
.detach()
.css({ top: 0, left: 0, display: 'block' })
.addClass(placement)
+ .data('bs.' + this.type, this)
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
@@ -157,18 +180,14 @@
var actualHeight = $tip[0].offsetHeight
if (autoPlace) {
- var $parent = this.$element.parent()
-
var orgPlacement = placement
- var docScroll = document.documentElement.scrollTop || document.body.scrollTop
- var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
- var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
- var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
-
- placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
- placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
- placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
- placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
+ var $parent = this.$element.parent()
+ var parentDim = this.getPosition($parent)
+
+ placement = placement == 'bottom' && pos.top + pos.height + actualHeight - parentDim.scroll > parentDim.height ? 'top' :
+ placement == 'top' && pos.top - parentDim.scroll - actualHeight < 0 ? 'bottom' :
+ placement == 'right' && pos.right + actualWidth > parentDim.width ? 'left' :
+ placement == 'left' && pos.left - actualWidth < parentDim.left ? 'right' :
placement
$tip
@@ -179,22 +198,21 @@
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
this.applyPlacement(calculatedOffset, placement)
- this.hoverState = null
- var complete = function() {
+ var complete = function () {
that.$element.trigger('shown.bs.' + that.type)
+ that.hoverState = null
}
$.support.transition && this.$tip.hasClass('fade') ?
$tip
- .one($.support.transition.end, complete)
+ .one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
}
}
Tooltip.prototype.applyPlacement = function (offset, placement) {
- var replace
var $tip = this.tip()
var width = $tip[0].offsetWidth
var height = $tip[0].offsetHeight
@@ -228,29 +246,20 @@
var actualHeight = $tip[0].offsetHeight
if (placement == 'top' && actualHeight != height) {
- replace = true
offset.top = offset.top + height - actualHeight
}
- if (/bottom|top/.test(placement)) {
- var delta = 0
+ var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
- if (offset.left < 0) {
- delta = offset.left * -2
- offset.left = 0
+ if (delta.left) offset.left += delta.left
+ else offset.top += delta.top
- $tip.offset(offset)
+ var arrowDelta = delta.left ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
+ var arrowPosition = delta.left ? 'left' : 'top'
+ var arrowOffsetPosition = delta.left ? 'offsetWidth' : 'offsetHeight'
- actualWidth = $tip[0].offsetWidth
- actualHeight = $tip[0].offsetHeight
- }
-
- this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
- } else {
- this.replaceArrow(actualHeight - height, actualHeight, 'top')
- }
-
- if (replace) $tip.offset(offset)
+ $tip.offset(offset)
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], arrowPosition)
}
Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
@@ -270,6 +279,8 @@
var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type)
+ this.$element.removeAttr('aria-describedby')
+
function complete() {
if (that.hoverState != 'in') $tip.detach()
that.$element.trigger('hidden.bs.' + that.type)
@@ -283,7 +294,7 @@
$.support.transition && this.$tip.hasClass('fade') ?
$tip
- .one($.support.transition.end, complete)
+ .one('bsTransitionEnd', complete)
.emulateTransitionEnd(150) :
complete()
@@ -294,7 +305,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', '')
}
}
@@ -303,12 +314,15 @@
return this.getTitle()
}
- Tooltip.prototype.getPosition = function () {
- var el = this.$element[0]
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
- width: el.offsetWidth,
- height: el.offsetHeight
- }, this.$element.offset())
+ Tooltip.prototype.getPosition = function ($element) {
+ $element = $element || this.$element
+ var el = $element[0]
+ var isBody = el.tagName == 'BODY'
+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
+ scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
+ width: isBody ? $(window).width() : $element.outerWidth(),
+ height: isBody ? $(window).height() : $element.outerHeight()
+ }, isBody ? { top: 0, left: 0 } : $element.offset())
}
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
@@ -316,6 +330,35 @@
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
+
+ }
+
+ Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
+ var delta = { top: 0, left: 0 }
+ if (!this.$viewport) return delta
+
+ var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
+ var viewportDimensions = this.getPosition(this.$viewport)
+
+ if (/right|left/.test(placement)) {
+ var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
+ var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
+ if (topEdgeOffset < viewportDimensions.top) { // top overflow
+ delta.top = viewportDimensions.top - topEdgeOffset
+ } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
+ delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
+ }
+ } else {
+ var leftEdgeOffset = pos.left - viewportPadding
+ var rightEdgeOffset = pos.left + viewportPadding + actualWidth
+ if (leftEdgeOffset < viewportDimensions.left) { // left overflow
+ delta.left = viewportDimensions.left - leftEdgeOffset
+ } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
+ delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
+ }
+ }
+
+ return delta
}
Tooltip.prototype.getTitle = function () {
@@ -329,12 +372,18 @@
return title
}
+ Tooltip.prototype.getUID = function (prefix) {
+ do prefix += ~~(Math.random() * 1000000)
+ while (document.getElementById(prefix))
+ return prefix
+ }
+
Tooltip.prototype.tip = function () {
- return this.$tip = this.$tip || $(this.options.template)
+ return (this.$tip = this.$tip || $(this.options.template))
}
Tooltip.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
}
Tooltip.prototype.validate = function () {
@@ -358,7 +407,15 @@
}
Tooltip.prototype.toggle = function (e) {
- var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
+ var self = this
+ if (e) {
+ self = $(e.currentTarget).data('bs.' + this.type)
+ if (!self) {
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
+ $(e.currentTarget).data('bs.' + this.type, self)
+ }
+ }
+
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
}
@@ -371,9 +428,7 @@
// TOOLTIP PLUGIN DEFINITION
// =========================
- var old = $.fn.tooltip
-
- $.fn.tooltip = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.tooltip')
@@ -385,6 +440,9 @@
})
}
+ var old = $.fn.tooltip
+
+ $.fn.tooltip = Plugin
$.fn.tooltip.Constructor = Tooltip
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 efa8c17..83f85bf 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,5 +1,5 @@
/* ========================================================================
- * Bootstrap: transition.js v3.1.1
+ * Bootstrap: transition.js v3.2.0
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -17,10 +17,10 @@
var el = document.createElement('bootstrap')
var transEndEventNames = {
- 'WebkitTransition' : 'webkitTransitionEnd',
- 'MozTransition' : 'transitionend',
- 'OTransition' : 'oTransitionEnd otransitionend',
- 'transition' : 'transitionend'
+ WebkitTransition : 'webkitTransitionEnd',
+ MozTransition : 'transitionend',
+ OTransition : 'oTransitionEnd otransitionend',
+ transition : 'transitionend'
}
for (var name in transEndEventNames) {
@@ -34,8 +34,9 @@
// http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) {
- var called = false, $el = this
- $(this).one($.support.transition.end, function () { called = true })
+ var called = false
+ var $el = this
+ $(this).one('bsTransitionEnd', function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration)
return this
@@ -43,6 +44,16 @@
$(function () {
$.support.transition = transitionEnd()
+
+ if (!$.support.transition) return
+
+ $.event.special.bsTransitionEnd = {
+ bindType: $.support.transition.end,
+ delegateType: $.support.transition.end,
+ handle: function (e) {
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
+ }
+ }
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 05c909e..7d404eb 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/affix.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: affix.js v3.1.1
+ * Bootstrap: affix.js v3.2.0
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -15,7 +15,8 @@
var Affix = function (element, options) {
this.options = $.extend({}, Affix.DEFAULTS, options)
- this.$window = $(window)
+
+ this.$target = $(this.options.target)
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
@@ -27,16 +28,19 @@
this.checkPosition()
}
- Affix.RESET = 'affix affix-top affix-bottom'
+ Affix.VERSION = '3.2.0'
+
+ Affix.RESET = 'affix affix-top affix-bottom'
Affix.DEFAULTS = {
- offset: 0
+ offset: 0,
+ target: window
}
Affix.prototype.getPinnedOffset = function () {
if (this.pinnedOffset) return this.pinnedOffset
this.$element.removeClass(Affix.RESET).addClass('affix')
- var scrollTop = this.$window.scrollTop()
+ var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
return (this.pinnedOffset = position.top - scrollTop)
}
@@ -49,14 +53,12 @@
if (!this.$element.is(':visible')) return
var scrollHeight = $(document).height()
- var scrollTop = this.$window.scrollTop()
+ var scrollTop = this.$target.scrollTop()
var position = this.$element.offset()
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
- if (this.affixed == 'top') position.top += scrollTop
-
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
@@ -66,7 +68,7 @@
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
if (this.affixed === affix) return
- if (this.unpin) this.$element.css('top', '')
+ if (this.unpin != null) this.$element.css('top', '')
var affixType = 'affix' + (affix ? '-' + affix : '')
var e = $.Event(affixType + '.bs.affix')
@@ -84,7 +86,9 @@
.trigger($.Event(affixType.replace('affix', 'affixed')))
if (affix == 'bottom') {
- this.$element.offset({ top: scrollHeight - offsetBottom - this.$element.height() })
+ this.$element.offset({
+ top: scrollHeight - this.$element.height() - offsetBottom
+ })
}
}
@@ -92,9 +96,7 @@
// AFFIX PLUGIN DEFINITION
// =======================
- var old = $.fn.affix
-
- $.fn.affix = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.affix')
@@ -105,6 +107,9 @@
})
}
+ var old = $.fn.affix
+
+ $.fn.affix = Plugin
$.fn.affix.Constructor = Affix
@@ -130,7 +135,7 @@
if (data.offsetBottom) data.offset.bottom = data.offsetBottom
if (data.offsetTop) data.offset.top = data.offsetTop
- $spy.affix(data)
+ Plugin.call($spy, data)
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 516fe4f..0efd92c 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/alert.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: alert.js v3.1.1
+ * Bootstrap: alert.js v3.2.0
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -18,6 +18,8 @@
$(el).on('click', dismiss, this.close)
}
+ Alert.VERSION = '3.2.0'
+
Alert.prototype.close = function (e) {
var $this = $(this)
var selector = $this.attr('data-target')
@@ -42,12 +44,13 @@
$parent.removeClass('in')
function removeElement() {
- $parent.trigger('closed.bs.alert').remove()
+ // detach from parent, fire event then clean up data
+ $parent.detach().trigger('closed.bs.alert').remove()
}
$.support.transition && $parent.hasClass('fade') ?
$parent
- .one($.support.transition.end, removeElement)
+ .one('bsTransitionEnd', removeElement)
.emulateTransitionEnd(150) :
removeElement()
}
@@ -56,9 +59,7 @@
// ALERT PLUGIN DEFINITION
// =======================
- var old = $.fn.alert
-
- $.fn.alert = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.alert')
@@ -68,6 +69,9 @@
})
}
+ var old = $.fn.alert
+
+ $.fn.alert = Plugin
$.fn.alert.Constructor = Alert
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 f4d8d8b..dc3164f 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/button.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/button.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: button.js v3.1.1
+ * Bootstrap: button.js v3.2.0
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -19,6 +19,8 @@
this.isLoading = false
}
+ Button.VERSION = '3.2.0'
+
Button.DEFAULTS = {
loadingText: 'loading...'
}
@@ -31,9 +33,9 @@
state = state + 'Text'
- if (!data.resetText) $el.data('resetText', $el[val]())
+ if (data.resetText == null) $el.data('resetText', $el[val]())
- $el[val](data[state] || this.options[state])
+ $el[val](data[state] == null ? this.options[state] : data[state])
// push to event loop to allow forms to submit
setTimeout($.proxy(function () {
@@ -67,9 +69,7 @@
// BUTTON PLUGIN DEFINITION
// ========================
- var old = $.fn.button
-
- $.fn.button = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.button')
@@ -82,6 +82,9 @@
})
}
+ var old = $.fn.button
+
+ $.fn.button = Plugin
$.fn.button.Constructor = Button
@@ -97,10 +100,10 @@
// BUTTON DATA-API
// ===============
- $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
+ $(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
var $btn = $(e.target)
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
- $btn.button('toggle')
+ Plugin.call($btn, 'toggle')
e.preventDefault()
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 19e9af1..b7da1ba 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/carousel.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: carousel.js v3.1.1
+ * Bootstrap: carousel.js v3.2.0
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,7 +14,7 @@
// =========================
var Carousel = function (element, options) {
- this.$element = $(element)
+ this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.paused =
@@ -24,17 +24,29 @@
this.$items = null
this.options.pause == 'hover' && this.$element
- .on('mouseenter', $.proxy(this.pause, this))
- .on('mouseleave', $.proxy(this.cycle, this))
+ .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
+ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
}
+ Carousel.VERSION = '3.2.0'
+
Carousel.DEFAULTS = {
interval: 5000,
pause: 'hover',
wrap: true
}
- Carousel.prototype.cycle = function (e) {
+ Carousel.prototype.keydown = function (e) {
+ switch (e.which) {
+ case 37: this.prev(); break
+ case 39: this.next(); break
+ default: return
+ }
+
+ e.preventDefault()
+ }
+
+ Carousel.prototype.cycle = function (e) {
e || (this.paused = false)
this.interval && clearInterval(this.interval)
@@ -46,20 +58,18 @@
return this
}
- Carousel.prototype.getActiveIndex = function () {
- this.$active = this.$element.find('.item.active')
- this.$items = this.$active.parent().children()
-
- return this.$items.index(this.$active)
+ Carousel.prototype.getItemIndex = function (item) {
+ this.$items = item.parent().children('.item')
+ return this.$items.index(item || this.$active)
}
Carousel.prototype.to = function (pos) {
var that = this
- var activeIndex = this.getActiveIndex()
+ var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
if (pos > (this.$items.length - 1) || pos < 0) return
- if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
+ if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
if (activeIndex == pos) return this.pause().cycle()
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
@@ -101,11 +111,15 @@
$next = this.$element.find('.item')[fallback]()
}
- if ($next.hasClass('active')) return this.sliding = false
+ if ($next.hasClass('active')) return (this.sliding = false)
- var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
+ var relatedTarget = $next[0]
+ var slideEvent = $.Event('slide.bs.carousel', {
+ relatedTarget: relatedTarget,
+ direction: direction
+ })
+ this.$element.trigger(slideEvent)
+ if (slideEvent.isDefaultPrevented()) return
this.sliding = true
@@ -113,30 +127,31 @@
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
- this.$element.one('slid.bs.carousel', function () {
- var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
- $nextIndicator && $nextIndicator.addClass('active')
- })
+ var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
+ $nextIndicator && $nextIndicator.addClass('active')
}
+ var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
if ($.support.transition && this.$element.hasClass('slide')) {
$next.addClass(type)
$next[0].offsetWidth // force reflow
$active.addClass(direction)
$next.addClass(direction)
$active
- .one($.support.transition.end, function () {
+ .one('bsTransitionEnd', function () {
$next.removeClass([type, direction].join(' ')).addClass('active')
$active.removeClass(['active', direction].join(' '))
that.sliding = false
- setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
+ setTimeout(function () {
+ that.$element.trigger(slidEvent)
+ }, 0)
})
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
} else {
$active.removeClass('active')
$next.addClass('active')
this.sliding = false
- this.$element.trigger('slid.bs.carousel')
+ this.$element.trigger(slidEvent)
}
isCycling && this.cycle()
@@ -148,9 +163,7 @@
// CAROUSEL PLUGIN DEFINITION
// ==========================
- var old = $.fn.carousel
-
- $.fn.carousel = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.carousel')
@@ -164,6 +177,9 @@
})
}
+ var old = $.fn.carousel
+
+ $.fn.carousel = Plugin
$.fn.carousel.Constructor = Carousel
@@ -180,15 +196,17 @@
// =================
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
- var $this = $(this), href
- var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
+ var href
+ var $this = $(this)
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
+ if (!$target.hasClass('carousel')) return
var options = $.extend({}, $target.data(), $this.data())
var slideIndex = $this.attr('data-slide-to')
if (slideIndex) options.interval = false
- $target.carousel(options)
+ Plugin.call($target, options)
- if (slideIndex = $this.attr('data-slide-to')) {
+ if (slideIndex) {
$target.data('bs.carousel').to(slideIndex)
}
@@ -198,7 +216,7 @@
$(window).on('load', function () {
$('[data-ride="carousel"]').each(function () {
var $carousel = $(this)
- $carousel.carousel($carousel.data())
+ Plugin.call($carousel, $carousel.data())
})
})
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 7130282..e4e6d79 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/collapse.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: collapse.js v3.1.1
+ * Bootstrap: collapse.js v3.2.0
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -22,6 +22,8 @@
if (this.options.toggle) this.toggle()
}
+ Collapse.VERSION = '3.2.0'
+
Collapse.DEFAULTS = {
toggle: true
}
@@ -43,7 +45,7 @@
if (actives && actives.length) {
var hasData = actives.data('bs.collapse')
if (hasData && hasData.transitioning) return
- actives.collapse('hide')
+ Plugin.call(actives, 'hide')
hasData || actives.data('bs.collapse', null)
}
@@ -51,18 +53,17 @@
this.$element
.removeClass('collapse')
- .addClass('collapsing')
- [dimension](0)
+ .addClass('collapsing')[dimension](0)
this.transitioning = 1
var complete = function () {
this.$element
.removeClass('collapsing')
- .addClass('collapse in')
- [dimension]('auto')
+ .addClass('collapse in')[dimension]('')
this.transitioning = 0
- this.$element.trigger('shown.bs.collapse')
+ this.$element
+ .trigger('shown.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
@@ -70,9 +71,8 @@
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
this.$element
- .one($.support.transition.end, $.proxy(complete, this))
- .emulateTransitionEnd(350)
- [dimension](this.$element[0][scrollSize])
+ .one('bsTransitionEnd', $.proxy(complete, this))
+ .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
}
Collapse.prototype.hide = function () {
@@ -84,9 +84,7 @@
var dimension = this.dimension()
- this.$element
- [dimension](this.$element[dimension]())
- [0].offsetHeight
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight
this.$element
.addClass('collapsing')
@@ -107,7 +105,7 @@
this.$element
[dimension](0)
- .one($.support.transition.end, $.proxy(complete, this))
+ .one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(350)
}
@@ -119,9 +117,7 @@
// COLLAPSE PLUGIN DEFINITION
// ==========================
- var old = $.fn.collapse
-
- $.fn.collapse = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.collapse')
@@ -133,6 +129,9 @@
})
}
+ var old = $.fn.collapse
+
+ $.fn.collapse = Plugin
$.fn.collapse.Constructor = Collapse
@@ -148,11 +147,12 @@
// COLLAPSE DATA-API
// =================
- $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
- var $this = $(this), href
+ $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
+ var href
+ var $this = $(this)
var target = $this.attr('data-target')
|| e.preventDefault()
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
var $target = $(target)
var data = $target.data('bs.collapse')
var option = data ? 'toggle' : $this.data()
@@ -160,11 +160,11 @@
var $parent = parent && $(parent)
if (!data || !data.transitioning) {
- if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
+ if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed')
$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
}
- $target.collapse(option)
+ Plugin.call($target, option)
})
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 43d7ae3..88f118c 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/dropdown.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: dropdown.js v3.1.1
+ * Bootstrap: dropdown.js v3.2.0
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,11 +14,13 @@
// =========================
var backdrop = '.dropdown-backdrop'
- var toggle = '[data-toggle=dropdown]'
+ var toggle = '[data-toggle="dropdown"]'
var Dropdown = function (element) {
$(element).on('click.bs.dropdown', this.toggle)
}
+ Dropdown.VERSION = '3.2.0'
+
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
@@ -40,11 +42,11 @@
if (e.isDefaultPrevented()) return
+ $this.trigger('focus')
+
$parent
.toggleClass('open')
.trigger('shown.bs.dropdown', relatedTarget)
-
- $this.focus()
}
return false
@@ -64,12 +66,12 @@
var isActive = $parent.hasClass('open')
if (!isActive || (isActive && e.keyCode == 27)) {
- if (e.which == 27) $parent.find(toggle).focus()
- return $this.click()
+ if (e.which == 27) $parent.find(toggle).trigger('focus')
+ return $this.trigger('click')
}
var desc = ' li:not(.divider):visible a'
- var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
+ var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
if (!$items.length) return
@@ -79,10 +81,11 @@
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
if (!~index) index = 0
- $items.eq(index).focus()
+ $items.eq(index).trigger('focus')
}
function clearMenus(e) {
+ if (e && e.which === 3) return
$(backdrop).remove()
$(toggle).each(function () {
var $parent = getParent($(this))
@@ -99,7 +102,7 @@
if (!selector) {
selector = $this.attr('href')
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
var $parent = selector && $(selector)
@@ -111,9 +114,7 @@
// DROPDOWN PLUGIN DEFINITION
// ==========================
- var old = $.fn.dropdown
-
- $.fn.dropdown = function (option) {
+ function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.dropdown')
@@ -123,6 +124,9 @@
})
}
+ var old = $.fn.dropdown
+
+ $.fn.dropdown = Plugin
$.fn.dropdown.Constructor = Dropdown
@@ -142,6 +146,6 @@
.on('click.bs.dropdown.data-api', clearMenus)
.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 + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
}(jQuery);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 20ff270..29eedf1 100644
--- a/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js
+++ b/tapestry-webresources/src/test/webapp/bootstrap/js/modal.js
@@ -1,5 +1,5 @@
/* ========================================================================
- * Bootstrap: modal.js v3.1.1
+ * Bootstrap: modal.js v3.2.0
* http://getbootstrap.com/javascript/#modals
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -14,10 +14,12 @@
// ======================
var Modal = function (element, options) {
- this.options = options
- this.$element = $(element)
- this.$backdrop =
- this.isShown = null
+ this.options = options
+ this.$body = $(document.body)
+ this.$element = $(element)
+ this.$backdrop =
+ this.isShown = null
+ this.scrollbarWidth = 0
if (this.options.remote) {
this.$element
@@ -28,6 +30,8 @@
}
}
+ Modal.VERSION = '3.2.0'
+
Modal.DEFAULTS = {
backdrop: true,
keyboard: true,
@@ -35,7 +39,7 @@
}
Modal.prototype.toggle = function (_relatedTarget) {
- return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
+ return this.isShown ? this.hide() : this.show(_relatedTarget)
}
Modal.prototype.show = function (_relatedTarget) {
@@ -48,6 +52,10 @@
this.isShown = true
+ this.checkScrollbar()
+ this.$body.addClass('modal-open')
+
+ this.setScrollbar()
this.escape()
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
@@ -56,7 +64,7 @@
var transition = $.support.transition && that.$element.hasClass('fade')
if (!that.$element.parent().length) {
- that.$element.appendTo(document.body) // don't move modals dom position
+ that.$element.appendTo(that.$body) // don't move modals dom position
}
that.$element
@@ -77,11 +85,11 @@
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
- .one($.support.transition.end, function () {
- that.$element.focus().trigger(e)
+ .one('bsTransitionEnd', function () {
+ that.$element.trigger('focus').trigger(e)
})
.emulateTransitionEnd(300) :
- that.$element.focus().trigger(e)
+ that.$element.trigger('focus').trigger(e)
})
}
@@ -96,6 +104,9 @@
this.isShown = false
+ this.$body.removeClass('modal-open')
+
+ this.resetScrollbar()
this.escape()
$(document).off('focusin.bs.modal')
@@ -107,7 +118,7 @@
$.support.transition && this.$element.hasClass('fade') ?
this.$element
- .one($.support.transition.end, $.proxy(this.hideModal, this))
+ .one('bsTransitionEnd', $.proxy(this.hideModal, this))
.emulateTransitionEnd(300) :
this.hideModal()
}
@@ -117,7 +128,7 @@
.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) {
- this.$element.focus()
+ this.$element.trigger('focus')
}
}, this))
}
@@ -136,7 +147,6 @@
var that = this
this.$element.hide()
this.backdrop(function () {
- that.removeBackdrop()
that.$element.trigger('hidden.bs.modal')
})
}
@@ -147,13 +157,14 @@
}
Modal.prototype.backdrop = function (callback) {
+ var that = this
var animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
- .appendTo(document.body)
+ .appendTo(this.$body)
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
@@ -170,31 +181,56 @@
doAnimate ?
this.$backdrop
- .one($.support.transition.end, callback)
+ .one('bsTransitionEnd', callback)
.emulateTransitionEnd(150) :
callback()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
+ var callbackRemove = function () {
+ that.removeBackdrop()
+ callback && callback()
+ }
$.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
- .one($.support.transition.end, callback)
+ .one('bsTransitionEnd', callbackRemove)
.emulateTransitionEnd(150) :
- callback()
+ callbackRemove()
} else if (callback) {
callback()
}
}
+ Modal.prototype.checkScrollbar = function () {
+ if (document.body.clientWidth >= window.innerWidth) return
+ this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
+ }
+
+ Modal.prototype.setScrollbar = function () {
+ var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
+ if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
+ }
+
+ Modal.prototype.resetScrollbar = function () {
+ this.$body.css('padding-right', '')
+ }
+
+ Modal.prototype.measureScrollbar = function () { // thx walsh
+ var scrollDiv = document.createElement('div')
+ scrollDiv.className = 'modal-scrollbar-measure'
+ this.$body.append(scrollDiv)
+ var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
+ this.$body[0].removeChild(scrollDiv)
+ return scrollbarWidth
+ }
+
// MODAL PLUGIN DEFINITION
// =======================
- var old = $.fn.modal
-
- $.fn.modal = function (option, _relatedTarget) {
+ function Plugin(option, _relatedTarget) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.modal')
@@ -206,6 +242,9 @@
})
}
+ var old = $.fn.modal
+
+ $.fn.modal = Plugin
$.fn.modal.Constructor = Modal
@@ -224,20 +263,18 @@
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
var href = $this.attr('href')
- var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
if ($this.is('a')) e.preventDefault()
- $target
- .modal(option, this)
- .one('hide', function () {
- $this.is(':visible') && $this.focus()
+ $target.one('show.bs.modal', function (showEvent) {
+ if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
+ $target.one('hidden.bs.modal', function () {
+ $this.is(':visible') && $this.trigger('focus')
})
+ })
+ Plugin.call($target, option, this)
})
- $(document)
- .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
- .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
-
}(jQuery);
[5/6] update Bootstrap to 3.2.0
Posted by jk...@apache.org.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 7f36651..037dd05 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,10 +1,10 @@
/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Bootstrap v3.2.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
html {
font-family: sans-serif;
-webkit-text-size-adjust: 100%;
@@ -94,8 +94,9 @@ figure {
}
hr {
height: 0;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
}
pre {
overflow: auto;
@@ -144,7 +145,9 @@ input {
}
input[type="checkbox"],
input[type="radio"] {
- box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
@@ -189,7 +192,8 @@ th {
color: #000 !important;
text-shadow: none !important;
background: transparent !important;
- box-shadow: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
}
a,
a:visited {
@@ -256,2740 +260,2854 @@ th {
border: 1px solid #ddd !important;
}
}
-* {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-*:before,
-*:after {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
+@font-face {
+ font-family: 'Glyphicons Halflings';
+
+ src: url('../fonts/glyphicons-halflings-regular.eot');
+ src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
-html {
- font-size: 62.5%;
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
}
-body {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 14px;
- line-height: 1.42857143;
- color: #333;
- background-color: #fff;
+.glyphicon-asterisk:before {
+ content: "\2a";
}
-input,
-button,
-select,
-textarea {
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
+.glyphicon-plus:before {
+ content: "\2b";
}
-a {
- color: #428bca;
- text-decoration: none;
+.glyphicon-euro:before {
+ content: "\20ac";
}
-a:hover,
-a:focus {
- color: #2a6496;
- text-decoration: underline;
+.glyphicon-minus:before {
+ content: "\2212";
}
-a:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
+.glyphicon-cloud:before {
+ content: "\2601";
}
-figure {
- margin: 0;
+.glyphicon-envelope:before {
+ content: "\2709";
}
-img {
- vertical-align: middle;
+.glyphicon-pencil:before {
+ content: "\270f";
}
-.img-responsive,
-.thumbnail > img,
-.thumbnail a > img,
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
- display: block;
- max-width: 100%;
- height: auto;
+.glyphicon-glass:before {
+ content: "\e001";
}
-.img-rounded {
- border-radius: 6px;
+.glyphicon-music:before {
+ content: "\e002";
}
-.img-thumbnail {
- display: inline-block;
- max-width: 100%;
- height: auto;
- padding: 4px;
- line-height: 1.42857143;
- background-color: #fff;
- border: 1px solid #ddd;
- border-radius: 4px;
- -webkit-transition: all .2s ease-in-out;
- transition: all .2s ease-in-out;
+.glyphicon-search:before {
+ content: "\e003";
}
-.img-circle {
- border-radius: 50%;
+.glyphicon-heart:before {
+ content: "\e005";
}
-hr {
- margin-top: 20px;
- margin-bottom: 20px;
- border: 0;
- border-top: 1px solid #eee;
+.glyphicon-star:before {
+ content: "\e006";
}
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- border: 0;
+.glyphicon-star-empty:before {
+ content: "\e007";
}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6 {
- font-family: inherit;
- font-weight: 500;
- line-height: 1.1;
- color: inherit;
+.glyphicon-user:before {
+ content: "\e008";
}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small,
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-.h5 small,
-.h6 small,
-h1 .small,
-h2 .small,
-h3 .small,
-h4 .small,
-h5 .small,
-h6 .small,
-.h1 .small,
-.h2 .small,
-.h3 .small,
-.h4 .small,
-.h5 .small,
-.h6 .small {
- font-weight: normal;
- line-height: 1;
- color: #999;
+.glyphicon-film:before {
+ content: "\e009";
}
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3 {
- margin-top: 20px;
- margin-bottom: 10px;
+.glyphicon-th-large:before {
+ content: "\e010";
}
-h1 small,
-.h1 small,
-h2 small,
-.h2 small,
-h3 small,
-.h3 small,
-h1 .small,
-.h1 .small,
-h2 .small,
-.h2 .small,
-h3 .small,
-.h3 .small {
- font-size: 65%;
+.glyphicon-th:before {
+ content: "\e011";
}
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
- margin-top: 10px;
- margin-bottom: 10px;
+.glyphicon-th-list:before {
+ content: "\e012";
}
-h4 small,
-.h4 small,
-h5 small,
-.h5 small,
-h6 small,
-.h6 small,
-h4 .small,
-.h4 .small,
-h5 .small,
-.h5 .small,
-h6 .small,
-.h6 .small {
- font-size: 75%;
+.glyphicon-ok:before {
+ content: "\e013";
}
-h1,
-.h1 {
- font-size: 36px;
+.glyphicon-remove:before {
+ content: "\e014";
}
-h2,
-.h2 {
- font-size: 30px;
+.glyphicon-zoom-in:before {
+ content: "\e015";
}
-h3,
-.h3 {
- font-size: 24px;
+.glyphicon-zoom-out:before {
+ content: "\e016";
}
-h4,
-.h4 {
- font-size: 18px;
+.glyphicon-off:before {
+ content: "\e017";
}
-h5,
-.h5 {
- font-size: 14px;
+.glyphicon-signal:before {
+ content: "\e018";
}
-h6,
-.h6 {
- font-size: 12px;
+.glyphicon-cog:before {
+ content: "\e019";
}
-p {
- margin: 0 0 10px;
+.glyphicon-trash:before {
+ content: "\e020";
}
-.lead {
- margin-bottom: 20px;
- font-size: 16px;
- font-weight: 200;
- line-height: 1.4;
+.glyphicon-home:before {
+ content: "\e021";
}
-@media (min-width: 768px) {
- .lead {
- font-size: 21px;
- }
+.glyphicon-file:before {
+ content: "\e022";
}
-small,
-.small {
- font-size: 85%;
+.glyphicon-time:before {
+ content: "\e023";
}
-cite {
- font-style: normal;
+.glyphicon-road:before {
+ content: "\e024";
}
-.text-left {
- text-align: left;
+.glyphicon-download-alt:before {
+ content: "\e025";
}
-.text-right {
- text-align: right;
+.glyphicon-download:before {
+ content: "\e026";
}
-.text-center {
- text-align: center;
+.glyphicon-upload:before {
+ content: "\e027";
}
-.text-justify {
- text-align: justify;
+.glyphicon-inbox:before {
+ content: "\e028";
}
-.text-muted {
- color: #999;
+.glyphicon-play-circle:before {
+ content: "\e029";
}
-.text-primary {
- color: #428bca;
+.glyphicon-repeat:before {
+ content: "\e030";
}
-a.text-primary:hover {
- color: #3071a9;
+.glyphicon-refresh:before {
+ content: "\e031";
}
-.text-success {
- color: #3c763d;
+.glyphicon-list-alt:before {
+ content: "\e032";
}
-a.text-success:hover {
- color: #2b542c;
+.glyphicon-lock:before {
+ content: "\e033";
}
-.text-info {
- color: #31708f;
+.glyphicon-flag:before {
+ content: "\e034";
}
-a.text-info:hover {
- color: #245269;
+.glyphicon-headphones:before {
+ content: "\e035";
}
-.text-warning {
- color: #8a6d3b;
+.glyphicon-volume-off:before {
+ content: "\e036";
}
-a.text-warning:hover {
- color: #66512c;
+.glyphicon-volume-down:before {
+ content: "\e037";
}
-.text-danger {
- color: #a94442;
+.glyphicon-volume-up:before {
+ content: "\e038";
}
-a.text-danger:hover {
- color: #843534;
+.glyphicon-qrcode:before {
+ content: "\e039";
}
-.bg-primary {
- color: #fff;
- background-color: #428bca;
+.glyphicon-barcode:before {
+ content: "\e040";
}
-a.bg-primary:hover {
- background-color: #3071a9;
+.glyphicon-tag:before {
+ content: "\e041";
}
-.bg-success {
- background-color: #dff0d8;
+.glyphicon-tags:before {
+ content: "\e042";
}
-a.bg-success:hover {
- background-color: #c1e2b3;
+.glyphicon-book:before {
+ content: "\e043";
}
-.bg-info {
- background-color: #d9edf7;
+.glyphicon-bookmark:before {
+ content: "\e044";
}
-a.bg-info:hover {
- background-color: #afd9ee;
+.glyphicon-print:before {
+ content: "\e045";
}
-.bg-warning {
- background-color: #fcf8e3;
+.glyphicon-camera:before {
+ content: "\e046";
}
-a.bg-warning:hover {
- background-color: #f7ecb5;
+.glyphicon-font:before {
+ content: "\e047";
}
-.bg-danger {
- background-color: #f2dede;
+.glyphicon-bold:before {
+ content: "\e048";
}
-a.bg-danger:hover {
- background-color: #e4b9b9;
+.glyphicon-italic:before {
+ content: "\e049";
}
-.page-header {
- padding-bottom: 9px;
- margin: 40px 0 20px;
- border-bottom: 1px solid #eee;
+.glyphicon-text-height:before {
+ content: "\e050";
}
-ul,
-ol {
- margin-top: 0;
- margin-bottom: 10px;
+.glyphicon-text-width:before {
+ content: "\e051";
}
-ul ul,
-ol ul,
-ul ol,
-ol ol {
- margin-bottom: 0;
+.glyphicon-align-left:before {
+ content: "\e052";
}
-.list-unstyled {
- padding-left: 0;
- list-style: none;
+.glyphicon-align-center:before {
+ content: "\e053";
}
-.list-inline {
- padding-left: 0;
- margin-left: -5px;
- list-style: none;
+.glyphicon-align-right:before {
+ content: "\e054";
}
-.list-inline > li {
- display: inline-block;
- padding-right: 5px;
- padding-left: 5px;
+.glyphicon-align-justify:before {
+ content: "\e055";
}
-dl {
- margin-top: 0;
- margin-bottom: 20px;
+.glyphicon-list:before {
+ content: "\e056";
}
-dt,
-dd {
- line-height: 1.42857143;
+.glyphicon-indent-left:before {
+ content: "\e057";
}
-dt {
- font-weight: bold;
+.glyphicon-indent-right:before {
+ content: "\e058";
}
-dd {
- margin-left: 0;
+.glyphicon-facetime-video:before {
+ content: "\e059";
}
-@media (min-width: 768px) {
- .dl-horizontal dt {
- float: left;
- width: 160px;
- overflow: hidden;
- clear: left;
- text-align: right;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .dl-horizontal dd {
- margin-left: 180px;
- }
+.glyphicon-picture:before {
+ content: "\e060";
}
-abbr[title],
-abbr[data-original-title] {
- cursor: help;
- border-bottom: 1px dotted #999;
+.glyphicon-map-marker:before {
+ content: "\e062";
}
-.initialism {
- font-size: 90%;
- text-transform: uppercase;
+.glyphicon-adjust:before {
+ content: "\e063";
}
-blockquote {
- padding: 10px 20px;
- margin: 0 0 20px;
- font-size: 17.5px;
- border-left: 5px solid #eee;
+.glyphicon-tint:before {
+ content: "\e064";
}
-blockquote p:last-child,
-blockquote ul:last-child,
-blockquote ol:last-child {
- margin-bottom: 0;
+.glyphicon-edit:before {
+ content: "\e065";
}
-blockquote footer,
-blockquote small,
-blockquote .small {
- display: block;
- font-size: 80%;
- line-height: 1.42857143;
- color: #999;
+.glyphicon-share:before {
+ content: "\e066";
}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
- content: '\2014 \00A0';
+.glyphicon-check:before {
+ content: "\e067";
}
-.blockquote-reverse,
-blockquote.pull-right {
- padding-right: 15px;
- padding-left: 0;
- text-align: right;
- border-right: 5px solid #eee;
- border-left: 0;
+.glyphicon-move:before {
+ content: "\e068";
}
-.blockquote-reverse footer:before,
-blockquote.pull-right footer:before,
-.blockquote-reverse small:before,
-blockquote.pull-right small:before,
-.blockquote-reverse .small:before,
-blockquote.pull-right .small:before {
- content: '';
+.glyphicon-step-backward:before {
+ content: "\e069";
}
-.blockquote-reverse footer:after,
-blockquote.pull-right footer:after,
-.blockquote-reverse small:after,
-blockquote.pull-right small:after,
-.blockquote-reverse .small:after,
-blockquote.pull-right .small:after {
- content: '\00A0 \2014';
+.glyphicon-fast-backward:before {
+ content: "\e070";
}
-blockquote:before,
-blockquote:after {
- content: "";
+.glyphicon-backward:before {
+ content: "\e071";
}
-address {
- margin-bottom: 20px;
- font-style: normal;
- line-height: 1.42857143;
+.glyphicon-play:before {
+ content: "\e072";
}
-code,
-kbd,
-pre,
-samp {
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+.glyphicon-pause:before {
+ content: "\e073";
}
-code {
- padding: 2px 4px;
- font-size: 90%;
- color: #c7254e;
- white-space: nowrap;
- background-color: #f9f2f4;
- border-radius: 4px;
+.glyphicon-stop:before {
+ content: "\e074";
}
-kbd {
- padding: 2px 4px;
- font-size: 90%;
- color: #fff;
- background-color: #333;
- border-radius: 3px;
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+.glyphicon-forward:before {
+ content: "\e075";
}
-pre {
- display: block;
- padding: 9.5px;
- margin: 0 0 10px;
- font-size: 13px;
- line-height: 1.42857143;
- color: #333;
- word-break: break-all;
- word-wrap: break-word;
- background-color: #f5f5f5;
- border: 1px solid #ccc;
- border-radius: 4px;
+.glyphicon-fast-forward:before {
+ content: "\e076";
}
-pre code {
- padding: 0;
- font-size: inherit;
- color: inherit;
- white-space: pre-wrap;
- background-color: transparent;
- border-radius: 0;
+.glyphicon-step-forward:before {
+ content: "\e077";
}
-.pre-scrollable {
- max-height: 340px;
- overflow-y: scroll;
+.glyphicon-eject:before {
+ content: "\e078";
}
-.container {
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto;
+.glyphicon-chevron-left:before {
+ content: "\e079";
}
-@media (min-width: 768px) {
- .container {
- width: 750px;
- }
+.glyphicon-chevron-right:before {
+ content: "\e080";
}
-@media (min-width: 992px) {
- .container {
- width: 970px;
- }
+.glyphicon-plus-sign:before {
+ content: "\e081";
}
-@media (min-width: 1200px) {
- .container {
- width: 1170px;
- }
+.glyphicon-minus-sign:before {
+ content: "\e082";
}
-.container-fluid {
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto;
+.glyphicon-remove-sign:before {
+ content: "\e083";
}
-.row {
- margin-right: -15px;
- margin-left: -15px;
+.glyphicon-ok-sign:before {
+ content: "\e084";
}
-.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
- position: relative;
- min-height: 1px;
- padding-right: 15px;
- padding-left: 15px;
+.glyphicon-question-sign:before {
+ content: "\e085";
}
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
- float: left;
+.glyphicon-info-sign:before {
+ content: "\e086";
}
-.col-xs-12 {
- width: 100%;
+.glyphicon-screenshot:before {
+ content: "\e087";
}
-.col-xs-11 {
- width: 91.66666667%;
+.glyphicon-remove-circle:before {
+ content: "\e088";
}
-.col-xs-10 {
- width: 83.33333333%;
+.glyphicon-ok-circle:before {
+ content: "\e089";
}
-.col-xs-9 {
- width: 75%;
+.glyphicon-ban-circle:before {
+ content: "\e090";
}
-.col-xs-8 {
- width: 66.66666667%;
+.glyphicon-arrow-left:before {
+ content: "\e091";
}
-.col-xs-7 {
- width: 58.33333333%;
+.glyphicon-arrow-right:before {
+ content: "\e092";
}
-.col-xs-6 {
- width: 50%;
+.glyphicon-arrow-up:before {
+ content: "\e093";
}
-.col-xs-5 {
- width: 41.66666667%;
+.glyphicon-arrow-down:before {
+ content: "\e094";
}
-.col-xs-4 {
- width: 33.33333333%;
+.glyphicon-share-alt:before {
+ content: "\e095";
}
-.col-xs-3 {
- width: 25%;
+.glyphicon-resize-full:before {
+ content: "\e096";
}
-.col-xs-2 {
- width: 16.66666667%;
+.glyphicon-resize-small:before {
+ content: "\e097";
}
-.col-xs-1 {
- width: 8.33333333%;
+.glyphicon-exclamation-sign:before {
+ content: "\e101";
}
-.col-xs-pull-12 {
- right: 100%;
+.glyphicon-gift:before {
+ content: "\e102";
}
-.col-xs-pull-11 {
- right: 91.66666667%;
+.glyphicon-leaf:before {
+ content: "\e103";
}
-.col-xs-pull-10 {
- right: 83.33333333%;
+.glyphicon-fire:before {
+ content: "\e104";
}
-.col-xs-pull-9 {
- right: 75%;
+.glyphicon-eye-open:before {
+ content: "\e105";
}
-.col-xs-pull-8 {
- right: 66.66666667%;
+.glyphicon-eye-close:before {
+ content: "\e106";
}
-.col-xs-pull-7 {
- right: 58.33333333%;
+.glyphicon-warning-sign:before {
+ content: "\e107";
}
-.col-xs-pull-6 {
- right: 50%;
+.glyphicon-plane:before {
+ content: "\e108";
}
-.col-xs-pull-5 {
- right: 41.66666667%;
+.glyphicon-calendar:before {
+ content: "\e109";
}
-.col-xs-pull-4 {
- right: 33.33333333%;
+.glyphicon-random:before {
+ content: "\e110";
}
-.col-xs-pull-3 {
- right: 25%;
+.glyphicon-comment:before {
+ content: "\e111";
}
-.col-xs-pull-2 {
- right: 16.66666667%;
+.glyphicon-magnet:before {
+ content: "\e112";
}
-.col-xs-pull-1 {
- right: 8.33333333%;
+.glyphicon-chevron-up:before {
+ content: "\e113";
}
-.col-xs-pull-0 {
- right: 0;
+.glyphicon-chevron-down:before {
+ content: "\e114";
}
-.col-xs-push-12 {
- left: 100%;
+.glyphicon-retweet:before {
+ content: "\e115";
}
-.col-xs-push-11 {
- left: 91.66666667%;
+.glyphicon-shopping-cart:before {
+ content: "\e116";
}
-.col-xs-push-10 {
- left: 83.33333333%;
+.glyphicon-folder-close:before {
+ content: "\e117";
}
-.col-xs-push-9 {
- left: 75%;
+.glyphicon-folder-open:before {
+ content: "\e118";
}
-.col-xs-push-8 {
- left: 66.66666667%;
+.glyphicon-resize-vertical:before {
+ content: "\e119";
}
-.col-xs-push-7 {
- left: 58.33333333%;
+.glyphicon-resize-horizontal:before {
+ content: "\e120";
}
-.col-xs-push-6 {
- left: 50%;
+.glyphicon-hdd:before {
+ content: "\e121";
}
-.col-xs-push-5 {
- left: 41.66666667%;
+.glyphicon-bullhorn:before {
+ content: "\e122";
}
-.col-xs-push-4 {
- left: 33.33333333%;
+.glyphicon-bell:before {
+ content: "\e123";
}
-.col-xs-push-3 {
- left: 25%;
+.glyphicon-certificate:before {
+ content: "\e124";
}
-.col-xs-push-2 {
- left: 16.66666667%;
+.glyphicon-thumbs-up:before {
+ content: "\e125";
}
-.col-xs-push-1 {
- left: 8.33333333%;
+.glyphicon-thumbs-down:before {
+ content: "\e126";
}
-.col-xs-push-0 {
- left: 0;
+.glyphicon-hand-right:before {
+ content: "\e127";
}
-.col-xs-offset-12 {
- margin-left: 100%;
+.glyphicon-hand-left:before {
+ content: "\e128";
}
-.col-xs-offset-11 {
- margin-left: 91.66666667%;
+.glyphicon-hand-up:before {
+ content: "\e129";
}
-.col-xs-offset-10 {
- margin-left: 83.33333333%;
+.glyphicon-hand-down:before {
+ content: "\e130";
}
-.col-xs-offset-9 {
- margin-left: 75%;
+.glyphicon-circle-arrow-right:before {
+ content: "\e131";
}
-.col-xs-offset-8 {
- margin-left: 66.66666667%;
+.glyphicon-circle-arrow-left:before {
+ content: "\e132";
}
-.col-xs-offset-7 {
- margin-left: 58.33333333%;
+.glyphicon-circle-arrow-up:before {
+ content: "\e133";
}
-.col-xs-offset-6 {
- margin-left: 50%;
+.glyphicon-circle-arrow-down:before {
+ content: "\e134";
}
-.col-xs-offset-5 {
- margin-left: 41.66666667%;
+.glyphicon-globe:before {
+ content: "\e135";
}
-.col-xs-offset-4 {
- margin-left: 33.33333333%;
+.glyphicon-wrench:before {
+ content: "\e136";
}
-.col-xs-offset-3 {
- margin-left: 25%;
+.glyphicon-tasks:before {
+ content: "\e137";
}
-.col-xs-offset-2 {
- margin-left: 16.66666667%;
+.glyphicon-filter:before {
+ content: "\e138";
}
-.col-xs-offset-1 {
- margin-left: 8.33333333%;
+.glyphicon-briefcase:before {
+ content: "\e139";
}
-.col-xs-offset-0 {
- margin-left: 0;
+.glyphicon-fullscreen:before {
+ content: "\e140";
}
-@media (min-width: 768px) {
- .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
- float: left;
- }
- .col-sm-12 {
- width: 100%;
- }
- .col-sm-11 {
- width: 91.66666667%;
- }
- .col-sm-10 {
- width: 83.33333333%;
- }
- .col-sm-9 {
- width: 75%;
- }
- .col-sm-8 {
- width: 66.66666667%;
- }
- .col-sm-7 {
- width: 58.33333333%;
- }
- .col-sm-6 {
- width: 50%;
- }
- .col-sm-5 {
- width: 41.66666667%;
- }
- .col-sm-4 {
- width: 33.33333333%;
- }
- .col-sm-3 {
- width: 25%;
- }
- .col-sm-2 {
- width: 16.66666667%;
- }
- .col-sm-1 {
- width: 8.33333333%;
- }
- .col-sm-pull-12 {
- right: 100%;
- }
- .col-sm-pull-11 {
- right: 91.66666667%;
- }
- .col-sm-pull-10 {
- right: 83.33333333%;
- }
- .col-sm-pull-9 {
- right: 75%;
- }
- .col-sm-pull-8 {
- right: 66.66666667%;
- }
- .col-sm-pull-7 {
- right: 58.33333333%;
- }
- .col-sm-pull-6 {
- right: 50%;
- }
- .col-sm-pull-5 {
- right: 41.66666667%;
- }
- .col-sm-pull-4 {
- right: 33.33333333%;
- }
- .col-sm-pull-3 {
- right: 25%;
- }
- .col-sm-pull-2 {
- right: 16.66666667%;
- }
- .col-sm-pull-1 {
- right: 8.33333333%;
- }
- .col-sm-pull-0 {
- right: 0;
- }
- .col-sm-push-12 {
- left: 100%;
- }
- .col-sm-push-11 {
- left: 91.66666667%;
- }
- .col-sm-push-10 {
- left: 83.33333333%;
- }
- .col-sm-push-9 {
- left: 75%;
- }
- .col-sm-push-8 {
- left: 66.66666667%;
- }
- .col-sm-push-7 {
- left: 58.33333333%;
- }
- .col-sm-push-6 {
- left: 50%;
- }
- .col-sm-push-5 {
- left: 41.66666667%;
- }
- .col-sm-push-4 {
- left: 33.33333333%;
- }
- .col-sm-push-3 {
- left: 25%;
- }
- .col-sm-push-2 {
- left: 16.66666667%;
- }
- .col-sm-push-1 {
- left: 8.33333333%;
- }
- .col-sm-push-0 {
- left: 0;
- }
- .col-sm-offset-12 {
- margin-left: 100%;
- }
- .col-sm-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-sm-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-sm-offset-9 {
- margin-left: 75%;
- }
- .col-sm-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-sm-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-sm-offset-6 {
- margin-left: 50%;
- }
- .col-sm-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-sm-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-sm-offset-3 {
- margin-left: 25%;
- }
- .col-sm-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-sm-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-sm-offset-0 {
- margin-left: 0;
- }
+.glyphicon-dashboard:before {
+ content: "\e141";
}
-@media (min-width: 992px) {
- .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
- float: left;
- }
- .col-md-12 {
- width: 100%;
- }
- .col-md-11 {
- width: 91.66666667%;
- }
- .col-md-10 {
- width: 83.33333333%;
- }
- .col-md-9 {
- width: 75%;
- }
- .col-md-8 {
- width: 66.66666667%;
- }
- .col-md-7 {
- width: 58.33333333%;
- }
- .col-md-6 {
- width: 50%;
- }
- .col-md-5 {
- width: 41.66666667%;
- }
- .col-md-4 {
- width: 33.33333333%;
- }
- .col-md-3 {
- width: 25%;
- }
- .col-md-2 {
- width: 16.66666667%;
- }
- .col-md-1 {
- width: 8.33333333%;
- }
- .col-md-pull-12 {
- right: 100%;
- }
- .col-md-pull-11 {
- right: 91.66666667%;
- }
- .col-md-pull-10 {
- right: 83.33333333%;
- }
- .col-md-pull-9 {
- right: 75%;
- }
- .col-md-pull-8 {
- right: 66.66666667%;
- }
- .col-md-pull-7 {
- right: 58.33333333%;
- }
- .col-md-pull-6 {
- right: 50%;
- }
- .col-md-pull-5 {
- right: 41.66666667%;
- }
- .col-md-pull-4 {
- right: 33.33333333%;
- }
- .col-md-pull-3 {
- right: 25%;
- }
- .col-md-pull-2 {
- right: 16.66666667%;
- }
- .col-md-pull-1 {
- right: 8.33333333%;
- }
- .col-md-pull-0 {
- right: 0;
- }
- .col-md-push-12 {
- left: 100%;
- }
- .col-md-push-11 {
- left: 91.66666667%;
- }
- .col-md-push-10 {
- left: 83.33333333%;
- }
- .col-md-push-9 {
- left: 75%;
- }
- .col-md-push-8 {
- left: 66.66666667%;
- }
- .col-md-push-7 {
- left: 58.33333333%;
- }
- .col-md-push-6 {
- left: 50%;
- }
- .col-md-push-5 {
- left: 41.66666667%;
- }
- .col-md-push-4 {
- left: 33.33333333%;
- }
- .col-md-push-3 {
- left: 25%;
- }
- .col-md-push-2 {
- left: 16.66666667%;
- }
- .col-md-push-1 {
- left: 8.33333333%;
- }
- .col-md-push-0 {
- left: 0;
- }
- .col-md-offset-12 {
- margin-left: 100%;
- }
- .col-md-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-md-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-md-offset-9 {
- margin-left: 75%;
- }
- .col-md-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-md-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-md-offset-6 {
- margin-left: 50%;
- }
- .col-md-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-md-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-md-offset-3 {
- margin-left: 25%;
- }
- .col-md-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-md-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-md-offset-0 {
- margin-left: 0;
- }
+.glyphicon-paperclip:before {
+ content: "\e142";
}
-@media (min-width: 1200px) {
- .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
- float: left;
- }
- .col-lg-12 {
- width: 100%;
- }
- .col-lg-11 {
- width: 91.66666667%;
- }
- .col-lg-10 {
- width: 83.33333333%;
- }
- .col-lg-9 {
- width: 75%;
- }
- .col-lg-8 {
- width: 66.66666667%;
- }
- .col-lg-7 {
- width: 58.33333333%;
- }
- .col-lg-6 {
- width: 50%;
- }
- .col-lg-5 {
- width: 41.66666667%;
- }
- .col-lg-4 {
- width: 33.33333333%;
- }
- .col-lg-3 {
- width: 25%;
- }
- .col-lg-2 {
- width: 16.66666667%;
- }
- .col-lg-1 {
- width: 8.33333333%;
- }
- .col-lg-pull-12 {
- right: 100%;
- }
- .col-lg-pull-11 {
- right: 91.66666667%;
- }
- .col-lg-pull-10 {
- right: 83.33333333%;
- }
- .col-lg-pull-9 {
- right: 75%;
- }
- .col-lg-pull-8 {
- right: 66.66666667%;
- }
- .col-lg-pull-7 {
- right: 58.33333333%;
- }
- .col-lg-pull-6 {
- right: 50%;
- }
- .col-lg-pull-5 {
- right: 41.66666667%;
- }
- .col-lg-pull-4 {
- right: 33.33333333%;
- }
- .col-lg-pull-3 {
- right: 25%;
- }
- .col-lg-pull-2 {
- right: 16.66666667%;
- }
- .col-lg-pull-1 {
- right: 8.33333333%;
- }
- .col-lg-pull-0 {
- right: 0;
- }
- .col-lg-push-12 {
- left: 100%;
- }
- .col-lg-push-11 {
- left: 91.66666667%;
- }
- .col-lg-push-10 {
- left: 83.33333333%;
- }
- .col-lg-push-9 {
- left: 75%;
- }
- .col-lg-push-8 {
- left: 66.66666667%;
- }
- .col-lg-push-7 {
- left: 58.33333333%;
- }
- .col-lg-push-6 {
- left: 50%;
- }
- .col-lg-push-5 {
- left: 41.66666667%;
- }
- .col-lg-push-4 {
- left: 33.33333333%;
- }
- .col-lg-push-3 {
- left: 25%;
- }
- .col-lg-push-2 {
- left: 16.66666667%;
- }
- .col-lg-push-1 {
- left: 8.33333333%;
- }
- .col-lg-push-0 {
- left: 0;
- }
- .col-lg-offset-12 {
- margin-left: 100%;
- }
- .col-lg-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-lg-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-lg-offset-9 {
- margin-left: 75%;
- }
- .col-lg-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-lg-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-lg-offset-6 {
- margin-left: 50%;
- }
- .col-lg-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-lg-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-lg-offset-3 {
- margin-left: 25%;
- }
- .col-lg-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-lg-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-lg-offset-0 {
- margin-left: 0;
- }
+.glyphicon-heart-empty:before {
+ content: "\e143";
+}
+.glyphicon-link:before {
+ content: "\e144";
+}
+.glyphicon-phone:before {
+ content: "\e145";
+}
+.glyphicon-pushpin:before {
+ content: "\e146";
+}
+.glyphicon-usd:before {
+ content: "\e148";
+}
+.glyphicon-gbp:before {
+ content: "\e149";
}
-table {
- max-width: 100%;
- background-color: transparent;
+.glyphicon-sort:before {
+ content: "\e150";
}
-th {
- text-align: left;
+.glyphicon-sort-by-alphabet:before {
+ content: "\e151";
}
-.table {
- width: 100%;
- margin-bottom: 20px;
+.glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152";
}
-.table > thead > tr > th,
-.table > tbody > tr > th,
-.table > tfoot > tr > th,
-.table > thead > tr > td,
-.table > tbody > tr > td,
-.table > tfoot > tr > td {
- padding: 8px;
- line-height: 1.42857143;
- vertical-align: top;
- border-top: 1px solid #ddd;
+.glyphicon-sort-by-order:before {
+ content: "\e153";
}
-.table > thead > tr > th {
- vertical-align: bottom;
- border-bottom: 2px solid #ddd;
+.glyphicon-sort-by-order-alt:before {
+ content: "\e154";
}
-.table > caption + thead > tr:first-child > th,
-.table > colgroup + thead > tr:first-child > th,
-.table > thead:first-child > tr:first-child > th,
-.table > caption + thead > tr:first-child > td,
-.table > colgroup + thead > tr:first-child > td,
-.table > thead:first-child > tr:first-child > td {
- border-top: 0;
+.glyphicon-sort-by-attributes:before {
+ content: "\e155";
}
-.table > tbody + tbody {
- border-top: 2px solid #ddd;
+.glyphicon-sort-by-attributes-alt:before {
+ content: "\e156";
}
-.table .table {
- background-color: #fff;
+.glyphicon-unchecked:before {
+ content: "\e157";
}
-.table-condensed > thead > tr > th,
-.table-condensed > tbody > tr > th,
-.table-condensed > tfoot > tr > th,
-.table-condensed > thead > tr > td,
-.table-condensed > tbody > tr > td,
-.table-condensed > tfoot > tr > td {
- padding: 5px;
+.glyphicon-expand:before {
+ content: "\e158";
}
-.table-bordered {
- border: 1px solid #ddd;
+.glyphicon-collapse-down:before {
+ content: "\e159";
}
-.table-bordered > thead > tr > th,
-.table-bordered > tbody > tr > th,
-.table-bordered > tfoot > tr > th,
-.table-bordered > thead > tr > td,
-.table-bordered > tbody > tr > td,
-.table-bordered > tfoot > tr > td {
- border: 1px solid #ddd;
+.glyphicon-collapse-up:before {
+ content: "\e160";
}
-.table-bordered > thead > tr > th,
-.table-bordered > thead > tr > td {
- border-bottom-width: 2px;
+.glyphicon-log-in:before {
+ content: "\e161";
}
-.table-striped > tbody > tr:nth-child(odd) > td,
-.table-striped > tbody > tr:nth-child(odd) > th {
- background-color: #f9f9f9;
+.glyphicon-flash:before {
+ content: "\e162";
}
-.table-hover > tbody > tr:hover > td,
-.table-hover > tbody > tr:hover > th {
- background-color: #f5f5f5;
+.glyphicon-log-out:before {
+ content: "\e163";
}
-table col[class*="col-"] {
- position: static;
- display: table-column;
- float: none;
+.glyphicon-new-window:before {
+ content: "\e164";
}
-table td[class*="col-"],
-table th[class*="col-"] {
- position: static;
- display: table-cell;
- float: none;
+.glyphicon-record:before {
+ content: "\e165";
}
-.table > thead > tr > td.active,
-.table > tbody > tr > td.active,
-.table > tfoot > tr > td.active,
-.table > thead > tr > th.active,
-.table > tbody > tr > th.active,
-.table > tfoot > tr > th.active,
-.table > thead > tr.active > td,
-.table > tbody > tr.active > td,
-.table > tfoot > tr.active > td,
-.table > thead > tr.active > th,
-.table > tbody > tr.active > th,
-.table > tfoot > tr.active > th {
- background-color: #f5f5f5;
+.glyphicon-save:before {
+ content: "\e166";
}
-.table-hover > tbody > tr > td.active:hover,
-.table-hover > tbody > tr > th.active:hover,
-.table-hover > tbody > tr.active:hover > td,
-.table-hover > tbody > tr.active:hover > th {
- background-color: #e8e8e8;
+.glyphicon-open:before {
+ content: "\e167";
}
-.table > thead > tr > td.success,
-.table > tbody > tr > td.success,
-.table > tfoot > tr > td.success,
-.table > thead > tr > th.success,
-.table > tbody > tr > th.success,
-.table > tfoot > tr > th.success,
-.table > thead > tr.success > td,
-.table > tbody > tr.success > td,
-.table > tfoot > tr.success > td,
-.table > thead > tr.success > th,
-.table > tbody > tr.success > th,
-.table > tfoot > tr.success > th {
- background-color: #dff0d8;
+.glyphicon-saved:before {
+ content: "\e168";
}
-.table-hover > tbody > tr > td.success:hover,
-.table-hover > tbody > tr > th.success:hover,
-.table-hover > tbody > tr.success:hover > td,
-.table-hover > tbody > tr.success:hover > th {
- background-color: #d0e9c6;
+.glyphicon-import:before {
+ content: "\e169";
}
-.table > thead > tr > td.info,
-.table > tbody > tr > td.info,
-.table > tfoot > tr > td.info,
-.table > thead > tr > th.info,
-.table > tbody > tr > th.info,
-.table > tfoot > tr > th.info,
-.table > thead > tr.info > td,
-.table > tbody > tr.info > td,
-.table > tfoot > tr.info > td,
-.table > thead > tr.info > th,
-.table > tbody > tr.info > th,
-.table > tfoot > tr.info > th {
- background-color: #d9edf7;
+.glyphicon-export:before {
+ content: "\e170";
}
-.table-hover > tbody > tr > td.info:hover,
-.table-hover > tbody > tr > th.info:hover,
-.table-hover > tbody > tr.info:hover > td,
-.table-hover > tbody > tr.info:hover > th {
- background-color: #c4e3f3;
+.glyphicon-send:before {
+ content: "\e171";
}
-.table > thead > tr > td.warning,
-.table > tbody > tr > td.warning,
-.table > tfoot > tr > td.warning,
-.table > thead > tr > th.warning,
-.table > tbody > tr > th.warning,
-.table > tfoot > tr > th.warning,
-.table > thead > tr.warning > td,
-.table > tbody > tr.warning > td,
-.table > tfoot > tr.warning > td,
-.table > thead > tr.warning > th,
-.table > tbody > tr.warning > th,
-.table > tfoot > tr.warning > th {
- background-color: #fcf8e3;
+.glyphicon-floppy-disk:before {
+ content: "\e172";
}
-.table-hover > tbody > tr > td.warning:hover,
-.table-hover > tbody > tr > th.warning:hover,
-.table-hover > tbody > tr.warning:hover > td,
-.table-hover > tbody > tr.warning:hover > th {
- background-color: #faf2cc;
+.glyphicon-floppy-saved:before {
+ content: "\e173";
}
-.table > thead > tr > td.danger,
-.table > tbody > tr > td.danger,
-.table > tfoot > tr > td.danger,
-.table > thead > tr > th.danger,
-.table > tbody > tr > th.danger,
-.table > tfoot > tr > th.danger,
-.table > thead > tr.danger > td,
-.table > tbody > tr.danger > td,
-.table > tfoot > tr.danger > td,
-.table > thead > tr.danger > th,
-.table > tbody > tr.danger > th,
-.table > tfoot > tr.danger > th {
- background-color: #f2dede;
+.glyphicon-floppy-remove:before {
+ content: "\e174";
}
-.table-hover > tbody > tr > td.danger:hover,
-.table-hover > tbody > tr > th.danger:hover,
-.table-hover > tbody > tr.danger:hover > td,
-.table-hover > tbody > tr.danger:hover > th {
- background-color: #ebcccc;
+.glyphicon-floppy-save:before {
+ content: "\e175";
}
-@media (max-width: 767px) {
- .table-responsive {
- width: 100%;
- margin-bottom: 15px;
- overflow-x: scroll;
- overflow-y: hidden;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- border: 1px solid #ddd;
- }
- .table-responsive > .table {
- margin-bottom: 0;
- }
- .table-responsive > .table > thead > tr > th,
- .table-responsive > .table > tbody > tr > th,
- .table-responsive > .table > tfoot > tr > th,
- .table-responsive > .table > thead > tr > td,
- .table-responsive > .table > tbody > tr > td,
- .table-responsive > .table > tfoot > tr > td {
- white-space: nowrap;
- }
- .table-responsive > .table-bordered {
- border: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:first-child,
- .table-responsive > .table-bordered > tbody > tr > th:first-child,
- .table-responsive > .table-bordered > tfoot > tr > th:first-child,
- .table-responsive > .table-bordered > thead > tr > td:first-child,
- .table-responsive > .table-bordered > tbody > tr > td:first-child,
- .table-responsive > .table-bordered > tfoot > tr > td:first-child {
- border-left: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:last-child,
- .table-responsive > .table-bordered > tbody > tr > th:last-child,
- .table-responsive > .table-bordered > tfoot > tr > th:last-child,
- .table-responsive > .table-bordered > thead > tr > td:last-child,
- .table-responsive > .table-bordered > tbody > tr > td:last-child,
- .table-responsive > .table-bordered > tfoot > tr > td:last-child {
- border-right: 0;
- }
- .table-responsive > .table-bordered > tbody > tr:last-child > th,
- .table-responsive > .table-bordered > tfoot > tr:last-child > th,
- .table-responsive > .table-bordered > tbody > tr:last-child > td,
- .table-responsive > .table-bordered > tfoot > tr:last-child > td {
- border-bottom: 0;
- }
+.glyphicon-floppy-open:before {
+ content: "\e176";
}
-fieldset {
- min-width: 0;
- padding: 0;
- margin: 0;
- border: 0;
+.glyphicon-credit-card:before {
+ content: "\e177";
}
-legend {
- display: block;
- width: 100%;
- padding: 0;
- margin-bottom: 20px;
- font-size: 21px;
- line-height: inherit;
- color: #333;
- border: 0;
- border-bottom: 1px solid #e5e5e5;
+.glyphicon-transfer:before {
+ content: "\e178";
}
-label {
- display: inline-block;
- margin-bottom: 5px;
- font-weight: bold;
+.glyphicon-cutlery:before {
+ content: "\e179";
}
-input[type="search"] {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
+.glyphicon-header:before {
+ content: "\e180";
}
-input[type="radio"],
-input[type="checkbox"] {
- margin: 4px 0 0;
- margin-top: 1px \9;
- /* IE8-9 */
- line-height: normal;
+.glyphicon-compressed:before {
+ content: "\e181";
}
-input[type="file"] {
- display: block;
+.glyphicon-earphone:before {
+ content: "\e182";
}
-input[type="range"] {
- display: block;
- width: 100%;
+.glyphicon-phone-alt:before {
+ content: "\e183";
}
-select[multiple],
-select[size] {
- height: auto;
+.glyphicon-tower:before {
+ content: "\e184";
}
-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;
+.glyphicon-stats:before {
+ content: "\e185";
}
-output {
- display: block;
- padding-top: 7px;
- font-size: 14px;
- line-height: 1.42857143;
- color: #555;
+.glyphicon-sd-video:before {
+ content: "\e186";
}
-.form-control {
- display: block;
- width: 100%;
- height: 34px;
- padding: 6px 12px;
- font-size: 14px;
- line-height: 1.42857143;
- color: #555;
- background-color: #fff;
- background-image: none;
- border: 1px solid #ccc;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
- transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+.glyphicon-hd-video:before {
+ content: "\e187";
}
-.form-control:focus {
- border-color: #66afe9;
- outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
+.glyphicon-subtitles:before {
+ content: "\e188";
}
-.form-control::-moz-placeholder {
- color: #999;
- opacity: 1;
+.glyphicon-sound-stereo:before {
+ content: "\e189";
}
-.form-control:-ms-input-placeholder {
- color: #999;
+.glyphicon-sound-dolby:before {
+ content: "\e190";
}
-.form-control::-webkit-input-placeholder {
- color: #999;
+.glyphicon-sound-5-1:before {
+ content: "\e191";
}
-.form-control[disabled],
-.form-control[readonly],
-fieldset[disabled] .form-control {
- cursor: not-allowed;
- background-color: #eee;
- opacity: 1;
+.glyphicon-sound-6-1:before {
+ content: "\e192";
}
-textarea.form-control {
- height: auto;
+.glyphicon-sound-7-1:before {
+ content: "\e193";
}
-input[type="search"] {
- -webkit-appearance: none;
+.glyphicon-copyright-mark:before {
+ content: "\e194";
}
-input[type="date"] {
- line-height: 34px;
+.glyphicon-registration-mark:before {
+ content: "\e195";
}
-.form-group {
- margin-bottom: 15px;
+.glyphicon-cloud-download:before {
+ content: "\e197";
}
-.radio,
-.checkbox {
- display: block;
- min-height: 20px;
- padding-left: 20px;
- margin-top: 10px;
- margin-bottom: 10px;
+.glyphicon-cloud-upload:before {
+ content: "\e198";
}
-.radio label,
-.checkbox label {
- display: inline;
- font-weight: normal;
- cursor: pointer;
+.glyphicon-tree-conifer:before {
+ content: "\e199";
}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
- float: left;
- margin-left: -20px;
+.glyphicon-tree-deciduous:before {
+ content: "\e200";
}
-.radio + .radio,
-.checkbox + .checkbox {
- margin-top: -5px;
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-.radio-inline,
-.checkbox-inline {
- display: inline-block;
- padding-left: 20px;
- margin-bottom: 0;
- font-weight: normal;
- vertical-align: middle;
- cursor: pointer;
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-.radio-inline + .radio-inline,
-.checkbox-inline + .checkbox-inline {
- margin-top: 0;
- margin-left: 10px;
+html {
+ font-size: 10px;
+
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-.radio[disabled],
-.radio-inline[disabled],
-.checkbox[disabled],
-.checkbox-inline[disabled],
-fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"],
-fieldset[disabled] .radio,
-fieldset[disabled] .radio-inline,
-fieldset[disabled] .checkbox,
-fieldset[disabled] .checkbox-inline {
- cursor: not-allowed;
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #333;
+ background-color: #fff;
}
-.input-sm {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
}
-select.input-sm {
- height: 30px;
- line-height: 30px;
+a {
+ color: #428bca;
+ text-decoration: none;
}
-textarea.input-sm,
-select[multiple].input-sm {
- height: auto;
+a:hover,
+a:focus {
+ color: #2a6496;
+ text-decoration: underline;
}
-.input-lg {
- height: 46px;
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
+a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
}
-select.input-lg {
- height: 46px;
- line-height: 46px;
+figure {
+ margin: 0;
}
-textarea.input-lg,
-select[multiple].input-lg {
+img {
+ vertical-align: middle;
+}
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ display: block;
+ width: 100% \9;
+ max-width: 100%;
height: auto;
}
-.has-feedback {
- position: relative;
+.img-rounded {
+ border-radius: 6px;
}
-.has-feedback .form-control {
- padding-right: 42.5px;
+.img-thumbnail {
+ display: inline-block;
+ width: 100% \9;
+ max-width: 100%;
+ height: auto;
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all .2s ease-in-out;
+ -o-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
}
-.has-feedback .form-control-feedback {
- position: absolute;
- top: 25px;
- right: 0;
- display: block;
- width: 34px;
- height: 34px;
- line-height: 34px;
- text-align: center;
+.img-circle {
+ border-radius: 50%;
}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline {
- color: #3c763d;
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #eee;
}
-.has-success .form-control {
- border-color: #3c763d;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
}
-.has-success .form-control:focus {
- border-color: #2b542c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
}
-.has-success .input-group-addon {
- color: #3c763d;
- background-color: #dff0d8;
- border-color: #3c763d;
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
}
-.has-success .form-control-feedback {
- color: #3c763d;
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777;
}
-.has-warning .help-block,
-.has-warning .control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline {
- color: #8a6d3b;
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+ margin-top: 20px;
+ margin-bottom: 10px;
}
-.has-warning .form-control {
- border-color: #8a6d3b;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+ font-size: 65%;
}
-.has-warning .form-control:focus {
- border-color: #66512c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
+h4,
+.h4,
+h5,
+.h5,
+h6,
+.h6 {
+ margin-top: 10px;
+ margin-bottom: 10px;
}
-.has-warning .input-group-addon {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #8a6d3b;
+h4 small,
+.h4 small,
+h5 small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+ font-size: 75%;
}
-.has-warning .form-control-feedback {
- color: #8a6d3b;
+h1,
+.h1 {
+ font-size: 36px;
}
-.has-error .help-block,
-.has-error .control-label,
-.has-error .radio,
-.has-error .checkbox,
-.has-error .radio-inline,
-.has-error .checkbox-inline {
- color: #a94442;
+h2,
+.h2 {
+ font-size: 30px;
}
-.has-error .form-control {
- border-color: #a94442;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+h3,
+.h3 {
+ font-size: 24px;
}
-.has-error .form-control:focus {
- border-color: #843534;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
+h4,
+.h4 {
+ font-size: 18px;
}
-.has-error .input-group-addon {
- color: #a94442;
- background-color: #f2dede;
- border-color: #a94442;
+h5,
+.h5 {
+ font-size: 14px;
}
-.has-error .form-control-feedback {
- color: #a94442;
+h6,
+.h6 {
+ font-size: 12px;
}
-.form-control-static {
- margin-bottom: 0;
+p {
+ margin: 0 0 10px;
}
-.help-block {
- display: block;
- margin-top: 5px;
- margin-bottom: 10px;
- color: #737373;
+.lead {
+ margin-bottom: 20px;
+ font-size: 16px;
+ font-weight: 300;
+ line-height: 1.4;
}
@media (min-width: 768px) {
- .form-inline .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .form-inline .input-group > .form-control {
- width: 100%;
- }
- .form-inline .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio,
- .form-inline .checkbox {
- display: inline-block;
- padding-left: 0;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio input[type="radio"],
- .form-inline .checkbox input[type="checkbox"] {
- float: none;
- margin-left: 0;
- }
- .form-inline .has-feedback .form-control-feedback {
- top: 0;
+ .lead {
+ font-size: 21px;
}
}
-.form-horizontal .control-label,
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
- padding-top: 7px;
- margin-top: 0;
- margin-bottom: 0;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
- min-height: 27px;
+small,
+.small {
+ font-size: 85%;
}
-.form-horizontal .form-group {
- margin-right: -15px;
- margin-left: -15px;
+cite {
+ font-style: normal;
}
-.form-horizontal .form-control-static {
- padding-top: 7px;
+mark,
+.mark {
+ padding: .2em;
+ background-color: #fcf8e3;
}
-@media (min-width: 768px) {
- .form-horizontal .control-label {
- text-align: right;
- }
+.text-left {
+ text-align: left;
}
-.form-horizontal .has-feedback .form-control-feedback {
- top: 0;
- right: 15px;
+.text-right {
+ text-align: right;
}
-.btn {
- display: inline-block;
- padding: 6px 12px;
- margin-bottom: 0;
- font-size: 14px;
- font-weight: normal;
- line-height: 1.42857143;
+.text-center {
text-align: center;
+}
+.text-justify {
+ text-align: justify;
+}
+.text-nowrap {
white-space: nowrap;
- vertical-align: middle;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- background-image: none;
- border: 1px solid transparent;
- border-radius: 4px;
}
-.btn:focus,
-.btn:active:focus,
-.btn.active:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
+.text-lowercase {
+ text-transform: lowercase;
}
-.btn:hover,
-.btn:focus {
- color: #333;
- text-decoration: none;
+.text-uppercase {
+ text-transform: uppercase;
}
-.btn:active,
-.btn.active {
- background-image: none;
- outline: 0;
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+.text-capitalize {
+ text-transform: capitalize;
}
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
- pointer-events: none;
- cursor: not-allowed;
- filter: alpha(opacity=65);
- -webkit-box-shadow: none;
- box-shadow: none;
- opacity: .65;
+.text-muted {
+ color: #777;
}
-.btn-default {
- color: #333;
- background-color: #fff;
- border-color: #ccc;
+.text-primary {
+ color: #428bca;
}
-.btn-default:hover,
-.btn-default:focus,
-.btn-default:active,
-.btn-default.active,
-.open .dropdown-toggle.btn-default {
- color: #333;
- background-color: #ebebeb;
- border-color: #adadad;
+a.text-primary:hover {
+ color: #3071a9;
}
-.btn-default:active,
-.btn-default.active,
-.open .dropdown-toggle.btn-default {
- background-image: none;
+.text-success {
+ color: #3c763d;
}
-.btn-default.disabled,
-.btn-default[disabled],
-fieldset[disabled] .btn-default,
-.btn-default.disabled:hover,
-.btn-default[disabled]:hover,
-fieldset[disabled] .btn-default:hover,
-.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 {
- background-color: #fff;
- border-color: #ccc;
+a.text-success:hover {
+ color: #2b542c;
}
-.btn-default .badge {
- color: #fff;
- background-color: #333;
+.text-info {
+ color: #31708f;
}
-.btn-primary {
+a.text-info:hover {
+ color: #245269;
+}
+.text-warning {
+ color: #8a6d3b;
+}
+a.text-warning:hover {
+ color: #66512c;
+}
+.text-danger {
+ color: #a94442;
+}
+a.text-danger:hover {
+ color: #843534;
+}
+.bg-primary {
color: #fff;
background-color: #428bca;
- border-color: #357ebd;
}
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary:active,
-.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
- color: #fff;
- background-color: #3276b1;
- border-color: #285e8e;
+a.bg-primary:hover {
+ background-color: #3071a9;
}
-.btn-primary:active,
-.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
- background-image: none;
+.bg-success {
+ background-color: #dff0d8;
}
-.btn-primary.disabled,
-.btn-primary[disabled],
-fieldset[disabled] .btn-primary,
-.btn-primary.disabled:hover,
-.btn-primary[disabled]:hover,
-fieldset[disabled] .btn-primary:hover,
-.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 {
- background-color: #428bca;
- border-color: #357ebd;
+a.bg-success:hover {
+ background-color: #c1e2b3;
}
-.btn-primary .badge {
- color: #428bca;
- background-color: #fff;
+.bg-info {
+ background-color: #d9edf7;
}
-.btn-success {
- color: #fff;
- background-color: #5cb85c;
- border-color: #4cae4c;
+a.bg-info:hover {
+ background-color: #afd9ee;
}
-.btn-success:hover,
-.btn-success:focus,
-.btn-success:active,
-.btn-success.active,
-.open .dropdown-toggle.btn-success {
- color: #fff;
- background-color: #47a447;
- border-color: #398439;
+.bg-warning {
+ background-color: #fcf8e3;
}
-.btn-success:active,
-.btn-success.active,
-.open .dropdown-toggle.btn-success {
- background-image: none;
+a.bg-warning:hover {
+ background-color: #f7ecb5;
}
-.btn-success.disabled,
-.btn-success[disabled],
-fieldset[disabled] .btn-success,
-.btn-success.disabled:hover,
-.btn-success[disabled]:hover,
-fieldset[disabled] .btn-success:hover,
-.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 {
- background-color: #5cb85c;
- border-color: #4cae4c;
+.bg-danger {
+ background-color: #f2dede;
}
-.btn-success .badge {
- color: #5cb85c;
- background-color: #fff;
+a.bg-danger:hover {
+ background-color: #e4b9b9;
}
-.btn-info {
- color: #fff;
- background-color: #5bc0de;
- border-color: #46b8da;
+.page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #eee;
}
-.btn-info:hover,
-.btn-info:focus,
-.btn-info:active,
-.btn-info.active,
-.open .dropdown-toggle.btn-info {
- color: #fff;
- background-color: #39b3d7;
- border-color: #269abc;
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 10px;
}
-.btn-info:active,
-.btn-info.active,
-.open .dropdown-toggle.btn-info {
- background-image: none;
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+ margin-bottom: 0;
}
-.btn-info.disabled,
-.btn-info[disabled],
-fieldset[disabled] .btn-info,
-.btn-info.disabled:hover,
-.btn-info[disabled]:hover,
-fieldset[disabled] .btn-info:hover,
-.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 {
- background-color: #5bc0de;
- border-color: #46b8da;
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+.list-inline {
+ padding-left: 0;
+ margin-left: -5px;
+ list-style: none;
}
-.btn-info .badge {
- color: #5bc0de;
- background-color: #fff;
+.list-inline > li {
+ display: inline-block;
+ padding-right: 5px;
+ padding-left: 5px;
}
-.btn-warning {
- color: #fff;
- background-color: #f0ad4e;
- border-color: #eea236;
+dl {
+ margin-top: 0;
+ margin-bottom: 20px;
}
-.btn-warning:hover,
-.btn-warning:focus,
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- color: #fff;
- background-color: #ed9c28;
- border-color: #d58512;
+dt,
+dd {
+ line-height: 1.42857143;
}
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- background-image: none;
+dt {
+ font-weight: bold;
}
-.btn-warning.disabled,
-.btn-warning[disabled],
-fieldset[disabled] .btn-warning,
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.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 {
- background-color: #f0ad4e;
- border-color: #eea236;
+dd {
+ margin-left: 0;
}
-.btn-warning .badge {
- color: #f0ad4e;
- background-color: #fff;
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ overflow: hidden;
+ clear: left;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
}
-.btn-danger {
- color: #fff;
- background-color: #d9534f;
- border-color: #d43f3a;
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #777;
}
-.btn-danger:hover,
-.btn-danger:focus,
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- color: #fff;
- background-color: #d2322d;
- border-color: #ac2925;
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
}
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- background-image: none;
+blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ font-size: 17.5px;
+ border-left: 5px solid #eee;
}
-.btn-danger.disabled,
-.btn-danger[disabled],
-fieldset[disabled] .btn-danger,
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.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 {
- background-color: #d9534f;
- border-color: #d43f3a;
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+ margin-bottom: 0;
}
-.btn-danger .badge {
- color: #d9534f;
- background-color: #fff;
+blockquote footer,
+blockquote small,
+blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #777;
}
-.btn-link {
- font-weight: normal;
- color: #428bca;
- cursor: pointer;
- border-radius: 0;
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+ content: '\2014 \00A0';
}
-.btn-link,
-.btn-link:active,
-.btn-link[disabled],
-fieldset[disabled] .btn-link {
- background-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ text-align: right;
+ border-right: 5px solid #eee;
+ border-left: 0;
}
-.btn-link,
-.btn-link:hover,
-.btn-link:focus,
-.btn-link:active {
- border-color: transparent;
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+ content: '';
}
-.btn-link:hover,
-.btn-link:focus {
- color: #2a6496;
- text-decoration: underline;
- background-color: transparent;
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+ content: '\00A0 \2014';
}
-.btn-link[disabled]:hover,
-fieldset[disabled] .btn-link:hover,
-.btn-link[disabled]:focus,
-fieldset[disabled] .btn-link:focus {
- color: #999;
- text-decoration: none;
+blockquote:before,
+blockquote:after {
+ content: "";
}
-.btn-lg,
-.btn-group-lg > .btn {
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
+address {
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.42857143;
}
-.btn-sm,
-.btn-group-sm > .btn {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
-.btn-xs,
-.btn-group-xs > .btn {
- padding: 1px 5px;
- font-size: 12px;
- line-height: 1.5;
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ border-radius: 4px;
+}
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
border-radius: 3px;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
}
-.btn-block {
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+pre {
display: block;
- width: 100%;
- padding-right: 0;
- padding-left: 0;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #333;
+ word-break: break-all;
+ word-wrap: break-word;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px;
}
-.btn-block + .btn-block {
- margin-top: 5px;
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
}
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
- width: 100%;
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+@media (min-width: 768px) {
+ .container {
+ width: 750px;
+ }
}
-.fade {
- opacity: 0;
- -webkit-transition: opacity .15s linear;
- transition: opacity .15s linear;
+@media (min-width: 992px) {
+ .container {
+ width: 970px;
+ }
}
-.fade.in {
- opacity: 1;
+@media (min-width: 1200px) {
+ .container {
+ width: 1170px;
+ }
}
-.collapse {
- display: none;
+.container-fluid {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
}
-.collapse.in {
- display: block;
+.row {
+ margin-right: -15px;
+ margin-left: -15px;
}
-.collapsing {
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
- height: 0;
- overflow: hidden;
- -webkit-transition: height .35s ease;
- transition: height .35s ease;
+ min-height: 1px;
+ padding-right: 15px;
+ padding-left: 15px;
}
-@font-face {
- font-family: 'Glyphicons Halflings';
-
- src: url('../fonts/glyphicons-halflings-regular.eot');
- src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+ float: left;
}
-.glyphicon {
- position: relative;
- top: 1px;
- display: inline-block;
- font-family: 'Glyphicons Halflings';
- font-style: normal;
- font-weight: normal;
- line-height: 1;
-
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
+.col-xs-12 {
+ width: 100%;
}
-.glyphicon-asterisk:before {
- content: "\2a";
+.col-xs-11 {
+ width: 91.66666667%;
}
-.glyphicon-plus:before {
- content: "\2b";
+.col-xs-10 {
+ width: 83.33333333%;
}
-.glyphicon-euro:before {
- content: "\20ac";
+.col-xs-9 {
+ width: 75%;
}
-.glyphicon-minus:before {
- content: "\2212";
+.col-xs-8 {
+ width: 66.66666667%;
}
-.glyphicon-cloud:before {
- content: "\2601";
+.col-xs-7 {
+ width: 58.33333333%;
}
-.glyphicon-envelope:before {
- content: "\2709";
+.col-xs-6 {
+ width: 50%;
}
-.glyphicon-pencil:before {
- content: "\270f";
+.col-xs-5 {
+ width: 41.66666667%;
}
-.glyphicon-glass:before {
- content: "\e001";
+.col-xs-4 {
+ width: 33.33333333%;
}
-.glyphicon-music:before {
- content: "\e002";
+.col-xs-3 {
+ width: 25%;
}
-.glyphicon-search:before {
- content: "\e003";
+.col-xs-2 {
+ width: 16.66666667%;
}
-.glyphicon-heart:before {
- content: "\e005";
+.col-xs-1 {
+ width: 8.33333333%;
}
-.glyphicon-star:before {
- content: "\e006";
+.col-xs-pull-12 {
+ right: 100%;
}
-.glyphicon-star-empty:before {
- content: "\e007";
+.col-xs-pull-11 {
+ right: 91.66666667%;
}
-.glyphicon-user:before {
- content: "\e008";
+.col-xs-pull-10 {
+ right: 83.33333333%;
}
-.glyphicon-film:before {
- content: "\e009";
+.col-xs-pull-9 {
+ right: 75%;
}
-.glyphicon-th-large:before {
- content: "\e010";
+.col-xs-pull-8 {
+ right: 66.66666667%;
}
-.glyphicon-th:before {
- content: "\e011";
+.col-xs-pull-7 {
+ right: 58.33333333%;
}
-.glyphicon-th-list:before {
- content: "\e012";
+.col-xs-pull-6 {
+ right: 50%;
}
-.glyphicon-ok:before {
- content: "\e013";
+.col-xs-pull-5 {
+ right: 41.66666667%;
}
-.glyphicon-remove:before {
- content: "\e014";
+.col-xs-pull-4 {
+ right: 33.33333333%;
}
-.glyphicon-zoom-in:before {
- content: "\e015";
+.col-xs-pull-3 {
+ right: 25%;
}
-.glyphicon-zoom-out:before {
- content: "\e016";
+.col-xs-pull-2 {
+ right: 16.66666667%;
}
-.glyphicon-off:before {
- content: "\e017";
+.col-xs-pull-1 {
+ right: 8.33333333%;
}
-.glyphicon-signal:before {
- content: "\e018";
+.col-xs-pull-0 {
+ right: auto;
}
-.glyphicon-cog:before {
- content: "\e019";
+.col-xs-push-12 {
+ left: 100%;
}
-.glyphicon-trash:before {
- content: "\e020";
+.col-xs-push-11 {
+ left: 91.66666667%;
}
-.glyphicon-home:before {
- content: "\e021";
+.col-xs-push-10 {
+ left: 83.33333333%;
}
-.glyphicon-file:before {
- content: "\e022";
+.col-xs-push-9 {
+ left: 75%;
}
-.glyphicon-time:before {
- content: "\e023";
+.col-xs-push-8 {
+ left: 66.66666667%;
}
-.glyphicon-road:before {
- content: "\e024";
+.col-xs-push-7 {
+ left: 58.33333333%;
}
-.glyphicon-download-alt:before {
- content: "\e025";
+.col-xs-push-6 {
+ left: 50%;
}
-.glyphicon-download:before {
- content: "\e026";
+.col-xs-push-5 {
+ left: 41.66666667%;
}
-.glyphicon-upload:before {
- content: "\e027";
+.col-xs-push-4 {
+ left: 33.33333333%;
}
-.glyphicon-inbox:before {
- content: "\e028";
+.col-xs-push-3 {
+ left: 25%;
}
-.glyphicon-play-circle:before {
- content: "\e029";
+.col-xs-push-2 {
+ left: 16.66666667%;
}
-.glyphicon-repeat:before {
- content: "\e030";
+.col-xs-push-1 {
+ left: 8.33333333%;
}
-.glyphicon-refresh:before {
- content: "\e031";
+.col-xs-push-0 {
+ left: auto;
}
-.glyphicon-list-alt:before {
- content: "\e032";
+.col-xs-offset-12 {
+ margin-left: 100%;
}
-.glyphicon-lock:before {
- content: "\e033";
+.col-xs-offset-11 {
+ margin-left: 91.66666667%;
}
-.glyphicon-flag:before {
- content: "\e034";
+.col-xs-offset-10 {
+ margin-left: 83.33333333%;
}
-.glyphicon-headphones:before {
- content: "\e035";
+.col-xs-offset-9 {
+ margin-left: 75%;
}
-.glyphicon-volume-off:before {
- content: "\e036";
+.col-xs-offset-8 {
+ margin-left: 66.66666667%;
}
-.glyphicon-volume-down:before {
- content: "\e037";
+.col-xs-offset-7 {
+ margin-left: 58.33333333%;
}
-.glyphicon-volume-up:before {
- content: "\e038";
+.col-xs-offset-6 {
+ margin-left: 50%;
}
-.glyphicon-qrcode:before {
- content: "\e039";
+.col-xs-offset-5 {
+ margin-left: 41.66666667%;
}
-.glyphicon-barcode:before {
- content: "\e040";
+.col-xs-offset-4 {
+ margin-left: 33.33333333%;
}
-.glyphicon-tag:before {
- content: "\e041";
+.col-xs-offset-3 {
+ margin-left: 25%;
}
-.glyphicon-tags:before {
- content: "\e042";
+.col-xs-offset-2 {
+ margin-left: 16.66666667%;
+}
+.col-xs-offset-1 {
+ margin-left: 8.33333333%;
+}
+.col-xs-offset-0 {
+ margin-left: 0;
}
-.glyphicon-book:before {
- content: "\e043";
+@media (min-width: 768px) {
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+ float: left;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-11 {
+ width: 91.66666667%;
+ }
+ .col-sm-10 {
+ width: 83.33333333%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-8 {
+ width: 66.66666667%;
+ }
+ .col-sm-7 {
+ width: 58.33333333%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-5 {
+ width: 41.66666667%;
+ }
+ .col-sm-4 {
+ width: 33.33333333%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-2 {
+ width: 16.66666667%;
+ }
+ .col-sm-1 {
+ width: 8.33333333%;
+ }
+ .col-sm-pull-12 {
+ right: 100%;
+ }
+ .col-sm-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-sm-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-sm-pull-9 {
+ right: 75%;
+ }
+ .col-sm-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-sm-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-sm-pull-6 {
+ right: 50%;
+ }
+ .col-sm-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-sm-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-sm-pull-3 {
+ right: 25%;
+ }
+ .col-sm-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-sm-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-sm-pull-0 {
+ right: auto;
+ }
+ .col-sm-push-12 {
+ left: 100%;
+ }
+ .col-sm-push-11 {
+ left: 91.66666667%;
+ }
+ .col-sm-push-10 {
+ left: 83.33333333%;
+ }
+ .col-sm-push-9 {
+ left: 75%;
+ }
+ .col-sm-push-8 {
+ left: 66.66666667%;
+ }
+ .col-sm-push-7 {
+ left: 58.33333333%;
+ }
+ .col-sm-push-6 {
+ left: 50%;
+ }
+ .col-sm-push-5 {
+ left: 41.66666667%;
+ }
+ .col-sm-push-4 {
+ left: 33.33333333%;
+ }
+ .col-sm-push-3 {
+ left: 25%;
+ }
+ .col-sm-push-2 {
+ left: 16.66666667%;
+ }
+ .col-sm-push-1 {
+ left: 8.33333333%;
+ }
+ .col-sm-push-0 {
+ left: auto;
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-sm-offset-0 {
+ margin-left: 0;
+ }
}
-.glyphicon-bookmark:before {
- content: "\e044";
+@media (min-width: 992px) {
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+ float: left;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-11 {
+ width: 91.66666667%;
+ }
+ .col-md-10 {
+ width: 83.33333333%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-8 {
+ width: 66.66666667%;
+ }
+ .col-md-7 {
+ width: 58.33333333%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-5 {
+ width: 41.66666667%;
+ }
+ .col-md-4 {
+ width: 33.33333333%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-2 {
+ width: 16.66666667%;
+ }
+ .col-md-1 {
+ width: 8.33333333%;
+ }
+ .col-md-pull-12 {
+ right: 100%;
+ }
+ .col-md-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-md-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-md-pull-9 {
+ right: 75%;
+ }
+ .col-md-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-md-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-md-pull-6 {
+ right: 50%;
+ }
+ .col-md-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-md-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-md-pull-3 {
+ right: 25%;
+ }
+ .col-md-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-md-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-md-pull-0 {
+ right: auto;
+ }
+ .col-md-push-12 {
+ left: 100%;
+ }
+ .col-md-push-11 {
+ left: 91.66666667%;
+ }
+ .col-md-push-10 {
+ left: 83.33333333%;
+ }
+ .col-md-push-9 {
+ left: 75%;
+ }
+ .col-md-push-8 {
+ left: 66.66666667%;
+ }
+ .col-md-push-7 {
+ left: 58.33333333%;
+ }
+ .col-md-push-6 {
+ left: 50%;
+ }
+ .col-md-push-5 {
+ left: 41.66666667%;
+ }
+ .col-md-push-4 {
+ left: 33.33333333%;
+ }
+ .col-md-push-3 {
+ left: 25%;
+ }
+ .col-md-push-2 {
+ left: 16.66666667%;
+ }
+ .col-md-push-1 {
+ left: 8.33333333%;
+ }
+ .col-md-push-0 {
+ left: auto;
+ }
+ .col-md-offset-12 {
+ margin-left: 100%;
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-md-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .col-md-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-md-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-md-offset-0 {
+ margin-left: 0;
+ }
}
-.glyphicon-print:before {
- content: "\e045";
+@media (min-width: 1200px) {
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ float: left;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-11 {
+ width: 91.66666667%;
+ }
+ .col-lg-10 {
+ width: 83.33333333%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-8 {
+ width: 66.66666667%;
+ }
+ .col-lg-7 {
+ width: 58.33333333%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-5 {
+ width: 41.66666667%;
+ }
+ .col-lg-4 {
+ width: 33.33333333%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-2 {
+ width: 16.66666667%;
+ }
+ .col-lg-1 {
+ width: 8.33333333%;
+ }
+ .col-lg-pull-12 {
+ right: 100%;
+ }
+ .col-lg-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-lg-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-lg-pull-9 {
+ right: 75%;
+ }
+ .col-lg-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-lg-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-lg-pull-6 {
+ right: 50%;
+ }
+ .col-lg-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-lg-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-lg-pull-3 {
+ right: 25%;
+ }
+ .col-lg-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-lg-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-lg-pull-0 {
+ right: auto;
+ }
+ .col-lg-push-12 {
+ left: 100%;
+ }
+ .col-lg-push-11 {
+ left: 91.66666667%;
+ }
+ .col-lg-push-10 {
+ left: 83.33333333%;
+ }
+ .col-lg-push-9 {
+ left: 75%;
+ }
+ .col-lg-push-8 {
+ left: 66.66666667%;
+ }
+ .col-lg-push-7 {
+ left: 58.33333333%;
+ }
+ .col-lg-push-6 {
+ left: 50%;
+ }
+ .col-lg-push-5 {
+ left: 41.66666667%;
+ }
+ .col-lg-push-4 {
+ left: 33.33333333%;
+ }
+ .col-lg-push-3 {
+ left: 25%;
+ }
+ .col-lg-push-2 {
+ left: 16.66666667%;
+ }
+ .col-lg-push-1 {
+ left: 8.33333333%;
+ }
+ .col-lg-push-0 {
+ left: auto;
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-lg-offset-0 {
+ margin-left: 0;
+ }
}
-.glyphicon-camera:before {
- content: "\e046";
+table {
+ background-color: transparent;
}
-.glyphicon-font:before {
- content: "\e047";
+th {
+ text-align: left;
}
-.glyphicon-bold:before {
- content: "\e048";
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 20px;
}
-.glyphicon-italic:before {
- content: "\e049";
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
}
-.glyphicon-text-height:before {
- content: "\e050";
+.table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd;
}
-.glyphicon-text-width:before {
- content: "\e051";
+.table > caption + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > th,
+.table > thead:first-child > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > td {
+ border-top: 0;
}
-.glyphicon-align-left:before {
- content: "\e052";
+.table > tbody + tbody {
+ border-top: 2px solid #ddd;
}
-.glyphicon-align-center:before {
- content: "\e053";
+.table .table {
+ background-color: #fff;
}
-.glyphicon-align-right:before {
- content: "\e054";
+.table-condensed > thead > tr > th,
+.table-condensed > tbody > tr > th,
+.table-condensed > tfoot > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > td {
+ padding: 5px;
}
-.glyphicon-align-justify:before {
- content: "\e055";
+.table-bordered {
+ border: 1px solid #ddd;
}
-.glyphicon-list:before {
- content: "\e056";
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd;
}
-.glyphicon-indent-left:before {
- content: "\e057";
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
}
-.glyphicon-indent-right:before {
- content: "\e058";
+.table-striped > tbody > tr:nth-child(odd) > td,
+.table-striped > tbody > tr:nth-child(odd) > th {
+ background-color: #f9f9f9;
}
-.glyphicon-facetime-video:before {
- content: "\e059";
+.table-hover > tbody > tr:hover > td,
+.table-hover > tbody > tr:hover > th {
+ background-color: #f5f5f5;
}
-.glyphicon-picture:before {
- content: "\e060";
+table col[class*="col-"] {
+ position: static;
+ display: table-column;
+ float: none;
}
-.glyphicon-map-marker:before {
- content: "\e062";
+table td[class*="col-"],
+table th[class*="col-"] {
+ position: static;
+ display: table-cell;
+ float: none;
}
-.glyphicon-adjust:before {
- content: "\e063";
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
}
-.glyphicon-tint:before {
- content: "\e064";
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
}
-.glyphicon-edit:before {
- content: "\e065";
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
+ background-color: #dff0d8;
}
-.glyphicon-share:before {
- content: "\e066";
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
}
-.glyphicon-check:before {
- content: "\e067";
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
}
-.glyphicon-move:before {
- content: "\e068";
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
}
-.glyphicon-step-backward:before {
- content: "\e069";
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
}
-.glyphicon-fast-backward:before {
- content: "\e070";
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
}
-.glyphicon-backward:before {
- content: "\e071";
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede;
}
-.glyphicon-play:before {
- content: "\e072";
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
}
-.glyphicon-pause:before {
- content: "\e073";
+@media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-x: auto;
+ overflow-y: hidden;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
+ }
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
}
-.glyphicon-stop:before {
- content: "\e074";
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
}
-.glyphicon-forward:before {
- content: "\e075";
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
}
-.glyphicon-fast-forward:before {
- content: "\e076";
+label {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 5px;
+ font-weight: bold;
}
-.glyphicon-step-forward:before {
- content: "\e077";
+input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-.glyphicon-eject:before {
- content: "\e078";
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
}
-.glyphicon-chevron-left:before {
- content: "\e079";
+input[type="file"] {
+ display: block;
}
-.glyphicon-chevron-right:before {
- content: "\e080";
+input[type="range"] {
+ display: block;
+ width: 100%;
}
-.glyphicon-plus-sign:before {
- content: "\e081";
+select[multiple],
+select[size] {
+ height: auto;
}
-.glyphicon-minus-sign:before {
- content: "\e082";
+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;
}
-.glyphicon-remove-sign:before {
- content: "\e083";
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
}
-.glyphicon-ok-sign:before {
- content: "\e084";
+.form-control {
+ display: block;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: in
<TRUNCATED>
[5/6] update Bootstrap to 3.2.0
Posted by jk...@apache.org.
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 7f36651..037dd05 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,10 +1,10 @@
/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Bootstrap v3.2.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
html {
font-family: sans-serif;
-webkit-text-size-adjust: 100%;
@@ -94,8 +94,9 @@ figure {
}
hr {
height: 0;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
}
pre {
overflow: auto;
@@ -144,7 +145,9 @@ input {
}
input[type="checkbox"],
input[type="radio"] {
- box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
@@ -189,7 +192,8 @@ th {
color: #000 !important;
text-shadow: none !important;
background: transparent !important;
- box-shadow: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
}
a,
a:visited {
@@ -256,2740 +260,2854 @@ th {
border: 1px solid #ddd !important;
}
}
-* {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-*:before,
-*:after {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
+@font-face {
+ font-family: 'Glyphicons Halflings';
+
+ src: url('../fonts/glyphicons-halflings-regular.eot');
+ src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
-html {
- font-size: 62.5%;
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
}
-body {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 14px;
- line-height: 1.42857143;
- color: #333;
- background-color: #fff;
+.glyphicon-asterisk:before {
+ content: "\2a";
}
-input,
-button,
-select,
-textarea {
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
+.glyphicon-plus:before {
+ content: "\2b";
}
-a {
- color: #428bca;
- text-decoration: none;
+.glyphicon-euro:before {
+ content: "\20ac";
}
-a:hover,
-a:focus {
- color: #2a6496;
- text-decoration: underline;
+.glyphicon-minus:before {
+ content: "\2212";
}
-a:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
+.glyphicon-cloud:before {
+ content: "\2601";
}
-figure {
- margin: 0;
+.glyphicon-envelope:before {
+ content: "\2709";
}
-img {
- vertical-align: middle;
+.glyphicon-pencil:before {
+ content: "\270f";
}
-.img-responsive,
-.thumbnail > img,
-.thumbnail a > img,
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
- display: block;
- max-width: 100%;
- height: auto;
+.glyphicon-glass:before {
+ content: "\e001";
}
-.img-rounded {
- border-radius: 6px;
+.glyphicon-music:before {
+ content: "\e002";
}
-.img-thumbnail {
- display: inline-block;
- max-width: 100%;
- height: auto;
- padding: 4px;
- line-height: 1.42857143;
- background-color: #fff;
- border: 1px solid #ddd;
- border-radius: 4px;
- -webkit-transition: all .2s ease-in-out;
- transition: all .2s ease-in-out;
+.glyphicon-search:before {
+ content: "\e003";
}
-.img-circle {
- border-radius: 50%;
+.glyphicon-heart:before {
+ content: "\e005";
}
-hr {
- margin-top: 20px;
- margin-bottom: 20px;
- border: 0;
- border-top: 1px solid #eee;
+.glyphicon-star:before {
+ content: "\e006";
}
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- border: 0;
+.glyphicon-star-empty:before {
+ content: "\e007";
}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6 {
- font-family: inherit;
- font-weight: 500;
- line-height: 1.1;
- color: inherit;
+.glyphicon-user:before {
+ content: "\e008";
}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small,
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-.h5 small,
-.h6 small,
-h1 .small,
-h2 .small,
-h3 .small,
-h4 .small,
-h5 .small,
-h6 .small,
-.h1 .small,
-.h2 .small,
-.h3 .small,
-.h4 .small,
-.h5 .small,
-.h6 .small {
- font-weight: normal;
- line-height: 1;
- color: #999;
+.glyphicon-film:before {
+ content: "\e009";
}
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3 {
- margin-top: 20px;
- margin-bottom: 10px;
+.glyphicon-th-large:before {
+ content: "\e010";
}
-h1 small,
-.h1 small,
-h2 small,
-.h2 small,
-h3 small,
-.h3 small,
-h1 .small,
-.h1 .small,
-h2 .small,
-.h2 .small,
-h3 .small,
-.h3 .small {
- font-size: 65%;
+.glyphicon-th:before {
+ content: "\e011";
}
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
- margin-top: 10px;
- margin-bottom: 10px;
+.glyphicon-th-list:before {
+ content: "\e012";
}
-h4 small,
-.h4 small,
-h5 small,
-.h5 small,
-h6 small,
-.h6 small,
-h4 .small,
-.h4 .small,
-h5 .small,
-.h5 .small,
-h6 .small,
-.h6 .small {
- font-size: 75%;
+.glyphicon-ok:before {
+ content: "\e013";
}
-h1,
-.h1 {
- font-size: 36px;
+.glyphicon-remove:before {
+ content: "\e014";
}
-h2,
-.h2 {
- font-size: 30px;
+.glyphicon-zoom-in:before {
+ content: "\e015";
}
-h3,
-.h3 {
- font-size: 24px;
+.glyphicon-zoom-out:before {
+ content: "\e016";
}
-h4,
-.h4 {
- font-size: 18px;
+.glyphicon-off:before {
+ content: "\e017";
}
-h5,
-.h5 {
- font-size: 14px;
+.glyphicon-signal:before {
+ content: "\e018";
}
-h6,
-.h6 {
- font-size: 12px;
+.glyphicon-cog:before {
+ content: "\e019";
}
-p {
- margin: 0 0 10px;
+.glyphicon-trash:before {
+ content: "\e020";
}
-.lead {
- margin-bottom: 20px;
- font-size: 16px;
- font-weight: 200;
- line-height: 1.4;
+.glyphicon-home:before {
+ content: "\e021";
}
-@media (min-width: 768px) {
- .lead {
- font-size: 21px;
- }
+.glyphicon-file:before {
+ content: "\e022";
}
-small,
-.small {
- font-size: 85%;
+.glyphicon-time:before {
+ content: "\e023";
}
-cite {
- font-style: normal;
+.glyphicon-road:before {
+ content: "\e024";
}
-.text-left {
- text-align: left;
+.glyphicon-download-alt:before {
+ content: "\e025";
}
-.text-right {
- text-align: right;
+.glyphicon-download:before {
+ content: "\e026";
}
-.text-center {
- text-align: center;
+.glyphicon-upload:before {
+ content: "\e027";
}
-.text-justify {
- text-align: justify;
+.glyphicon-inbox:before {
+ content: "\e028";
}
-.text-muted {
- color: #999;
+.glyphicon-play-circle:before {
+ content: "\e029";
}
-.text-primary {
- color: #428bca;
+.glyphicon-repeat:before {
+ content: "\e030";
}
-a.text-primary:hover {
- color: #3071a9;
+.glyphicon-refresh:before {
+ content: "\e031";
}
-.text-success {
- color: #3c763d;
+.glyphicon-list-alt:before {
+ content: "\e032";
}
-a.text-success:hover {
- color: #2b542c;
+.glyphicon-lock:before {
+ content: "\e033";
}
-.text-info {
- color: #31708f;
+.glyphicon-flag:before {
+ content: "\e034";
}
-a.text-info:hover {
- color: #245269;
+.glyphicon-headphones:before {
+ content: "\e035";
}
-.text-warning {
- color: #8a6d3b;
+.glyphicon-volume-off:before {
+ content: "\e036";
}
-a.text-warning:hover {
- color: #66512c;
+.glyphicon-volume-down:before {
+ content: "\e037";
}
-.text-danger {
- color: #a94442;
+.glyphicon-volume-up:before {
+ content: "\e038";
}
-a.text-danger:hover {
- color: #843534;
+.glyphicon-qrcode:before {
+ content: "\e039";
}
-.bg-primary {
- color: #fff;
- background-color: #428bca;
+.glyphicon-barcode:before {
+ content: "\e040";
}
-a.bg-primary:hover {
- background-color: #3071a9;
+.glyphicon-tag:before {
+ content: "\e041";
}
-.bg-success {
- background-color: #dff0d8;
+.glyphicon-tags:before {
+ content: "\e042";
}
-a.bg-success:hover {
- background-color: #c1e2b3;
+.glyphicon-book:before {
+ content: "\e043";
}
-.bg-info {
- background-color: #d9edf7;
+.glyphicon-bookmark:before {
+ content: "\e044";
}
-a.bg-info:hover {
- background-color: #afd9ee;
+.glyphicon-print:before {
+ content: "\e045";
}
-.bg-warning {
- background-color: #fcf8e3;
+.glyphicon-camera:before {
+ content: "\e046";
}
-a.bg-warning:hover {
- background-color: #f7ecb5;
+.glyphicon-font:before {
+ content: "\e047";
}
-.bg-danger {
- background-color: #f2dede;
+.glyphicon-bold:before {
+ content: "\e048";
}
-a.bg-danger:hover {
- background-color: #e4b9b9;
+.glyphicon-italic:before {
+ content: "\e049";
}
-.page-header {
- padding-bottom: 9px;
- margin: 40px 0 20px;
- border-bottom: 1px solid #eee;
+.glyphicon-text-height:before {
+ content: "\e050";
}
-ul,
-ol {
- margin-top: 0;
- margin-bottom: 10px;
+.glyphicon-text-width:before {
+ content: "\e051";
}
-ul ul,
-ol ul,
-ul ol,
-ol ol {
- margin-bottom: 0;
+.glyphicon-align-left:before {
+ content: "\e052";
}
-.list-unstyled {
- padding-left: 0;
- list-style: none;
+.glyphicon-align-center:before {
+ content: "\e053";
}
-.list-inline {
- padding-left: 0;
- margin-left: -5px;
- list-style: none;
+.glyphicon-align-right:before {
+ content: "\e054";
}
-.list-inline > li {
- display: inline-block;
- padding-right: 5px;
- padding-left: 5px;
+.glyphicon-align-justify:before {
+ content: "\e055";
}
-dl {
- margin-top: 0;
- margin-bottom: 20px;
+.glyphicon-list:before {
+ content: "\e056";
}
-dt,
-dd {
- line-height: 1.42857143;
+.glyphicon-indent-left:before {
+ content: "\e057";
}
-dt {
- font-weight: bold;
+.glyphicon-indent-right:before {
+ content: "\e058";
}
-dd {
- margin-left: 0;
+.glyphicon-facetime-video:before {
+ content: "\e059";
}
-@media (min-width: 768px) {
- .dl-horizontal dt {
- float: left;
- width: 160px;
- overflow: hidden;
- clear: left;
- text-align: right;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .dl-horizontal dd {
- margin-left: 180px;
- }
+.glyphicon-picture:before {
+ content: "\e060";
}
-abbr[title],
-abbr[data-original-title] {
- cursor: help;
- border-bottom: 1px dotted #999;
+.glyphicon-map-marker:before {
+ content: "\e062";
}
-.initialism {
- font-size: 90%;
- text-transform: uppercase;
+.glyphicon-adjust:before {
+ content: "\e063";
}
-blockquote {
- padding: 10px 20px;
- margin: 0 0 20px;
- font-size: 17.5px;
- border-left: 5px solid #eee;
+.glyphicon-tint:before {
+ content: "\e064";
}
-blockquote p:last-child,
-blockquote ul:last-child,
-blockquote ol:last-child {
- margin-bottom: 0;
+.glyphicon-edit:before {
+ content: "\e065";
}
-blockquote footer,
-blockquote small,
-blockquote .small {
- display: block;
- font-size: 80%;
- line-height: 1.42857143;
- color: #999;
+.glyphicon-share:before {
+ content: "\e066";
}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
- content: '\2014 \00A0';
+.glyphicon-check:before {
+ content: "\e067";
}
-.blockquote-reverse,
-blockquote.pull-right {
- padding-right: 15px;
- padding-left: 0;
- text-align: right;
- border-right: 5px solid #eee;
- border-left: 0;
+.glyphicon-move:before {
+ content: "\e068";
}
-.blockquote-reverse footer:before,
-blockquote.pull-right footer:before,
-.blockquote-reverse small:before,
-blockquote.pull-right small:before,
-.blockquote-reverse .small:before,
-blockquote.pull-right .small:before {
- content: '';
+.glyphicon-step-backward:before {
+ content: "\e069";
}
-.blockquote-reverse footer:after,
-blockquote.pull-right footer:after,
-.blockquote-reverse small:after,
-blockquote.pull-right small:after,
-.blockquote-reverse .small:after,
-blockquote.pull-right .small:after {
- content: '\00A0 \2014';
+.glyphicon-fast-backward:before {
+ content: "\e070";
}
-blockquote:before,
-blockquote:after {
- content: "";
+.glyphicon-backward:before {
+ content: "\e071";
}
-address {
- margin-bottom: 20px;
- font-style: normal;
- line-height: 1.42857143;
+.glyphicon-play:before {
+ content: "\e072";
}
-code,
-kbd,
-pre,
-samp {
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+.glyphicon-pause:before {
+ content: "\e073";
}
-code {
- padding: 2px 4px;
- font-size: 90%;
- color: #c7254e;
- white-space: nowrap;
- background-color: #f9f2f4;
- border-radius: 4px;
+.glyphicon-stop:before {
+ content: "\e074";
}
-kbd {
- padding: 2px 4px;
- font-size: 90%;
- color: #fff;
- background-color: #333;
- border-radius: 3px;
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+.glyphicon-forward:before {
+ content: "\e075";
}
-pre {
- display: block;
- padding: 9.5px;
- margin: 0 0 10px;
- font-size: 13px;
- line-height: 1.42857143;
- color: #333;
- word-break: break-all;
- word-wrap: break-word;
- background-color: #f5f5f5;
- border: 1px solid #ccc;
- border-radius: 4px;
+.glyphicon-fast-forward:before {
+ content: "\e076";
}
-pre code {
- padding: 0;
- font-size: inherit;
- color: inherit;
- white-space: pre-wrap;
- background-color: transparent;
- border-radius: 0;
+.glyphicon-step-forward:before {
+ content: "\e077";
}
-.pre-scrollable {
- max-height: 340px;
- overflow-y: scroll;
+.glyphicon-eject:before {
+ content: "\e078";
}
-.container {
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto;
+.glyphicon-chevron-left:before {
+ content: "\e079";
}
-@media (min-width: 768px) {
- .container {
- width: 750px;
- }
+.glyphicon-chevron-right:before {
+ content: "\e080";
}
-@media (min-width: 992px) {
- .container {
- width: 970px;
- }
+.glyphicon-plus-sign:before {
+ content: "\e081";
}
-@media (min-width: 1200px) {
- .container {
- width: 1170px;
- }
+.glyphicon-minus-sign:before {
+ content: "\e082";
}
-.container-fluid {
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto;
+.glyphicon-remove-sign:before {
+ content: "\e083";
}
-.row {
- margin-right: -15px;
- margin-left: -15px;
+.glyphicon-ok-sign:before {
+ content: "\e084";
}
-.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
- position: relative;
- min-height: 1px;
- padding-right: 15px;
- padding-left: 15px;
+.glyphicon-question-sign:before {
+ content: "\e085";
}
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
- float: left;
+.glyphicon-info-sign:before {
+ content: "\e086";
}
-.col-xs-12 {
- width: 100%;
+.glyphicon-screenshot:before {
+ content: "\e087";
}
-.col-xs-11 {
- width: 91.66666667%;
+.glyphicon-remove-circle:before {
+ content: "\e088";
}
-.col-xs-10 {
- width: 83.33333333%;
+.glyphicon-ok-circle:before {
+ content: "\e089";
}
-.col-xs-9 {
- width: 75%;
+.glyphicon-ban-circle:before {
+ content: "\e090";
}
-.col-xs-8 {
- width: 66.66666667%;
+.glyphicon-arrow-left:before {
+ content: "\e091";
}
-.col-xs-7 {
- width: 58.33333333%;
+.glyphicon-arrow-right:before {
+ content: "\e092";
}
-.col-xs-6 {
- width: 50%;
+.glyphicon-arrow-up:before {
+ content: "\e093";
}
-.col-xs-5 {
- width: 41.66666667%;
+.glyphicon-arrow-down:before {
+ content: "\e094";
}
-.col-xs-4 {
- width: 33.33333333%;
+.glyphicon-share-alt:before {
+ content: "\e095";
}
-.col-xs-3 {
- width: 25%;
+.glyphicon-resize-full:before {
+ content: "\e096";
}
-.col-xs-2 {
- width: 16.66666667%;
+.glyphicon-resize-small:before {
+ content: "\e097";
}
-.col-xs-1 {
- width: 8.33333333%;
+.glyphicon-exclamation-sign:before {
+ content: "\e101";
}
-.col-xs-pull-12 {
- right: 100%;
+.glyphicon-gift:before {
+ content: "\e102";
}
-.col-xs-pull-11 {
- right: 91.66666667%;
+.glyphicon-leaf:before {
+ content: "\e103";
}
-.col-xs-pull-10 {
- right: 83.33333333%;
+.glyphicon-fire:before {
+ content: "\e104";
}
-.col-xs-pull-9 {
- right: 75%;
+.glyphicon-eye-open:before {
+ content: "\e105";
}
-.col-xs-pull-8 {
- right: 66.66666667%;
+.glyphicon-eye-close:before {
+ content: "\e106";
}
-.col-xs-pull-7 {
- right: 58.33333333%;
+.glyphicon-warning-sign:before {
+ content: "\e107";
}
-.col-xs-pull-6 {
- right: 50%;
+.glyphicon-plane:before {
+ content: "\e108";
}
-.col-xs-pull-5 {
- right: 41.66666667%;
+.glyphicon-calendar:before {
+ content: "\e109";
}
-.col-xs-pull-4 {
- right: 33.33333333%;
+.glyphicon-random:before {
+ content: "\e110";
}
-.col-xs-pull-3 {
- right: 25%;
+.glyphicon-comment:before {
+ content: "\e111";
}
-.col-xs-pull-2 {
- right: 16.66666667%;
+.glyphicon-magnet:before {
+ content: "\e112";
}
-.col-xs-pull-1 {
- right: 8.33333333%;
+.glyphicon-chevron-up:before {
+ content: "\e113";
}
-.col-xs-pull-0 {
- right: 0;
+.glyphicon-chevron-down:before {
+ content: "\e114";
}
-.col-xs-push-12 {
- left: 100%;
+.glyphicon-retweet:before {
+ content: "\e115";
}
-.col-xs-push-11 {
- left: 91.66666667%;
+.glyphicon-shopping-cart:before {
+ content: "\e116";
}
-.col-xs-push-10 {
- left: 83.33333333%;
+.glyphicon-folder-close:before {
+ content: "\e117";
}
-.col-xs-push-9 {
- left: 75%;
+.glyphicon-folder-open:before {
+ content: "\e118";
}
-.col-xs-push-8 {
- left: 66.66666667%;
+.glyphicon-resize-vertical:before {
+ content: "\e119";
}
-.col-xs-push-7 {
- left: 58.33333333%;
+.glyphicon-resize-horizontal:before {
+ content: "\e120";
}
-.col-xs-push-6 {
- left: 50%;
+.glyphicon-hdd:before {
+ content: "\e121";
}
-.col-xs-push-5 {
- left: 41.66666667%;
+.glyphicon-bullhorn:before {
+ content: "\e122";
}
-.col-xs-push-4 {
- left: 33.33333333%;
+.glyphicon-bell:before {
+ content: "\e123";
}
-.col-xs-push-3 {
- left: 25%;
+.glyphicon-certificate:before {
+ content: "\e124";
}
-.col-xs-push-2 {
- left: 16.66666667%;
+.glyphicon-thumbs-up:before {
+ content: "\e125";
}
-.col-xs-push-1 {
- left: 8.33333333%;
+.glyphicon-thumbs-down:before {
+ content: "\e126";
}
-.col-xs-push-0 {
- left: 0;
+.glyphicon-hand-right:before {
+ content: "\e127";
}
-.col-xs-offset-12 {
- margin-left: 100%;
+.glyphicon-hand-left:before {
+ content: "\e128";
}
-.col-xs-offset-11 {
- margin-left: 91.66666667%;
+.glyphicon-hand-up:before {
+ content: "\e129";
}
-.col-xs-offset-10 {
- margin-left: 83.33333333%;
+.glyphicon-hand-down:before {
+ content: "\e130";
}
-.col-xs-offset-9 {
- margin-left: 75%;
+.glyphicon-circle-arrow-right:before {
+ content: "\e131";
}
-.col-xs-offset-8 {
- margin-left: 66.66666667%;
+.glyphicon-circle-arrow-left:before {
+ content: "\e132";
}
-.col-xs-offset-7 {
- margin-left: 58.33333333%;
+.glyphicon-circle-arrow-up:before {
+ content: "\e133";
}
-.col-xs-offset-6 {
- margin-left: 50%;
+.glyphicon-circle-arrow-down:before {
+ content: "\e134";
}
-.col-xs-offset-5 {
- margin-left: 41.66666667%;
+.glyphicon-globe:before {
+ content: "\e135";
}
-.col-xs-offset-4 {
- margin-left: 33.33333333%;
+.glyphicon-wrench:before {
+ content: "\e136";
}
-.col-xs-offset-3 {
- margin-left: 25%;
+.glyphicon-tasks:before {
+ content: "\e137";
}
-.col-xs-offset-2 {
- margin-left: 16.66666667%;
+.glyphicon-filter:before {
+ content: "\e138";
}
-.col-xs-offset-1 {
- margin-left: 8.33333333%;
+.glyphicon-briefcase:before {
+ content: "\e139";
}
-.col-xs-offset-0 {
- margin-left: 0;
+.glyphicon-fullscreen:before {
+ content: "\e140";
}
-@media (min-width: 768px) {
- .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
- float: left;
- }
- .col-sm-12 {
- width: 100%;
- }
- .col-sm-11 {
- width: 91.66666667%;
- }
- .col-sm-10 {
- width: 83.33333333%;
- }
- .col-sm-9 {
- width: 75%;
- }
- .col-sm-8 {
- width: 66.66666667%;
- }
- .col-sm-7 {
- width: 58.33333333%;
- }
- .col-sm-6 {
- width: 50%;
- }
- .col-sm-5 {
- width: 41.66666667%;
- }
- .col-sm-4 {
- width: 33.33333333%;
- }
- .col-sm-3 {
- width: 25%;
- }
- .col-sm-2 {
- width: 16.66666667%;
- }
- .col-sm-1 {
- width: 8.33333333%;
- }
- .col-sm-pull-12 {
- right: 100%;
- }
- .col-sm-pull-11 {
- right: 91.66666667%;
- }
- .col-sm-pull-10 {
- right: 83.33333333%;
- }
- .col-sm-pull-9 {
- right: 75%;
- }
- .col-sm-pull-8 {
- right: 66.66666667%;
- }
- .col-sm-pull-7 {
- right: 58.33333333%;
- }
- .col-sm-pull-6 {
- right: 50%;
- }
- .col-sm-pull-5 {
- right: 41.66666667%;
- }
- .col-sm-pull-4 {
- right: 33.33333333%;
- }
- .col-sm-pull-3 {
- right: 25%;
- }
- .col-sm-pull-2 {
- right: 16.66666667%;
- }
- .col-sm-pull-1 {
- right: 8.33333333%;
- }
- .col-sm-pull-0 {
- right: 0;
- }
- .col-sm-push-12 {
- left: 100%;
- }
- .col-sm-push-11 {
- left: 91.66666667%;
- }
- .col-sm-push-10 {
- left: 83.33333333%;
- }
- .col-sm-push-9 {
- left: 75%;
- }
- .col-sm-push-8 {
- left: 66.66666667%;
- }
- .col-sm-push-7 {
- left: 58.33333333%;
- }
- .col-sm-push-6 {
- left: 50%;
- }
- .col-sm-push-5 {
- left: 41.66666667%;
- }
- .col-sm-push-4 {
- left: 33.33333333%;
- }
- .col-sm-push-3 {
- left: 25%;
- }
- .col-sm-push-2 {
- left: 16.66666667%;
- }
- .col-sm-push-1 {
- left: 8.33333333%;
- }
- .col-sm-push-0 {
- left: 0;
- }
- .col-sm-offset-12 {
- margin-left: 100%;
- }
- .col-sm-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-sm-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-sm-offset-9 {
- margin-left: 75%;
- }
- .col-sm-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-sm-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-sm-offset-6 {
- margin-left: 50%;
- }
- .col-sm-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-sm-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-sm-offset-3 {
- margin-left: 25%;
- }
- .col-sm-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-sm-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-sm-offset-0 {
- margin-left: 0;
- }
+.glyphicon-dashboard:before {
+ content: "\e141";
}
-@media (min-width: 992px) {
- .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
- float: left;
- }
- .col-md-12 {
- width: 100%;
- }
- .col-md-11 {
- width: 91.66666667%;
- }
- .col-md-10 {
- width: 83.33333333%;
- }
- .col-md-9 {
- width: 75%;
- }
- .col-md-8 {
- width: 66.66666667%;
- }
- .col-md-7 {
- width: 58.33333333%;
- }
- .col-md-6 {
- width: 50%;
- }
- .col-md-5 {
- width: 41.66666667%;
- }
- .col-md-4 {
- width: 33.33333333%;
- }
- .col-md-3 {
- width: 25%;
- }
- .col-md-2 {
- width: 16.66666667%;
- }
- .col-md-1 {
- width: 8.33333333%;
- }
- .col-md-pull-12 {
- right: 100%;
- }
- .col-md-pull-11 {
- right: 91.66666667%;
- }
- .col-md-pull-10 {
- right: 83.33333333%;
- }
- .col-md-pull-9 {
- right: 75%;
- }
- .col-md-pull-8 {
- right: 66.66666667%;
- }
- .col-md-pull-7 {
- right: 58.33333333%;
- }
- .col-md-pull-6 {
- right: 50%;
- }
- .col-md-pull-5 {
- right: 41.66666667%;
- }
- .col-md-pull-4 {
- right: 33.33333333%;
- }
- .col-md-pull-3 {
- right: 25%;
- }
- .col-md-pull-2 {
- right: 16.66666667%;
- }
- .col-md-pull-1 {
- right: 8.33333333%;
- }
- .col-md-pull-0 {
- right: 0;
- }
- .col-md-push-12 {
- left: 100%;
- }
- .col-md-push-11 {
- left: 91.66666667%;
- }
- .col-md-push-10 {
- left: 83.33333333%;
- }
- .col-md-push-9 {
- left: 75%;
- }
- .col-md-push-8 {
- left: 66.66666667%;
- }
- .col-md-push-7 {
- left: 58.33333333%;
- }
- .col-md-push-6 {
- left: 50%;
- }
- .col-md-push-5 {
- left: 41.66666667%;
- }
- .col-md-push-4 {
- left: 33.33333333%;
- }
- .col-md-push-3 {
- left: 25%;
- }
- .col-md-push-2 {
- left: 16.66666667%;
- }
- .col-md-push-1 {
- left: 8.33333333%;
- }
- .col-md-push-0 {
- left: 0;
- }
- .col-md-offset-12 {
- margin-left: 100%;
- }
- .col-md-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-md-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-md-offset-9 {
- margin-left: 75%;
- }
- .col-md-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-md-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-md-offset-6 {
- margin-left: 50%;
- }
- .col-md-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-md-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-md-offset-3 {
- margin-left: 25%;
- }
- .col-md-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-md-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-md-offset-0 {
- margin-left: 0;
- }
+.glyphicon-paperclip:before {
+ content: "\e142";
}
-@media (min-width: 1200px) {
- .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
- float: left;
- }
- .col-lg-12 {
- width: 100%;
- }
- .col-lg-11 {
- width: 91.66666667%;
- }
- .col-lg-10 {
- width: 83.33333333%;
- }
- .col-lg-9 {
- width: 75%;
- }
- .col-lg-8 {
- width: 66.66666667%;
- }
- .col-lg-7 {
- width: 58.33333333%;
- }
- .col-lg-6 {
- width: 50%;
- }
- .col-lg-5 {
- width: 41.66666667%;
- }
- .col-lg-4 {
- width: 33.33333333%;
- }
- .col-lg-3 {
- width: 25%;
- }
- .col-lg-2 {
- width: 16.66666667%;
- }
- .col-lg-1 {
- width: 8.33333333%;
- }
- .col-lg-pull-12 {
- right: 100%;
- }
- .col-lg-pull-11 {
- right: 91.66666667%;
- }
- .col-lg-pull-10 {
- right: 83.33333333%;
- }
- .col-lg-pull-9 {
- right: 75%;
- }
- .col-lg-pull-8 {
- right: 66.66666667%;
- }
- .col-lg-pull-7 {
- right: 58.33333333%;
- }
- .col-lg-pull-6 {
- right: 50%;
- }
- .col-lg-pull-5 {
- right: 41.66666667%;
- }
- .col-lg-pull-4 {
- right: 33.33333333%;
- }
- .col-lg-pull-3 {
- right: 25%;
- }
- .col-lg-pull-2 {
- right: 16.66666667%;
- }
- .col-lg-pull-1 {
- right: 8.33333333%;
- }
- .col-lg-pull-0 {
- right: 0;
- }
- .col-lg-push-12 {
- left: 100%;
- }
- .col-lg-push-11 {
- left: 91.66666667%;
- }
- .col-lg-push-10 {
- left: 83.33333333%;
- }
- .col-lg-push-9 {
- left: 75%;
- }
- .col-lg-push-8 {
- left: 66.66666667%;
- }
- .col-lg-push-7 {
- left: 58.33333333%;
- }
- .col-lg-push-6 {
- left: 50%;
- }
- .col-lg-push-5 {
- left: 41.66666667%;
- }
- .col-lg-push-4 {
- left: 33.33333333%;
- }
- .col-lg-push-3 {
- left: 25%;
- }
- .col-lg-push-2 {
- left: 16.66666667%;
- }
- .col-lg-push-1 {
- left: 8.33333333%;
- }
- .col-lg-push-0 {
- left: 0;
- }
- .col-lg-offset-12 {
- margin-left: 100%;
- }
- .col-lg-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-lg-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-lg-offset-9 {
- margin-left: 75%;
- }
- .col-lg-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-lg-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-lg-offset-6 {
- margin-left: 50%;
- }
- .col-lg-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-lg-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-lg-offset-3 {
- margin-left: 25%;
- }
- .col-lg-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-lg-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-lg-offset-0 {
- margin-left: 0;
- }
+.glyphicon-heart-empty:before {
+ content: "\e143";
+}
+.glyphicon-link:before {
+ content: "\e144";
+}
+.glyphicon-phone:before {
+ content: "\e145";
+}
+.glyphicon-pushpin:before {
+ content: "\e146";
+}
+.glyphicon-usd:before {
+ content: "\e148";
+}
+.glyphicon-gbp:before {
+ content: "\e149";
}
-table {
- max-width: 100%;
- background-color: transparent;
+.glyphicon-sort:before {
+ content: "\e150";
}
-th {
- text-align: left;
+.glyphicon-sort-by-alphabet:before {
+ content: "\e151";
}
-.table {
- width: 100%;
- margin-bottom: 20px;
+.glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152";
}
-.table > thead > tr > th,
-.table > tbody > tr > th,
-.table > tfoot > tr > th,
-.table > thead > tr > td,
-.table > tbody > tr > td,
-.table > tfoot > tr > td {
- padding: 8px;
- line-height: 1.42857143;
- vertical-align: top;
- border-top: 1px solid #ddd;
+.glyphicon-sort-by-order:before {
+ content: "\e153";
}
-.table > thead > tr > th {
- vertical-align: bottom;
- border-bottom: 2px solid #ddd;
+.glyphicon-sort-by-order-alt:before {
+ content: "\e154";
}
-.table > caption + thead > tr:first-child > th,
-.table > colgroup + thead > tr:first-child > th,
-.table > thead:first-child > tr:first-child > th,
-.table > caption + thead > tr:first-child > td,
-.table > colgroup + thead > tr:first-child > td,
-.table > thead:first-child > tr:first-child > td {
- border-top: 0;
+.glyphicon-sort-by-attributes:before {
+ content: "\e155";
}
-.table > tbody + tbody {
- border-top: 2px solid #ddd;
+.glyphicon-sort-by-attributes-alt:before {
+ content: "\e156";
}
-.table .table {
- background-color: #fff;
+.glyphicon-unchecked:before {
+ content: "\e157";
}
-.table-condensed > thead > tr > th,
-.table-condensed > tbody > tr > th,
-.table-condensed > tfoot > tr > th,
-.table-condensed > thead > tr > td,
-.table-condensed > tbody > tr > td,
-.table-condensed > tfoot > tr > td {
- padding: 5px;
+.glyphicon-expand:before {
+ content: "\e158";
}
-.table-bordered {
- border: 1px solid #ddd;
+.glyphicon-collapse-down:before {
+ content: "\e159";
}
-.table-bordered > thead > tr > th,
-.table-bordered > tbody > tr > th,
-.table-bordered > tfoot > tr > th,
-.table-bordered > thead > tr > td,
-.table-bordered > tbody > tr > td,
-.table-bordered > tfoot > tr > td {
- border: 1px solid #ddd;
+.glyphicon-collapse-up:before {
+ content: "\e160";
}
-.table-bordered > thead > tr > th,
-.table-bordered > thead > tr > td {
- border-bottom-width: 2px;
+.glyphicon-log-in:before {
+ content: "\e161";
}
-.table-striped > tbody > tr:nth-child(odd) > td,
-.table-striped > tbody > tr:nth-child(odd) > th {
- background-color: #f9f9f9;
+.glyphicon-flash:before {
+ content: "\e162";
}
-.table-hover > tbody > tr:hover > td,
-.table-hover > tbody > tr:hover > th {
- background-color: #f5f5f5;
+.glyphicon-log-out:before {
+ content: "\e163";
}
-table col[class*="col-"] {
- position: static;
- display: table-column;
- float: none;
+.glyphicon-new-window:before {
+ content: "\e164";
}
-table td[class*="col-"],
-table th[class*="col-"] {
- position: static;
- display: table-cell;
- float: none;
+.glyphicon-record:before {
+ content: "\e165";
}
-.table > thead > tr > td.active,
-.table > tbody > tr > td.active,
-.table > tfoot > tr > td.active,
-.table > thead > tr > th.active,
-.table > tbody > tr > th.active,
-.table > tfoot > tr > th.active,
-.table > thead > tr.active > td,
-.table > tbody > tr.active > td,
-.table > tfoot > tr.active > td,
-.table > thead > tr.active > th,
-.table > tbody > tr.active > th,
-.table > tfoot > tr.active > th {
- background-color: #f5f5f5;
+.glyphicon-save:before {
+ content: "\e166";
}
-.table-hover > tbody > tr > td.active:hover,
-.table-hover > tbody > tr > th.active:hover,
-.table-hover > tbody > tr.active:hover > td,
-.table-hover > tbody > tr.active:hover > th {
- background-color: #e8e8e8;
+.glyphicon-open:before {
+ content: "\e167";
}
-.table > thead > tr > td.success,
-.table > tbody > tr > td.success,
-.table > tfoot > tr > td.success,
-.table > thead > tr > th.success,
-.table > tbody > tr > th.success,
-.table > tfoot > tr > th.success,
-.table > thead > tr.success > td,
-.table > tbody > tr.success > td,
-.table > tfoot > tr.success > td,
-.table > thead > tr.success > th,
-.table > tbody > tr.success > th,
-.table > tfoot > tr.success > th {
- background-color: #dff0d8;
+.glyphicon-saved:before {
+ content: "\e168";
}
-.table-hover > tbody > tr > td.success:hover,
-.table-hover > tbody > tr > th.success:hover,
-.table-hover > tbody > tr.success:hover > td,
-.table-hover > tbody > tr.success:hover > th {
- background-color: #d0e9c6;
+.glyphicon-import:before {
+ content: "\e169";
}
-.table > thead > tr > td.info,
-.table > tbody > tr > td.info,
-.table > tfoot > tr > td.info,
-.table > thead > tr > th.info,
-.table > tbody > tr > th.info,
-.table > tfoot > tr > th.info,
-.table > thead > tr.info > td,
-.table > tbody > tr.info > td,
-.table > tfoot > tr.info > td,
-.table > thead > tr.info > th,
-.table > tbody > tr.info > th,
-.table > tfoot > tr.info > th {
- background-color: #d9edf7;
+.glyphicon-export:before {
+ content: "\e170";
}
-.table-hover > tbody > tr > td.info:hover,
-.table-hover > tbody > tr > th.info:hover,
-.table-hover > tbody > tr.info:hover > td,
-.table-hover > tbody > tr.info:hover > th {
- background-color: #c4e3f3;
+.glyphicon-send:before {
+ content: "\e171";
}
-.table > thead > tr > td.warning,
-.table > tbody > tr > td.warning,
-.table > tfoot > tr > td.warning,
-.table > thead > tr > th.warning,
-.table > tbody > tr > th.warning,
-.table > tfoot > tr > th.warning,
-.table > thead > tr.warning > td,
-.table > tbody > tr.warning > td,
-.table > tfoot > tr.warning > td,
-.table > thead > tr.warning > th,
-.table > tbody > tr.warning > th,
-.table > tfoot > tr.warning > th {
- background-color: #fcf8e3;
+.glyphicon-floppy-disk:before {
+ content: "\e172";
}
-.table-hover > tbody > tr > td.warning:hover,
-.table-hover > tbody > tr > th.warning:hover,
-.table-hover > tbody > tr.warning:hover > td,
-.table-hover > tbody > tr.warning:hover > th {
- background-color: #faf2cc;
+.glyphicon-floppy-saved:before {
+ content: "\e173";
}
-.table > thead > tr > td.danger,
-.table > tbody > tr > td.danger,
-.table > tfoot > tr > td.danger,
-.table > thead > tr > th.danger,
-.table > tbody > tr > th.danger,
-.table > tfoot > tr > th.danger,
-.table > thead > tr.danger > td,
-.table > tbody > tr.danger > td,
-.table > tfoot > tr.danger > td,
-.table > thead > tr.danger > th,
-.table > tbody > tr.danger > th,
-.table > tfoot > tr.danger > th {
- background-color: #f2dede;
+.glyphicon-floppy-remove:before {
+ content: "\e174";
}
-.table-hover > tbody > tr > td.danger:hover,
-.table-hover > tbody > tr > th.danger:hover,
-.table-hover > tbody > tr.danger:hover > td,
-.table-hover > tbody > tr.danger:hover > th {
- background-color: #ebcccc;
+.glyphicon-floppy-save:before {
+ content: "\e175";
}
-@media (max-width: 767px) {
- .table-responsive {
- width: 100%;
- margin-bottom: 15px;
- overflow-x: scroll;
- overflow-y: hidden;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- border: 1px solid #ddd;
- }
- .table-responsive > .table {
- margin-bottom: 0;
- }
- .table-responsive > .table > thead > tr > th,
- .table-responsive > .table > tbody > tr > th,
- .table-responsive > .table > tfoot > tr > th,
- .table-responsive > .table > thead > tr > td,
- .table-responsive > .table > tbody > tr > td,
- .table-responsive > .table > tfoot > tr > td {
- white-space: nowrap;
- }
- .table-responsive > .table-bordered {
- border: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:first-child,
- .table-responsive > .table-bordered > tbody > tr > th:first-child,
- .table-responsive > .table-bordered > tfoot > tr > th:first-child,
- .table-responsive > .table-bordered > thead > tr > td:first-child,
- .table-responsive > .table-bordered > tbody > tr > td:first-child,
- .table-responsive > .table-bordered > tfoot > tr > td:first-child {
- border-left: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:last-child,
- .table-responsive > .table-bordered > tbody > tr > th:last-child,
- .table-responsive > .table-bordered > tfoot > tr > th:last-child,
- .table-responsive > .table-bordered > thead > tr > td:last-child,
- .table-responsive > .table-bordered > tbody > tr > td:last-child,
- .table-responsive > .table-bordered > tfoot > tr > td:last-child {
- border-right: 0;
- }
- .table-responsive > .table-bordered > tbody > tr:last-child > th,
- .table-responsive > .table-bordered > tfoot > tr:last-child > th,
- .table-responsive > .table-bordered > tbody > tr:last-child > td,
- .table-responsive > .table-bordered > tfoot > tr:last-child > td {
- border-bottom: 0;
- }
+.glyphicon-floppy-open:before {
+ content: "\e176";
}
-fieldset {
- min-width: 0;
- padding: 0;
- margin: 0;
- border: 0;
+.glyphicon-credit-card:before {
+ content: "\e177";
}
-legend {
- display: block;
- width: 100%;
- padding: 0;
- margin-bottom: 20px;
- font-size: 21px;
- line-height: inherit;
- color: #333;
- border: 0;
- border-bottom: 1px solid #e5e5e5;
+.glyphicon-transfer:before {
+ content: "\e178";
}
-label {
- display: inline-block;
- margin-bottom: 5px;
- font-weight: bold;
+.glyphicon-cutlery:before {
+ content: "\e179";
}
-input[type="search"] {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
+.glyphicon-header:before {
+ content: "\e180";
}
-input[type="radio"],
-input[type="checkbox"] {
- margin: 4px 0 0;
- margin-top: 1px \9;
- /* IE8-9 */
- line-height: normal;
+.glyphicon-compressed:before {
+ content: "\e181";
}
-input[type="file"] {
- display: block;
+.glyphicon-earphone:before {
+ content: "\e182";
}
-input[type="range"] {
- display: block;
- width: 100%;
+.glyphicon-phone-alt:before {
+ content: "\e183";
}
-select[multiple],
-select[size] {
- height: auto;
+.glyphicon-tower:before {
+ content: "\e184";
}
-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;
+.glyphicon-stats:before {
+ content: "\e185";
}
-output {
- display: block;
- padding-top: 7px;
- font-size: 14px;
- line-height: 1.42857143;
- color: #555;
+.glyphicon-sd-video:before {
+ content: "\e186";
}
-.form-control {
- display: block;
- width: 100%;
- height: 34px;
- padding: 6px 12px;
- font-size: 14px;
- line-height: 1.42857143;
- color: #555;
- background-color: #fff;
- background-image: none;
- border: 1px solid #ccc;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
- transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+.glyphicon-hd-video:before {
+ content: "\e187";
}
-.form-control:focus {
- border-color: #66afe9;
- outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
+.glyphicon-subtitles:before {
+ content: "\e188";
}
-.form-control::-moz-placeholder {
- color: #999;
- opacity: 1;
+.glyphicon-sound-stereo:before {
+ content: "\e189";
}
-.form-control:-ms-input-placeholder {
- color: #999;
+.glyphicon-sound-dolby:before {
+ content: "\e190";
}
-.form-control::-webkit-input-placeholder {
- color: #999;
+.glyphicon-sound-5-1:before {
+ content: "\e191";
}
-.form-control[disabled],
-.form-control[readonly],
-fieldset[disabled] .form-control {
- cursor: not-allowed;
- background-color: #eee;
- opacity: 1;
+.glyphicon-sound-6-1:before {
+ content: "\e192";
}
-textarea.form-control {
- height: auto;
+.glyphicon-sound-7-1:before {
+ content: "\e193";
}
-input[type="search"] {
- -webkit-appearance: none;
+.glyphicon-copyright-mark:before {
+ content: "\e194";
}
-input[type="date"] {
- line-height: 34px;
+.glyphicon-registration-mark:before {
+ content: "\e195";
}
-.form-group {
- margin-bottom: 15px;
+.glyphicon-cloud-download:before {
+ content: "\e197";
}
-.radio,
-.checkbox {
- display: block;
- min-height: 20px;
- padding-left: 20px;
- margin-top: 10px;
- margin-bottom: 10px;
+.glyphicon-cloud-upload:before {
+ content: "\e198";
}
-.radio label,
-.checkbox label {
- display: inline;
- font-weight: normal;
- cursor: pointer;
+.glyphicon-tree-conifer:before {
+ content: "\e199";
}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
- float: left;
- margin-left: -20px;
+.glyphicon-tree-deciduous:before {
+ content: "\e200";
}
-.radio + .radio,
-.checkbox + .checkbox {
- margin-top: -5px;
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-.radio-inline,
-.checkbox-inline {
- display: inline-block;
- padding-left: 20px;
- margin-bottom: 0;
- font-weight: normal;
- vertical-align: middle;
- cursor: pointer;
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-.radio-inline + .radio-inline,
-.checkbox-inline + .checkbox-inline {
- margin-top: 0;
- margin-left: 10px;
+html {
+ font-size: 10px;
+
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-.radio[disabled],
-.radio-inline[disabled],
-.checkbox[disabled],
-.checkbox-inline[disabled],
-fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"],
-fieldset[disabled] .radio,
-fieldset[disabled] .radio-inline,
-fieldset[disabled] .checkbox,
-fieldset[disabled] .checkbox-inline {
- cursor: not-allowed;
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #333;
+ background-color: #fff;
}
-.input-sm {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
}
-select.input-sm {
- height: 30px;
- line-height: 30px;
+a {
+ color: #428bca;
+ text-decoration: none;
}
-textarea.input-sm,
-select[multiple].input-sm {
- height: auto;
+a:hover,
+a:focus {
+ color: #2a6496;
+ text-decoration: underline;
}
-.input-lg {
- height: 46px;
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
+a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
}
-select.input-lg {
- height: 46px;
- line-height: 46px;
+figure {
+ margin: 0;
}
-textarea.input-lg,
-select[multiple].input-lg {
+img {
+ vertical-align: middle;
+}
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ display: block;
+ width: 100% \9;
+ max-width: 100%;
height: auto;
}
-.has-feedback {
- position: relative;
+.img-rounded {
+ border-radius: 6px;
}
-.has-feedback .form-control {
- padding-right: 42.5px;
+.img-thumbnail {
+ display: inline-block;
+ width: 100% \9;
+ max-width: 100%;
+ height: auto;
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all .2s ease-in-out;
+ -o-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
}
-.has-feedback .form-control-feedback {
- position: absolute;
- top: 25px;
- right: 0;
- display: block;
- width: 34px;
- height: 34px;
- line-height: 34px;
- text-align: center;
+.img-circle {
+ border-radius: 50%;
}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline {
- color: #3c763d;
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #eee;
}
-.has-success .form-control {
- border-color: #3c763d;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
}
-.has-success .form-control:focus {
- border-color: #2b542c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
}
-.has-success .input-group-addon {
- color: #3c763d;
- background-color: #dff0d8;
- border-color: #3c763d;
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
}
-.has-success .form-control-feedback {
- color: #3c763d;
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777;
}
-.has-warning .help-block,
-.has-warning .control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline {
- color: #8a6d3b;
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+ margin-top: 20px;
+ margin-bottom: 10px;
}
-.has-warning .form-control {
- border-color: #8a6d3b;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+ font-size: 65%;
}
-.has-warning .form-control:focus {
- border-color: #66512c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
+h4,
+.h4,
+h5,
+.h5,
+h6,
+.h6 {
+ margin-top: 10px;
+ margin-bottom: 10px;
}
-.has-warning .input-group-addon {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #8a6d3b;
+h4 small,
+.h4 small,
+h5 small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+ font-size: 75%;
}
-.has-warning .form-control-feedback {
- color: #8a6d3b;
+h1,
+.h1 {
+ font-size: 36px;
}
-.has-error .help-block,
-.has-error .control-label,
-.has-error .radio,
-.has-error .checkbox,
-.has-error .radio-inline,
-.has-error .checkbox-inline {
- color: #a94442;
+h2,
+.h2 {
+ font-size: 30px;
}
-.has-error .form-control {
- border-color: #a94442;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+h3,
+.h3 {
+ font-size: 24px;
}
-.has-error .form-control:focus {
- border-color: #843534;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
+h4,
+.h4 {
+ font-size: 18px;
}
-.has-error .input-group-addon {
- color: #a94442;
- background-color: #f2dede;
- border-color: #a94442;
+h5,
+.h5 {
+ font-size: 14px;
}
-.has-error .form-control-feedback {
- color: #a94442;
+h6,
+.h6 {
+ font-size: 12px;
}
-.form-control-static {
- margin-bottom: 0;
+p {
+ margin: 0 0 10px;
}
-.help-block {
- display: block;
- margin-top: 5px;
- margin-bottom: 10px;
- color: #737373;
+.lead {
+ margin-bottom: 20px;
+ font-size: 16px;
+ font-weight: 300;
+ line-height: 1.4;
}
@media (min-width: 768px) {
- .form-inline .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .form-inline .input-group > .form-control {
- width: 100%;
- }
- .form-inline .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio,
- .form-inline .checkbox {
- display: inline-block;
- padding-left: 0;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio input[type="radio"],
- .form-inline .checkbox input[type="checkbox"] {
- float: none;
- margin-left: 0;
- }
- .form-inline .has-feedback .form-control-feedback {
- top: 0;
+ .lead {
+ font-size: 21px;
}
}
-.form-horizontal .control-label,
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
- padding-top: 7px;
- margin-top: 0;
- margin-bottom: 0;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
- min-height: 27px;
+small,
+.small {
+ font-size: 85%;
}
-.form-horizontal .form-group {
- margin-right: -15px;
- margin-left: -15px;
+cite {
+ font-style: normal;
}
-.form-horizontal .form-control-static {
- padding-top: 7px;
+mark,
+.mark {
+ padding: .2em;
+ background-color: #fcf8e3;
}
-@media (min-width: 768px) {
- .form-horizontal .control-label {
- text-align: right;
- }
+.text-left {
+ text-align: left;
}
-.form-horizontal .has-feedback .form-control-feedback {
- top: 0;
- right: 15px;
+.text-right {
+ text-align: right;
}
-.btn {
- display: inline-block;
- padding: 6px 12px;
- margin-bottom: 0;
- font-size: 14px;
- font-weight: normal;
- line-height: 1.42857143;
+.text-center {
text-align: center;
+}
+.text-justify {
+ text-align: justify;
+}
+.text-nowrap {
white-space: nowrap;
- vertical-align: middle;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- background-image: none;
- border: 1px solid transparent;
- border-radius: 4px;
}
-.btn:focus,
-.btn:active:focus,
-.btn.active:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
+.text-lowercase {
+ text-transform: lowercase;
}
-.btn:hover,
-.btn:focus {
- color: #333;
- text-decoration: none;
+.text-uppercase {
+ text-transform: uppercase;
}
-.btn:active,
-.btn.active {
- background-image: none;
- outline: 0;
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+.text-capitalize {
+ text-transform: capitalize;
}
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
- pointer-events: none;
- cursor: not-allowed;
- filter: alpha(opacity=65);
- -webkit-box-shadow: none;
- box-shadow: none;
- opacity: .65;
+.text-muted {
+ color: #777;
}
-.btn-default {
- color: #333;
- background-color: #fff;
- border-color: #ccc;
+.text-primary {
+ color: #428bca;
}
-.btn-default:hover,
-.btn-default:focus,
-.btn-default:active,
-.btn-default.active,
-.open .dropdown-toggle.btn-default {
- color: #333;
- background-color: #ebebeb;
- border-color: #adadad;
+a.text-primary:hover {
+ color: #3071a9;
}
-.btn-default:active,
-.btn-default.active,
-.open .dropdown-toggle.btn-default {
- background-image: none;
+.text-success {
+ color: #3c763d;
}
-.btn-default.disabled,
-.btn-default[disabled],
-fieldset[disabled] .btn-default,
-.btn-default.disabled:hover,
-.btn-default[disabled]:hover,
-fieldset[disabled] .btn-default:hover,
-.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 {
- background-color: #fff;
- border-color: #ccc;
+a.text-success:hover {
+ color: #2b542c;
}
-.btn-default .badge {
- color: #fff;
- background-color: #333;
+.text-info {
+ color: #31708f;
}
-.btn-primary {
+a.text-info:hover {
+ color: #245269;
+}
+.text-warning {
+ color: #8a6d3b;
+}
+a.text-warning:hover {
+ color: #66512c;
+}
+.text-danger {
+ color: #a94442;
+}
+a.text-danger:hover {
+ color: #843534;
+}
+.bg-primary {
color: #fff;
background-color: #428bca;
- border-color: #357ebd;
}
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary:active,
-.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
- color: #fff;
- background-color: #3276b1;
- border-color: #285e8e;
+a.bg-primary:hover {
+ background-color: #3071a9;
}
-.btn-primary:active,
-.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
- background-image: none;
+.bg-success {
+ background-color: #dff0d8;
}
-.btn-primary.disabled,
-.btn-primary[disabled],
-fieldset[disabled] .btn-primary,
-.btn-primary.disabled:hover,
-.btn-primary[disabled]:hover,
-fieldset[disabled] .btn-primary:hover,
-.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 {
- background-color: #428bca;
- border-color: #357ebd;
+a.bg-success:hover {
+ background-color: #c1e2b3;
}
-.btn-primary .badge {
- color: #428bca;
- background-color: #fff;
+.bg-info {
+ background-color: #d9edf7;
}
-.btn-success {
- color: #fff;
- background-color: #5cb85c;
- border-color: #4cae4c;
+a.bg-info:hover {
+ background-color: #afd9ee;
}
-.btn-success:hover,
-.btn-success:focus,
-.btn-success:active,
-.btn-success.active,
-.open .dropdown-toggle.btn-success {
- color: #fff;
- background-color: #47a447;
- border-color: #398439;
+.bg-warning {
+ background-color: #fcf8e3;
}
-.btn-success:active,
-.btn-success.active,
-.open .dropdown-toggle.btn-success {
- background-image: none;
+a.bg-warning:hover {
+ background-color: #f7ecb5;
}
-.btn-success.disabled,
-.btn-success[disabled],
-fieldset[disabled] .btn-success,
-.btn-success.disabled:hover,
-.btn-success[disabled]:hover,
-fieldset[disabled] .btn-success:hover,
-.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 {
- background-color: #5cb85c;
- border-color: #4cae4c;
+.bg-danger {
+ background-color: #f2dede;
}
-.btn-success .badge {
- color: #5cb85c;
- background-color: #fff;
+a.bg-danger:hover {
+ background-color: #e4b9b9;
}
-.btn-info {
- color: #fff;
- background-color: #5bc0de;
- border-color: #46b8da;
+.page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #eee;
}
-.btn-info:hover,
-.btn-info:focus,
-.btn-info:active,
-.btn-info.active,
-.open .dropdown-toggle.btn-info {
- color: #fff;
- background-color: #39b3d7;
- border-color: #269abc;
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 10px;
}
-.btn-info:active,
-.btn-info.active,
-.open .dropdown-toggle.btn-info {
- background-image: none;
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+ margin-bottom: 0;
}
-.btn-info.disabled,
-.btn-info[disabled],
-fieldset[disabled] .btn-info,
-.btn-info.disabled:hover,
-.btn-info[disabled]:hover,
-fieldset[disabled] .btn-info:hover,
-.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 {
- background-color: #5bc0de;
- border-color: #46b8da;
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+.list-inline {
+ padding-left: 0;
+ margin-left: -5px;
+ list-style: none;
}
-.btn-info .badge {
- color: #5bc0de;
- background-color: #fff;
+.list-inline > li {
+ display: inline-block;
+ padding-right: 5px;
+ padding-left: 5px;
}
-.btn-warning {
- color: #fff;
- background-color: #f0ad4e;
- border-color: #eea236;
+dl {
+ margin-top: 0;
+ margin-bottom: 20px;
}
-.btn-warning:hover,
-.btn-warning:focus,
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- color: #fff;
- background-color: #ed9c28;
- border-color: #d58512;
+dt,
+dd {
+ line-height: 1.42857143;
}
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- background-image: none;
+dt {
+ font-weight: bold;
}
-.btn-warning.disabled,
-.btn-warning[disabled],
-fieldset[disabled] .btn-warning,
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.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 {
- background-color: #f0ad4e;
- border-color: #eea236;
+dd {
+ margin-left: 0;
}
-.btn-warning .badge {
- color: #f0ad4e;
- background-color: #fff;
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ overflow: hidden;
+ clear: left;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
}
-.btn-danger {
- color: #fff;
- background-color: #d9534f;
- border-color: #d43f3a;
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #777;
}
-.btn-danger:hover,
-.btn-danger:focus,
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- color: #fff;
- background-color: #d2322d;
- border-color: #ac2925;
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
}
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- background-image: none;
+blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ font-size: 17.5px;
+ border-left: 5px solid #eee;
}
-.btn-danger.disabled,
-.btn-danger[disabled],
-fieldset[disabled] .btn-danger,
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.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 {
- background-color: #d9534f;
- border-color: #d43f3a;
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+ margin-bottom: 0;
}
-.btn-danger .badge {
- color: #d9534f;
- background-color: #fff;
+blockquote footer,
+blockquote small,
+blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #777;
}
-.btn-link {
- font-weight: normal;
- color: #428bca;
- cursor: pointer;
- border-radius: 0;
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+ content: '\2014 \00A0';
}
-.btn-link,
-.btn-link:active,
-.btn-link[disabled],
-fieldset[disabled] .btn-link {
- background-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ text-align: right;
+ border-right: 5px solid #eee;
+ border-left: 0;
}
-.btn-link,
-.btn-link:hover,
-.btn-link:focus,
-.btn-link:active {
- border-color: transparent;
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+ content: '';
}
-.btn-link:hover,
-.btn-link:focus {
- color: #2a6496;
- text-decoration: underline;
- background-color: transparent;
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+ content: '\00A0 \2014';
}
-.btn-link[disabled]:hover,
-fieldset[disabled] .btn-link:hover,
-.btn-link[disabled]:focus,
-fieldset[disabled] .btn-link:focus {
- color: #999;
- text-decoration: none;
+blockquote:before,
+blockquote:after {
+ content: "";
}
-.btn-lg,
-.btn-group-lg > .btn {
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
+address {
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.42857143;
}
-.btn-sm,
-.btn-group-sm > .btn {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
-.btn-xs,
-.btn-group-xs > .btn {
- padding: 1px 5px;
- font-size: 12px;
- line-height: 1.5;
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ border-radius: 4px;
+}
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
border-radius: 3px;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
}
-.btn-block {
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+pre {
display: block;
- width: 100%;
- padding-right: 0;
- padding-left: 0;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #333;
+ word-break: break-all;
+ word-wrap: break-word;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px;
}
-.btn-block + .btn-block {
- margin-top: 5px;
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
}
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
- width: 100%;
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+@media (min-width: 768px) {
+ .container {
+ width: 750px;
+ }
}
-.fade {
- opacity: 0;
- -webkit-transition: opacity .15s linear;
- transition: opacity .15s linear;
+@media (min-width: 992px) {
+ .container {
+ width: 970px;
+ }
}
-.fade.in {
- opacity: 1;
+@media (min-width: 1200px) {
+ .container {
+ width: 1170px;
+ }
}
-.collapse {
- display: none;
+.container-fluid {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
}
-.collapse.in {
- display: block;
+.row {
+ margin-right: -15px;
+ margin-left: -15px;
}
-.collapsing {
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
- height: 0;
- overflow: hidden;
- -webkit-transition: height .35s ease;
- transition: height .35s ease;
+ min-height: 1px;
+ padding-right: 15px;
+ padding-left: 15px;
}
-@font-face {
- font-family: 'Glyphicons Halflings';
-
- src: url('../fonts/glyphicons-halflings-regular.eot');
- src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+ float: left;
}
-.glyphicon {
- position: relative;
- top: 1px;
- display: inline-block;
- font-family: 'Glyphicons Halflings';
- font-style: normal;
- font-weight: normal;
- line-height: 1;
-
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
+.col-xs-12 {
+ width: 100%;
}
-.glyphicon-asterisk:before {
- content: "\2a";
+.col-xs-11 {
+ width: 91.66666667%;
}
-.glyphicon-plus:before {
- content: "\2b";
+.col-xs-10 {
+ width: 83.33333333%;
}
-.glyphicon-euro:before {
- content: "\20ac";
+.col-xs-9 {
+ width: 75%;
}
-.glyphicon-minus:before {
- content: "\2212";
+.col-xs-8 {
+ width: 66.66666667%;
}
-.glyphicon-cloud:before {
- content: "\2601";
+.col-xs-7 {
+ width: 58.33333333%;
}
-.glyphicon-envelope:before {
- content: "\2709";
+.col-xs-6 {
+ width: 50%;
}
-.glyphicon-pencil:before {
- content: "\270f";
+.col-xs-5 {
+ width: 41.66666667%;
}
-.glyphicon-glass:before {
- content: "\e001";
+.col-xs-4 {
+ width: 33.33333333%;
}
-.glyphicon-music:before {
- content: "\e002";
+.col-xs-3 {
+ width: 25%;
}
-.glyphicon-search:before {
- content: "\e003";
+.col-xs-2 {
+ width: 16.66666667%;
}
-.glyphicon-heart:before {
- content: "\e005";
+.col-xs-1 {
+ width: 8.33333333%;
}
-.glyphicon-star:before {
- content: "\e006";
+.col-xs-pull-12 {
+ right: 100%;
}
-.glyphicon-star-empty:before {
- content: "\e007";
+.col-xs-pull-11 {
+ right: 91.66666667%;
}
-.glyphicon-user:before {
- content: "\e008";
+.col-xs-pull-10 {
+ right: 83.33333333%;
}
-.glyphicon-film:before {
- content: "\e009";
+.col-xs-pull-9 {
+ right: 75%;
}
-.glyphicon-th-large:before {
- content: "\e010";
+.col-xs-pull-8 {
+ right: 66.66666667%;
}
-.glyphicon-th:before {
- content: "\e011";
+.col-xs-pull-7 {
+ right: 58.33333333%;
}
-.glyphicon-th-list:before {
- content: "\e012";
+.col-xs-pull-6 {
+ right: 50%;
}
-.glyphicon-ok:before {
- content: "\e013";
+.col-xs-pull-5 {
+ right: 41.66666667%;
}
-.glyphicon-remove:before {
- content: "\e014";
+.col-xs-pull-4 {
+ right: 33.33333333%;
}
-.glyphicon-zoom-in:before {
- content: "\e015";
+.col-xs-pull-3 {
+ right: 25%;
}
-.glyphicon-zoom-out:before {
- content: "\e016";
+.col-xs-pull-2 {
+ right: 16.66666667%;
}
-.glyphicon-off:before {
- content: "\e017";
+.col-xs-pull-1 {
+ right: 8.33333333%;
}
-.glyphicon-signal:before {
- content: "\e018";
+.col-xs-pull-0 {
+ right: auto;
}
-.glyphicon-cog:before {
- content: "\e019";
+.col-xs-push-12 {
+ left: 100%;
}
-.glyphicon-trash:before {
- content: "\e020";
+.col-xs-push-11 {
+ left: 91.66666667%;
}
-.glyphicon-home:before {
- content: "\e021";
+.col-xs-push-10 {
+ left: 83.33333333%;
}
-.glyphicon-file:before {
- content: "\e022";
+.col-xs-push-9 {
+ left: 75%;
}
-.glyphicon-time:before {
- content: "\e023";
+.col-xs-push-8 {
+ left: 66.66666667%;
}
-.glyphicon-road:before {
- content: "\e024";
+.col-xs-push-7 {
+ left: 58.33333333%;
}
-.glyphicon-download-alt:before {
- content: "\e025";
+.col-xs-push-6 {
+ left: 50%;
}
-.glyphicon-download:before {
- content: "\e026";
+.col-xs-push-5 {
+ left: 41.66666667%;
}
-.glyphicon-upload:before {
- content: "\e027";
+.col-xs-push-4 {
+ left: 33.33333333%;
}
-.glyphicon-inbox:before {
- content: "\e028";
+.col-xs-push-3 {
+ left: 25%;
}
-.glyphicon-play-circle:before {
- content: "\e029";
+.col-xs-push-2 {
+ left: 16.66666667%;
}
-.glyphicon-repeat:before {
- content: "\e030";
+.col-xs-push-1 {
+ left: 8.33333333%;
}
-.glyphicon-refresh:before {
- content: "\e031";
+.col-xs-push-0 {
+ left: auto;
}
-.glyphicon-list-alt:before {
- content: "\e032";
+.col-xs-offset-12 {
+ margin-left: 100%;
}
-.glyphicon-lock:before {
- content: "\e033";
+.col-xs-offset-11 {
+ margin-left: 91.66666667%;
}
-.glyphicon-flag:before {
- content: "\e034";
+.col-xs-offset-10 {
+ margin-left: 83.33333333%;
}
-.glyphicon-headphones:before {
- content: "\e035";
+.col-xs-offset-9 {
+ margin-left: 75%;
}
-.glyphicon-volume-off:before {
- content: "\e036";
+.col-xs-offset-8 {
+ margin-left: 66.66666667%;
}
-.glyphicon-volume-down:before {
- content: "\e037";
+.col-xs-offset-7 {
+ margin-left: 58.33333333%;
}
-.glyphicon-volume-up:before {
- content: "\e038";
+.col-xs-offset-6 {
+ margin-left: 50%;
}
-.glyphicon-qrcode:before {
- content: "\e039";
+.col-xs-offset-5 {
+ margin-left: 41.66666667%;
}
-.glyphicon-barcode:before {
- content: "\e040";
+.col-xs-offset-4 {
+ margin-left: 33.33333333%;
}
-.glyphicon-tag:before {
- content: "\e041";
+.col-xs-offset-3 {
+ margin-left: 25%;
}
-.glyphicon-tags:before {
- content: "\e042";
+.col-xs-offset-2 {
+ margin-left: 16.66666667%;
+}
+.col-xs-offset-1 {
+ margin-left: 8.33333333%;
+}
+.col-xs-offset-0 {
+ margin-left: 0;
}
-.glyphicon-book:before {
- content: "\e043";
+@media (min-width: 768px) {
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+ float: left;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-11 {
+ width: 91.66666667%;
+ }
+ .col-sm-10 {
+ width: 83.33333333%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-8 {
+ width: 66.66666667%;
+ }
+ .col-sm-7 {
+ width: 58.33333333%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-5 {
+ width: 41.66666667%;
+ }
+ .col-sm-4 {
+ width: 33.33333333%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-2 {
+ width: 16.66666667%;
+ }
+ .col-sm-1 {
+ width: 8.33333333%;
+ }
+ .col-sm-pull-12 {
+ right: 100%;
+ }
+ .col-sm-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-sm-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-sm-pull-9 {
+ right: 75%;
+ }
+ .col-sm-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-sm-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-sm-pull-6 {
+ right: 50%;
+ }
+ .col-sm-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-sm-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-sm-pull-3 {
+ right: 25%;
+ }
+ .col-sm-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-sm-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-sm-pull-0 {
+ right: auto;
+ }
+ .col-sm-push-12 {
+ left: 100%;
+ }
+ .col-sm-push-11 {
+ left: 91.66666667%;
+ }
+ .col-sm-push-10 {
+ left: 83.33333333%;
+ }
+ .col-sm-push-9 {
+ left: 75%;
+ }
+ .col-sm-push-8 {
+ left: 66.66666667%;
+ }
+ .col-sm-push-7 {
+ left: 58.33333333%;
+ }
+ .col-sm-push-6 {
+ left: 50%;
+ }
+ .col-sm-push-5 {
+ left: 41.66666667%;
+ }
+ .col-sm-push-4 {
+ left: 33.33333333%;
+ }
+ .col-sm-push-3 {
+ left: 25%;
+ }
+ .col-sm-push-2 {
+ left: 16.66666667%;
+ }
+ .col-sm-push-1 {
+ left: 8.33333333%;
+ }
+ .col-sm-push-0 {
+ left: auto;
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-sm-offset-0 {
+ margin-left: 0;
+ }
}
-.glyphicon-bookmark:before {
- content: "\e044";
+@media (min-width: 992px) {
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+ float: left;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-11 {
+ width: 91.66666667%;
+ }
+ .col-md-10 {
+ width: 83.33333333%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-8 {
+ width: 66.66666667%;
+ }
+ .col-md-7 {
+ width: 58.33333333%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-5 {
+ width: 41.66666667%;
+ }
+ .col-md-4 {
+ width: 33.33333333%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-2 {
+ width: 16.66666667%;
+ }
+ .col-md-1 {
+ width: 8.33333333%;
+ }
+ .col-md-pull-12 {
+ right: 100%;
+ }
+ .col-md-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-md-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-md-pull-9 {
+ right: 75%;
+ }
+ .col-md-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-md-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-md-pull-6 {
+ right: 50%;
+ }
+ .col-md-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-md-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-md-pull-3 {
+ right: 25%;
+ }
+ .col-md-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-md-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-md-pull-0 {
+ right: auto;
+ }
+ .col-md-push-12 {
+ left: 100%;
+ }
+ .col-md-push-11 {
+ left: 91.66666667%;
+ }
+ .col-md-push-10 {
+ left: 83.33333333%;
+ }
+ .col-md-push-9 {
+ left: 75%;
+ }
+ .col-md-push-8 {
+ left: 66.66666667%;
+ }
+ .col-md-push-7 {
+ left: 58.33333333%;
+ }
+ .col-md-push-6 {
+ left: 50%;
+ }
+ .col-md-push-5 {
+ left: 41.66666667%;
+ }
+ .col-md-push-4 {
+ left: 33.33333333%;
+ }
+ .col-md-push-3 {
+ left: 25%;
+ }
+ .col-md-push-2 {
+ left: 16.66666667%;
+ }
+ .col-md-push-1 {
+ left: 8.33333333%;
+ }
+ .col-md-push-0 {
+ left: auto;
+ }
+ .col-md-offset-12 {
+ margin-left: 100%;
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-md-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .col-md-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-md-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-md-offset-0 {
+ margin-left: 0;
+ }
}
-.glyphicon-print:before {
- content: "\e045";
+@media (min-width: 1200px) {
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ float: left;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-11 {
+ width: 91.66666667%;
+ }
+ .col-lg-10 {
+ width: 83.33333333%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-8 {
+ width: 66.66666667%;
+ }
+ .col-lg-7 {
+ width: 58.33333333%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-5 {
+ width: 41.66666667%;
+ }
+ .col-lg-4 {
+ width: 33.33333333%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-2 {
+ width: 16.66666667%;
+ }
+ .col-lg-1 {
+ width: 8.33333333%;
+ }
+ .col-lg-pull-12 {
+ right: 100%;
+ }
+ .col-lg-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-lg-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-lg-pull-9 {
+ right: 75%;
+ }
+ .col-lg-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-lg-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-lg-pull-6 {
+ right: 50%;
+ }
+ .col-lg-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-lg-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-lg-pull-3 {
+ right: 25%;
+ }
+ .col-lg-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-lg-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-lg-pull-0 {
+ right: auto;
+ }
+ .col-lg-push-12 {
+ left: 100%;
+ }
+ .col-lg-push-11 {
+ left: 91.66666667%;
+ }
+ .col-lg-push-10 {
+ left: 83.33333333%;
+ }
+ .col-lg-push-9 {
+ left: 75%;
+ }
+ .col-lg-push-8 {
+ left: 66.66666667%;
+ }
+ .col-lg-push-7 {
+ left: 58.33333333%;
+ }
+ .col-lg-push-6 {
+ left: 50%;
+ }
+ .col-lg-push-5 {
+ left: 41.66666667%;
+ }
+ .col-lg-push-4 {
+ left: 33.33333333%;
+ }
+ .col-lg-push-3 {
+ left: 25%;
+ }
+ .col-lg-push-2 {
+ left: 16.66666667%;
+ }
+ .col-lg-push-1 {
+ left: 8.33333333%;
+ }
+ .col-lg-push-0 {
+ left: auto;
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-lg-offset-0 {
+ margin-left: 0;
+ }
}
-.glyphicon-camera:before {
- content: "\e046";
+table {
+ background-color: transparent;
}
-.glyphicon-font:before {
- content: "\e047";
+th {
+ text-align: left;
}
-.glyphicon-bold:before {
- content: "\e048";
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 20px;
}
-.glyphicon-italic:before {
- content: "\e049";
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
}
-.glyphicon-text-height:before {
- content: "\e050";
+.table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd;
}
-.glyphicon-text-width:before {
- content: "\e051";
+.table > caption + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > th,
+.table > thead:first-child > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > td {
+ border-top: 0;
}
-.glyphicon-align-left:before {
- content: "\e052";
+.table > tbody + tbody {
+ border-top: 2px solid #ddd;
}
-.glyphicon-align-center:before {
- content: "\e053";
+.table .table {
+ background-color: #fff;
}
-.glyphicon-align-right:before {
- content: "\e054";
+.table-condensed > thead > tr > th,
+.table-condensed > tbody > tr > th,
+.table-condensed > tfoot > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > td {
+ padding: 5px;
}
-.glyphicon-align-justify:before {
- content: "\e055";
+.table-bordered {
+ border: 1px solid #ddd;
}
-.glyphicon-list:before {
- content: "\e056";
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd;
}
-.glyphicon-indent-left:before {
- content: "\e057";
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
}
-.glyphicon-indent-right:before {
- content: "\e058";
+.table-striped > tbody > tr:nth-child(odd) > td,
+.table-striped > tbody > tr:nth-child(odd) > th {
+ background-color: #f9f9f9;
}
-.glyphicon-facetime-video:before {
- content: "\e059";
+.table-hover > tbody > tr:hover > td,
+.table-hover > tbody > tr:hover > th {
+ background-color: #f5f5f5;
}
-.glyphicon-picture:before {
- content: "\e060";
+table col[class*="col-"] {
+ position: static;
+ display: table-column;
+ float: none;
}
-.glyphicon-map-marker:before {
- content: "\e062";
+table td[class*="col-"],
+table th[class*="col-"] {
+ position: static;
+ display: table-cell;
+ float: none;
}
-.glyphicon-adjust:before {
- content: "\e063";
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
}
-.glyphicon-tint:before {
- content: "\e064";
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
}
-.glyphicon-edit:before {
- content: "\e065";
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
+ background-color: #dff0d8;
}
-.glyphicon-share:before {
- content: "\e066";
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
}
-.glyphicon-check:before {
- content: "\e067";
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
}
-.glyphicon-move:before {
- content: "\e068";
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
}
-.glyphicon-step-backward:before {
- content: "\e069";
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
}
-.glyphicon-fast-backward:before {
- content: "\e070";
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
}
-.glyphicon-backward:before {
- content: "\e071";
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede;
}
-.glyphicon-play:before {
- content: "\e072";
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
}
-.glyphicon-pause:before {
- content: "\e073";
+@media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-x: auto;
+ overflow-y: hidden;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
+ }
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
}
-.glyphicon-stop:before {
- content: "\e074";
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
}
-.glyphicon-forward:before {
- content: "\e075";
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
}
-.glyphicon-fast-forward:before {
- content: "\e076";
+label {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 5px;
+ font-weight: bold;
}
-.glyphicon-step-forward:before {
- content: "\e077";
+input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-.glyphicon-eject:before {
- content: "\e078";
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
}
-.glyphicon-chevron-left:before {
- content: "\e079";
+input[type="file"] {
+ display: block;
}
-.glyphicon-chevron-right:before {
- content: "\e080";
+input[type="range"] {
+ display: block;
+ width: 100%;
}
-.glyphicon-plus-sign:before {
- content: "\e081";
+select[multiple],
+select[size] {
+ height: auto;
}
-.glyphicon-minus-sign:before {
- content: "\e082";
+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;
}
-.glyphicon-remove-sign:before {
- content: "\e083";
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
}
-.glyphicon-ok-sign:before {
- content: "\e084";
+.form-control {
+ display: block;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: in
<TRUNCATED>
[6/6] git commit: update Bootstrap to 3.2.0
Posted by jk...@apache.org.
update Bootstrap to 3.2.0
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/ef7f9c43
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/ef7f9c43
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/ef7f9c43
Branch: refs/heads/master
Commit: ef7f9c43ec4f8a4a7e76383c1877215e17d972a9
Parents: 1a4e8b0
Author: Jochen Kemnade <jo...@eddyson.de>
Authored: Mon Jun 30 10:29:50 2014 +0200
Committer: Jochen Kemnade <jo...@eddyson.de>
Committed: Mon Jun 30 10:29:50 2014 +0200
----------------------------------------------------------------------
.../tapestry5/bootstrap/css/bootstrap-theme.css | 97 +-
.../tapestry5/bootstrap/css/bootstrap.css | 5062 ++++++++++--------
.../assets/tapestry5/bootstrap/js/affix.js | 33 +-
.../assets/tapestry5/bootstrap/js/alert.js | 16 +-
.../assets/tapestry5/bootstrap/js/button.js | 19 +-
.../assets/tapestry5/bootstrap/js/carousel.js | 80 +-
.../assets/tapestry5/bootstrap/js/collapse.js | 44 +-
.../assets/tapestry5/bootstrap/js/dropdown.js | 30 +-
.../assets/tapestry5/bootstrap/js/modal.js | 95 +-
.../assets/tapestry5/bootstrap/js/popover.js | 17 +-
.../assets/tapestry5/bootstrap/js/scrollspy.js | 63 +-
.../assets/tapestry5/bootstrap/js/tab.js | 19 +-
.../assets/tapestry5/bootstrap/js/tooltip.js | 172 +-
.../assets/tapestry5/bootstrap/js/transition.js | 25 +-
.../src/test/webapp/bootstrap/js/affix.js | 33 +-
.../src/test/webapp/bootstrap/js/alert.js | 16 +-
.../src/test/webapp/bootstrap/js/button.js | 19 +-
.../src/test/webapp/bootstrap/js/carousel.js | 80 +-
.../src/test/webapp/bootstrap/js/collapse.js | 44 +-
.../src/test/webapp/bootstrap/js/dropdown.js | 30 +-
.../src/test/webapp/bootstrap/js/modal.js | 95 +-
.../src/test/webapp/bootstrap/js/popover.js | 17 +-
.../src/test/webapp/bootstrap/js/scrollspy.js | 63 +-
.../src/test/webapp/bootstrap/js/tab.js | 19 +-
.../src/test/webapp/bootstrap/js/tooltip.js | 172 +-
.../src/test/webapp/bootstrap/js/transition.js | 25 +-
.../src/test/webapp/bootstrap/less/alerts.less | 7 +-
.../src/test/webapp/bootstrap/less/badges.less | 36 +-
.../test/webapp/bootstrap/less/bootstrap.less | 5 +-
.../webapp/bootstrap/less/button-groups.less | 18 +-
.../src/test/webapp/bootstrap/less/buttons.less | 2 -
.../test/webapp/bootstrap/less/carousel.less | 19 +-
.../src/test/webapp/bootstrap/less/code.less | 7 +-
.../bootstrap/less/component-animations.less | 10 +-
.../test/webapp/bootstrap/less/dropdowns.less | 2 +
.../src/test/webapp/bootstrap/less/forms.less | 186 +-
.../test/webapp/bootstrap/less/glyphicons.less | 10 +-
.../webapp/bootstrap/less/input-groups.less | 8 +-
.../test/webapp/bootstrap/less/jumbotron.less | 4 +
.../src/test/webapp/bootstrap/less/labels.less | 2 +-
.../test/webapp/bootstrap/less/list-group.less | 23 +-
.../src/test/webapp/bootstrap/less/mixins.less | 960 +---
.../webapp/bootstrap/less/mixins/alerts.less | 14 +
.../less/mixins/background-variant.less | 8 +
.../bootstrap/less/mixins/border-radius.less | 18 +
.../webapp/bootstrap/less/mixins/buttons.less | 50 +
.../bootstrap/less/mixins/center-block.less | 7 +
.../webapp/bootstrap/less/mixins/clearfix.less | 22 +
.../webapp/bootstrap/less/mixins/forms.less | 81 +
.../webapp/bootstrap/less/mixins/gradients.less | 59 +
.../bootstrap/less/mixins/grid-framework.less | 91 +
.../test/webapp/bootstrap/less/mixins/grid.less | 122 +
.../webapp/bootstrap/less/mixins/hide-text.less | 21 +
.../webapp/bootstrap/less/mixins/image.less | 34 +
.../webapp/bootstrap/less/mixins/labels.less | 12 +
.../bootstrap/less/mixins/list-group.less | 29 +
.../bootstrap/less/mixins/nav-divider.less | 10 +
.../less/mixins/nav-vertical-align.less | 9 +
.../webapp/bootstrap/less/mixins/opacity.less | 8 +
.../bootstrap/less/mixins/pagination.less | 23 +
.../webapp/bootstrap/less/mixins/panels.less | 24 +
.../bootstrap/less/mixins/progress-bar.less | 10 +
.../bootstrap/less/mixins/reset-filter.less | 8 +
.../webapp/bootstrap/less/mixins/resize.less | 6 +
.../less/mixins/responsive-visibility.less | 15 +
.../test/webapp/bootstrap/less/mixins/size.less | 10 +
.../webapp/bootstrap/less/mixins/tab-focus.less | 9 +
.../webapp/bootstrap/less/mixins/table-row.less | 28 +
.../bootstrap/less/mixins/text-emphasis.less | 8 +
.../bootstrap/less/mixins/text-overflow.less | 8 +
.../bootstrap/less/mixins/vendor-prefixes.less | 224 +
.../src/test/webapp/bootstrap/less/modals.less | 25 +-
.../src/test/webapp/bootstrap/less/navbar.less | 43 +-
.../src/test/webapp/bootstrap/less/navs.less | 2 +-
.../test/webapp/bootstrap/less/normalize.less | 40 +-
.../src/test/webapp/bootstrap/less/panels.less | 14 +-
.../test/webapp/bootstrap/less/popovers.less | 2 +-
.../webapp/bootstrap/less/progress-bars.less | 29 +-
.../webapp/bootstrap/less/responsive-embed.less | 34 +
.../bootstrap/less/responsive-utilities.less | 104 +-
.../test/webapp/bootstrap/less/scaffolding.less | 18 +-
.../src/test/webapp/bootstrap/less/tables.less | 8 +-
.../src/test/webapp/bootstrap/less/theme.less | 11 +
.../src/test/webapp/bootstrap/less/type.less | 44 +-
.../test/webapp/bootstrap/less/utilities.less | 1 +
.../test/webapp/bootstrap/less/variables.less | 63 +-
86 files changed, 5226 insertions(+), 3864 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ef7f9c43/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 a406992..f860bbc 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,5 +1,5 @@
/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Bootstrap v3.2.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -36,6 +36,8 @@
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+ background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -53,8 +55,15 @@
background-color: #e0e0e0;
border-color: #dbdbdb;
}
+.btn-default:disabled,
+.btn-default[disabled] {
+ background-color: #e0e0e0;
+ background-image: none;
+}
.btn-primary {
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -71,8 +80,15 @@
background-color: #2d6ca2;
border-color: #2b669a;
}
+.btn-primary:disabled,
+.btn-primary[disabled] {
+ background-color: #2d6ca2;
+ background-image: none;
+}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -89,8 +105,15 @@
background-color: #419641;
border-color: #3e8f3e;
}
+.btn-success:disabled,
+.btn-success[disabled] {
+ background-color: #419641;
+ background-image: none;
+}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -107,8 +130,15 @@
background-color: #2aabd2;
border-color: #28a4c9;
}
+.btn-info:disabled,
+.btn-info[disabled] {
+ background-color: #2aabd2;
+ background-image: none;
+}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -125,8 +155,15 @@
background-color: #eb9316;
border-color: #e38d13;
}
+.btn-warning:disabled,
+.btn-warning[disabled] {
+ background-color: #eb9316;
+ background-image: none;
+}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -143,6 +180,11 @@
background-color: #c12e2a;
border-color: #b92c28;
}
+.btn-danger:disabled,
+.btn-danger[disabled] {
+ background-color: #c12e2a;
+ background-image: none;
+}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
@@ -152,6 +194,8 @@
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
@@ -161,12 +205,16 @@
.dropdown-menu > .active > a:focus {
background-color: #357ebd;
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+ background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -177,6 +225,8 @@
}
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+ background-image: -o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f3f3f3));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
background-repeat: repeat-x;
@@ -189,6 +239,8 @@
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
+ background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
@@ -196,6 +248,8 @@
}
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
+ background-image: -o-linear-gradient(top, #222 0%, #282828 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#222), to(#282828));
background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
background-repeat: repeat-x;
@@ -218,6 +272,8 @@
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
@@ -225,6 +281,8 @@
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
@@ -232,6 +290,8 @@
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
@@ -239,6 +299,8 @@
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+ background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
@@ -246,40 +308,57 @@
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+ background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
+.progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
@@ -290,6 +369,8 @@
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #3071a9;
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
background-repeat: repeat-x;
@@ -301,42 +382,56 @@
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+ background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;