diff --git a/Gruntfile.js b/Gruntfile.js index 4592f1ab3f80..41726cb8813d 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -90,6 +90,7 @@ module.exports = function (grunt) { bootstrap: { src: [ 'js/transition.js', + 'js/touch-detection.js', 'js/alert.js', 'js/button.js', 'js/carousel.js', @@ -216,6 +217,27 @@ module.exports = function (grunt) { } }, + notouch: { + options: { + selectorPrefix: '.bs-no-touch' + }, + core: { + src: '<%= autoprefixer.core.src %>' + }, + theme: { + src: '<%= autoprefixer.theme.src %>' + }, + docs: { + src: '<%= autoprefixer.docs.src %>' + }, + examples: { + expand: true, + cwd: 'docs/examples/', + src: '<%= autoprefixer.examples.src %>', + dest: '<%= autoprefixer.examples.dest %>' + } + }, + cssflip: { rtl: { files: { @@ -408,6 +430,7 @@ module.exports = function (grunt) { // These plugins provide necessary tasks. require('load-grunt-tasks')(grunt, {scope: 'devDependencies'}); + grunt.loadTasks('./grunt/tasks/'); require('time-grunt')(grunt); // Docs HTML validation task @@ -437,7 +460,7 @@ module.exports = function (grunt) { // CSS distribution task. grunt.registerTask('less-compile', ['less:compileCore', 'less:compileTheme']); - grunt.registerTask('dist-css', ['less-compile', 'autoprefixer', 'cssflip', 'usebanner', 'csscomb', 'less:minify', 'cssmin']); + grunt.registerTask('dist-css', ['less-compile', 'autoprefixer', 'notouch', 'cssflip', 'usebanner', 'csscomb', 'less:minify', 'cssmin']); // Docs distribution task. grunt.registerTask('dist-docs', 'copy:docs'); diff --git a/dist/css/bootstrap-rtl.css b/dist/css/bootstrap-rtl.css index 264f06737df2..f72dcb807a6a 100644 --- a/dist/css/bootstrap-rtl.css +++ b/dist/css/bootstrap-rtl.css @@ -54,7 +54,7 @@ a { } a:active, -a:hover { +.bs-no-touch a:hover { outline: 0; } @@ -1180,7 +1180,7 @@ a { text-decoration: none; } -a:hover, +.bs-no-touch a:hover, a:focus { color: #2a6496; text-decoration: underline; @@ -1443,7 +1443,7 @@ mark, color: #428bca; } -a.text-primary:hover { +.bs-no-touch a.text-primary:hover { color: #3071a9; } @@ -1451,7 +1451,7 @@ a.text-primary:hover { color: #3c763d; } -a.text-success:hover { +.bs-no-touch a.text-success:hover { color: #2b542c; } @@ -1459,7 +1459,7 @@ a.text-success:hover { color: #31708f; } -a.text-info:hover { +.bs-no-touch a.text-info:hover { color: #245269; } @@ -1467,7 +1467,7 @@ a.text-info:hover { color: #8a6d3b; } -a.text-warning:hover { +.bs-no-touch a.text-warning:hover { color: #66512c; } @@ -1475,7 +1475,7 @@ a.text-warning:hover { color: #a94442; } -a.text-danger:hover { +.bs-no-touch a.text-danger:hover { color: #843534; } @@ -1484,7 +1484,7 @@ a.text-danger:hover { background-color: #428bca; } -a.bg-primary:hover { +.bs-no-touch a.bg-primary:hover { background-color: #3071a9; } @@ -1492,7 +1492,7 @@ a.bg-primary:hover { background-color: #dff0d8; } -a.bg-success:hover { +.bs-no-touch a.bg-success:hover { background-color: #c1e2b3; } @@ -1500,7 +1500,7 @@ a.bg-success:hover { background-color: #d9edf7; } -a.bg-info:hover { +.bs-no-touch a.bg-info:hover { background-color: #afd9ee; } @@ -1508,7 +1508,7 @@ a.bg-info:hover { background-color: #fcf8e3; } -a.bg-warning:hover { +.bs-no-touch a.bg-warning:hover { background-color: #f7ecb5; } @@ -1516,7 +1516,7 @@ a.bg-warning:hover { background-color: #f2dede; } -a.bg-danger:hover { +.bs-no-touch a.bg-danger:hover { background-color: #e4b9b9; } @@ -2773,8 +2773,8 @@ th { background-color: #f9f9f9; } -.table-hover > tbody > tr:hover > td, -.table-hover > tbody > tr:hover > th { +.bs-no-touch .table-hover > tbody > tr:hover > td, +.bs-no-touch .table-hover > tbody > tr:hover > th { background-color: #f5f5f5; } @@ -2806,10 +2806,10 @@ table th[class*="col-"] { background-color: #f5f5f5; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.active:hover, +.bs-no-touch .table-hover > tbody > tr > th.active:hover, +.bs-no-touch .table-hover > tbody > tr.active:hover > td, +.bs-no-touch .table-hover > tbody > tr.active:hover > th { background-color: #e8e8e8; } @@ -2828,10 +2828,10 @@ table th[class*="col-"] { background-color: #dff0d8; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.success:hover, +.bs-no-touch .table-hover > tbody > tr > th.success:hover, +.bs-no-touch .table-hover > tbody > tr.success:hover > td, +.bs-no-touch .table-hover > tbody > tr.success:hover > th { background-color: #d0e9c6; } @@ -2850,10 +2850,10 @@ table th[class*="col-"] { background-color: #d9edf7; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.info:hover, +.bs-no-touch .table-hover > tbody > tr > th.info:hover, +.bs-no-touch .table-hover > tbody > tr.info:hover > td, +.bs-no-touch .table-hover > tbody > tr.info:hover > th { background-color: #c4e3f3; } @@ -2872,10 +2872,10 @@ table th[class*="col-"] { background-color: #fcf8e3; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.warning:hover, +.bs-no-touch .table-hover > tbody > tr > th.warning:hover, +.bs-no-touch .table-hover > tbody > tr.warning:hover > td, +.bs-no-touch .table-hover > tbody > tr.warning:hover > th { background-color: #faf2cc; } @@ -2894,10 +2894,10 @@ table th[class*="col-"] { background-color: #f2dede; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.danger:hover, +.bs-no-touch .table-hover > tbody > tr > th.danger:hover, +.bs-no-touch .table-hover > tbody > tr.danger:hover > td, +.bs-no-touch .table-hover > tbody > tr.danger:hover > th { background-color: #ebcccc; } @@ -3444,7 +3444,7 @@ select[multiple].input-lg { outline-offset: -2px; } -.btn:hover, +.bs-no-touch .btn:hover, .btn:focus { color: #333; text-decoration: none; @@ -3475,7 +3475,7 @@ fieldset[disabled] .btn { border-color: #ccc; } -.btn-default:hover, +.bs-no-touch .btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, @@ -3494,9 +3494,9 @@ fieldset[disabled] .btn { .btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, +.bs-no-touch .btn-default.disabled:hover, +.bs-no-touch .btn-default[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, @@ -3521,7 +3521,7 @@ fieldset[disabled] .btn-default.active { border-color: #357ebd; } -.btn-primary:hover, +.bs-no-touch .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, @@ -3540,9 +3540,9 @@ fieldset[disabled] .btn-default.active { .btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, +.bs-no-touch .btn-primary.disabled:hover, +.bs-no-touch .btn-primary[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, @@ -3567,7 +3567,7 @@ fieldset[disabled] .btn-primary.active { border-color: #4cae4c; } -.btn-success:hover, +.bs-no-touch .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, @@ -3586,9 +3586,9 @@ fieldset[disabled] .btn-primary.active { .btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, +.bs-no-touch .btn-success.disabled:hover, +.bs-no-touch .btn-success[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, @@ -3613,7 +3613,7 @@ fieldset[disabled] .btn-success.active { border-color: #46b8da; } -.btn-info:hover, +.bs-no-touch .btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, @@ -3632,9 +3632,9 @@ fieldset[disabled] .btn-success.active { .btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, +.bs-no-touch .btn-info.disabled:hover, +.bs-no-touch .btn-info[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, @@ -3659,7 +3659,7 @@ fieldset[disabled] .btn-info.active { border-color: #eea236; } -.btn-warning:hover, +.bs-no-touch .btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, @@ -3678,9 +3678,9 @@ fieldset[disabled] .btn-info.active { .btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, +.bs-no-touch .btn-warning.disabled:hover, +.bs-no-touch .btn-warning[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, @@ -3705,7 +3705,7 @@ fieldset[disabled] .btn-warning.active { border-color: #d43f3a; } -.btn-danger:hover, +.bs-no-touch .btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, @@ -3724,9 +3724,9 @@ fieldset[disabled] .btn-warning.active { .btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, +.bs-no-touch .btn-danger.disabled:hover, +.bs-no-touch .btn-danger[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, @@ -3762,21 +3762,21 @@ fieldset[disabled] .btn-link { } .btn-link, -.btn-link:hover, +.bs-no-touch .btn-link:hover, .btn-link:focus, .btn-link:active { border-color: transparent; } -.btn-link:hover, +.bs-no-touch .btn-link:hover, .btn-link:focus { color: #2a6496; text-decoration: underline; background-color: transparent; } -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, +.bs-no-touch .btn-link[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { color: #999; @@ -3923,7 +3923,7 @@ tbody.collapse.in { white-space: nowrap; } -.dropdown-menu > li > a:hover, +.bs-no-touch .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: #262626; text-decoration: none; @@ -3931,7 +3931,7 @@ tbody.collapse.in { } .dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, +.bs-no-touch .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { color: #fff; text-decoration: none; @@ -3940,12 +3940,12 @@ tbody.collapse.in { } .dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, +.bs-no-touch .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { color: #999; } -.dropdown-menu > .disabled > a:hover, +.bs-no-touch .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; cursor: not-allowed; @@ -4033,8 +4033,8 @@ tbody.collapse.in { float: right; } -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, +.bs-no-touch .btn-group > .btn:hover, +.bs-no-touch .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, @@ -4388,7 +4388,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { margin-right: -1px; } -.input-group-btn > .btn:hover, +.bs-no-touch .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { z-index: 2; @@ -4421,7 +4421,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { padding: 10px 15px; } -.nav > li > a:hover, +.bs-no-touch .nav > li > a:hover, .nav > li > a:focus { text-decoration: none; background-color: #eee; @@ -4431,7 +4431,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { color: #999; } -.nav > li.disabled > a:hover, +.bs-no-touch .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { color: #999; text-decoration: none; @@ -4440,7 +4440,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .nav .open > a, -.nav .open > a:hover, +.bs-no-touch .nav .open > a:hover, .nav .open > a:focus { background-color: #eee; border-color: #428bca; @@ -4473,12 +4473,12 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-radius: 4px 4px 0 0; } -.nav-tabs > li > a:hover { +.bs-no-touch .nav-tabs > li > a:hover { border-color: #eee #eee #ddd; } .nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, +.bs-no-touch .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: #555; cursor: default; @@ -4523,7 +4523,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, +.bs-no-touch .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border: 1px solid #ddd; } @@ -4535,7 +4535,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, + .bs-no-touch .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border-bottom-color: #fff; } @@ -4554,7 +4554,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .nav-pills > li.active > a, -.nav-pills > li.active > a:hover, +.bs-no-touch .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { color: #fff; background-color: #428bca; @@ -4608,7 +4608,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, +.bs-no-touch .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border: 1px solid #ddd; } @@ -4620,7 +4620,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, + .bs-no-touch .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border-bottom-color: #fff; } @@ -4775,7 +4775,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { line-height: 20px; } -.navbar-brand:hover, +.bs-no-touch .navbar-brand:hover, .navbar-brand:focus { text-decoration: none; } @@ -4852,7 +4852,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { line-height: 20px; } - .navbar-nav .open .dropdown-menu > li > a:hover, + .bs-no-touch .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { background-image: none; } @@ -5028,7 +5028,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { color: #777; } -.navbar-default .navbar-brand:hover, +.bs-no-touch .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { color: #5e5e5e; background-color: transparent; @@ -5042,21 +5042,21 @@ select[multiple].input-group-sm > .input-group-btn > .btn { color: #777; } -.navbar-default .navbar-nav > li > a:hover, +.bs-no-touch .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, +.bs-no-touch .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { color: #555; background-color: #e7e7e7; } .navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, +.bs-no-touch .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { color: #ccc; background-color: transparent; @@ -5066,7 +5066,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-color: #ddd; } -.navbar-default .navbar-toggle:hover, +.bs-no-touch .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { background-color: #ddd; } @@ -5081,7 +5081,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, +.bs-no-touch .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { color: #555; background-color: #e7e7e7; @@ -5092,21 +5092,21 @@ select[multiple].input-group-sm > .input-group-btn > .btn { color: #777; } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .bs-no-touch .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .bs-no-touch .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { color: #555; background-color: #e7e7e7; } .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .bs-no-touch .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #ccc; background-color: transparent; @@ -5117,7 +5117,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { color: #777; } -.navbar-default .navbar-link:hover { +.bs-no-touch .navbar-default .navbar-link:hover { color: #333; } @@ -5125,13 +5125,13 @@ select[multiple].input-group-sm > .input-group-btn > .btn { color: #777; } -.navbar-default .btn-link:hover, +.bs-no-touch .navbar-default .btn-link:hover, .navbar-default .btn-link:focus { color: #333; } -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, +.bs-no-touch .navbar-default .btn-link[disabled]:hover, +.bs-no-touch fieldset[disabled] .navbar-default .btn-link:hover, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:focus { color: #ccc; @@ -5146,7 +5146,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { color: #999; } -.navbar-inverse .navbar-brand:hover, +.bs-no-touch .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { color: #fff; background-color: transparent; @@ -5160,21 +5160,21 @@ fieldset[disabled] .navbar-default .btn-link:focus { color: #999; } -.navbar-inverse .navbar-nav > li > a:hover, +.bs-no-touch .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, +.bs-no-touch .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, +.bs-no-touch .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { color: #444; background-color: transparent; @@ -5184,7 +5184,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { border-color: #333; } -.navbar-inverse .navbar-toggle:hover, +.bs-no-touch .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { background-color: #333; } @@ -5199,7 +5199,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { } .navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, +.bs-no-touch .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { color: #fff; background-color: #080808; @@ -5218,21 +5218,21 @@ fieldset[disabled] .navbar-default .btn-link:focus { color: #999; } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .bs-no-touch .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .bs-no-touch .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .bs-no-touch .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #444; background-color: transparent; @@ -5243,7 +5243,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { color: #999; } -.navbar-inverse .navbar-link:hover { +.bs-no-touch .navbar-inverse .navbar-link:hover { color: #fff; } @@ -5251,13 +5251,13 @@ fieldset[disabled] .navbar-default .btn-link:focus { color: #999; } -.navbar-inverse .btn-link:hover, +.bs-no-touch .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { color: #fff; } -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, +.bs-no-touch .navbar-inverse .btn-link[disabled]:hover, +.bs-no-touch fieldset[disabled] .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:focus { color: #444; @@ -5322,8 +5322,8 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { border-bottom-left-radius: 4px; } -.pagination > li > a:hover, -.pagination > li > span:hover, +.bs-no-touch .pagination > li > a:hover, +.bs-no-touch .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { color: #2a6496; @@ -5333,8 +5333,8 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pagination > .active > a, .pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, +.bs-no-touch .pagination > .active > a:hover, +.bs-no-touch .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { z-index: 2; @@ -5345,10 +5345,10 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { } .pagination > .disabled > span, -.pagination > .disabled > span:hover, +.bs-no-touch .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, -.pagination > .disabled > a:hover, +.bs-no-touch .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { color: #999; cursor: not-allowed; @@ -5412,7 +5412,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { border-radius: 15px; } -.pager li > a:hover, +.bs-no-touch .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #eee; @@ -5429,7 +5429,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { } .pager .disabled > a, -.pager .disabled > a:hover, +.bs-no-touch .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { color: #999; @@ -5450,7 +5450,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { border-radius: .25em; } -a.label:hover, +.bs-no-touch a.label:hover, a.label:focus { color: #fff; text-decoration: none; @@ -5470,7 +5470,7 @@ a.label:focus { background-color: #999; } -.label-default[href]:hover, +.bs-no-touch .label-default[href]:hover, .label-default[href]:focus { background-color: #808080; } @@ -5479,7 +5479,7 @@ a.label:focus { background-color: #428bca; } -.label-primary[href]:hover, +.bs-no-touch .label-primary[href]:hover, .label-primary[href]:focus { background-color: #3071a9; } @@ -5488,7 +5488,7 @@ a.label:focus { background-color: #5cb85c; } -.label-success[href]:hover, +.bs-no-touch .label-success[href]:hover, .label-success[href]:focus { background-color: #449d44; } @@ -5497,7 +5497,7 @@ a.label:focus { background-color: #5bc0de; } -.label-info[href]:hover, +.bs-no-touch .label-info[href]:hover, .label-info[href]:focus { background-color: #31b0d5; } @@ -5506,7 +5506,7 @@ a.label:focus { background-color: #f0ad4e; } -.label-warning[href]:hover, +.bs-no-touch .label-warning[href]:hover, .label-warning[href]:focus { background-color: #ec971f; } @@ -5515,7 +5515,7 @@ a.label:focus { background-color: #d9534f; } -.label-danger[href]:hover, +.bs-no-touch .label-danger[href]:hover, .label-danger[href]:focus { background-color: #c9302c; } @@ -5549,7 +5549,7 @@ a.label:focus { padding: 1px 5px; } -a.badge:hover, +.bs-no-touch a.badge:hover, a.badge:focus { color: #fff; text-decoration: none; @@ -5632,7 +5632,7 @@ a.list-group-item.active > .badge, margin-left: auto; } -a.thumbnail:hover, +.bs-no-touch a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { border-color: #428bca; @@ -5936,7 +5936,7 @@ a.list-group-item .list-group-item-heading { color: #333; } -a.list-group-item:hover, +.bs-no-touch a.list-group-item:hover, a.list-group-item:focus { color: #555; text-decoration: none; @@ -5944,26 +5944,26 @@ a.list-group-item:focus { } .list-group-item.disabled, -.list-group-item.disabled:hover, +.bs-no-touch .list-group-item.disabled:hover, .list-group-item.disabled:focus { color: #999; background-color: #eee; } .list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, +.bs-no-touch .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading { color: inherit; } .list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, +.bs-no-touch .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { color: #999; } .list-group-item.active, -.list-group-item.active:hover, +.bs-no-touch .list-group-item.active:hover, .list-group-item.active:focus { z-index: 2; color: #fff; @@ -5972,13 +5972,13 @@ a.list-group-item:focus { } .list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, +.bs-no-touch .list-group-item.active:hover .list-group-item-heading, .list-group-item.active:focus .list-group-item-heading { color: inherit; } .list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, +.bs-no-touch .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text { color: #e1edf7; } @@ -5996,14 +5996,14 @@ a.list-group-item-success .list-group-item-heading { color: inherit; } -a.list-group-item-success:hover, +.bs-no-touch a.list-group-item-success:hover, a.list-group-item-success:focus { color: #3c763d; background-color: #d0e9c6; } a.list-group-item-success.active, -a.list-group-item-success.active:hover, +.bs-no-touch a.list-group-item-success.active:hover, a.list-group-item-success.active:focus { color: #fff; background-color: #3c763d; @@ -6023,14 +6023,14 @@ a.list-group-item-info .list-group-item-heading { color: inherit; } -a.list-group-item-info:hover, +.bs-no-touch a.list-group-item-info:hover, a.list-group-item-info:focus { color: #31708f; background-color: #c4e3f3; } a.list-group-item-info.active, -a.list-group-item-info.active:hover, +.bs-no-touch a.list-group-item-info.active:hover, a.list-group-item-info.active:focus { color: #fff; background-color: #31708f; @@ -6050,14 +6050,14 @@ a.list-group-item-warning .list-group-item-heading { color: inherit; } -a.list-group-item-warning:hover, +.bs-no-touch a.list-group-item-warning:hover, a.list-group-item-warning:focus { color: #8a6d3b; background-color: #faf2cc; } a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, +.bs-no-touch a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus { color: #fff; background-color: #8a6d3b; @@ -6077,14 +6077,14 @@ a.list-group-item-danger .list-group-item-heading { color: inherit; } -a.list-group-item-danger:hover, +.bs-no-touch a.list-group-item-danger:hover, a.list-group-item-danger:focus { color: #a94442; background-color: #ebcccc; } a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, +.bs-no-touch a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus { color: #fff; background-color: #a94442; @@ -6505,7 +6505,7 @@ a.list-group-item-danger.active:focus { opacity: .2; } -.close:hover, +.bs-no-touch .close:hover, .close:focus { color: #000; text-decoration: none; @@ -7014,7 +7014,7 @@ button.close { background-repeat: repeat-x; } -.carousel-control:hover, +.bs-no-touch .carousel-control:hover, .carousel-control:focus { color: #fff; text-decoration: none; diff --git a/dist/css/bootstrap-theme.css b/dist/css/bootstrap-theme.css index e9d9a17ebaf9..99f3c6c4e0c2 100644 --- a/dist/css/bootstrap-theme.css +++ b/dist/css/bootstrap-theme.css @@ -45,7 +45,7 @@ border-color: #dbdbdb; border-color: #ccc; } -.btn-default:hover, +.bs-no-touch .btn-default:hover, .btn-default:focus { background-color: #e0e0e0; background-position: 0 -15px; @@ -65,7 +65,7 @@ background-repeat: repeat-x; border-color: #2b669a; } -.btn-primary:hover, +.bs-no-touch .btn-primary:hover, .btn-primary:focus { background-color: #2d6ca2; background-position: 0 -15px; @@ -85,7 +85,7 @@ background-repeat: repeat-x; border-color: #3e8f3e; } -.btn-success:hover, +.bs-no-touch .btn-success:hover, .btn-success:focus { background-color: #419641; background-position: 0 -15px; @@ -105,7 +105,7 @@ background-repeat: repeat-x; border-color: #28a4c9; } -.btn-info:hover, +.bs-no-touch .btn-info:hover, .btn-info:focus { background-color: #2aabd2; background-position: 0 -15px; @@ -125,7 +125,7 @@ background-repeat: repeat-x; border-color: #e38d13; } -.btn-warning:hover, +.bs-no-touch .btn-warning:hover, .btn-warning:focus { background-color: #eb9316; background-position: 0 -15px; @@ -145,7 +145,7 @@ background-repeat: repeat-x; border-color: #b92c28; } -.btn-danger:hover, +.bs-no-touch .btn-danger:hover, .btn-danger:focus { background-color: #c12e2a; background-position: 0 -15px; @@ -160,7 +160,7 @@ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); box-shadow: 0 1px 2px rgba(0, 0, 0, .075); } -.dropdown-menu > li > a:hover, +.bs-no-touch .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { background-color: #e8e8e8; background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); @@ -171,7 +171,7 @@ background-repeat: repeat-x; } .dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, +.bs-no-touch .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { background-color: #357ebd; background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); @@ -330,7 +330,7 @@ box-shadow: 0 1px 2px rgba(0, 0, 0, .075); } .list-group-item.active, -.list-group-item.active:hover, +.bs-no-touch .list-group-item.active:hover, .list-group-item.active:focus { text-shadow: 0 -1px 0 #3071a9; background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%); diff --git a/dist/css/bootstrap.css b/dist/css/bootstrap.css index 4a7a28fb0040..eea8fc4cb621 100644 --- a/dist/css/bootstrap.css +++ b/dist/css/bootstrap.css @@ -46,7 +46,7 @@ a { background: transparent; } a:active, -a:hover { +.bs-no-touch a:hover { outline: 0; } abbr[title] { @@ -913,7 +913,7 @@ a { color: #428bca; text-decoration: none; } -a:hover, +.bs-no-touch a:hover, a:focus { color: #2a6496; text-decoration: underline; @@ -1141,62 +1141,62 @@ mark, .text-primary { color: #428bca; } -a.text-primary:hover { +.bs-no-touch a.text-primary:hover { color: #3071a9; } .text-success { color: #3c763d; } -a.text-success:hover { +.bs-no-touch a.text-success:hover { color: #2b542c; } .text-info { color: #31708f; } -a.text-info:hover { +.bs-no-touch a.text-info:hover { color: #245269; } .text-warning { color: #8a6d3b; } -a.text-warning:hover { +.bs-no-touch a.text-warning:hover { color: #66512c; } .text-danger { color: #a94442; } -a.text-danger:hover { +.bs-no-touch a.text-danger:hover { color: #843534; } .bg-primary { color: #fff; background-color: #428bca; } -a.bg-primary:hover { +.bs-no-touch a.bg-primary:hover { background-color: #3071a9; } .bg-success { background-color: #dff0d8; } -a.bg-success:hover { +.bs-no-touch a.bg-success:hover { background-color: #c1e2b3; } .bg-info { background-color: #d9edf7; } -a.bg-info:hover { +.bs-no-touch a.bg-info:hover { background-color: #afd9ee; } .bg-warning { background-color: #fcf8e3; } -a.bg-warning:hover { +.bs-no-touch a.bg-warning:hover { background-color: #f7ecb5; } .bg-danger { background-color: #f2dede; } -a.bg-danger:hover { +.bs-no-touch a.bg-danger:hover { background-color: #e4b9b9; } .page-header { @@ -2104,8 +2104,8 @@ th { .table-striped > tbody > tr:nth-child(odd) > th { background-color: #f9f9f9; } -.table-hover > tbody > tr:hover > td, -.table-hover > tbody > tr:hover > th { +.bs-no-touch .table-hover > tbody > tr:hover > td, +.bs-no-touch .table-hover > tbody > tr:hover > th { background-color: #f5f5f5; } table col[class*="col-"] { @@ -2133,10 +2133,10 @@ table th[class*="col-"] { .table > tfoot > tr.active > th { background-color: #f5f5f5; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.active:hover, +.bs-no-touch .table-hover > tbody > tr > th.active:hover, +.bs-no-touch .table-hover > tbody > tr.active:hover > td, +.bs-no-touch .table-hover > tbody > tr.active:hover > th { background-color: #e8e8e8; } .table > thead > tr > td.success, @@ -2153,10 +2153,10 @@ table th[class*="col-"] { .table > tfoot > tr.success > th { background-color: #dff0d8; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.success:hover, +.bs-no-touch .table-hover > tbody > tr > th.success:hover, +.bs-no-touch .table-hover > tbody > tr.success:hover > td, +.bs-no-touch .table-hover > tbody > tr.success:hover > th { background-color: #d0e9c6; } .table > thead > tr > td.info, @@ -2173,10 +2173,10 @@ table th[class*="col-"] { .table > tfoot > tr.info > th { background-color: #d9edf7; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.info:hover, +.bs-no-touch .table-hover > tbody > tr > th.info:hover, +.bs-no-touch .table-hover > tbody > tr.info:hover > td, +.bs-no-touch .table-hover > tbody > tr.info:hover > th { background-color: #c4e3f3; } .table > thead > tr > td.warning, @@ -2193,10 +2193,10 @@ table th[class*="col-"] { .table > tfoot > tr.warning > th { background-color: #fcf8e3; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.warning:hover, +.bs-no-touch .table-hover > tbody > tr > th.warning:hover, +.bs-no-touch .table-hover > tbody > tr.warning:hover > td, +.bs-no-touch .table-hover > tbody > tr.warning:hover > th { background-color: #faf2cc; } .table > thead > tr > td.danger, @@ -2213,10 +2213,10 @@ table th[class*="col-"] { .table > tfoot > tr.danger > th { background-color: #f2dede; } -.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 { +.bs-no-touch .table-hover > tbody > tr > td.danger:hover, +.bs-no-touch .table-hover > tbody > tr > th.danger:hover, +.bs-no-touch .table-hover > tbody > tr.danger:hover > td, +.bs-no-touch .table-hover > tbody > tr.danger:hover > th { background-color: #ebcccc; } @media screen and (max-width: 767px) { @@ -2681,7 +2681,7 @@ select[multiple].input-lg { outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } -.btn:hover, +.bs-no-touch .btn:hover, .btn:focus { color: #333; text-decoration: none; @@ -2708,7 +2708,7 @@ fieldset[disabled] .btn { background-color: #fff; border-color: #ccc; } -.btn-default:hover, +.bs-no-touch .btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, @@ -2725,9 +2725,9 @@ fieldset[disabled] .btn { .btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, +.bs-no-touch .btn-default.disabled:hover, +.bs-no-touch .btn-default[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, @@ -2749,7 +2749,7 @@ fieldset[disabled] .btn-default.active { background-color: #428bca; border-color: #357ebd; } -.btn-primary:hover, +.bs-no-touch .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, @@ -2766,9 +2766,9 @@ fieldset[disabled] .btn-default.active { .btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, +.bs-no-touch .btn-primary.disabled:hover, +.bs-no-touch .btn-primary[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, @@ -2790,7 +2790,7 @@ fieldset[disabled] .btn-primary.active { background-color: #5cb85c; border-color: #4cae4c; } -.btn-success:hover, +.bs-no-touch .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, @@ -2807,9 +2807,9 @@ fieldset[disabled] .btn-primary.active { .btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, +.bs-no-touch .btn-success.disabled:hover, +.bs-no-touch .btn-success[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, @@ -2831,7 +2831,7 @@ fieldset[disabled] .btn-success.active { background-color: #5bc0de; border-color: #46b8da; } -.btn-info:hover, +.bs-no-touch .btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, @@ -2848,9 +2848,9 @@ fieldset[disabled] .btn-success.active { .btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, +.bs-no-touch .btn-info.disabled:hover, +.bs-no-touch .btn-info[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, @@ -2872,7 +2872,7 @@ fieldset[disabled] .btn-info.active { background-color: #f0ad4e; border-color: #eea236; } -.btn-warning:hover, +.bs-no-touch .btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, @@ -2889,9 +2889,9 @@ fieldset[disabled] .btn-info.active { .btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, +.bs-no-touch .btn-warning.disabled:hover, +.bs-no-touch .btn-warning[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, @@ -2913,7 +2913,7 @@ fieldset[disabled] .btn-warning.active { background-color: #d9534f; border-color: #d43f3a; } -.btn-danger:hover, +.bs-no-touch .btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, @@ -2930,9 +2930,9 @@ fieldset[disabled] .btn-warning.active { .btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, +.bs-no-touch .btn-danger.disabled:hover, +.bs-no-touch .btn-danger[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, @@ -2964,19 +2964,19 @@ fieldset[disabled] .btn-link { box-shadow: none; } .btn-link, -.btn-link:hover, +.bs-no-touch .btn-link:hover, .btn-link:focus, .btn-link:active { border-color: transparent; } -.btn-link:hover, +.bs-no-touch .btn-link:hover, .btn-link:focus { color: #2a6496; text-decoration: underline; background-color: transparent; } -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, +.bs-no-touch .btn-link[disabled]:hover, +.bs-no-touch fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { color: #999; @@ -3102,14 +3102,14 @@ tbody.collapse.in { color: #333; white-space: nowrap; } -.dropdown-menu > li > a:hover, +.bs-no-touch .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: #262626; text-decoration: none; background-color: #f5f5f5; } .dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, +.bs-no-touch .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { color: #fff; text-decoration: none; @@ -3117,11 +3117,11 @@ tbody.collapse.in { outline: 0; } .dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, +.bs-no-touch .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { color: #999; } -.dropdown-menu > .disabled > a:hover, +.bs-no-touch .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; cursor: not-allowed; @@ -3195,8 +3195,8 @@ tbody.collapse.in { position: relative; float: left; } -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, +.bs-no-touch .btn-group > .btn:hover, +.bs-no-touch .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, @@ -3492,7 +3492,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .input-group-btn > .btn + .btn { margin-left: -1px; } -.input-group-btn > .btn:hover, +.bs-no-touch .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { z-index: 2; @@ -3519,7 +3519,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { display: block; padding: 10px 15px; } -.nav > li > a:hover, +.bs-no-touch .nav > li > a:hover, .nav > li > a:focus { text-decoration: none; background-color: #eee; @@ -3527,7 +3527,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .nav > li.disabled > a { color: #999; } -.nav > li.disabled > a:hover, +.bs-no-touch .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { color: #999; text-decoration: none; @@ -3535,7 +3535,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { background-color: transparent; } .nav .open > a, -.nav .open > a:hover, +.bs-no-touch .nav .open > a:hover, .nav .open > a:focus { background-color: #eee; border-color: #428bca; @@ -3562,11 +3562,11 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border: 1px solid transparent; border-radius: 4px 4px 0 0; } -.nav-tabs > li > a:hover { +.bs-no-touch .nav-tabs > li > a:hover { border-color: #eee #eee #ddd; } .nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, +.bs-no-touch .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: #555; cursor: default; @@ -3603,7 +3603,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-radius: 4px; } .nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, +.bs-no-touch .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border: 1px solid #ddd; } @@ -3613,7 +3613,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-radius: 4px 4px 0 0; } .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, + .bs-no-touch .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border-bottom-color: #fff; } @@ -3628,7 +3628,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { margin-left: 2px; } .nav-pills > li.active > a, -.nav-pills > li.active > a:hover, +.bs-no-touch .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { color: #fff; background-color: #428bca; @@ -3671,7 +3671,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-radius: 4px; } .nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, +.bs-no-touch .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border: 1px solid #ddd; } @@ -3681,7 +3681,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-radius: 4px 4px 0 0; } .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, + .bs-no-touch .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border-bottom-color: #fff; } @@ -3812,7 +3812,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { font-size: 18px; line-height: 20px; } -.navbar-brand:hover, +.bs-no-touch .navbar-brand:hover, .navbar-brand:focus { text-decoration: none; } @@ -3877,7 +3877,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-nav .open .dropdown-menu > li > a { line-height: 20px; } - .navbar-nav .open .dropdown-menu > li > a:hover, + .bs-no-touch .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { background-image: none; } @@ -4023,7 +4023,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-default .navbar-brand { color: #777; } -.navbar-default .navbar-brand:hover, +.bs-no-touch .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { color: #5e5e5e; background-color: transparent; @@ -4034,19 +4034,19 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-default .navbar-nav > li > a { color: #777; } -.navbar-default .navbar-nav > li > a:hover, +.bs-no-touch .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, +.bs-no-touch .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { color: #555; background-color: #e7e7e7; } .navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, +.bs-no-touch .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { color: #ccc; background-color: transparent; @@ -4054,7 +4054,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-default .navbar-toggle { border-color: #ddd; } -.navbar-default .navbar-toggle:hover, +.bs-no-touch .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { background-color: #ddd; } @@ -4066,7 +4066,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-color: #e7e7e7; } .navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, +.bs-no-touch .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { color: #555; background-color: #e7e7e7; @@ -4075,19 +4075,19 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: #777; } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .bs-no-touch .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .bs-no-touch .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { color: #555; background-color: #e7e7e7; } .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .bs-no-touch .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #ccc; background-color: transparent; @@ -4096,18 +4096,18 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-default .navbar-link { color: #777; } -.navbar-default .navbar-link:hover { +.bs-no-touch .navbar-default .navbar-link:hover { color: #333; } .navbar-default .btn-link { color: #777; } -.navbar-default .btn-link:hover, +.bs-no-touch .navbar-default .btn-link:hover, .navbar-default .btn-link:focus { color: #333; } -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, +.bs-no-touch .navbar-default .btn-link[disabled]:hover, +.bs-no-touch fieldset[disabled] .navbar-default .btn-link:hover, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:focus { color: #ccc; @@ -4119,7 +4119,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { .navbar-inverse .navbar-brand { color: #999; } -.navbar-inverse .navbar-brand:hover, +.bs-no-touch .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { color: #fff; background-color: transparent; @@ -4130,19 +4130,19 @@ fieldset[disabled] .navbar-default .btn-link:focus { .navbar-inverse .navbar-nav > li > a { color: #999; } -.navbar-inverse .navbar-nav > li > a:hover, +.bs-no-touch .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, +.bs-no-touch .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, +.bs-no-touch .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { color: #444; background-color: transparent; @@ -4150,7 +4150,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { .navbar-inverse .navbar-toggle { border-color: #333; } -.navbar-inverse .navbar-toggle:hover, +.bs-no-touch .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { background-color: #333; } @@ -4162,7 +4162,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { border-color: #101010; } .navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, +.bs-no-touch .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { color: #fff; background-color: #080808; @@ -4177,19 +4177,19 @@ fieldset[disabled] .navbar-default .btn-link:focus { .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { color: #999; } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .bs-no-touch .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .bs-no-touch .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .bs-no-touch .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #444; background-color: transparent; @@ -4198,18 +4198,18 @@ fieldset[disabled] .navbar-default .btn-link:focus { .navbar-inverse .navbar-link { color: #999; } -.navbar-inverse .navbar-link:hover { +.bs-no-touch .navbar-inverse .navbar-link:hover { color: #fff; } .navbar-inverse .btn-link { color: #999; } -.navbar-inverse .btn-link:hover, +.bs-no-touch .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { color: #fff; } -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, +.bs-no-touch .navbar-inverse .btn-link[disabled]:hover, +.bs-no-touch fieldset[disabled] .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:focus { color: #444; @@ -4264,8 +4264,8 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } -.pagination > li > a:hover, -.pagination > li > span:hover, +.bs-no-touch .pagination > li > a:hover, +.bs-no-touch .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { color: #2a6496; @@ -4274,8 +4274,8 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { } .pagination > .active > a, .pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, +.bs-no-touch .pagination > .active > a:hover, +.bs-no-touch .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { z-index: 2; @@ -4285,10 +4285,10 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { border-color: #428bca; } .pagination > .disabled > span, -.pagination > .disabled > span:hover, +.bs-no-touch .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, -.pagination > .disabled > a:hover, +.bs-no-touch .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { color: #999; cursor: not-allowed; @@ -4342,7 +4342,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { border: 1px solid #ddd; border-radius: 15px; } -.pager li > a:hover, +.bs-no-touch .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #eee; @@ -4356,7 +4356,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { float: left; } .pager .disabled > a, -.pager .disabled > a:hover, +.bs-no-touch .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { color: #999; @@ -4375,7 +4375,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { vertical-align: baseline; border-radius: .25em; } -a.label:hover, +.bs-no-touch a.label:hover, a.label:focus { color: #fff; text-decoration: none; @@ -4391,42 +4391,42 @@ a.label:focus { .label-default { background-color: #999; } -.label-default[href]:hover, +.bs-no-touch .label-default[href]:hover, .label-default[href]:focus { background-color: #808080; } .label-primary { background-color: #428bca; } -.label-primary[href]:hover, +.bs-no-touch .label-primary[href]:hover, .label-primary[href]:focus { background-color: #3071a9; } .label-success { background-color: #5cb85c; } -.label-success[href]:hover, +.bs-no-touch .label-success[href]:hover, .label-success[href]:focus { background-color: #449d44; } .label-info { background-color: #5bc0de; } -.label-info[href]:hover, +.bs-no-touch .label-info[href]:hover, .label-info[href]:focus { background-color: #31b0d5; } .label-warning { background-color: #f0ad4e; } -.label-warning[href]:hover, +.bs-no-touch .label-warning[href]:hover, .label-warning[href]:focus { background-color: #ec971f; } .label-danger { background-color: #d9534f; } -.label-danger[href]:hover, +.bs-no-touch .label-danger[href]:hover, .label-danger[href]:focus { background-color: #c9302c; } @@ -4455,7 +4455,7 @@ a.label:focus { top: 0; padding: 1px 5px; } -a.badge:hover, +.bs-no-touch a.badge:hover, a.badge:focus { color: #fff; text-decoration: none; @@ -4524,7 +4524,7 @@ a.list-group-item.active > .badge, margin-right: auto; margin-left: auto; } -a.thumbnail:hover, +.bs-no-touch a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { border-color: #428bca; @@ -4771,30 +4771,30 @@ a.list-group-item { a.list-group-item .list-group-item-heading { color: #333; } -a.list-group-item:hover, +.bs-no-touch a.list-group-item:hover, a.list-group-item:focus { color: #555; text-decoration: none; background-color: #f5f5f5; } .list-group-item.disabled, -.list-group-item.disabled:hover, +.bs-no-touch .list-group-item.disabled:hover, .list-group-item.disabled:focus { color: #999; background-color: #eee; } .list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, +.bs-no-touch .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading { color: inherit; } .list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, +.bs-no-touch .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { color: #999; } .list-group-item.active, -.list-group-item.active:hover, +.bs-no-touch .list-group-item.active:hover, .list-group-item.active:focus { z-index: 2; color: #fff; @@ -4802,12 +4802,12 @@ a.list-group-item:focus { border-color: #428bca; } .list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, +.bs-no-touch .list-group-item.active:hover .list-group-item-heading, .list-group-item.active:focus .list-group-item-heading { color: inherit; } .list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, +.bs-no-touch .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text { color: #e1edf7; } @@ -4821,13 +4821,13 @@ a.list-group-item-success { a.list-group-item-success .list-group-item-heading { color: inherit; } -a.list-group-item-success:hover, +.bs-no-touch a.list-group-item-success:hover, a.list-group-item-success:focus { color: #3c763d; background-color: #d0e9c6; } a.list-group-item-success.active, -a.list-group-item-success.active:hover, +.bs-no-touch a.list-group-item-success.active:hover, a.list-group-item-success.active:focus { color: #fff; background-color: #3c763d; @@ -4843,13 +4843,13 @@ a.list-group-item-info { a.list-group-item-info .list-group-item-heading { color: inherit; } -a.list-group-item-info:hover, +.bs-no-touch a.list-group-item-info:hover, a.list-group-item-info:focus { color: #31708f; background-color: #c4e3f3; } a.list-group-item-info.active, -a.list-group-item-info.active:hover, +.bs-no-touch a.list-group-item-info.active:hover, a.list-group-item-info.active:focus { color: #fff; background-color: #31708f; @@ -4865,13 +4865,13 @@ a.list-group-item-warning { a.list-group-item-warning .list-group-item-heading { color: inherit; } -a.list-group-item-warning:hover, +.bs-no-touch a.list-group-item-warning:hover, a.list-group-item-warning:focus { color: #8a6d3b; background-color: #faf2cc; } a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, +.bs-no-touch a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus { color: #fff; background-color: #8a6d3b; @@ -4887,13 +4887,13 @@ a.list-group-item-danger { a.list-group-item-danger .list-group-item-heading { color: inherit; } -a.list-group-item-danger:hover, +.bs-no-touch a.list-group-item-danger:hover, a.list-group-item-danger:focus { color: #a94442; background-color: #ebcccc; } a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, +.bs-no-touch a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus { color: #fff; background-color: #a94442; @@ -5244,7 +5244,7 @@ a.list-group-item-danger.active:focus { filter: alpha(opacity=20); opacity: .2; } -.close:hover, +.bs-no-touch .close:hover, .close:focus { color: #000; text-decoration: none; @@ -5680,7 +5680,7 @@ button.close { filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); background-repeat: repeat-x; } -.carousel-control:hover, +.bs-no-touch .carousel-control:hover, .carousel-control:focus { color: #fff; text-decoration: none; diff --git a/docs/assets/css/src/docs.css b/docs/assets/css/src/docs.css index 0957598996a6..6413fc61677e 100644 --- a/docs/assets/css/src/docs.css +++ b/docs/assets/css/src/docs.css @@ -55,7 +55,7 @@ body { background-color: transparent; border-color: #563d7c; } -.btn-outline:hover, +.bs-no-touch .btn-outline:hover, .btn-outline:focus, .btn-outline:active { color: #fff; @@ -69,7 +69,7 @@ body { background-color: transparent; border-color: #cdbfe3; } -.btn-outline-inverse:hover, +.bs-no-touch .btn-outline-inverse:hover, .btn-outline-inverse:focus, .btn-outline-inverse:active { color: #563d7c; @@ -129,9 +129,9 @@ body { font-weight: 500; color: #563d7c; } -.bs-docs-nav .navbar-nav > li > a:hover, +.bs-no-touch .bs-docs-nav .navbar-nav > li > a:hover, .bs-docs-nav .navbar-nav > .active > a, -.bs-docs-nav .navbar-nav > .active > a:hover { +.bs-no-touch .bs-docs-nav .navbar-nav > .active > a:hover { color: #463265; background-color: #f9f9f9; } @@ -141,7 +141,7 @@ body { .bs-docs-nav .navbar-header .navbar-toggle { border-color: #fff; } -.bs-docs-nav .navbar-header .navbar-toggle:hover, +.bs-no-touch .bs-docs-nav .navbar-header .navbar-toggle:hover, .bs-docs-nav .navbar-header .navbar-toggle:focus { background-color: #f9f9f9; border-color: #f9f9f9; @@ -458,7 +458,7 @@ body { margin-bottom: 20px; color: #333; } -.bs-docs-featurette-img:hover { +.bs-no-touch .bs-docs-featurette-img:hover { color: #428bca; text-decoration: none; } @@ -541,7 +541,7 @@ body { font-weight: 500; color: #999; } -.bs-docs-sidebar .nav > li > a:hover, +.bs-no-touch .bs-docs-sidebar .nav > li > a:hover, .bs-docs-sidebar .nav > li > a:focus { padding-left: 19px; color: #563d7c; @@ -550,7 +550,7 @@ body { border-left: 1px solid #563d7c; } .bs-docs-sidebar .nav > .active > a, -.bs-docs-sidebar .nav > .active:hover > a, +.bs-no-touch .bs-docs-sidebar .nav > .active:hover > a, .bs-docs-sidebar .nav > .active:focus > a { padding-left: 18px; font-weight: bold; @@ -571,12 +571,12 @@ body { font-size: 12px; font-weight: normal; } -.bs-docs-sidebar .nav .nav > li > a:hover, +.bs-no-touch .bs-docs-sidebar .nav .nav > li > a:hover, .bs-docs-sidebar .nav .nav > li > a:focus { padding-left: 29px; } .bs-docs-sidebar .nav .nav > .active > a, -.bs-docs-sidebar .nav .nav > .active:hover > a, +.bs-no-touch .bs-docs-sidebar .nav .nav > .active:hover > a, .bs-docs-sidebar .nav .nav > .active:focus > a { padding-left: 28px; font-weight: 500; @@ -592,7 +592,7 @@ body { font-weight: 500; color: #999; } -.back-to-top:hover { +.bs-no-touch .back-to-top:hover { color: #563d7c; text-decoration: none; } @@ -786,7 +786,7 @@ h1[id] { line-height: 32px; color: #555; } -.bs-team .team-member:hover { +.bs-no-touch .bs-team .team-member:hover { color: #333; text-decoration: none; } @@ -1244,7 +1244,7 @@ h1[id] { text-align: center; word-wrap: break-word; /* Help out IE10+ with class names */ } -.bs-glyphicons li:hover { +.bs-no-touch .bs-glyphicons li:hover { color: #fff; background-color: #563d7c; } diff --git a/docs/examples/blog/blog.css b/docs/examples/blog/blog.css index 9d7298160ecc..711018d16c7c 100644 --- a/docs/examples/blog/blog.css +++ b/docs/examples/blog/blog.css @@ -49,7 +49,7 @@ h6, .h6 { font-weight: 500; color: #cdddeb; } -.blog-nav-item:hover, +.bs-no-touch .blog-nav-item:hover, .blog-nav-item:focus { color: #fff; text-decoration: none; diff --git a/docs/examples/cover/cover.css b/docs/examples/cover/cover.css index aee9449e6c92..232872f2d6e6 100644 --- a/docs/examples/cover/cover.css +++ b/docs/examples/cover/cover.css @@ -5,13 +5,13 @@ /* Links */ a, a:focus, -a:hover { +.bs-no-touch a:hover { color: #fff; } /* Custom default button */ .btn-default, -.btn-default:hover, +.bs-no-touch .btn-default:hover, .btn-default:focus { color: #333; text-shadow: none; /* Prevent inheritence from `body` */ @@ -82,14 +82,14 @@ body { color: rgba(255,255,255,.75); border-bottom: 2px solid transparent; } -.masthead-nav > li > a:hover, +.bs-no-touch .masthead-nav > li > a:hover, .masthead-nav > li > a:focus { background-color: transparent; border-bottom-color: #a9a9a9; border-bottom-color: rgba(255,255,255,.25); } .masthead-nav > .active > a, -.masthead-nav > .active > a:hover, +.bs-no-touch .masthead-nav > .active > a:hover, .masthead-nav > .active > a:focus { color: #fff; border-bottom-color: #fff; diff --git a/docs/examples/dashboard/dashboard.css b/docs/examples/dashboard/dashboard.css index e0e3632b89a3..cb39f57b60ae 100644 --- a/docs/examples/dashboard/dashboard.css +++ b/docs/examples/dashboard/dashboard.css @@ -60,7 +60,7 @@ body { padding-left: 20px; } .nav-sidebar > .active > a, -.nav-sidebar > .active > a:hover, +.bs-no-touch .nav-sidebar > .active > a:hover, .nav-sidebar > .active > a:focus { color: #fff; background-color: #428bca; diff --git a/docs/examples/justified-nav/justified-nav.css b/docs/examples/justified-nav/justified-nav.css index fd71b43a944d..3fa93a48e36c 100644 --- a/docs/examples/justified-nav/justified-nav.css +++ b/docs/examples/justified-nav/justified-nav.css @@ -43,7 +43,7 @@ body { border-bottom: 1px solid #d5d5d5; } .nav-justified > .active > a, -.nav-justified > .active > a:hover, +.bs-no-touch .nav-justified > .active > a:hover, .nav-justified > .active > a:focus { background-color: #ddd; background-image: none; diff --git a/docs/examples/non-responsive/non-responsive.css b/docs/examples/non-responsive/non-responsive.css index c36e82e381eb..4428f534ec3f 100644 --- a/docs/examples/non-responsive/non-responsive.css +++ b/docs/examples/non-responsive/non-responsive.css @@ -109,16 +109,16 @@ body { .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: #333; } -.navbar .navbar-nav .open .dropdown-menu > li > a:hover, +.bs-no-touch .navbar .navbar-nav .open .dropdown-menu > li > a:hover, .navbar .navbar-nav .open .dropdown-menu > li > a:focus, .navbar .navbar-nav .open .dropdown-menu > .active > a, -.navbar .navbar-nav .open .dropdown-menu > .active > a:hover, +.bs-no-touch .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { color: #fff !important; background-color: #428bca !important; } .navbar .navbar-nav .open .dropdown-menu > .disabled > a, -.navbar .navbar-nav .open .dropdown-menu > .disabled > a:hover, +.bs-no-touch .navbar .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #999 !important; background-color: transparent !important; diff --git a/grunt/tasks/no_touch.js b/grunt/tasks/no_touch.js new file mode 100644 index 000000000000..31b5467bf9f1 --- /dev/null +++ b/grunt/tasks/no_touch.js @@ -0,0 +1,80 @@ +/*! + * Bootstrap Grunt task for no-touch-ifying CSS + * http://getbootstrap.com + * Copyright 2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +'use strict'; + +var extend = require('util')._extend; +var postcss = require('postcss'); + + +var DEFAULT_OPTIONS = { + selectorPrefix: '.no-touch', // the fragment that will be prefixed to every selector involving :hover + // the following options are passed through to postcss(...).process(): + map: undefined, + mapAnnotation: undefined, + inlineMap: undefined +}; + +function startsWith(haystack, needle) { + return haystack.lastIndexOf(needle, 0) === 0; +} + +module.exports = function (grunt) { + grunt.registerMultiTask('notouch', 'Adds no-touch prefix to :hover CSS selectors so they do not affect touch devices', function () { + var options = this.options(DEFAULT_OPTIONS); + var noTouchSelectorPrefix = options.selectorPrefix + ' '; + var postcssOptions = { + map: options.map, + mapAnnotation: options.mapAnnotation, + inlineMap: options.inlineMap + }; + + var processor = postcss(function (css) { + css.eachRule(function (rule) { + // Yes, this parsing is all horribly naive... + var selectorsWithWhitespace = rule.selector.split(','); + var revisedSelectors = selectorsWithWhitespace.map(function (selectorWithWhitespace) { + var quadruple = /^(\s*)(\S.*\S)(\s*)$/.exec(selectorWithWhitespace); + if (quadruple === null) { + return selectorWithWhitespace; + } + + var prefix = quadruple[1]; + var selector = quadruple[2]; + var suffix = quadruple[3]; + + var alreadyRevised = startsWith(selector, noTouchSelectorPrefix); + if (!alreadyRevised && /:hover/.test(selector)) { + selector = noTouchSelectorPrefix + selector; + } + var revisedSelector = prefix + selector + suffix; + return revisedSelector; + }); + rule.selector = revisedSelectors.join(','); + }); + }); + + this.files.forEach(function (f) { + var originalCss = grunt.file.read(f.src); + var sourceFile = Array.isArray(f.src) ? f.src[0] : f.src; + var destFile = f.dest === undefined ? sourceFile : f.dest; + + var fileSpecificProcessorOptions = extend(extend({}, postcssOptions), {from: sourceFile, to: destFile}); + + var revisedCss = null; + try { + revisedCss = processor.process(originalCss, fileSpecificProcessorOptions).css; + } + catch (err) { + grunt.fail.warn(err); + } + + grunt.file.write(destFile, revisedCss); + grunt.log.writeln('File "' + destFile.cyan + '" created.'); + }); + }); +}; diff --git a/js/touch-detection.js b/js/touch-detection.js new file mode 100644 index 000000000000..833432f683b6 --- /dev/null +++ b/js/touch-detection.js @@ -0,0 +1,28 @@ +/* ======================================================================== + * Bootstrap: touch-detection.js v3.1.1 + * http://getbootstrap.com/ + * ======================================================================== + * Copyright 2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ +/*! Credit: Modernizr v3.0.0-alpha.0 | MIT */ + + ++function ($) { + 'use strict'; + + $(function () { + // Based on: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js + // and http://www.w3.org/TR/pointerevents/#examples + + var testDiv, isTouch = ('ontouchstart' in window) || (window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 0) + if (!isTouch) { + testDiv = $('
').appendTo(document.body) + isTouch = testDiv.css('top') == '-99px' + testDiv.remove() + } + if (!isTouch) { + (document.documentElement.className += ' bs-no-touch') + } + }) +}(jQuery); diff --git a/less/bootstrap.less b/less/bootstrap.less index 61b77474f9ad..61eada4c3a89 100644 --- a/less/bootstrap.less +++ b/less/bootstrap.less @@ -5,6 +5,7 @@ // Reset and dependencies @import "normalize.less"; @import "print.less"; +@import "touch-detection.less"; @import "glyphicons.less"; // Core CSS diff --git a/less/touch-detection.less b/less/touch-detection.less new file mode 100644 index 000000000000..a3a91bcff384 --- /dev/null +++ b/less/touch-detection.less @@ -0,0 +1,23 @@ +// +// Detection of touch devices +// -------------------------------------------------- +/*! Credit: Modernizr v3.0.0-alpha.0 | MIT */ + + +// Based on https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js + +.bs-touch-test { + // Move the test div offscreen + position: absolute; + left: -99px; +} + +@media (touch-enabled), + (-moz-touch-enabled), + (-ms-touch-enabled), + (-o-touch-enabled), +(-webkit-touch-enabled) { + .bs-touch-test { + top: -99px; // We test for the presence of this via JS + } +} diff --git a/package.json b/package.json index c6fa72b9327a..3804489d6243 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "grunt-sed": "~0.1.1", "load-grunt-tasks": "~0.4.0", "markdown": "~0.5.0", + "postcss": "~0.3.4", "time-grunt": "~0.2.10" }, "engines": { diff --git a/test-infra/npm-shrinkwrap.canonical.json b/test-infra/npm-shrinkwrap.canonical.json index fb3f8580763f..f1a3206dbe1c 100644 --- a/test-infra/npm-shrinkwrap.canonical.json +++ b/test-infra/npm-shrinkwrap.canonical.json @@ -1 +1 @@ -{"dependencies":{"btoa":{"from":"btoa@~1.1.1","version":"1.1.1"},"canonical-json":{"from":"canonical-json@~0.0.4","version":"0.0.4"},"css-flip":{"dependencies":{"commander":{"from":"commander@~2.1.0","version":"2.1.0"},"css":{"dependencies":{"css-parse":{"from":"css-parse@1.7.0","version":"1.7.0"},"css-stringify":{"dependencies":{"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.31","version":"0.1.33"}},"from":"css-stringify@1.4.1","version":"1.4.1"}},"from":"css@~1.6.0","version":"1.6.0"}},"from":"css-flip@~0.3.0","version":"0.3.0"},"grunt":{"dependencies":{"async":{"from":"async@~0.1.22","version":"0.1.22"},"coffee-script":{"from":"coffee-script@~1.3.3","version":"1.3.3"},"colors":{"from":"colors@~0.6.2","version":"0.6.2"},"dateformat":{"from":"dateformat@1.0.2-1.2.3","version":"1.0.2-1.2.3"},"eventemitter2":{"from":"eventemitter2@~0.4.13","version":"0.4.13"},"exit":{"from":"exit@~0.1.1","version":"0.1.2"},"findup-sync":{"dependencies":{"glob":{"dependencies":{"inherits":{"from":"inherits@2","version":"2.0.1"}},"from":"glob@~3.2.9","version":"3.2.9"},"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"}},"from":"findup-sync@~0.1.2","version":"0.1.3"},"getobject":{"from":"getobject@~0.1.0","version":"0.1.0"},"glob":{"dependencies":{"graceful-fs":{"from":"graceful-fs@~1.2.0","version":"1.2.3"},"inherits":{"from":"inherits@1","version":"1.0.0"}},"from":"glob@~3.1.21","version":"3.1.21"},"grunt-legacy-util":{"from":"grunt-legacy-util@~0.1.2","version":"0.1.2"},"hooker":{"from":"hooker@~0.2.3","version":"0.2.3"},"iconv-lite":{"from":"iconv-lite@~0.2.11","version":"0.2.11"},"js-yaml":{"dependencies":{"argparse":{"dependencies":{"underscore":{"from":"underscore@~1.4.3","version":"1.4.4"},"underscore.string":{"from":"underscore.string@~2.3.1","version":"2.3.3"}},"from":"argparse@~ 0.1.11","version":"0.1.15"},"esprima":{"from":"esprima@~ 1.0.2","version":"1.0.4"}},"from":"js-yaml@~2.0.5","version":"2.0.5"},"lodash":{"from":"lodash@~0.9.2","version":"0.9.2"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.12","version":"0.2.14"},"nopt":{"dependencies":{"abbrev":{"from":"abbrev@1","version":"1.0.4"}},"from":"nopt@~1.0.10","version":"1.0.10"},"rimraf":{"from":"rimraf@~2.2.6","version":"2.2.6"},"underscore.string":{"from":"underscore.string@~2.2.1","version":"2.2.1"},"which":{"from":"which@~1.0.5","version":"1.0.5"}},"from":"grunt@~0.4.4","version":"0.4.4"},"grunt-autoprefixer":{"dependencies":{"autoprefixer":{"dependencies":{"fs-extra":{"dependencies":{"jsonfile":{"from":"jsonfile@~1.1.0","version":"1.1.1"},"mkdirp":{"from":"mkdirp@0.3.x","version":"0.3.5"},"ncp":{"from":"ncp@~0.4.2","version":"0.4.2"},"rimraf":{"from":"rimraf@~2.2.0","version":"2.2.6"}},"from":"fs-extra@~0.8.1","version":"0.8.1"},"postcss":{"dependencies":{"base64-js":{"from":"base64-js@~0.0.6","version":"0.0.6"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.33","version":"0.1.33"}},"from":"postcss@~0.3.3","version":"0.3.4"}},"from":"autoprefixer@~1.1.20140218","version":"1.1.20140302"},"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"diff":{"from":"diff@~1.0.8","version":"1.0.8"}},"from":"grunt-autoprefixer@~0.7.2","version":"0.7.2"},"grunt-banner":{"from":"grunt-banner@~0.2.2","version":"0.2.2"},"grunt-contrib-clean":{"dependencies":{"rimraf":{"from":"rimraf@~2.2.1","version":"2.2.6"}},"from":"grunt-contrib-clean@~0.5.0","version":"0.5.0"},"grunt-contrib-concat":{"from":"grunt-contrib-concat@~0.3.0","version":"0.3.0"},"grunt-contrib-connect":{"dependencies":{"async":{"from":"async@~0.2.10","version":"0.2.10"},"connect":{"dependencies":{"batch":{"from":"batch@0.5.0","version":"0.5.0"},"buffer-crc32":{"from":"buffer-crc32@0.2.1","version":"0.2.1"},"bytes":{"from":"bytes@0.2.1","version":"0.2.1"},"compressible":{"from":"compressible@1.0.0","version":"1.0.0"},"cookie":{"from":"cookie@0.1.0","version":"0.1.0"},"cookie-signature":{"from":"cookie-signature@1.0.1","version":"1.0.1"},"debug":{"from":"debug@>= 0.7.3 < 1","version":"0.7.4"},"fresh":{"from":"fresh@0.2.0","version":"0.2.0"},"methods":{"from":"methods@0.1.0","version":"0.1.0"},"multiparty":{"dependencies":{"readable-stream":{"dependencies":{"core-util-is":{"from":"core-util-is@~1.0.0","version":"1.0.1"},"debuglog":{"from":"debuglog@0.0.2","version":"0.0.2"},"string_decoder":{"from":"string_decoder@~0.10.x","version":"0.10.25-1"}},"from":"readable-stream@~1.1.9","version":"1.1.11"},"stream-counter":{"from":"stream-counter@~0.2.0","version":"0.2.0"}},"from":"multiparty@2.2.0","version":"2.2.0"},"negotiator":{"from":"negotiator@0.3.0","version":"0.3.0"},"pause":{"from":"pause@0.0.1","version":"0.0.1"},"qs":{"from":"qs@0.6.6","version":"0.6.6"},"raw-body":{"from":"raw-body@1.1.3","version":"1.1.3"},"send":{"dependencies":{"mime":{"from":"mime@~1.2.9","version":"1.2.11"},"range-parser":{"from":"range-parser@0.0.4","version":"0.0.4"}},"from":"send@0.1.4","version":"0.1.4"},"uid2":{"from":"uid2@0.0.3","version":"0.0.3"}},"from":"connect@~2.13.0","version":"2.13.1"},"connect-livereload":{"from":"connect-livereload@~0.3.0","version":"0.3.2"},"open":{"from":"open@0.0.4","version":"0.0.4"},"portscanner":{"dependencies":{"async":{"from":"async@0.1.15","version":"0.1.15"}},"from":"portscanner@0.2.2","version":"0.2.2"}},"from":"grunt-contrib-connect@~0.7.1","version":"0.7.1"},"grunt-contrib-copy":{"from":"grunt-contrib-copy@~0.5.0","version":"0.5.0"},"grunt-contrib-csslint":{"dependencies":{"csslint":{"dependencies":{"parserlib":{"from":"parserlib@~0.2.2","version":"0.2.4"}},"from":"csslint@~0.10.0","version":"0.10.0"}},"from":"grunt-contrib-csslint@~0.2.0","version":"0.2.0"},"grunt-contrib-cssmin":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"clean-css":{"dependencies":{"commander":{"from":"commander@2.1.x","version":"2.1.0"}},"from":"clean-css@~2.1.0","version":"2.1.5"},"maxmin":{"dependencies":{"gzip-size":{"dependencies":{"concat-stream":{"dependencies":{"inherits":{"from":"inherits@~2.0.1","version":"2.0.1"},"readable-stream":{"dependencies":{"core-util-is":{"from":"core-util-is@~1.0.0","version":"1.0.1"},"debuglog":{"from":"debuglog@0.0.2","version":"0.0.2"},"string_decoder":{"from":"string_decoder@~0.10.x","version":"0.10.25-1"}},"from":"readable-stream@~1.1.9","version":"1.1.11"},"typedarray":{"from":"typedarray@~0.0.5","version":"0.0.5"}},"from":"concat-stream@^1.4.1","version":"1.4.3"},"zlib-browserify":{"dependencies":{"tape":{"dependencies":{"deep-equal":{"from":"deep-equal@~0.0.0","version":"0.0.0"},"defined":{"from":"defined@~0.0.0","version":"0.0.0"},"jsonify":{"from":"jsonify@~0.0.0","version":"0.0.0"}},"from":"tape@~0.2.2","version":"0.2.2"}},"from":"zlib-browserify@^0.0.3","version":"0.0.3"}},"from":"gzip-size@^0.1.0","version":"0.1.0"},"pretty-bytes":{"from":"pretty-bytes@^0.1.0","version":"0.1.0"}},"from":"maxmin@^0.1.0","version":"0.1.0"}},"from":"grunt-contrib-cssmin@~0.9.0","version":"0.9.0"},"grunt-contrib-jade":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"grunt-lib-contrib":{"dependencies":{"zlib-browserify":{"from":"zlib-browserify@0.0.1","version":"0.0.1"}},"from":"grunt-lib-contrib@~0.6.1","version":"0.6.1"},"jade":{"dependencies":{"character-parser":{"from":"character-parser@1.2.0","version":"1.2.0"},"commander":{"from":"commander@2.1.0","version":"2.1.0"},"constantinople":{"dependencies":{"uglify-js":{"dependencies":{"async":{"from":"async@~0.2.6","version":"0.2.10"},"optimist":{"dependencies":{"wordwrap":{"from":"wordwrap@~0.0.2","version":"0.0.2"}},"from":"optimist@~0.3.5","version":"0.3.7"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.7","version":"0.1.33"},"uglify-to-browserify":{"from":"uglify-to-browserify@~1.0.0","version":"1.0.2"}},"from":"uglify-js@~2.4.0","version":"2.4.12"}},"from":"constantinople@~2.0.0","version":"2.0.0"},"mkdirp":{"from":"mkdirp@~0.3.5","version":"0.3.5"},"monocle":{"dependencies":{"readdirp":{"dependencies":{"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@>=0.2.4","version":"0.2.14"}},"from":"readdirp@~0.2.3","version":"0.2.5"}},"from":"monocle@1.1.51","version":"1.1.51"},"transformers":{"dependencies":{"css":{"dependencies":{"css-parse":{"from":"css-parse@1.0.4","version":"1.0.4"},"css-stringify":{"from":"css-stringify@1.0.5","version":"1.0.5"}},"from":"css@~1.0.8","version":"1.0.8"},"promise":{"dependencies":{"is-promise":{"from":"is-promise@~1","version":"1.0.0"}},"from":"promise@~2.0","version":"2.0.0"},"uglify-js":{"dependencies":{"optimist":{"dependencies":{"wordwrap":{"from":"wordwrap@~0.0.2","version":"0.0.2"}},"from":"optimist@~0.3.5","version":"0.3.7"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.7","version":"0.1.33"}},"from":"uglify-js@~2.2.5","version":"2.2.5"}},"from":"transformers@2.1.0","version":"2.1.0"},"with":{"dependencies":{"uglify-js":{"dependencies":{"async":{"from":"async@~0.2.6","version":"0.2.10"},"optimist":{"dependencies":{"wordwrap":{"from":"wordwrap@~0.0.2","version":"0.0.2"}},"from":"optimist@~0.3.5","version":"0.3.7"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.7","version":"0.1.33"},"uglify-to-browserify":{"from":"uglify-to-browserify@~1.0.0","version":"1.0.2"}},"from":"uglify-js@2.4.0","version":"2.4.0"}},"from":"with@~2.0.0","version":"2.0.0"}},"from":"jade@~1.2.0","version":"1.2.0"}},"from":"grunt-contrib-jade@~0.11.0","version":"0.11.0"},"grunt-contrib-jshint":{"dependencies":{"hooker":{"from":"hooker@~0.2.3","version":"0.2.3"},"jshint":{"dependencies":{"cli":{"dependencies":{"glob":{"dependencies":{"inherits":{"from":"inherits@2","version":"2.0.1"}},"from":"glob@>= 3.1.4","version":"3.2.9"}},"from":"cli@0.4.x","version":"0.4.5"},"console-browserify":{"from":"console-browserify@0.1.x","version":"0.1.6"},"exit":{"from":"exit@0.1.x","version":"0.1.2"},"htmlparser2":{"dependencies":{"domelementtype":{"from":"domelementtype@1","version":"1.1.1"},"domhandler":{"from":"domhandler@2.1","version":"2.1.0"},"domutils":{"from":"domutils@1.1","version":"1.1.6"},"readable-stream":{"dependencies":{"string_decoder":{"from":"string_decoder@~0.10.x","version":"0.10.25-1"}},"from":"readable-stream@1.0","version":"1.0.26-2"}},"from":"htmlparser2@3.3.x","version":"3.3.0"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@0.x.x","version":"0.2.14"},"shelljs":{"from":"shelljs@0.1.x","version":"0.1.4"},"underscore":{"from":"underscore@1.4.x","version":"1.4.4"}},"from":"jshint@~2.4.0","version":"2.4.4"}},"from":"grunt-contrib-jshint@~0.9.2","version":"0.9.2"},"grunt-contrib-less":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"grunt-lib-contrib":{"dependencies":{"zlib-browserify":{"from":"zlib-browserify@0.0.1","version":"0.0.1"}},"from":"grunt-lib-contrib@~0.6.1","version":"0.6.1"},"less":{"dependencies":{"clean-css":{"dependencies":{"commander":{"from":"commander@2.1.x","version":"2.1.0"}},"from":"clean-css@2.1.x","version":"2.1.5"},"mime":{"from":"mime@1.2.x","version":"1.2.11"},"mkdirp":{"from":"mkdirp@~0.3.5","version":"0.3.5"},"request":{"dependencies":{"aws-sign2":{"from":"aws-sign2@~0.5.0","version":"0.5.0"},"forever-agent":{"from":"forever-agent@~0.5.0","version":"0.5.2"},"form-data":{"dependencies":{"async":{"from":"async@~0.2.9","version":"0.2.10"},"combined-stream":{"dependencies":{"delayed-stream":{"from":"delayed-stream@0.0.5","version":"0.0.5"}},"from":"combined-stream@~0.0.4","version":"0.0.4"}},"from":"form-data@~0.1.0","version":"0.1.2"},"hawk":{"dependencies":{"boom":{"from":"boom@0.4.x","version":"0.4.2"},"cryptiles":{"from":"cryptiles@0.2.x","version":"0.2.2"},"hoek":{"from":"hoek@0.9.x","version":"0.9.1"},"sntp":{"from":"sntp@0.2.x","version":"0.2.4"}},"from":"hawk@~1.0.0","version":"1.0.0"},"http-signature":{"dependencies":{"asn1":{"from":"asn1@0.1.11","version":"0.1.11"},"assert-plus":{"from":"assert-plus@0.1.2","version":"0.1.2"},"ctype":{"from":"ctype@0.5.2","version":"0.5.2"}},"from":"http-signature@~0.10.0","version":"0.10.0"},"json-stringify-safe":{"from":"json-stringify-safe@~5.0.0","version":"5.0.0"},"node-uuid":{"from":"node-uuid@~1.4.0","version":"1.4.1"},"oauth-sign":{"from":"oauth-sign@~0.3.0","version":"0.3.0"},"qs":{"from":"qs@~0.6.0","version":"0.6.6"},"tough-cookie":{"dependencies":{"punycode":{"from":"punycode@>=0.2.0","version":"1.2.4"}},"from":"tough-cookie@>=0.12.0","version":"0.12.1"},"tunnel-agent":{"from":"tunnel-agent@~0.3.0","version":"0.3.0"}},"from":"request@>=2.33.0","version":"2.34.0"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@0.1.x","version":"0.1.33"}},"from":"less@~1.7.0","version":"1.7.0"}},"from":"grunt-contrib-less@~0.10.0","version":"0.10.0"},"grunt-contrib-qunit":{"dependencies":{"grunt-lib-phantomjs":{"dependencies":{"eventemitter2":{"from":"eventemitter2@~0.4.9","version":"0.4.13"},"phantomjs":{"dependencies":{"adm-zip":{"from":"adm-zip@0.2.1","version":"0.2.1"},"kew":{"from":"kew@~0.1.7","version":"0.1.7"},"mkdirp":{"from":"mkdirp@0.3.5","version":"0.3.5"},"ncp":{"from":"ncp@0.4.2","version":"0.4.2"},"npmconf":{"dependencies":{"config-chain":{"dependencies":{"proto-list":{"from":"proto-list@~1.2.1","version":"1.2.2"}},"from":"config-chain@~1.1.1","version":"1.1.8"},"inherits":{"from":"inherits@~1.0.0","version":"1.0.0"},"ini":{"from":"ini@~1.1.0","version":"1.1.0"},"nopt":{"dependencies":{"abbrev":{"from":"abbrev@1","version":"1.0.4"}},"from":"nopt@2","version":"2.2.0"},"once":{"from":"once@~1.1.1","version":"1.1.1"},"osenv":{"from":"osenv@0.0.3","version":"0.0.3"},"semver":{"from":"semver@~1.1.0","version":"1.1.4"}},"from":"npmconf@0.0.24","version":"0.0.24"},"rimraf":{"from":"rimraf@~2.2.2","version":"2.2.6"},"which":{"from":"which@~1.0.5","version":"1.0.5"}},"from":"phantomjs@~1.9.0-1","version":"1.9.7-1"},"semver":{"from":"semver@~1.0.14","version":"1.0.14"},"temporary":{"dependencies":{"package":{"from":"package@>= 1.0.0 < 1.2.0","version":"1.0.1"}},"from":"temporary@~0.0.4","version":"0.0.8"}},"from":"grunt-lib-phantomjs@~0.5.0","version":"0.5.0"}},"from":"grunt-contrib-qunit@~0.4.0","version":"0.4.0"},"grunt-contrib-uglify":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"maxmin":{"dependencies":{"gzip-size":{"dependencies":{"concat-stream":{"dependencies":{"inherits":{"from":"inherits@~2.0.1","version":"2.0.1"},"readable-stream":{"dependencies":{"core-util-is":{"from":"core-util-is@~1.0.0","version":"1.0.1"},"debuglog":{"from":"debuglog@0.0.2","version":"0.0.2"},"string_decoder":{"from":"string_decoder@~0.10.x","version":"0.10.25-1"}},"from":"readable-stream@~1.1.9","version":"1.1.11"},"typedarray":{"from":"typedarray@~0.0.5","version":"0.0.5"}},"from":"concat-stream@^1.4.1","version":"1.4.3"},"zlib-browserify":{"dependencies":{"tape":{"dependencies":{"deep-equal":{"from":"deep-equal@~0.0.0","version":"0.0.0"},"defined":{"from":"defined@~0.0.0","version":"0.0.0"},"jsonify":{"from":"jsonify@~0.0.0","version":"0.0.0"}},"from":"tape@~0.2.2","version":"0.2.2"}},"from":"zlib-browserify@^0.0.3","version":"0.0.3"}},"from":"gzip-size@^0.1.0","version":"0.1.0"},"pretty-bytes":{"from":"pretty-bytes@^0.1.0","version":"0.1.0"}},"from":"maxmin@^0.1.0","version":"0.1.0"},"uglify-js":{"dependencies":{"async":{"from":"async@~0.2.6","version":"0.2.10"},"optimist":{"dependencies":{"wordwrap":{"from":"wordwrap@~0.0.2","version":"0.0.2"}},"from":"optimist@~0.3.5","version":"0.3.7"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.7","version":"0.1.33"},"uglify-to-browserify":{"from":"uglify-to-browserify@~1.0.0","version":"1.0.2"}},"from":"uglify-js@^2.4.0","version":"2.4.12"}},"from":"grunt-contrib-uglify@~0.4.0","version":"0.4.0"},"grunt-contrib-watch":{"dependencies":{"async":{"from":"async@~0.2.9","version":"0.2.10"},"gaze":{"dependencies":{"globule":{"dependencies":{"glob":{"dependencies":{"graceful-fs":{"from":"graceful-fs@~1.2.0","version":"1.2.3"},"inherits":{"from":"inherits@1","version":"1.0.0"}},"from":"glob@~3.1.21","version":"3.1.21"},"lodash":{"from":"lodash@~1.0.1","version":"1.0.1"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.11","version":"0.2.14"}},"from":"globule@~0.1.0","version":"0.1.0"}},"from":"gaze@~0.5.1","version":"0.5.1"},"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"},"tiny-lr-fork":{"dependencies":{"debug":{"from":"debug@~0.7.0","version":"0.7.4"},"faye-websocket":{"from":"faye-websocket@~0.4.3","version":"0.4.4"},"noptify":{"dependencies":{"nopt":{"dependencies":{"abbrev":{"from":"abbrev@1","version":"1.0.4"}},"from":"nopt@~2.0.0","version":"2.0.0"}},"from":"noptify@~0.0.3","version":"0.0.3"},"qs":{"from":"qs@~0.5.2","version":"0.5.6"}},"from":"tiny-lr-fork@0.0.5","version":"0.0.5"}},"from":"grunt-contrib-watch@~0.6.0","version":"0.6.0"},"grunt-css-flip":{"from":"grunt-css-flip@~0.2.1","version":"0.2.1"},"grunt-csscomb":{"dependencies":{"csscomb":{"dependencies":{"commander":{"from":"commander@2.0.0","version":"2.0.0"},"gonzales-pe":{"from":"gonzales-pe@2.0.x","version":"2.0.2"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@0.2.12","version":"0.2.12"},"vow":{"from":"vow@0.3.11","version":"0.3.11"},"vow-fs":{"dependencies":{"node-uuid":{"from":"node-uuid@1.4.0","version":"1.4.0"},"vow-queue":{"from":"vow-queue@0.0.2","version":"0.0.2"}},"from":"vow-fs@0.2.3","version":"0.2.3"}},"from":"csscomb@~2.0.0","version":"2.0.4"}},"from":"grunt-csscomb@~2.0.1","version":"2.0.1"},"grunt-exec":{"from":"grunt-exec@~0.4.5","version":"0.4.5"},"grunt-html-validation":{"dependencies":{"colors":{"from":"colors@~0.6.0","version":"0.6.2"},"request":{"dependencies":{"aws-sign":{"from":"aws-sign@~0.3.0","version":"0.3.0"},"cookie-jar":{"from":"cookie-jar@~0.3.0","version":"0.3.0"},"forever-agent":{"from":"forever-agent@~0.5.0","version":"0.5.2"},"form-data":{"dependencies":{"async":{"from":"async@~0.2.9","version":"0.2.10"},"combined-stream":{"dependencies":{"delayed-stream":{"from":"delayed-stream@0.0.5","version":"0.0.5"}},"from":"combined-stream@~0.0.4","version":"0.0.4"}},"from":"form-data@~0.1.0","version":"0.1.2"},"hawk":{"dependencies":{"boom":{"from":"boom@0.4.x","version":"0.4.2"},"cryptiles":{"from":"cryptiles@0.2.x","version":"0.2.2"},"hoek":{"from":"hoek@0.9.x","version":"0.9.1"},"sntp":{"from":"sntp@0.2.x","version":"0.2.4"}},"from":"hawk@~1.0.0","version":"1.0.0"},"http-signature":{"dependencies":{"asn1":{"from":"asn1@0.1.11","version":"0.1.11"},"assert-plus":{"from":"assert-plus@0.1.2","version":"0.1.2"},"ctype":{"from":"ctype@0.5.2","version":"0.5.2"}},"from":"http-signature@~0.10.0","version":"0.10.0"},"json-stringify-safe":{"from":"json-stringify-safe@~5.0.0","version":"5.0.0"},"mime":{"from":"mime@~1.2.9","version":"1.2.11"},"node-uuid":{"from":"node-uuid@~1.4.0","version":"1.4.1"},"oauth-sign":{"from":"oauth-sign@~0.3.0","version":"0.3.0"},"qs":{"from":"qs@~0.6.0","version":"0.6.6"},"tunnel-agent":{"from":"tunnel-agent@~0.3.0","version":"0.3.0"}},"from":"request@~2.27.0","version":"2.27.0"},"w3cjs":{"dependencies":{"commander":{"from":"commander@~2.0.0","version":"2.0.0"},"superagent":{"dependencies":{"cookiejar":{"from":"cookiejar@1.3.0","version":"1.3.0"},"debug":{"from":"debug@~0.7.2","version":"0.7.4"},"emitter-component":{"from":"emitter-component@1.0.0","version":"1.0.0"},"formidable":{"from":"formidable@1.0.14","version":"1.0.14"},"methods":{"from":"methods@0.0.1","version":"0.0.1"},"mime":{"from":"mime@1.2.5","version":"1.2.5"},"qs":{"from":"qs@0.6.5","version":"0.6.5"},"reduce-component":{"from":"reduce-component@1.0.1","version":"1.0.1"}},"from":"superagent@~0.15.7","version":"0.15.7"},"superagent-proxy":{"dependencies":{"proxy-agent":{"dependencies":{"http-proxy-agent":{"dependencies":{"agent-base":{"from":"agent-base@~1.0.1","version":"1.0.1"},"debug":{"from":"debug@~0.7.2","version":"0.7.4"},"extend":{"from":"extend@~1.2.0","version":"1.2.1"}},"from":"http-proxy-agent@0","version":"0.2.4"},"https-proxy-agent":{"dependencies":{"agent-base":{"from":"agent-base@~1.0.1","version":"1.0.1"},"debug":{"from":"debug@~0.7.2","version":"0.7.4"},"extend":{"from":"extend@~1.2.0","version":"1.2.1"}},"from":"https-proxy-agent@0","version":"0.3.3"},"lru-cache":{"from":"lru-cache@~2.3.1","version":"2.3.1"},"socks-proxy-agent":{"dependencies":{"agent-base":{"from":"agent-base@~1.0.1","version":"1.0.1"},"extend":{"from":"extend@~1.2.0","version":"1.2.1"},"rainbowsocks":{"dependencies":{"debug":{"from":"debug@~0.7.2","version":"0.7.4"}},"from":"rainbowsocks@~0.1.0","version":"0.1.1"}},"from":"socks-proxy-agent@0","version":"0.1.0"}},"from":"proxy-agent@~0.0.2","version":"0.0.2"}},"from":"superagent-proxy@~0.2.0","version":"0.2.0"}},"from":"w3cjs@~0.1.22","version":"0.1.24"}},"from":"grunt-html-validation@~0.1.13","version":"0.1.13"},"grunt-jekyll":{"dependencies":{"tmp":{"from":"tmp@0.0.21","version":"0.0.21"}},"from":"grunt-jekyll@~0.4.1","version":"0.4.1"},"grunt-jscs-checker":{"dependencies":{"hooker":{"from":"hooker@~0.2.3","version":"0.2.3"},"jscs":{"dependencies":{"colors":{"from":"colors@0.6.0-1","version":"0.6.0-1"},"commander":{"dependencies":{"keypress":{"from":"keypress@0.1.x","version":"0.1.0"}},"from":"commander@1.2.0","version":"1.2.0"},"esprima":{"from":"esprima@1.0.3","version":"1.0.3"},"glob":{"dependencies":{"inherits":{"from":"inherits@2","version":"2.0.1"}},"from":"glob@3.2.7","version":"3.2.7"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@0.2.12","version":"0.2.12"},"strip-json-comments":{"from":"strip-json-comments@0.1.1","version":"0.1.1"},"vow":{"from":"vow@0.3.9","version":"0.3.9"},"vow-fs":{"dependencies":{"node-uuid":{"from":"node-uuid@1.4.0","version":"1.4.0"},"vow-queue":{"from":"vow-queue@0.0.2","version":"0.0.2"}},"from":"vow-fs@0.2.3","version":"0.2.3"},"xmlbuilder":{"dependencies":{"underscore":{"from":"underscore@>=1.5.x","version":"1.6.0"}},"from":"xmlbuilder@1.1.2","version":"1.1.2"}},"from":"jscs@~1.3.0","version":"1.3.0"},"lodash.assign":{"dependencies":{"lodash._basecreatecallback":{"dependencies":{"lodash._setbinddata":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"},"lodash.noop":{"from":"lodash.noop@~2.4.1","version":"2.4.1"}},"from":"lodash._setbinddata@~2.4.1","version":"2.4.1"},"lodash.bind":{"dependencies":{"lodash._createwrapper":{"dependencies":{"lodash._basebind":{"dependencies":{"lodash._basecreate":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"},"lodash.noop":{"from":"lodash.noop@~2.4.1","version":"2.4.1"}},"from":"lodash._basecreate@~2.4.1","version":"2.4.1"},"lodash.isobject":{"from":"lodash.isobject@~2.4.1","version":"2.4.1"}},"from":"lodash._basebind@~2.4.1","version":"2.4.1"},"lodash._basecreatewrapper":{"dependencies":{"lodash._basecreate":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"},"lodash.noop":{"from":"lodash.noop@~2.4.1","version":"2.4.1"}},"from":"lodash._basecreate@~2.4.1","version":"2.4.1"},"lodash.isobject":{"from":"lodash.isobject@~2.4.1","version":"2.4.1"}},"from":"lodash._basecreatewrapper@~2.4.1","version":"2.4.1"},"lodash.isfunction":{"from":"lodash.isfunction@~2.4.1","version":"2.4.1"}},"from":"lodash._createwrapper@~2.4.1","version":"2.4.1"},"lodash._slice":{"from":"lodash._slice@~2.4.1","version":"2.4.1"}},"from":"lodash.bind@~2.4.1","version":"2.4.1"},"lodash.identity":{"from":"lodash.identity@~2.4.1","version":"2.4.1"},"lodash.support":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"}},"from":"lodash.support@~2.4.1","version":"2.4.1"}},"from":"lodash._basecreatecallback@~2.4.1","version":"2.4.1"},"lodash._objecttypes":{"from":"lodash._objecttypes@~2.4.1","version":"2.4.1"},"lodash.keys":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"},"lodash._shimkeys":{"from":"lodash._shimkeys@~2.4.1","version":"2.4.1"},"lodash.isobject":{"from":"lodash.isobject@~2.4.1","version":"2.4.1"}},"from":"lodash.keys@~2.4.1","version":"2.4.1"}},"from":"lodash.assign@~2.4.1","version":"2.4.1"},"vow":{"from":"vow@~0.4.1","version":"0.4.1"}},"from":"grunt-jscs-checker@~0.4.0","version":"0.4.0"},"grunt-saucelabs":{"dependencies":{"colors":{"from":"colors@~0.6.2","version":"0.6.2"},"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"},"q":{"from":"q@~1.0.0","version":"1.0.1"},"request":{"dependencies":{"aws-sign2":{"from":"aws-sign2@~0.5.0","version":"0.5.0"},"forever-agent":{"from":"forever-agent@~0.5.0","version":"0.5.2"},"form-data":{"dependencies":{"async":{"from":"async@~0.2.9","version":"0.2.10"},"combined-stream":{"dependencies":{"delayed-stream":{"from":"delayed-stream@0.0.5","version":"0.0.5"}},"from":"combined-stream@~0.0.4","version":"0.0.4"}},"from":"form-data@~0.1.0","version":"0.1.2"},"hawk":{"dependencies":{"boom":{"from":"boom@0.4.x","version":"0.4.2"},"cryptiles":{"from":"cryptiles@0.2.x","version":"0.2.2"},"hoek":{"from":"hoek@0.9.x","version":"0.9.1"},"sntp":{"from":"sntp@0.2.x","version":"0.2.4"}},"from":"hawk@~1.0.0","version":"1.0.0"},"http-signature":{"dependencies":{"asn1":{"from":"asn1@0.1.11","version":"0.1.11"},"assert-plus":{"from":"assert-plus@0.1.2","version":"0.1.2"},"ctype":{"from":"ctype@0.5.2","version":"0.5.2"}},"from":"http-signature@~0.10.0","version":"0.10.0"},"json-stringify-safe":{"from":"json-stringify-safe@~5.0.0","version":"5.0.0"},"mime":{"from":"mime@~1.2.9","version":"1.2.11"},"node-uuid":{"from":"node-uuid@~1.4.0","version":"1.4.1"},"oauth-sign":{"from":"oauth-sign@~0.3.0","version":"0.3.0"},"qs":{"from":"qs@~0.6.0","version":"0.6.6"},"tough-cookie":{"dependencies":{"punycode":{"from":"punycode@>=0.2.0","version":"1.2.4"}},"from":"tough-cookie@>=0.12.0","version":"0.12.1"},"tunnel-agent":{"from":"tunnel-agent@~0.3.0","version":"0.3.0"}},"from":"request@~2.33.0","version":"2.33.0"},"sauce-tunnel":{"dependencies":{"request":{"dependencies":{"aws-sign":{"from":"aws-sign@~0.3.0","version":"0.3.0"},"cookie-jar":{"from":"cookie-jar@~0.3.0","version":"0.3.0"},"forever-agent":{"from":"forever-agent@~0.5.0","version":"0.5.2"},"form-data":{"dependencies":{"async":{"from":"async@~0.2.7","version":"0.2.10"},"combined-stream":{"dependencies":{"delayed-stream":{"from":"delayed-stream@0.0.5","version":"0.0.5"}},"from":"combined-stream@~0.0.4","version":"0.0.4"}},"from":"form-data@0.0.8","version":"0.0.8"},"hawk":{"dependencies":{"boom":{"dependencies":{"hoek":{"from":"hoek@0.9.x","version":"0.9.1"}},"from":"boom@0.4.x","version":"0.4.2"},"cryptiles":{"from":"cryptiles@0.2.x","version":"0.2.2"},"hoek":{"from":"hoek@0.8.x","version":"0.8.5"},"sntp":{"dependencies":{"hoek":{"from":"hoek@0.9.x","version":"0.9.1"}},"from":"sntp@0.2.x","version":"0.2.4"}},"from":"hawk@~0.13.0","version":"0.13.1"},"http-signature":{"dependencies":{"asn1":{"from":"asn1@0.1.11","version":"0.1.11"},"assert-plus":{"from":"assert-plus@0.1.2","version":"0.1.2"},"ctype":{"from":"ctype@0.5.2","version":"0.5.2"}},"from":"http-signature@~0.9.11","version":"0.9.11"},"json-stringify-safe":{"from":"json-stringify-safe@~4.0.0","version":"4.0.0"},"mime":{"from":"mime@~1.2.9","version":"1.2.11"},"node-uuid":{"from":"node-uuid@~1.4.0","version":"1.4.1"},"oauth-sign":{"from":"oauth-sign@~0.3.0","version":"0.3.0"},"qs":{"from":"qs@~0.6.0","version":"0.6.6"},"tunnel-agent":{"from":"tunnel-agent@~0.3.0","version":"0.3.0"}},"from":"request@~2.21.0","version":"2.21.0"}},"from":"sauce-tunnel@~1.1.1","version":"1.1.2"},"saucelabs":{"from":"saucelabs@~0.1.1","version":"0.1.1"}},"from":"grunt-saucelabs@~5.1.0","version":"5.1.0"},"grunt-sed":{"dependencies":{"replace":{"dependencies":{"colors":{"from":"colors@0.5.x","version":"0.5.1"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.9","version":"0.2.14"},"nomnom":{"dependencies":{"underscore":{"from":"underscore@~1.4.4","version":"1.4.4"}},"from":"nomnom@1.6.x","version":"1.6.2"}},"from":"replace@~0.2.4","version":"0.2.9"}},"from":"grunt-sed@~0.1.1","version":"0.1.1"},"load-grunt-tasks":{"dependencies":{"findup-sync":{"dependencies":{"glob":{"dependencies":{"graceful-fs":{"from":"graceful-fs@~1.2.0","version":"1.2.3"},"inherits":{"from":"inherits@1","version":"1.0.0"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.11","version":"0.2.14"}},"from":"glob@~3.1.21","version":"3.1.21"},"lodash":{"from":"lodash@~1.0.1","version":"1.0.1"}},"from":"findup-sync@^0.1.2","version":"0.1.2"},"multimatch":{"dependencies":{"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.14","version":"0.2.14"}},"from":"multimatch@^0.1.0","version":"0.1.0"}},"from":"load-grunt-tasks@~0.4.0","version":"0.4.0"},"markdown":{"dependencies":{"nopt":{"dependencies":{"abbrev":{"from":"abbrev@1","version":"1.0.4"}},"from":"nopt@~2.1.1","version":"2.1.2"}},"from":"markdown@~0.5.0","version":"0.5.0"},"time-grunt":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@~0.4.0","version":"0.4.0"},"date-time":{"from":"date-time@~0.1.0","version":"0.1.1"},"hooker":{"from":"hooker@~0.2.3","version":"0.2.3"},"text-table":{"from":"text-table@~0.2.0","version":"0.2.0"}},"from":"time-grunt@~0.2.10","version":"0.2.10"}},"name":"bootstrap","version":"3.1.1"} \ No newline at end of file +{"dependencies":{"btoa":{"from":"btoa@~1.1.1","version":"1.1.1"},"canonical-json":{"from":"canonical-json@~0.0.4","version":"0.0.4"},"css-flip":{"dependencies":{"commander":{"from":"commander@~2.1.0","version":"2.1.0"},"css":{"dependencies":{"css-parse":{"from":"css-parse@1.7.0","version":"1.7.0"},"css-stringify":{"dependencies":{"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.31","version":"0.1.33"}},"from":"css-stringify@1.4.1","version":"1.4.1"}},"from":"css@~1.6.0","version":"1.6.0"}},"from":"css-flip@~0.3.0","version":"0.3.0"},"grunt":{"dependencies":{"async":{"from":"async@0.1.22","version":"0.1.22"},"coffee-script":{"from":"coffee-script@1.3.3","version":"1.3.3"},"colors":{"from":"colors@~0.6.2","version":"0.6.2"},"dateformat":{"from":"dateformat@1.0.2-1.2.3","version":"1.0.2-1.2.3"},"eventemitter2":{"from":"eventemitter2@~0.4.13","version":"0.4.13"},"exit":{"from":"exit@~0.1.1","version":"0.1.2"},"findup-sync":{"dependencies":{"glob":{"dependencies":{"inherits":{"from":"inherits@2","version":"2.0.1"}},"from":"glob@~3.2.9","version":"3.2.9"},"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"}},"from":"findup-sync@0.1.3","version":"0.1.3"},"getobject":{"from":"getobject@~0.1.0","version":"0.1.0"},"glob":{"dependencies":{"graceful-fs":{"from":"graceful-fs@~1.2.0","version":"1.2.3"},"inherits":{"from":"inherits@1","version":"1.0.0"}},"from":"glob@3.1.21","version":"3.1.21"},"grunt-legacy-util":{"dependencies":{"async":{"from":"async@0.1.22","version":"0.1.22"},"lodash":{"from":"lodash@0.9.2","version":"0.9.2"},"underscore.string":{"from":"underscore.string@2.2.1","version":"2.2.1"}},"from":"grunt-legacy-util@~0.1.2","version":"0.1.2"},"hooker":{"from":"hooker@~0.2.3","version":"0.2.3"},"iconv-lite":{"from":"iconv-lite@~0.2.11","version":"0.2.11"},"js-yaml":{"dependencies":{"argparse":{"dependencies":{"underscore":{"from":"underscore@~1.4.3","version":"1.4.4"},"underscore.string":{"from":"underscore.string@~2.3.1","version":"2.3.3"}},"from":"argparse@~ 0.1.11","version":"0.1.15"},"esprima":{"from":"esprima@~ 1.0.2","version":"1.0.4"}},"from":"js-yaml@2.0.5","version":"2.0.5"},"lodash":{"from":"lodash@0.9.2","version":"0.9.2"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.12","version":"0.2.14"},"nopt":{"dependencies":{"abbrev":{"from":"abbrev@1","version":"1.0.4"}},"from":"nopt@1.0.10","version":"1.0.10"},"rimraf":{"from":"rimraf@~2.2.6","version":"2.2.6"},"underscore.string":{"from":"underscore.string@2.2.1","version":"2.2.1"},"which":{"from":"which@~1.0.5","version":"1.0.5"}},"from":"grunt@~0.4.3","version":"0.4.4"},"grunt-autoprefixer":{"dependencies":{"autoprefixer":{"dependencies":{"fs-extra":{"dependencies":{"jsonfile":{"from":"jsonfile@~1.1.0","version":"1.1.1"},"mkdirp":{"from":"mkdirp@0.3.x","version":"0.3.5"},"ncp":{"from":"ncp@0.4.2","version":"0.4.2"},"rimraf":{"from":"rimraf@~2.2.0","version":"2.2.6"}},"from":"fs-extra@~0.8.1","version":"0.8.1"},"postcss":{"dependencies":{"base64-js":{"from":"base64-js@~0.0.6","version":"0.0.6"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.33","version":"0.1.33"}},"from":"postcss@~0.3.3","version":"0.3.4"}},"from":"autoprefixer@~1.1.20140218","version":"1.1.20140302"},"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"diff":{"from":"diff@~1.0.8","version":"1.0.8"}},"from":"grunt-autoprefixer@~0.7.2","version":"0.7.2"},"grunt-banner":{"from":"grunt-banner@~0.2.2","version":"0.2.2"},"grunt-contrib-clean":{"dependencies":{"rimraf":{"from":"rimraf@~2.2.1","version":"2.2.6"}},"from":"grunt-contrib-clean@~0.5.0","version":"0.5.0"},"grunt-contrib-concat":{"from":"grunt-contrib-concat@~0.3.0","version":"0.3.0"},"grunt-contrib-connect":{"dependencies":{"async":{"from":"async@~0.2.10","version":"0.2.10"},"connect":{"dependencies":{"batch":{"from":"batch@0.5.0","version":"0.5.0"},"buffer-crc32":{"from":"buffer-crc32@0.2.1","version":"0.2.1"},"bytes":{"from":"bytes@0.2.1","version":"0.2.1"},"compressible":{"from":"compressible@1.0.0","version":"1.0.0"},"cookie":{"from":"cookie@0.1.0","version":"0.1.0"},"cookie-signature":{"from":"cookie-signature@1.0.1","version":"1.0.1"},"debug":{"from":"debug@>= 0.7.3 < 1","version":"0.7.4"},"fresh":{"from":"fresh@0.2.0","version":"0.2.0"},"methods":{"from":"methods@0.1.0","version":"0.1.0"},"multiparty":{"dependencies":{"readable-stream":{"dependencies":{"core-util-is":{"from":"core-util-is@~1.0.0","version":"1.0.1"},"debuglog":{"from":"debuglog@0.0.2","version":"0.0.2"},"string_decoder":{"from":"string_decoder@~0.10.x","version":"0.10.25-1"}},"from":"readable-stream@~1.1.9","version":"1.1.11"},"stream-counter":{"from":"stream-counter@~0.2.0","version":"0.2.0"}},"from":"multiparty@2.2.0","version":"2.2.0"},"negotiator":{"from":"negotiator@0.3.0","version":"0.3.0"},"pause":{"from":"pause@0.0.1","version":"0.0.1"},"qs":{"from":"qs@0.6.6","version":"0.6.6"},"raw-body":{"from":"raw-body@1.1.3","version":"1.1.3"},"send":{"dependencies":{"mime":{"from":"mime@~1.2.9","version":"1.2.11"},"range-parser":{"from":"range-parser@0.0.4","version":"0.0.4"}},"from":"send@0.1.4","version":"0.1.4"},"uid2":{"from":"uid2@0.0.3","version":"0.0.3"}},"from":"connect@2.13.1","version":"2.13.1"},"connect-livereload":{"from":"connect-livereload@~0.3.0","version":"0.3.2"},"open":{"from":"open@0.0.4","version":"0.0.4"},"portscanner":{"dependencies":{"async":{"from":"async@0.1.15","version":"0.1.15"}},"from":"portscanner@0.2.2","version":"0.2.2"}},"from":"grunt-contrib-connect@~0.7.1","version":"0.7.1"},"grunt-contrib-copy":{"from":"grunt-contrib-copy@~0.5.0","version":"0.5.0"},"grunt-contrib-csslint":{"dependencies":{"csslint":{"dependencies":{"parserlib":{"from":"parserlib@~0.2.2","version":"0.2.4"}},"from":"csslint@~0.10.0","version":"0.10.0"}},"from":"grunt-contrib-csslint@~0.2.0","version":"0.2.0"},"grunt-contrib-cssmin":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"clean-css":{"dependencies":{"commander":{"from":"commander@2.1.x","version":"2.1.0"}},"from":"clean-css@~2.1.0","version":"2.1.6"},"maxmin":{"dependencies":{"gzip-size":{"dependencies":{"concat-stream":{"dependencies":{"inherits":{"from":"inherits@~2.0.1","version":"2.0.1"},"readable-stream":{"dependencies":{"core-util-is":{"from":"core-util-is@~1.0.0","version":"1.0.1"},"debuglog":{"from":"debuglog@0.0.2","version":"0.0.2"},"string_decoder":{"from":"string_decoder@~0.10.x","version":"0.10.25-1"}},"from":"readable-stream@1.1.11","version":"1.1.11"},"typedarray":{"from":"typedarray@~0.0.5","version":"0.0.5"}},"from":"concat-stream@^1.4.1","version":"1.4.4"},"zlib-browserify":{"dependencies":{"tape":{"dependencies":{"deep-equal":{"from":"deep-equal@~0.0.0","version":"0.0.0"},"defined":{"from":"defined@~0.0.0","version":"0.0.0"},"jsonify":{"from":"jsonify@~0.0.0","version":"0.0.0"}},"from":"tape@0.2.2","version":"0.2.2"}},"from":"zlib-browserify@^0.0.3","version":"0.0.3"}},"from":"gzip-size@^0.1.0","version":"0.1.0"},"pretty-bytes":{"from":"pretty-bytes@^0.1.0","version":"0.1.0"}},"from":"maxmin@^0.1.0","version":"0.1.0"}},"from":"grunt-contrib-cssmin@~0.9.0","version":"0.9.0"},"grunt-contrib-jade":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"grunt-lib-contrib":{"dependencies":{"zlib-browserify":{"from":"zlib-browserify@0.0.1","version":"0.0.1"}},"from":"grunt-lib-contrib@0.6.1","version":"0.6.1"},"jade":{"dependencies":{"character-parser":{"from":"character-parser@1.2.0","version":"1.2.0"},"commander":{"from":"commander@2.1.0","version":"2.1.0"},"constantinople":{"dependencies":{"uglify-js":{"dependencies":{"async":{"from":"async@~0.2.6","version":"0.2.10"},"optimist":{"dependencies":{"wordwrap":{"from":"wordwrap@~0.0.2","version":"0.0.2"}},"from":"optimist@~0.3.5","version":"0.3.7"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.33","version":"0.1.33"},"uglify-to-browserify":{"from":"uglify-to-browserify@~1.0.0","version":"1.0.2"}},"from":"uglify-js@~2.4.0","version":"2.4.13"}},"from":"constantinople@~2.0.0","version":"2.0.0"},"mkdirp":{"from":"mkdirp@~0.3.5","version":"0.3.5"},"monocle":{"dependencies":{"readdirp":{"dependencies":{"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@>=0.2.4","version":"0.2.14"}},"from":"readdirp@~0.2.3","version":"0.2.5"}},"from":"monocle@1.1.51","version":"1.1.51"},"transformers":{"dependencies":{"css":{"dependencies":{"css-parse":{"from":"css-parse@1.0.4","version":"1.0.4"},"css-stringify":{"from":"css-stringify@1.0.5","version":"1.0.5"}},"from":"css@~1.0.8","version":"1.0.8"},"promise":{"dependencies":{"is-promise":{"from":"is-promise@~1","version":"1.0.0"}},"from":"promise@~2.0","version":"2.0.0"},"uglify-js":{"dependencies":{"optimist":{"dependencies":{"wordwrap":{"from":"wordwrap@~0.0.2","version":"0.0.2"}},"from":"optimist@~0.3.5","version":"0.3.7"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.33","version":"0.1.33"}},"from":"uglify-js@~2.2.5","version":"2.2.5"}},"from":"transformers@2.1.0","version":"2.1.0"},"with":{"dependencies":{"uglify-js":{"dependencies":{"async":{"from":"async@~0.2.6","version":"0.2.10"},"optimist":{"dependencies":{"wordwrap":{"from":"wordwrap@~0.0.2","version":"0.0.2"}},"from":"optimist@~0.3.5","version":"0.3.7"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.33","version":"0.1.33"},"uglify-to-browserify":{"from":"uglify-to-browserify@~1.0.0","version":"1.0.2"}},"from":"uglify-js@2.4.0","version":"2.4.0"}},"from":"with@~2.0.0","version":"2.0.0"}},"from":"jade@1.2.0","version":"1.2.0"}},"from":"grunt-contrib-jade@~0.11.0","version":"0.11.0"},"grunt-contrib-jshint":{"dependencies":{"hooker":{"from":"hooker@~0.2.3","version":"0.2.3"},"jshint":{"dependencies":{"cli":{"dependencies":{"glob":{"dependencies":{"inherits":{"from":"inherits@2","version":"2.0.1"}},"from":"glob@>= 3.1.4","version":"3.2.9"}},"from":"cli@0.4.x","version":"0.4.5"},"console-browserify":{"from":"console-browserify@0.1.6","version":"0.1.6"},"exit":{"from":"exit@0.1.x","version":"0.1.2"},"htmlparser2":{"dependencies":{"domelementtype":{"from":"domelementtype@1","version":"1.1.1"},"domhandler":{"from":"domhandler@2.1","version":"2.1.0"},"domutils":{"from":"domutils@1.1","version":"1.1.6"},"readable-stream":{"dependencies":{"string_decoder":{"from":"string_decoder@~0.10.x","version":"0.10.25-1"}},"from":"readable-stream@1.0","version":"1.0.26-2"}},"from":"htmlparser2@3.3.0","version":"3.3.0"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@0.x.x","version":"0.2.14"},"shelljs":{"from":"shelljs@0.1.4","version":"0.1.4"},"underscore":{"from":"underscore@1.4.4","version":"1.4.4"}},"from":"jshint@~2.4.0","version":"2.4.4"}},"from":"grunt-contrib-jshint@~0.9.2","version":"0.9.2"},"grunt-contrib-less":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"grunt-lib-contrib":{"dependencies":{"zlib-browserify":{"from":"zlib-browserify@0.0.1","version":"0.0.1"}},"from":"grunt-lib-contrib@0.6.1","version":"0.6.1"},"less":{"dependencies":{"clean-css":{"dependencies":{"commander":{"from":"commander@2.1.x","version":"2.1.0"}},"from":"clean-css@2.1.x","version":"2.1.6"},"mime":{"from":"mime@1.2.x","version":"1.2.11"},"mkdirp":{"from":"mkdirp@~0.3.5","version":"0.3.5"},"request":{"dependencies":{"aws-sign2":{"from":"aws-sign2@~0.5.0","version":"0.5.0"},"forever-agent":{"from":"forever-agent@~0.5.0","version":"0.5.2"},"form-data":{"dependencies":{"async":{"from":"async@~0.2.9","version":"0.2.10"},"combined-stream":{"dependencies":{"delayed-stream":{"from":"delayed-stream@0.0.5","version":"0.0.5"}},"from":"combined-stream@~0.0.4","version":"0.0.4"}},"from":"form-data@~0.1.0","version":"0.1.2"},"hawk":{"dependencies":{"boom":{"from":"boom@0.4.x","version":"0.4.2"},"cryptiles":{"from":"cryptiles@0.2.x","version":"0.2.2"},"hoek":{"from":"hoek@0.9.x","version":"0.9.1"},"sntp":{"from":"sntp@0.2.x","version":"0.2.4"}},"from":"hawk@1.0.0","version":"1.0.0"},"http-signature":{"dependencies":{"asn1":{"from":"asn1@0.1.11","version":"0.1.11"},"assert-plus":{"from":"assert-plus@0.1.2","version":"0.1.2"},"ctype":{"from":"ctype@0.5.2","version":"0.5.2"}},"from":"http-signature@~0.10.0","version":"0.10.0"},"json-stringify-safe":{"from":"json-stringify-safe@~5.0.0","version":"5.0.0"},"node-uuid":{"from":"node-uuid@~1.4.0","version":"1.4.1"},"oauth-sign":{"from":"oauth-sign@0.3.0","version":"0.3.0"},"qs":{"from":"qs@~0.6.0","version":"0.6.6"},"tough-cookie":{"dependencies":{"punycode":{"from":"punycode@>=0.2.0","version":"1.2.4"}},"from":"tough-cookie@>=0.12.0","version":"0.12.1"},"tunnel-agent":{"from":"tunnel-agent@0.3.0","version":"0.3.0"}},"from":"request@>=2.33.0","version":"2.34.0"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@0.1.x","version":"0.1.33"}},"from":"less@~1.7.0","version":"1.7.0"}},"from":"grunt-contrib-less@~0.10.0","version":"0.10.0"},"grunt-contrib-qunit":{"dependencies":{"grunt-lib-phantomjs":{"dependencies":{"eventemitter2":{"from":"eventemitter2@~0.4.9","version":"0.4.13"},"phantomjs":{"dependencies":{"adm-zip":{"from":"adm-zip@0.2.1","version":"0.2.1"},"kew":{"from":"kew@0.1.7","version":"0.1.7"},"mkdirp":{"from":"mkdirp@0.3.5","version":"0.3.5"},"ncp":{"from":"ncp@0.4.2","version":"0.4.2"},"npmconf":{"dependencies":{"config-chain":{"dependencies":{"proto-list":{"from":"proto-list@~1.2.1","version":"1.2.2"}},"from":"config-chain@~1.1.1","version":"1.1.8"},"inherits":{"from":"inherits@~1.0.0","version":"1.0.0"},"ini":{"from":"ini@~1.1.0","version":"1.1.0"},"nopt":{"dependencies":{"abbrev":{"from":"abbrev@1","version":"1.0.4"}},"from":"nopt@2","version":"2.2.0"},"once":{"from":"once@~1.1.1","version":"1.1.1"},"osenv":{"from":"osenv@0.0.3","version":"0.0.3"},"semver":{"from":"semver@~1.1.0","version":"1.1.4"}},"from":"npmconf@0.0.24","version":"0.0.24"},"rimraf":{"from":"rimraf@~2.2.2","version":"2.2.6"},"which":{"from":"which@~1.0.5","version":"1.0.5"}},"from":"phantomjs@~1.9.0-1","version":"1.9.7-1"},"semver":{"from":"semver@1.0.14","version":"1.0.14"},"temporary":{"dependencies":{"package":{"from":"package@>= 1.0.0 < 1.2.0","version":"1.0.1"}},"from":"temporary@~0.0.4","version":"0.0.8"}},"from":"grunt-lib-phantomjs@~0.5.0","version":"0.5.0"}},"from":"grunt-contrib-qunit@~0.4.0","version":"0.4.0"},"grunt-contrib-uglify":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@^0.4.0","version":"0.4.0"},"maxmin":{"dependencies":{"gzip-size":{"dependencies":{"concat-stream":{"dependencies":{"inherits":{"from":"inherits@~2.0.1","version":"2.0.1"},"readable-stream":{"dependencies":{"core-util-is":{"from":"core-util-is@~1.0.0","version":"1.0.1"},"debuglog":{"from":"debuglog@0.0.2","version":"0.0.2"},"string_decoder":{"from":"string_decoder@~0.10.x","version":"0.10.25-1"}},"from":"readable-stream@1.1.11","version":"1.1.11"},"typedarray":{"from":"typedarray@~0.0.5","version":"0.0.5"}},"from":"concat-stream@^1.4.1","version":"1.4.4"},"zlib-browserify":{"dependencies":{"tape":{"dependencies":{"deep-equal":{"from":"deep-equal@~0.0.0","version":"0.0.0"},"defined":{"from":"defined@~0.0.0","version":"0.0.0"},"jsonify":{"from":"jsonify@~0.0.0","version":"0.0.0"}},"from":"tape@0.2.2","version":"0.2.2"}},"from":"zlib-browserify@^0.0.3","version":"0.0.3"}},"from":"gzip-size@^0.1.0","version":"0.1.0"},"pretty-bytes":{"from":"pretty-bytes@^0.1.0","version":"0.1.0"}},"from":"maxmin@^0.1.0","version":"0.1.0"},"uglify-js":{"dependencies":{"async":{"from":"async@~0.2.6","version":"0.2.10"},"optimist":{"dependencies":{"wordwrap":{"from":"wordwrap@~0.0.2","version":"0.0.2"}},"from":"optimist@0.3.7","version":"0.3.7"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.33","version":"0.1.33"},"uglify-to-browserify":{"from":"uglify-to-browserify@~1.0.0","version":"1.0.2"}},"from":"uglify-js@~2.4.0","version":"2.4.13"}},"from":"grunt-contrib-uglify@~0.4.0","version":"0.4.0"},"grunt-contrib-watch":{"dependencies":{"async":{"from":"async@~0.2.10","version":"0.2.10"},"gaze":{"dependencies":{"globule":{"dependencies":{"glob":{"dependencies":{"graceful-fs":{"from":"graceful-fs@~1.2.0","version":"1.2.3"},"inherits":{"from":"inherits@1","version":"1.0.0"}},"from":"glob@~3.1.21","version":"3.1.21"},"lodash":{"from":"lodash@~1.0.1","version":"1.0.1"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.11","version":"0.2.14"}},"from":"globule@0.1.0","version":"0.1.0"}},"from":"gaze@~0.5.1","version":"0.5.1"},"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"},"tiny-lr-fork":{"dependencies":{"debug":{"from":"debug@~0.7.0","version":"0.7.4"},"faye-websocket":{"from":"faye-websocket@0.4.4","version":"0.4.4"},"noptify":{"dependencies":{"nopt":{"dependencies":{"abbrev":{"from":"abbrev@1","version":"1.0.4"}},"from":"nopt@2.0.0","version":"2.0.0"}},"from":"noptify@~0.0.3","version":"0.0.3"},"qs":{"from":"qs@0.5.6","version":"0.5.6"}},"from":"tiny-lr-fork@0.0.5","version":"0.0.5"}},"from":"grunt-contrib-watch@~0.6.0","version":"0.6.0"},"grunt-css-flip":{"from":"grunt-css-flip@~0.2.1","version":"0.2.1"},"grunt-csscomb":{"dependencies":{"csscomb":{"dependencies":{"commander":{"from":"commander@2.0.0","version":"2.0.0"},"gonzales-pe":{"from":"gonzales-pe@2.0.x","version":"2.0.2"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@0.2.12","version":"0.2.12"},"vow":{"from":"vow@0.3.11","version":"0.3.11"},"vow-fs":{"dependencies":{"node-uuid":{"from":"node-uuid@1.4.0","version":"1.4.0"},"vow-queue":{"from":"vow-queue@0.0.2","version":"0.0.2"}},"from":"vow-fs@0.2.3","version":"0.2.3"}},"from":"csscomb@~2.0.0","version":"2.0.4"}},"from":"grunt-csscomb@~2.0.1","version":"2.0.1"},"grunt-exec":{"from":"grunt-exec@~0.4.5","version":"0.4.5"},"grunt-html-validation":{"dependencies":{"colors":{"from":"colors@~0.6.0","version":"0.6.2"},"request":{"dependencies":{"aws-sign":{"from":"aws-sign@~0.3.0","version":"0.3.0"},"cookie-jar":{"from":"cookie-jar@~0.3.0","version":"0.3.0"},"forever-agent":{"from":"forever-agent@~0.5.0","version":"0.5.2"},"form-data":{"dependencies":{"async":{"from":"async@~0.2.9","version":"0.2.10"},"combined-stream":{"dependencies":{"delayed-stream":{"from":"delayed-stream@0.0.5","version":"0.0.5"}},"from":"combined-stream@~0.0.4","version":"0.0.4"}},"from":"form-data@~0.1.0","version":"0.1.2"},"hawk":{"dependencies":{"boom":{"from":"boom@0.4.x","version":"0.4.2"},"cryptiles":{"from":"cryptiles@0.2.x","version":"0.2.2"},"hoek":{"from":"hoek@0.9.x","version":"0.9.1"},"sntp":{"from":"sntp@0.2.x","version":"0.2.4"}},"from":"hawk@~1.0.0","version":"1.0.0"},"http-signature":{"dependencies":{"asn1":{"from":"asn1@0.1.11","version":"0.1.11"},"assert-plus":{"from":"assert-plus@0.1.2","version":"0.1.2"},"ctype":{"from":"ctype@0.5.2","version":"0.5.2"}},"from":"http-signature@~0.10.0","version":"0.10.0"},"json-stringify-safe":{"from":"json-stringify-safe@~5.0.0","version":"5.0.0"},"mime":{"from":"mime@~1.2.9","version":"1.2.11"},"node-uuid":{"from":"node-uuid@~1.4.0","version":"1.4.1"},"oauth-sign":{"from":"oauth-sign@~0.3.0","version":"0.3.0"},"qs":{"from":"qs@~0.6.0","version":"0.6.6"},"tunnel-agent":{"from":"tunnel-agent@~0.3.0","version":"0.3.0"}},"from":"request@2.27.0","version":"2.27.0"},"w3cjs":{"dependencies":{"commander":{"from":"commander@2.0.0","version":"2.0.0"},"superagent":{"dependencies":{"cookiejar":{"from":"cookiejar@1.3.0","version":"1.3.0"},"debug":{"from":"debug@~0.7.2","version":"0.7.4"},"emitter-component":{"from":"emitter-component@1.0.0","version":"1.0.0"},"formidable":{"from":"formidable@1.0.14","version":"1.0.14"},"methods":{"from":"methods@0.0.1","version":"0.0.1"},"mime":{"from":"mime@1.2.5","version":"1.2.5"},"qs":{"from":"qs@0.6.5","version":"0.6.5"},"reduce-component":{"from":"reduce-component@1.0.1","version":"1.0.1"}},"from":"superagent@0.15.7","version":"0.15.7"},"superagent-proxy":{"dependencies":{"proxy-agent":{"dependencies":{"http-proxy-agent":{"dependencies":{"agent-base":{"from":"agent-base@~1.0.1","version":"1.0.1"},"debug":{"from":"debug@~0.7.2","version":"0.7.4"},"extend":{"from":"extend@~1.2.0","version":"1.2.1"}},"from":"http-proxy-agent@0","version":"0.2.4"},"https-proxy-agent":{"dependencies":{"agent-base":{"from":"agent-base@~1.0.1","version":"1.0.1"},"debug":{"from":"debug@~0.7.2","version":"0.7.4"},"extend":{"from":"extend@~1.2.0","version":"1.2.1"}},"from":"https-proxy-agent@0","version":"0.3.3"},"lru-cache":{"from":"lru-cache@~2.3.1","version":"2.3.1"},"socks-proxy-agent":{"dependencies":{"agent-base":{"from":"agent-base@~1.0.1","version":"1.0.1"},"extend":{"from":"extend@~1.2.0","version":"1.2.1"},"rainbowsocks":{"dependencies":{"debug":{"from":"debug@~0.7.2","version":"0.7.4"}},"from":"rainbowsocks@~0.1.0","version":"0.1.1"}},"from":"socks-proxy-agent@0","version":"0.1.0"}},"from":"proxy-agent@~0.0.2","version":"0.0.2"}},"from":"superagent-proxy@0.2.0","version":"0.2.0"}},"from":"w3cjs@~0.1.22","version":"0.1.24"}},"from":"grunt-html-validation@~0.1.13","version":"0.1.13"},"grunt-jekyll":{"dependencies":{"tmp":{"from":"tmp@0.0.21","version":"0.0.21"}},"from":"grunt-jekyll@~0.4.1","version":"0.4.1"},"grunt-jscs-checker":{"dependencies":{"hooker":{"from":"hooker@~0.2.3","version":"0.2.3"},"jscs":{"dependencies":{"colors":{"from":"colors@0.6.0-1","version":"0.6.0-1"},"commander":{"dependencies":{"keypress":{"from":"keypress@0.1.x","version":"0.1.0"}},"from":"commander@1.2.0","version":"1.2.0"},"esprima":{"from":"esprima@1.0.3","version":"1.0.3"},"glob":{"dependencies":{"inherits":{"from":"inherits@2","version":"2.0.1"}},"from":"glob@3.2.7","version":"3.2.7"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@0.2.12","version":"0.2.12"},"strip-json-comments":{"from":"strip-json-comments@0.1.1","version":"0.1.1"},"vow":{"from":"vow@0.3.9","version":"0.3.9"},"vow-fs":{"dependencies":{"node-uuid":{"from":"node-uuid@1.4.0","version":"1.4.0"},"vow-queue":{"from":"vow-queue@0.0.2","version":"0.0.2"}},"from":"vow-fs@0.2.3","version":"0.2.3"},"xmlbuilder":{"dependencies":{"underscore":{"from":"underscore@>=1.5.x","version":"1.6.0"}},"from":"xmlbuilder@1.1.2","version":"1.1.2"}},"from":"jscs@~1.3.0","version":"1.3.0"},"lodash.assign":{"dependencies":{"lodash._basecreatecallback":{"dependencies":{"lodash._setbinddata":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"},"lodash.noop":{"from":"lodash.noop@~2.4.1","version":"2.4.1"}},"from":"lodash._setbinddata@~2.4.1","version":"2.4.1"},"lodash.bind":{"dependencies":{"lodash._createwrapper":{"dependencies":{"lodash._basebind":{"dependencies":{"lodash._basecreate":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"},"lodash.noop":{"from":"lodash.noop@~2.4.1","version":"2.4.1"}},"from":"lodash._basecreate@~2.4.1","version":"2.4.1"},"lodash.isobject":{"from":"lodash.isobject@~2.4.1","version":"2.4.1"}},"from":"lodash._basebind@~2.4.1","version":"2.4.1"},"lodash._basecreatewrapper":{"dependencies":{"lodash._basecreate":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"},"lodash.noop":{"from":"lodash.noop@~2.4.1","version":"2.4.1"}},"from":"lodash._basecreate@~2.4.1","version":"2.4.1"},"lodash.isobject":{"from":"lodash.isobject@~2.4.1","version":"2.4.1"}},"from":"lodash._basecreatewrapper@~2.4.1","version":"2.4.1"},"lodash.isfunction":{"from":"lodash.isfunction@~2.4.1","version":"2.4.1"}},"from":"lodash._createwrapper@~2.4.1","version":"2.4.1"},"lodash._slice":{"from":"lodash._slice@~2.4.1","version":"2.4.1"}},"from":"lodash.bind@~2.4.1","version":"2.4.1"},"lodash.identity":{"from":"lodash.identity@~2.4.1","version":"2.4.1"},"lodash.support":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"}},"from":"lodash.support@~2.4.1","version":"2.4.1"}},"from":"lodash._basecreatecallback@~2.4.1","version":"2.4.1"},"lodash._objecttypes":{"from":"lodash._objecttypes@~2.4.1","version":"2.4.1"},"lodash.keys":{"dependencies":{"lodash._isnative":{"from":"lodash._isnative@~2.4.1","version":"2.4.1"},"lodash._shimkeys":{"from":"lodash._shimkeys@~2.4.1","version":"2.4.1"},"lodash.isobject":{"from":"lodash.isobject@~2.4.1","version":"2.4.1"}},"from":"lodash.keys@~2.4.1","version":"2.4.1"}},"from":"lodash.assign@~2.4.1","version":"2.4.1"},"vow":{"from":"vow@~0.4.1","version":"0.4.1"}},"from":"grunt-jscs-checker@~0.4.0","version":"0.4.0"},"grunt-saucelabs":{"dependencies":{"colors":{"from":"colors@~0.6.2","version":"0.6.2"},"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"},"q":{"from":"q@~1.0.0","version":"1.0.1"},"request":{"dependencies":{"aws-sign2":{"from":"aws-sign2@~0.5.0","version":"0.5.0"},"forever-agent":{"from":"forever-agent@~0.5.0","version":"0.5.2"},"form-data":{"dependencies":{"async":{"from":"async@~0.2.9","version":"0.2.10"},"combined-stream":{"dependencies":{"delayed-stream":{"from":"delayed-stream@0.0.5","version":"0.0.5"}},"from":"combined-stream@~0.0.4","version":"0.0.4"}},"from":"form-data@~0.1.0","version":"0.1.2"},"hawk":{"dependencies":{"boom":{"from":"boom@0.4.x","version":"0.4.2"},"cryptiles":{"from":"cryptiles@0.2.x","version":"0.2.2"},"hoek":{"from":"hoek@0.9.x","version":"0.9.1"},"sntp":{"from":"sntp@0.2.x","version":"0.2.4"}},"from":"hawk@~1.0.0","version":"1.0.0"},"http-signature":{"dependencies":{"asn1":{"from":"asn1@0.1.11","version":"0.1.11"},"assert-plus":{"from":"assert-plus@0.1.2","version":"0.1.2"},"ctype":{"from":"ctype@0.5.2","version":"0.5.2"}},"from":"http-signature@~0.10.0","version":"0.10.0"},"json-stringify-safe":{"from":"json-stringify-safe@~5.0.0","version":"5.0.0"},"mime":{"from":"mime@~1.2.9","version":"1.2.11"},"node-uuid":{"from":"node-uuid@~1.4.0","version":"1.4.1"},"oauth-sign":{"from":"oauth-sign@~0.3.0","version":"0.3.0"},"qs":{"from":"qs@~0.6.0","version":"0.6.6"},"tough-cookie":{"dependencies":{"punycode":{"from":"punycode@>=0.2.0","version":"1.2.4"}},"from":"tough-cookie@>=0.12.0","version":"0.12.1"},"tunnel-agent":{"from":"tunnel-agent@~0.3.0","version":"0.3.0"}},"from":"request@2.33.0","version":"2.33.0"},"sauce-tunnel":{"dependencies":{"request":{"dependencies":{"aws-sign":{"from":"aws-sign@~0.3.0","version":"0.3.0"},"cookie-jar":{"from":"cookie-jar@~0.3.0","version":"0.3.0"},"forever-agent":{"from":"forever-agent@~0.5.0","version":"0.5.2"},"form-data":{"dependencies":{"async":{"from":"async@~0.2.7","version":"0.2.10"},"combined-stream":{"dependencies":{"delayed-stream":{"from":"delayed-stream@0.0.5","version":"0.0.5"}},"from":"combined-stream@~0.0.4","version":"0.0.4"}},"from":"form-data@0.0.8","version":"0.0.8"},"hawk":{"dependencies":{"boom":{"dependencies":{"hoek":{"from":"hoek@0.9.x","version":"0.9.1"}},"from":"boom@0.4.x","version":"0.4.2"},"cryptiles":{"from":"cryptiles@0.2.x","version":"0.2.2"},"hoek":{"from":"hoek@0.8.x","version":"0.8.5"},"sntp":{"dependencies":{"hoek":{"from":"hoek@0.9.x","version":"0.9.1"}},"from":"sntp@0.2.x","version":"0.2.4"}},"from":"hawk@~0.13.0","version":"0.13.1"},"http-signature":{"dependencies":{"asn1":{"from":"asn1@0.1.11","version":"0.1.11"},"assert-plus":{"from":"assert-plus@0.1.2","version":"0.1.2"},"ctype":{"from":"ctype@0.5.2","version":"0.5.2"}},"from":"http-signature@~0.9.11","version":"0.9.11"},"json-stringify-safe":{"from":"json-stringify-safe@~4.0.0","version":"4.0.0"},"mime":{"from":"mime@~1.2.9","version":"1.2.11"},"node-uuid":{"from":"node-uuid@~1.4.0","version":"1.4.1"},"oauth-sign":{"from":"oauth-sign@~0.3.0","version":"0.3.0"},"qs":{"from":"qs@~0.6.0","version":"0.6.6"},"tunnel-agent":{"from":"tunnel-agent@~0.3.0","version":"0.3.0"}},"from":"request@~2.21.0","version":"2.21.0"}},"from":"sauce-tunnel@1.1.2","version":"1.1.2"},"saucelabs":{"from":"saucelabs@~0.1.1","version":"0.1.1"}},"from":"grunt-saucelabs@~5.1.0","version":"5.1.0"},"grunt-sed":{"dependencies":{"replace":{"dependencies":{"colors":{"from":"colors@0.5.1","version":"0.5.1"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.9","version":"0.2.14"},"nomnom":{"dependencies":{"colors":{"from":"colors@0.5.1","version":"0.5.1"},"underscore":{"from":"underscore@1.4.4","version":"1.4.4"}},"from":"nomnom@1.6.x","version":"1.6.2"}},"from":"replace@~0.2.4","version":"0.2.9"}},"from":"grunt-sed@~0.1.1","version":"0.1.1"},"load-grunt-tasks":{"dependencies":{"findup-sync":{"dependencies":{"glob":{"dependencies":{"inherits":{"from":"inherits@2","version":"2.0.1"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.11","version":"0.2.14"}},"from":"glob@~3.2.9","version":"3.2.9"},"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"}},"from":"findup-sync@0.1.3","version":"0.1.3"},"multimatch":{"dependencies":{"lodash":{"from":"lodash@~2.4.1","version":"2.4.1"},"minimatch":{"dependencies":{"lru-cache":{"from":"lru-cache@2","version":"2.5.0"},"sigmund":{"from":"sigmund@~1.0.0","version":"1.0.0"}},"from":"minimatch@~0.2.14","version":"0.2.14"}},"from":"multimatch@^0.1.0","version":"0.1.0"}},"from":"load-grunt-tasks@~0.4.0","version":"0.4.0"},"markdown":{"dependencies":{"nopt":{"dependencies":{"abbrev":{"from":"abbrev@1","version":"1.0.4"}},"from":"nopt@2.1.2","version":"2.1.2"}},"from":"markdown@~0.5.0","version":"0.5.0"},"postcss":{"dependencies":{"base64-js":{"from":"base64-js@~0.0.6","version":"0.0.6"},"source-map":{"dependencies":{"amdefine":{"from":"amdefine@>=0.0.4","version":"0.1.0"}},"from":"source-map@~0.1.33","version":"0.1.33"}},"from":"postcss@~0.3.4","version":"0.3.4"},"time-grunt":{"dependencies":{"chalk":{"dependencies":{"ansi-styles":{"from":"ansi-styles@~1.0.0","version":"1.0.0"},"has-color":{"from":"has-color@~0.1.0","version":"0.1.4"},"strip-ansi":{"from":"strip-ansi@~0.1.0","version":"0.1.1"}},"from":"chalk@~0.4.0","version":"0.4.0"},"date-time":{"from":"date-time@~0.1.0","version":"0.1.1"},"hooker":{"from":"hooker@~0.2.3","version":"0.2.3"},"text-table":{"from":"text-table@~0.2.0","version":"0.2.0"}},"from":"time-grunt@~0.2.10","version":"0.2.10"}},"name":"bootstrap","version":"3.1.1"} \ No newline at end of file