From 148894bd9ee028d32ab2032441f6746bc7e794e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C4=93teris=20Caune?= <cuu508@gmail.com> Date: Fri, 1 Oct 2021 12:21:54 +0300 Subject: [PATCH] Upgrade to Bootstrap 3.4.1 --- CHANGELOG.md | 1 + static/css/bootstrap.css | 467 +++++++++--------- static/js/bootstrap.min.js | 7 +- stuff/bootstrap/alerts.less | 6 +- stuff/bootstrap/badges.less | 6 +- stuff/bootstrap/bootstrap.less | 6 +- stuff/bootstrap/breadcrumbs.less | 2 +- stuff/bootstrap/button-groups.less | 14 +- stuff/bootstrap/buttons.less | 10 +- stuff/bootstrap/carousel.less | 57 ++- stuff/bootstrap/close.less | 3 + stuff/bootstrap/code.less | 6 +- stuff/bootstrap/component-animations.less | 3 + stuff/bootstrap/dropdowns.less | 44 +- stuff/bootstrap/forms.less | 110 ++--- stuff/bootstrap/glyphicons.less | 20 +- stuff/bootstrap/grid.less | 10 + stuff/bootstrap/input-groups.less | 8 +- stuff/bootstrap/jumbotron.less | 10 +- stuff/bootstrap/labels.less | 2 +- stuff/bootstrap/list-group.less | 64 +-- stuff/bootstrap/media.less | 1 + stuff/bootstrap/mixins.less | 1 + stuff/bootstrap/mixins/alerts.less | 3 +- stuff/bootstrap/mixins/border-radius.less | 8 +- stuff/bootstrap/mixins/buttons.less | 16 +- stuff/bootstrap/mixins/center-block.less | 2 +- stuff/bootstrap/mixins/clearfix.less | 2 +- stuff/bootstrap/mixins/forms.less | 8 +- stuff/bootstrap/mixins/gradients.less | 14 +- stuff/bootstrap/mixins/grid-framework.less | 2 +- stuff/bootstrap/mixins/grid.less | 14 +- stuff/bootstrap/mixins/hide-text.less | 2 + stuff/bootstrap/mixins/image.less | 15 +- stuff/bootstrap/mixins/opacity.less | 2 + stuff/bootstrap/mixins/reset-filter.less | 8 + stuff/bootstrap/mixins/reset-text.less | 8 +- stuff/bootstrap/mixins/resize.less | 2 +- .../mixins/responsive-visibility.less | 4 +- stuff/bootstrap/mixins/tab-focus.less | 6 +- stuff/bootstrap/mixins/vendor-prefixes.less | 2 + stuff/bootstrap/modals.less | 14 +- stuff/bootstrap/navbar.less | 68 ++- stuff/bootstrap/navs.less | 10 +- stuff/bootstrap/normalize.less | 9 +- stuff/bootstrap/pager.less | 4 +- stuff/bootstrap/pagination.less | 27 +- stuff/bootstrap/panels.less | 12 +- stuff/bootstrap/popovers.less | 99 ++-- stuff/bootstrap/print.less | 150 +++--- stuff/bootstrap/progress-bars.less | 8 +- stuff/bootstrap/responsive-embed.less | 4 +- stuff/bootstrap/responsive-utilities.less | 23 + stuff/bootstrap/scaffolding.less | 14 +- stuff/bootstrap/tables.less | 48 +- stuff/bootstrap/theme.less | 44 +- stuff/bootstrap/thumbnails.less | 4 +- stuff/bootstrap/tooltip.less | 65 ++- stuff/bootstrap/type.less | 22 +- stuff/bootstrap/utilities.less | 2 + stuff/bootstrap/variables.less | 2 + stuff/bootstrap/wells.less | 4 +- 62 files changed, 833 insertions(+), 776 deletions(-) mode change 100755 => 100644 stuff/bootstrap/alerts.less mode change 100755 => 100644 stuff/bootstrap/badges.less mode change 100755 => 100644 stuff/bootstrap/breadcrumbs.less mode change 100755 => 100644 stuff/bootstrap/buttons.less mode change 100755 => 100644 stuff/bootstrap/close.less mode change 100755 => 100644 stuff/bootstrap/code.less mode change 100755 => 100644 stuff/bootstrap/component-animations.less mode change 100755 => 100644 stuff/bootstrap/dropdowns.less mode change 100755 => 100644 stuff/bootstrap/grid.less mode change 100755 => 100644 stuff/bootstrap/labels.less mode change 100755 => 100644 stuff/bootstrap/list-group.less mode change 100755 => 100644 stuff/bootstrap/media.less mode change 100755 => 100644 stuff/bootstrap/mixins.less mode change 100755 => 100644 stuff/bootstrap/mixins/center-block.less mode change 100755 => 100644 stuff/bootstrap/mixins/clearfix.less mode change 100755 => 100644 stuff/bootstrap/mixins/forms.less mode change 100755 => 100644 stuff/bootstrap/mixins/gradients.less mode change 100755 => 100644 stuff/bootstrap/mixins/grid-framework.less mode change 100755 => 100644 stuff/bootstrap/mixins/image.less mode change 100755 => 100644 stuff/bootstrap/mixins/opacity.less create mode 100644 stuff/bootstrap/mixins/reset-filter.less mode change 100755 => 100644 stuff/bootstrap/mixins/reset-text.less mode change 100755 => 100644 stuff/bootstrap/mixins/resize.less mode change 100755 => 100644 stuff/bootstrap/mixins/responsive-visibility.less mode change 100755 => 100644 stuff/bootstrap/mixins/tab-focus.less mode change 100755 => 100644 stuff/bootstrap/navbar.less mode change 100755 => 100644 stuff/bootstrap/navs.less mode change 100755 => 100644 stuff/bootstrap/normalize.less mode change 100755 => 100644 stuff/bootstrap/pager.less mode change 100755 => 100644 stuff/bootstrap/panels.less mode change 100755 => 100644 stuff/bootstrap/popovers.less mode change 100755 => 100644 stuff/bootstrap/print.less mode change 100755 => 100644 stuff/bootstrap/progress-bars.less mode change 100755 => 100644 stuff/bootstrap/responsive-embed.less mode change 100755 => 100644 stuff/bootstrap/responsive-utilities.less mode change 100755 => 100644 stuff/bootstrap/scaffolding.less mode change 100755 => 100644 stuff/bootstrap/tables.less mode change 100755 => 100644 stuff/bootstrap/thumbnails.less mode change 100755 => 100644 stuff/bootstrap/tooltip.less mode change 100755 => 100644 stuff/bootstrap/utilities.less mode change 100755 => 100644 stuff/bootstrap/wells.less diff --git a/CHANGELOG.md b/CHANGELOG.md index dd1bc6cd..8206d75a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file. - Add ability to edit existing email, Signal, SMS, WhatsApp integrations - Add new ping URL format: /{ping_key}/{slug} (#491) - Reduce Docker image size by using slim base image and multi-stage Dockerfile +- Upgrade to Bootstrap 3.4.1 ### Bug Fixes - Add handling for non-latin-1 characters in webhook headers diff --git a/static/css/bootstrap.css b/static/css/bootstrap.css index c7da5787..1477654a 100644 --- a/static/css/bootstrap.css +++ b/static/css/bootstrap.css @@ -1,7 +1,7 @@ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ html { @@ -50,7 +50,9 @@ a:hover { outline: 0; } abbr[title] { - border-bottom: 1px dotted; + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; } b, strong { @@ -186,10 +188,10 @@ th { *, *:before, *:after { - background: transparent !important; color: #000 !important; - box-shadow: none !important; text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; } a, a:visited { @@ -288,7 +290,6 @@ a:focus { text-decoration: underline; } a:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -330,8 +331,8 @@ hr { position: absolute; width: 1px; height: 1px; - margin: -1px; padding: 0; + margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; @@ -389,7 +390,7 @@ h6 .small, .h4 .small, .h5 .small, .h6 .small { - font-weight: normal; + font-weight: 400; line-height: 1; color: var(--text-muted); } @@ -483,8 +484,8 @@ small, } mark, .mark { - background-color: #fcf8e3; padding: 0.2em; + background-color: #fcf8e3; } .text-left { text-align: left; @@ -611,8 +612,8 @@ ol ol { } .list-inline > li { display: inline-block; - padding-left: 5px; padding-right: 5px; + padding-left: 5px; } dl { margin-top: 0; @@ -623,7 +624,7 @@ dd { line-height: 1.42857143; } dt { - font-weight: bold; + font-weight: 700; } dd { margin-left: 0; @@ -645,7 +646,6 @@ dd { abbr[title], abbr[data-original-title] { cursor: help; - border-bottom: 1px dotted #777777; } .initialism { font-size: 90%; @@ -673,15 +673,15 @@ blockquote .small { blockquote footer:before, blockquote small:before, blockquote .small:before { - content: '\2014 \00A0'; + content: "\2014 \00A0"; } .blockquote-reverse, blockquote.pull-right { padding-right: 15px; padding-left: 0; + text-align: right; border-right: 5px solid #eeeeee; border-left: 0; - text-align: right; } .blockquote-reverse footer:before, blockquote.pull-right footer:before, @@ -689,7 +689,7 @@ blockquote.pull-right footer:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { - content: ''; + content: ""; } .blockquote-reverse footer:after, blockquote.pull-right footer:after, @@ -697,7 +697,7 @@ blockquote.pull-right footer:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { - content: '\00A0 \2014'; + content: "\00A0 \2014"; } address { margin-bottom: 20px; @@ -728,7 +728,7 @@ kbd { kbd kbd { padding: 0; font-size: 100%; - font-weight: bold; + font-weight: 700; box-shadow: none; } pre { @@ -737,9 +737,9 @@ pre { margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; + color: var(--text-color); word-break: break-all; word-wrap: break-word; - color: var(--text-color); background-color: var(--pre-bg); border: 1px solid #ccc; border-radius: 2px; @@ -757,10 +757,10 @@ pre code { overflow-y: scroll; } .container { + padding-right: 15px; + padding-left: 15px; margin-right: auto; margin-left: auto; - padding-left: 15px; - padding-right: 15px; } @media (min-width: 768px) { .container { @@ -778,14 +778,22 @@ pre code { } } .container-fluid { + padding-right: 15px; + padding-left: 15px; margin-right: auto; margin-left: auto; - padding-left: 15px; - padding-right: 15px; } .row { - margin-left: -15px; margin-right: -15px; + margin-left: -15px; +} +.row-no-gutters { + margin-right: 0; + margin-left: 0; +} +.row-no-gutters [class*="col-"] { + padding-right: 0; + padding-left: 0; } .col-xs-1, .col-sm-1, @@ -837,8 +845,8 @@ pre code { .col-lg-12 { position: relative; min-height: 1px; - padding-left: 15px; padding-right: 15px; + padding-left: 15px; } .col-xs-1, .col-xs-2, @@ -1517,6 +1525,17 @@ pre code { table { background-color: transparent; } +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} caption { padding-top: 8px; padding-bottom: 8px; @@ -1589,17 +1608,6 @@ th { .table-hover > tbody > tr:hover { background-color: #f5f5f5; } -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} .table > thead > tr > td.active, .table > tbody > tr > td.active, .table > tfoot > tr > td.active, @@ -1706,8 +1714,8 @@ table th[class*="col-"] { background-color: #ebcccc; } .table-responsive { - overflow-x: auto; min-height: 0.01%; + overflow-x: auto; } @media screen and (max-width: 767px) { .table-responsive { @@ -1755,10 +1763,10 @@ table th[class*="col-"] { } } fieldset { + min-width: 0; padding: 0; margin: 0; border: 0; - min-width: 0; } legend { display: block; @@ -1775,10 +1783,12 @@ label { display: inline-block; max-width: 100%; margin-bottom: 5px; - font-weight: bold; + font-weight: 700; } input[type="search"] { box-sizing: border-box; + -webkit-appearance: none; + appearance: none; } input[type="radio"], input[type="checkbox"] { @@ -1786,6 +1796,14 @@ input[type="checkbox"] { margin-top: 1px \9; line-height: normal; } +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} input[type="file"] { display: block; } @@ -1800,7 +1818,6 @@ select[size] { input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -1828,7 +1845,7 @@ output { .form-control:focus { border-color: #66afe9; outline: 0; - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 0 4px rgba(102, 175, 233, 0.2); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 0 4px rgba(102, 175, 233, 0.2); } .form-control:-ms-input-placeholder { color: var(--text-muted); @@ -1838,8 +1855,8 @@ output { opacity: 1; } .form-control::-ms-expand { - border: 0; background-color: transparent; + border: 0; } .form-control[disabled], .form-control[readonly], @@ -1854,9 +1871,6 @@ fieldset[disabled] .form-control { textarea.form-control { height: auto; } -input[type="search"] { - -webkit-appearance: none; -} @media screen and (-webkit-min-device-pixel-ratio: 0) { input[type="date"].form-control, input[type="time"].form-control, @@ -1895,12 +1909,18 @@ input[type="search"] { margin-top: 10px; margin-bottom: 10px; } +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} .radio label, .checkbox label { min-height: 20px; padding-left: 20px; margin-bottom: 0; - font-weight: normal; + font-weight: 400; cursor: pointer; } .radio input[type="radio"], @@ -1908,8 +1928,8 @@ input[type="search"] { .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { position: absolute; - margin-left: -20px; margin-top: 4px \9; + margin-left: -20px; } .radio + .radio, .checkbox + .checkbox { @@ -1921,45 +1941,31 @@ input[type="search"] { display: inline-block; padding-left: 20px; margin-bottom: 0; + font-weight: 400; vertical-align: middle; - font-weight: normal; cursor: pointer; } -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} .radio-inline.disabled, .checkbox-inline.disabled, fieldset[disabled] .radio-inline, fieldset[disabled] .checkbox-inline { cursor: not-allowed; } -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; } .form-control-static { + min-height: 34px; padding-top: 7px; padding-bottom: 7px; margin-bottom: 0; - min-height: 34px; } .form-control-static.input-lg, .form-control-static.input-sm { - padding-left: 0; padding-right: 0; + padding-left: 0; } .input-sm { height: 30px; @@ -2089,8 +2095,8 @@ select[multiple].input-lg { } .has-success .input-group-addon { color: #3c763d; - border-color: #3c763d; background-color: #dff0d8; + border-color: #3c763d; } .has-success .form-control-feedback { color: #3c763d; @@ -2117,8 +2123,8 @@ select[multiple].input-lg { } .has-warning .input-group-addon { color: #8a6d3b; - border-color: #8a6d3b; background-color: #fcf8e3; + border-color: #8a6d3b; } .has-warning .form-control-feedback { color: #8a6d3b; @@ -2145,8 +2151,8 @@ select[multiple].input-lg { } .has-error .input-group-addon { color: #a94442; - border-color: #a94442; background-color: #f2dede; + border-color: #a94442; } .has-error .form-control-feedback { color: #a94442; @@ -2217,23 +2223,23 @@ select[multiple].input-lg { .form-horizontal .checkbox, .form-horizontal .radio-inline, .form-horizontal .checkbox-inline { + padding-top: 7px; margin-top: 0; margin-bottom: 0; - padding-top: 7px; } .form-horizontal .radio, .form-horizontal .checkbox { min-height: 27px; } .form-horizontal .form-group { - margin-left: -15px; margin-right: -15px; + margin-left: -15px; } @media (min-width: 768px) { .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; padding-top: 7px; + margin-bottom: 0; + text-align: right; } } .form-horizontal .has-feedback .form-control-feedback { @@ -2256,12 +2262,12 @@ select[multiple].input-lg { margin-bottom: 0; font-weight: normal; text-align: center; + white-space: nowrap; vertical-align: middle; touch-action: manipulation; cursor: pointer; background-image: none; border: 1px solid transparent; - white-space: nowrap; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; @@ -2277,7 +2283,6 @@ select[multiple].input-lg { .btn.focus, .btn:active.focus, .btn.active.focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2289,14 +2294,15 @@ select[multiple].input-lg { } .btn:active, .btn.active { - outline: 0; background-image: none; + outline: 0; box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } .btn.disabled, .btn[disabled], fieldset[disabled] .btn { cursor: not-allowed; + filter: alpha(opacity=65); opacity: 0.65; box-shadow: none; } @@ -2325,6 +2331,7 @@ fieldset[disabled] a.btn { .open > .dropdown-toggle.btn-default { color: #333; background-color: #e6e6e6; + background-image: none; border-color: #adadad; } .btn-default:active:hover, @@ -2340,11 +2347,6 @@ fieldset[disabled] a.btn { background-color: #d4d4d4; border-color: #8c8c8c; } -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, @@ -2382,6 +2384,7 @@ fieldset[disabled] .btn-default.focus { .open > .dropdown-toggle.btn-primary { color: #fff; background-color: #1a914f; + background-image: none; border-color: #15733e; } .btn-primary:active:hover, @@ -2397,11 +2400,6 @@ fieldset[disabled] .btn-default.focus { background-color: #15733e; border-color: #0b3a20; } -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, @@ -2439,6 +2437,7 @@ fieldset[disabled] .btn-primary.focus { .open > .dropdown-toggle.btn-success { color: #fff; background-color: #1a914f; + background-image: none; border-color: #15733e; } .btn-success:active:hover, @@ -2454,11 +2453,6 @@ fieldset[disabled] .btn-primary.focus { background-color: #15733e; border-color: #0b3a20; } -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, @@ -2496,6 +2490,7 @@ fieldset[disabled] .btn-success.focus { .open > .dropdown-toggle.btn-info { color: #fff; background-color: #31b0d5; + background-image: none; border-color: #269abc; } .btn-info:active:hover, @@ -2511,11 +2506,6 @@ fieldset[disabled] .btn-success.focus { background-color: #269abc; border-color: #1b6d85; } -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, @@ -2553,6 +2543,7 @@ fieldset[disabled] .btn-info.focus { .open > .dropdown-toggle.btn-warning { color: #fff; background-color: #ec971f; + background-image: none; border-color: #d58512; } .btn-warning:active:hover, @@ -2568,11 +2559,6 @@ fieldset[disabled] .btn-info.focus { background-color: #d58512; border-color: #985f0d; } -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, @@ -2610,6 +2596,7 @@ fieldset[disabled] .btn-warning.focus { .open > .dropdown-toggle.btn-danger { color: #fff; background-color: #c9302c; + background-image: none; border-color: #ac2925; } .btn-danger:active:hover, @@ -2625,11 +2612,6 @@ fieldset[disabled] .btn-warning.focus { background-color: #ac2925; border-color: #761c19; } -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, @@ -2647,8 +2629,8 @@ fieldset[disabled] .btn-danger.focus { background-color: #fff; } .btn-link { + font-weight: 400; color: var(--link-color); - font-weight: normal; border-radius: 0; } .btn-link, @@ -2766,15 +2748,15 @@ tbody.collapse.in { min-width: 160px; padding: 5px 0; margin: 2px 0 0; - list-style: none; font-size: 14px; text-align: left; + list-style: none; background-color: var(--dropdown-bg); + background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 2px; box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; } .dropdown-menu.pull-right { right: 0; @@ -2790,15 +2772,15 @@ tbody.collapse.in { display: block; padding: 3px 20px; clear: both; - font-weight: normal; + font-weight: 400; line-height: 1.42857143; color: var(--text-color); white-space: nowrap; } .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { - text-decoration: none; color: var(--text-color); + text-decoration: none; background-color: var(--dropdown-link-hover-bg); } .dropdown-menu > .active > a, @@ -2806,8 +2788,8 @@ tbody.collapse.in { .dropdown-menu > .active > a:focus { color: #fff; text-decoration: none; - outline: 0; background-color: #22bc66; + outline: 0; } .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, @@ -2817,9 +2799,10 @@ tbody.collapse.in { .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; + cursor: not-allowed; background-color: transparent; background-image: none; - cursor: not-allowed; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .open > .dropdown-menu { display: block; @@ -2828,12 +2811,12 @@ tbody.collapse.in { outline: 0; } .dropdown-menu-right { - left: auto; right: 0; + left: auto; } .dropdown-menu-left { - left: 0; right: auto; + left: 0; } .dropdown-header { display: block; @@ -2845,10 +2828,10 @@ tbody.collapse.in { } .dropdown-backdrop { position: fixed; - left: 0; + top: 0; right: 0; bottom: 0; - top: 0; + left: 0; z-index: 990; } .pull-right > .dropdown-menu { @@ -2857,10 +2840,10 @@ tbody.collapse.in { } .dropup .caret, .navbar-fixed-bottom .dropdown .caret { + content: ""; border-top: 0; border-bottom: 4px dashed; border-bottom: 4px solid \9; - content: ""; } .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { @@ -2870,12 +2853,12 @@ tbody.collapse.in { } @media (min-width: 768px) { .navbar-right .dropdown-menu { - left: auto; right: 0; + left: auto; } .navbar-right .dropdown-menu-left { - left: 0; right: auto; + left: 0; } } .btn-group, @@ -2925,13 +2908,13 @@ tbody.collapse.in { margin-left: 0; } .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; border-top-right-radius: 0; + border-bottom-right-radius: 0; } .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; border-top-left-radius: 0; + border-bottom-left-radius: 0; } .btn-group > .btn-group { float: left; @@ -2941,24 +2924,24 @@ tbody.collapse.in { } .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; border-top-right-radius: 0; + border-bottom-right-radius: 0; } .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-bottom-left-radius: 0; border-top-left-radius: 0; + border-bottom-left-radius: 0; } .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { outline: 0; } .btn-group > .btn + .dropdown-toggle { - padding-left: 8px; padding-right: 8px; + padding-left: 8px; } .btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; padding-right: 12px; + padding-left: 12px; } .btn-group.open .dropdown-toggle { box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); @@ -2998,14 +2981,14 @@ tbody.collapse.in { border-radius: 0; } .btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 2px; border-top-left-radius: 2px; + border-top-right-radius: 2px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; border-top-left-radius: 0; + border-top-right-radius: 0; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; } @@ -3018,8 +3001,8 @@ tbody.collapse.in { border-bottom-left-radius: 0; } .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; border-top-left-radius: 0; + border-top-right-radius: 0; } .btn-group-justified { display: table; @@ -3029,8 +3012,8 @@ tbody.collapse.in { } .btn-group-justified > .btn, .btn-group-justified > .btn-group { - float: none; display: table-cell; + float: none; width: 1%; } .btn-group-justified > .btn-group .btn { @@ -3054,8 +3037,8 @@ tbody.collapse.in { } .input-group[class*="col-"] { float: none; - padding-left: 0; padding-right: 0; + padding-left: 0; } .input-group .form-control { position: relative; @@ -3132,7 +3115,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .input-group-addon { padding: 6px 12px; font-size: 14px; - font-weight: normal; + font-weight: 400; line-height: 1; color: var(--input-color); text-align: center; @@ -3161,8 +3144,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; border-top-right-radius: 0; + border-bottom-right-radius: 0; } .input-group-addon:first-child { border-right: 0; @@ -3174,8 +3157,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .input-group-btn:last-child > .dropdown-toggle, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; border-top-left-radius: 0; + border-bottom-left-radius: 0; } .input-group-addon:last-child { border-left: 0; @@ -3206,8 +3189,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { margin-left: -1px; } .nav { - margin-bottom: 0; padding-left: 0; + margin-bottom: 0; list-style: none; } .nav > li { @@ -3231,8 +3214,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .nav > li.disabled > a:focus { color: #777777; text-decoration: none; - background-color: transparent; cursor: not-allowed; + background-color: transparent; } .nav .open > a, .nav .open > a:hover, @@ -3269,10 +3252,10 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: #555555; + cursor: default; background-color: var(--body-bg); border: 1px solid #ddd; border-bottom-color: transparent; - cursor: default; } .nav-tabs.nav-justified { width: 100%; @@ -3282,8 +3265,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { float: none; } .nav-tabs.nav-justified > li > a { - text-align: center; margin-bottom: 5px; + text-align: center; } .nav-tabs.nav-justified > .dropdown .dropdown-menu { top: auto; @@ -3347,8 +3330,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { float: none; } .nav-justified > li > a { - text-align: center; margin-bottom: 5px; + text-align: center; } .nav-justified > .dropdown .dropdown-menu { top: auto; @@ -3394,8 +3377,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .nav-tabs .dropdown-menu { margin-top: -1px; - border-top-right-radius: 0; border-top-left-radius: 0; + border-top-right-radius: 0; } .navbar { position: relative; @@ -3414,9 +3397,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } } .navbar-collapse { - overflow-x: visible; padding-right: 15px; padding-left: 15px; + overflow-x: visible; border-top: 1px solid transparent; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); -webkit-overflow-scrolling: touch; @@ -3439,12 +3422,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-collapse.in { overflow-y: visible; } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } } .container > .navbar-header, .container-fluid > .navbar-header, @@ -3464,10 +3441,10 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .navbar-brand { float: left; + height: 80px; padding: 30px 15px; font-size: 18px; line-height: 20px; - height: 80px; } .navbar-brand:hover, .navbar-brand:focus { @@ -3485,8 +3462,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-toggle { position: relative; float: right; - margin-right: 15px; padding: 9px 10px; + margin-right: 15px; margin-top: 23px; margin-bottom: 23px; background-color: transparent; @@ -3556,8 +3533,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .navbar-nav > li > .dropdown-menu { margin-top: 0; - border-top-right-radius: 0; border-top-left-radius: 0; + border-top-right-radius: 0; } .navbar-btn { margin-top: 23px; @@ -3578,8 +3555,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { @media (min-width: 768px) { .navbar-text { float: left; - margin-left: 15px; margin-right: 15px; + margin-left: 15px; } } @media (min-width: 768px) { @@ -3629,25 +3606,11 @@ select[multiple].input-group-sm > .input-group-btn > .btn { color: #ccc; background-color: transparent; } -.navbar-default .navbar-toggle { - border-color: var(--border-color); -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: var(--border-color); -} -.navbar-default .navbar-toggle .icon-bar { - background-color: var(--text-muted); -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: var(--border-color); -} .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { - background-color: transparent; color: var(--text-color); + background-color: transparent; } @media (max-width: 767px) { .navbar-default .navbar-nav .open .dropdown-menu > li > a { @@ -3671,6 +3634,20 @@ select[multiple].input-group-sm > .input-group-btn > .btn { background-color: transparent; } } +.navbar-default .navbar-toggle { + border-color: var(--border-color); +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: var(--border-color); +} +.navbar-default .navbar-toggle .icon-bar { + background-color: var(--text-muted); +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: var(--border-color); +} .navbar-default .navbar-link { color: var(--text-muted); } @@ -3701,9 +3678,9 @@ fieldset[disabled] .navbar-default .btn-link:focus { display: inline-block; } .breadcrumb > li + li:before { - content: "/\00a0"; padding: 0 5px; color: #ccc; + content: "/\00a0"; } .breadcrumb > .active { color: var(--breadcrumb-active-color); @@ -3712,7 +3689,7 @@ fieldset[disabled] .navbar-default .btn-link:focus { display: inline; padding: 0.2em 0.6em 0.3em; font-size: 75%; - font-weight: bold; + font-weight: 700; line-height: 1; color: #fff; text-align: center; @@ -3781,11 +3758,11 @@ a.label:focus { padding: 3px 7px; font-size: 12px; font-weight: bold; - color: #fff; line-height: 1; - vertical-align: middle; - white-space: nowrap; + color: #fff; text-align: center; + white-space: nowrap; + vertical-align: middle; background-color: #777777; border-radius: 10px; } @@ -3839,9 +3816,9 @@ a.badge:focus { } .container .jumbotron, .container-fluid .jumbotron { - border-radius: 3px; - padding-left: 15px; padding-right: 15px; + padding-left: 15px; + border-radius: 3px; } .jumbotron .container { max-width: 100%; @@ -3853,8 +3830,8 @@ a.badge:focus { } .container .jumbotron, .container-fluid .jumbotron { - padding-left: 60px; padding-right: 60px; + padding-left: 60px; } .jumbotron h1, .jumbotron .h1 { @@ -3893,9 +3870,9 @@ a.badge:focus { color: inherit; } .alert-success { + color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; - color: #3c763d; } .alert-success hr { border-top-color: #c9e2b3; @@ -3904,9 +3881,9 @@ a.badge:focus { color: #2b542c; } .alert-info { + color: #31708f; background-color: #d9edf7; border-color: #bce8f1; - color: #31708f; } .alert-info hr { border-top-color: #a6e1ec; @@ -3915,9 +3892,9 @@ a.badge:focus { color: #245269; } .alert-warning { + color: #8a6d3b; background-color: #fcf8e3; border-color: #faebcc; - color: #8a6d3b; } .alert-warning hr { border-top-color: #f7e1b5; @@ -3926,9 +3903,9 @@ a.badge:focus { color: #66512c; } .alert-danger { + color: #a94442; background-color: #f2dede; border-color: #ebccd1; - color: #a94442; } .alert-danger hr { border-top-color: #e4b9c0; @@ -3937,8 +3914,8 @@ a.badge:focus { color: #843534; } .list-group { - margin-bottom: 20px; padding-left: 0; + margin-bottom: 20px; } .list-group-item { position: relative; @@ -3949,40 +3926,20 @@ a.badge:focus { border: 1px solid var(--border-color); } .list-group-item:first-child { - border-top-right-radius: 2px; border-top-left-radius: 2px; + border-top-right-radius: 2px; } .list-group-item:last-child { margin-bottom: 0; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; } -a.list-group-item, -button.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading, -button.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -button.list-group-item:hover, -a.list-group-item:focus, -button.list-group-item:focus { - text-decoration: none; - color: #555; - background-color: #f5f5f5; -} -button.list-group-item { - width: 100%; - text-align: left; -} .list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { - background-color: #eeeeee; color: #777777; cursor: not-allowed; + background-color: #eeeeee; } .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, @@ -4018,6 +3975,26 @@ button.list-group-item { .list-group-item.active:focus .list-group-item-text { color: #b8f2d2; } +a.list-group-item, +button.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} +button.list-group-item { + width: 100%; + text-align: left; +} .list-group-item-success { color: #3c763d; background-color: #dff0d8; @@ -4155,8 +4132,8 @@ button.list-group-item-danger.active:focus { .panel-heading { padding: 10px 15px; border-bottom: 1px solid transparent; - border-top-right-radius: 1px; border-top-left-radius: 1px; + border-top-right-radius: 1px; } .panel-heading > .dropdown .dropdown-toggle { color: inherit; @@ -4193,8 +4170,8 @@ button.list-group-item-danger.active:focus { .panel > .list-group:first-child .list-group-item:first-child, .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { border-top: 0; - border-top-right-radius: 1px; border-top-left-radius: 1px; + border-top-right-radius: 1px; } .panel > .list-group:last-child .list-group-item:last-child, .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { @@ -4203,8 +4180,8 @@ button.list-group-item-danger.active:focus { border-bottom-left-radius: 1px; } .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-right-radius: 0; border-top-left-radius: 0; + border-top-right-radius: 0; } .panel-heading + .list-group .list-group-item:first-child { border-top-width: 0; @@ -4220,13 +4197,13 @@ button.list-group-item-danger.active:focus { .panel > .table caption, .panel > .table-responsive > .table caption, .panel > .panel-collapse > .table caption { - padding-left: 15px; padding-right: 15px; + padding-left: 15px; } .panel > .table:first-child, .panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: 1px; border-top-left-radius: 1px; + border-top-right-radius: 1px; } .panel > .table:first-child > thead:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, @@ -4264,8 +4241,8 @@ button.list-group-item-danger.active:focus { .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: 1px; border-bottom-right-radius: 1px; + border-bottom-left-radius: 1px; } .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, @@ -4350,8 +4327,8 @@ button.list-group-item-danger.active:focus { border-bottom: 0; } .panel > .table-responsive { - border: 0; margin-bottom: 0; + border: 0; } .panel-group { margin-bottom: 20px; @@ -4491,6 +4468,7 @@ button.list-group-item-danger.active:focus { line-height: 1; color: var(--close-color); text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); opacity: 0.2; } .close:hover, @@ -4498,6 +4476,7 @@ button.list-group-item-danger.active:focus { color: var(--close-color); text-decoration: none; cursor: pointer; + filter: alpha(opacity=50); opacity: 0.5; } button.close { @@ -4506,19 +4485,20 @@ button.close { background: transparent; border: 0; -webkit-appearance: none; + appearance: none; } .modal-open { overflow: hidden; } .modal { - display: none; - overflow: hidden; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; + display: none; + overflow: hidden; -webkit-overflow-scrolling: touch; outline: 0; } @@ -4541,11 +4521,11 @@ button.close { .modal-content { position: relative; background-color: var(--modal-content-bg); + background-clip: padding-box; border: 1px solid #999; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 3px; box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; outline: 0; } .modal-backdrop { @@ -4558,9 +4538,11 @@ button.close { background-color: #000; } .modal-backdrop.fade { + filter: alpha(opacity=0); opacity: 0; } .modal-backdrop.in { + filter: alpha(opacity=50); opacity: 0.5; } .modal-header { @@ -4584,8 +4566,8 @@ button.close { border-top: 1px solid var(--border-muted); } .modal-footer .btn + .btn { - margin-left: 5px; margin-bottom: 0; + margin-left: 5px; } .modal-footer .btn-group .btn + .btn { margin-left: -1px; @@ -4623,55 +4605,42 @@ button.close { display: block; font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; + font-weight: 400; line-height: 1.42857143; + line-break: auto; text-align: left; text-align: start; text-decoration: none; text-shadow: none; text-transform: none; - white-space: normal; + letter-spacing: normal; word-break: normal; word-spacing: normal; word-wrap: normal; + white-space: normal; font-size: 12px; + filter: alpha(opacity=0); opacity: 0; } .tooltip.in { + filter: alpha(opacity=90); opacity: 0.9; } .tooltip.top { - margin-top: -3px; padding: 5px 0; + margin-top: -3px; } .tooltip.right { - margin-left: 3px; padding: 0 5px; + margin-left: 3px; } .tooltip.bottom { - margin-top: 3px; padding: 5px 0; + margin-top: 3px; } .tooltip.left { - margin-left: -3px; padding: 0 5px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 2px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; + margin-left: -3px; } .tooltip.top .tooltip-arrow { bottom: 0; @@ -4681,8 +4650,8 @@ button.close { border-top-color: #000; } .tooltip.top-left .tooltip-arrow { - bottom: 0; right: 5px; + bottom: 0; margin-bottom: -5px; border-width: 5px 5px 0; border-top-color: #000; @@ -4729,6 +4698,21 @@ button.close { border-width: 0 5px 5px; border-bottom-color: #000; } +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 2px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} .clearfix:before, .clearfix:after, .dl-horizontal dd:before, @@ -4759,8 +4743,8 @@ button.close { .modal-header:after, .modal-footer:before, .modal-footer:after { - content: " "; display: table; + content: " "; } .clearfix:after, .dl-horizontal dd:after, @@ -4781,8 +4765,8 @@ button.close { } .center-block { display: block; - margin-left: auto; margin-right: auto; + margin-left: auto; } .pull-right { float: right !important; @@ -4812,6 +4796,9 @@ button.close { .affix { position: fixed; } +@-ms-viewport { + width: device-width; +} .visible-xs, .visible-sm, .visible-md, diff --git a/static/js/bootstrap.min.js b/static/js/bootstrap.min.js index e79c0651..eb0a8b41 100644 --- a/static/js/bootstrap.min.js +++ b/static/js/bootstrap.min.js @@ -1,7 +1,6 @@ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. * Licensed under the MIT license */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active"); -d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(t){"use strict";var e=jQuery.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||3<e[0])throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(),function(n){"use strict";n.fn.emulateTransitionEnd=function(t){var e=!1,i=this;n(this).one("bsTransitionEnd",function(){e=!0});return setTimeout(function(){e||n(i).trigger(n.support.transition.end)},t),this},n(function(){n.support.transition=function o(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(t.style[i]!==undefined)return{end:e[i]};return!1}(),n.support.transition&&(n.event.special.bsTransitionEnd={bindType:n.support.transition.end,delegateType:n.support.transition.end,handle:function(t){if(n(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})})}(jQuery),function(s){"use strict";var e='[data-dismiss="alert"]',a=function(t){s(t).on("click",e,this.close)};a.VERSION="3.4.1",a.TRANSITION_DURATION=150,a.prototype.close=function(t){var e=s(this),i=e.attr("data-target");i||(i=(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=s(document).find(i);function n(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=e.closest(".alert")),o.trigger(t=s.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),s.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",n).emulateTransitionEnd(a.TRANSITION_DURATION):n())};var t=s.fn.alert;s.fn.alert=function o(i){return this.each(function(){var t=s(this),e=t.data("bs.alert");e||t.data("bs.alert",e=new a(this)),"string"==typeof i&&e[i].call(t)})},s.fn.alert.Constructor=a,s.fn.alert.noConflict=function(){return s.fn.alert=t,this},s(document).on("click.bs.alert.data-api",e,a.prototype.close)}(jQuery),function(s){"use strict";var n=function(t,e){this.$element=s(t),this.options=s.extend({},n.DEFAULTS,e),this.isLoading=!1};function i(o){return this.each(function(){var t=s(this),e=t.data("bs.button"),i="object"==typeof o&&o;e||t.data("bs.button",e=new n(this,i)),"toggle"==o?e.toggle():o&&e.setState(o)})}n.VERSION="3.4.1",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(t){var e="disabled",i=this.$element,o=i.is("input")?"val":"html",n=i.data();t+="Text",null==n.resetText&&i.data("resetText",i[o]()),setTimeout(s.proxy(function(){i[o](null==n[t]?this.options[t]:n[t]),"loadingText"==t?(this.isLoading=!0,i.addClass(e).attr(e,e).prop(e,!0)):this.isLoading&&(this.isLoading=!1,i.removeClass(e).removeAttr(e).prop(e,!1))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var t=s.fn.button;s.fn.button=i,s.fn.button.Constructor=n,s.fn.button.noConflict=function(){return s.fn.button=t,this},s(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(t){var e=s(t.target).closest(".btn");i.call(e,"toggle"),s(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),e.is("input,button")?e.trigger("focus"):e.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(t){s(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))})}(jQuery),function(p){"use strict";var c=function(t,e){this.$element=p(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=e,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",p.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",p.proxy(this.pause,this)).on("mouseleave.bs.carousel",p.proxy(this.cycle,this))};function r(n){return this.each(function(){var t=p(this),e=t.data("bs.carousel"),i=p.extend({},c.DEFAULTS,t.data(),"object"==typeof n&&n),o="string"==typeof n?n:i.slide;e||t.data("bs.carousel",e=new c(this,i)),"number"==typeof n?e.to(n):o?e[o]():i.interval&&e.pause().cycle()})}c.VERSION="3.4.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},c.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(p.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},c.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e);if(("prev"==t&&0===i||"next"==t&&i==this.$items.length-1)&&!this.options.wrap)return e;var o=(i+("prev"==t?-1:1))%this.$items.length;return this.$items.eq(o)},c.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(t>this.$items.length-1||t<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(i<t?"next":"prev",this.$items.eq(t))},c.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&p.support.transition&&(this.$element.trigger(p.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(t,e){var i=this.$element.find(".item.active"),o=e||this.getItemForDirection(t,i),n=this.interval,s="next"==t?"left":"right",a=this;if(o.hasClass("active"))return this.sliding=!1;var r=o[0],l=p.Event("slide.bs.carousel",{relatedTarget:r,direction:s});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,n&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var h=p(this.$indicators.children()[this.getItemIndex(o)]);h&&h.addClass("active")}var d=p.Event("slid.bs.carousel",{relatedTarget:r,direction:s});return p.support.transition&&this.$element.hasClass("slide")?(o.addClass(t),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(s),o.addClass(s),i.one("bsTransitionEnd",function(){o.removeClass([t,s].join(" ")).addClass("active"),i.removeClass(["active",s].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger(d)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(d)),n&&this.cycle(),this}};var t=p.fn.carousel;p.fn.carousel=r,p.fn.carousel.Constructor=c,p.fn.carousel.noConflict=function(){return p.fn.carousel=t,this};var e=function(t){var e=p(this),i=e.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=e.attr("data-target")||i,n=p(document).find(o);if(n.hasClass("carousel")){var s=p.extend({},n.data(),e.data()),a=e.attr("data-slide-to");a&&(s.interval=!1),r.call(n,s),a&&n.data("bs.carousel").to(a),t.preventDefault()}};p(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),p(window).on("load",function(){p('[data-ride="carousel"]').each(function(){var t=p(this);r.call(t,t.data())})})}(jQuery),function(a){"use strict";var r=function(t,e){this.$element=a(t),this.options=a.extend({},r.DEFAULTS,e),this.$trigger=a('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(t){var e,i=t.attr("data-target")||(e=t.attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"");return a(document).find(i)}function l(o){return this.each(function(){var t=a(this),e=t.data("bs.collapse"),i=a.extend({},r.DEFAULTS,t.data(),"object"==typeof o&&o);!e&&i.toggle&&/show|hide/.test(o)&&(i.toggle=!1),e||t.data("bs.collapse",e=new r(this,i)),"string"==typeof o&&e[o]()})}r.VERSION="3.4.1",r.TRANSITION_DURATION=350,r.DEFAULTS={toggle:!0},r.prototype.dimension=function(){return this.$element.hasClass("width")?"width":"height"},r.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var t,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(t=e.data("bs.collapse"))&&t.transitioning)){var i=a.Event("show.bs.collapse");if(this.$element.trigger(i),!i.isDefaultPrevented()){e&&e.length&&(l.call(e,"hide"),t||e.data("bs.collapse",null));var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var n=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return n.call(this);var s=a.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",a.proxy(n,this)).emulateTransitionEnd(r.TRANSITION_DURATION)[o](this.$element[0][s])}}}},r.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var t=a.Event("hide.bs.collapse");if(this.$element.trigger(t),!t.isDefaultPrevented()){var e=this.dimension();this.$element[e](this.$element[e]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!a.support.transition)return i.call(this);this.$element[e](0).one("bsTransitionEnd",a.proxy(i,this)).emulateTransitionEnd(r.TRANSITION_DURATION)}}},r.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},r.prototype.getParent=function(){return a(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(t,e){var i=a(e);this.addAriaAndCollapsedClass(n(i),i)},this)).end()},r.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var t=a.fn.collapse;a.fn.collapse=l,a.fn.collapse.Constructor=r,a.fn.collapse.noConflict=function(){return a.fn.collapse=t,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(t){var e=a(this);e.attr("data-target")||t.preventDefault();var i=n(e),o=i.data("bs.collapse")?"toggle":e.data();l.call(i,o)})}(jQuery),function(a){"use strict";var r='[data-toggle="dropdown"]',o=function(t){a(t).on("click.bs.dropdown",this.toggle)};function l(t){var e=t.attr("data-target");e||(e=(e=t.attr("href"))&&/#[A-Za-z]/.test(e)&&e.replace(/.*(?=#[^\s]*$)/,""));var i="#"!==e?a(document).find(e):null;return i&&i.length?i:t.parent()}function s(o){o&&3===o.which||(a(".dropdown-backdrop").remove(),a(r).each(function(){var t=a(this),e=l(t),i={relatedTarget:this};e.hasClass("open")&&(o&&"click"==o.type&&/input|textarea/i.test(o.target.tagName)&&a.contains(e[0],o.target)||(e.trigger(o=a.Event("hide.bs.dropdown",i)),o.isDefaultPrevented()||(t.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",i)))))}))}o.VERSION="3.4.1",o.prototype.toggle=function(t){var e=a(this);if(!e.is(".disabled, :disabled")){var i=l(e),o=i.hasClass("open");if(s(),!o){"ontouchstart"in document.documentElement&&!i.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",s);var n={relatedTarget:this};if(i.trigger(t=a.Event("show.bs.dropdown",n)),t.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),i.toggleClass("open").trigger(a.Event("shown.bs.dropdown",n))}return!1}},o.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var e=a(this);if(t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled")){var i=l(e),o=i.hasClass("open");if(!o&&27!=t.which||o&&27==t.which)return 27==t.which&&i.find(r).trigger("focus"),e.trigger("click");var n=i.find(".dropdown-menu li:not(.disabled):visible a");if(n.length){var s=n.index(t.target);38==t.which&&0<s&&s--,40==t.which&&s<n.length-1&&s++,~s||(s=0),n.eq(s).trigger("focus")}}}};var t=a.fn.dropdown;a.fn.dropdown=function e(i){return this.each(function(){var t=a(this),e=t.data("bs.dropdown");e||t.data("bs.dropdown",e=new o(this)),"string"==typeof i&&e[i].call(t)})},a.fn.dropdown.Constructor=o,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=t,this},a(document).on("click.bs.dropdown.data-api",s).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",r,o.prototype.toggle).on("keydown.bs.dropdown.data-api",r,o.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",o.prototype.keydown)}(jQuery),function(a){"use strict";var s=function(t,e){this.options=e,this.$body=a(document.body),this.$element=a(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.fixedContent=".navbar-fixed-top, .navbar-fixed-bottom",this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};function r(o,n){return this.each(function(){var t=a(this),e=t.data("bs.modal"),i=a.extend({},s.DEFAULTS,t.data(),"object"==typeof o&&o);e||t.data("bs.modal",e=new s(this,i)),"string"==typeof o?e[o](n):i.show&&e.show(n)})}s.VERSION="3.4.1",s.TRANSITION_DURATION=300,s.BACKDROP_TRANSITION_DURATION=150,s.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},s.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},s.prototype.show=function(i){var o=this,t=a.Event("show.bs.modal",{relatedTarget:i});this.$element.trigger(t),this.isShown||t.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(t){a(t.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var t=a.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),t&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:i});t?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(s.TRANSITION_DURATION):o.$element.trigger("focus").trigger(e)}))},s.prototype.hide=function(t){t&&t.preventDefault(),t=a.Event("hide.bs.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(s.TRANSITION_DURATION):this.hideModal())},s.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(t){document===t.target||this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},s.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},s.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},s.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},s.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},s.prototype.backdrop=function(t){var e=this,i=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var o=a.support.transition&&i;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+i).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;o?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(s.BACKDROP_TRANSITION_DURATION):t()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var n=function(){e.removeBackdrop(),t&&t()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",n).emulateTransitionEnd(s.BACKDROP_TRANSITION_DURATION):n()}else t&&t()},s.prototype.handleUpdate=function(){this.adjustDialog()},s.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},s.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},s.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},s.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"";var n=this.scrollbarWidth;this.bodyIsOverflowing&&(this.$body.css("padding-right",t+n),a(this.fixedContent).each(function(t,e){var i=e.style.paddingRight,o=a(e).css("padding-right");a(e).data("padding-right",i).css("padding-right",parseFloat(o)+n+"px")}))},s.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad),a(this.fixedContent).each(function(t,e){var i=a(e).data("padding-right");a(e).removeData("padding-right"),e.style.paddingRight=i||""})},s.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var t=a.fn.modal;a.fn.modal=r,a.fn.modal.Constructor=s,a.fn.modal.noConflict=function(){return a.fn.modal=t,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(t){var e=a(this),i=e.attr("href"),o=e.attr("data-target")||i&&i.replace(/.*(?=#[^\s]+$)/,""),n=a(document).find(o),s=n.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(i)&&i},n.data(),e.data());e.is("a")&&t.preventDefault(),n.one("show.bs.modal",function(t){t.isDefaultPrevented()||n.one("hidden.bs.modal",function(){e.is(":visible")&&e.trigger("focus")})}),r.call(n,s,this)})}(jQuery),function(g){"use strict";var o=["sanitize","whiteList","sanitizeFn"],a=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],t={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},r=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,l=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function u(t,e){var i=t.nodeName.toLowerCase();if(-1!==g.inArray(i,e))return-1===g.inArray(i,a)||Boolean(t.nodeValue.match(r)||t.nodeValue.match(l));for(var o=g(e).filter(function(t,e){return e instanceof RegExp}),n=0,s=o.length;n<s;n++)if(i.match(o[n]))return!0;return!1}function n(t,e,i){if(0===t.length)return t;if(i&&"function"==typeof i)return i(t);if(!document.implementation||!document.implementation.createHTMLDocument)return t;var o=document.implementation.createHTMLDocument("sanitization");o.body.innerHTML=t;for(var n=g.map(e,function(t,e){return e}),s=g(o.body).find("*"),a=0,r=s.length;a<r;a++){var l=s[a],h=l.nodeName.toLowerCase();if(-1!==g.inArray(h,n))for(var d=g.map(l.attributes,function(t){return t}),p=[].concat(e["*"]||[],e[h]||[]),c=0,f=d.length;c<f;c++)u(d[c],p)||l.removeAttribute(d[c].nodeName);else l.parentNode.removeChild(l)}return o.body.innerHTML}var m=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};m.VERSION="3.4.1",m.TRANSITION_DURATION=150,m.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:t},m.prototype.init=function(t,e,i){if(this.enabled=!0,this.type=t,this.$element=g(e),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&g(document).find(g.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var o=this.options.trigger.split(" "),n=o.length;n--;){var s=o[n];if("click"==s)this.$element.on("click."+this.type,this.options.selector,g.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",r="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,g.proxy(this.enter,this)),this.$element.on(r+"."+this.type,this.options.selector,g.proxy(this.leave,this))}}this.options.selector?this._options=g.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},m.prototype.getDefaults=function(){return m.DEFAULTS},m.prototype.getOptions=function(t){var e=this.$element.data();for(var i in e)e.hasOwnProperty(i)&&-1!==g.inArray(i,o)&&delete e[i];return(t=g.extend({},this.getDefaults(),e,t)).delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t.sanitize&&(t.template=n(t.template,t.whiteList,t.sanitizeFn)),t},m.prototype.getDelegateOptions=function(){var i={},o=this.getDefaults();return this._options&&g.each(this._options,function(t,e){o[t]!=e&&(i[t]=e)}),i},m.prototype.enter=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data("bs."+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e)),t instanceof g.Event&&(e.inState["focusin"==t.type?"focus":"hover"]=!0),e.tip().hasClass("in")||"in"==e.hoverState)e.hoverState="in";else{if(clearTimeout(e.timeout),e.hoverState="in",!e.options.delay||!e.options.delay.show)return e.show();e.timeout=setTimeout(function(){"in"==e.hoverState&&e.show()},e.options.delay.show)}},m.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},m.prototype.leave=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data("bs."+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e)),t instanceof g.Event&&(e.inState["focusout"==t.type?"focus":"hover"]=!1),!e.isInStateTrue()){if(clearTimeout(e.timeout),e.hoverState="out",!e.options.delay||!e.options.delay.hide)return e.hide();e.timeout=setTimeout(function(){"out"==e.hoverState&&e.hide()},e.options.delay.hide)}},m.prototype.show=function(){var t=g.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var e=g.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!e)return;var i=this,o=this.tip(),n=this.getUID(this.type);this.setContent(),o.attr("id",n),this.$element.attr("aria-describedby",n),this.options.animation&&o.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,r=a.test(s);r&&(s=s.replace(a,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?o.appendTo(g(document).find(this.options.container)):o.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var l=this.getPosition(),h=o[0].offsetWidth,d=o[0].offsetHeight;if(r){var p=s,c=this.getPosition(this.$viewport);s="bottom"==s&&l.bottom+d>c.bottom?"top":"top"==s&&l.top-d<c.top?"bottom":"right"==s&&l.right+h>c.width?"left":"left"==s&&l.left-h<c.left?"right":s,o.removeClass(p).addClass(s)}var f=this.getCalculatedOffset(s,l,h,d);this.applyPlacement(f,s);var u=function(){var t=i.hoverState;i.$element.trigger("shown.bs."+i.type),i.hoverState=null,"out"==t&&i.leave(i)};g.support.transition&&this.$tip.hasClass("fade")?o.one("bsTransitionEnd",u).emulateTransitionEnd(m.TRANSITION_DURATION):u()}},m.prototype.applyPlacement=function(t,e){var i=this.tip(),o=i[0].offsetWidth,n=i[0].offsetHeight,s=parseInt(i.css("margin-top"),10),a=parseInt(i.css("margin-left"),10);isNaN(s)&&(s=0),isNaN(a)&&(a=0),t.top+=s,t.left+=a,g.offset.setOffset(i[0],g.extend({using:function(t){i.css({top:Math.round(t.top),left:Math.round(t.left)})}},t),0),i.addClass("in");var r=i[0].offsetWidth,l=i[0].offsetHeight;"top"==e&&l!=n&&(t.top=t.top+n-l);var h=this.getViewportAdjustedDelta(e,t,r,l);h.left?t.left+=h.left:t.top+=h.top;var d=/top|bottom/.test(e),p=d?2*h.left-o+r:2*h.top-n+l,c=d?"offsetWidth":"offsetHeight";i.offset(t),this.replaceArrow(p,i[0][c],d)},m.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},m.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();this.options.html?(this.options.sanitize&&(e=n(e,this.options.whiteList,this.options.sanitizeFn)),t.find(".tooltip-inner").html(e)):t.find(".tooltip-inner").text(e),t.removeClass("fade in top bottom left right")},m.prototype.hide=function(t){var e=this,i=g(this.$tip),o=g.Event("hide.bs."+this.type);function n(){"in"!=e.hoverState&&i.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),t&&t()}if(this.$element.trigger(o),!o.isDefaultPrevented())return i.removeClass("in"),g.support.transition&&i.hasClass("fade")?i.one("bsTransitionEnd",n).emulateTransitionEnd(m.TRANSITION_DURATION):n(),this.hoverState=null,this},m.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},m.prototype.hasContent=function(){return this.getTitle()},m.prototype.getPosition=function(t){var e=(t=t||this.$element)[0],i="BODY"==e.tagName,o=e.getBoundingClientRect();null==o.width&&(o=g.extend({},o,{width:o.right-o.left,height:o.bottom-o.top}));var n=window.SVGElement&&e instanceof window.SVGElement,s=i?{top:0,left:0}:n?null:t.offset(),a={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:t.scrollTop()},r=i?{width:g(window).width(),height:g(window).height()}:null;return g.extend({},o,a,r,s)},m.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},m.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},m.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},m.prototype.getUID=function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},m.prototype.tip=function(){if(!this.$tip&&(this.$tip=g(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},m.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},m.prototype.enable=function(){this.enabled=!0},m.prototype.disable=function(){this.enabled=!1},m.prototype.toggleEnabled=function(){this.enabled=!this.enabled},m.prototype.toggle=function(t){var e=this;t&&((e=g(t.currentTarget).data("bs."+this.type))||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e))),t?(e.inState.click=!e.inState.click,e.isInStateTrue()?e.enter(e):e.leave(e)):e.tip().hasClass("in")?e.leave(e):e.enter(e)},m.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})},m.prototype.sanitizeHtml=function(t){return n(t,this.options.whiteList,this.options.sanitizeFn)};var e=g.fn.tooltip;g.fn.tooltip=function i(o){return this.each(function(){var t=g(this),e=t.data("bs.tooltip"),i="object"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data("bs.tooltip",e=new m(this,i)),"string"==typeof o&&e[o]())})},g.fn.tooltip.Constructor=m,g.fn.tooltip.noConflict=function(){return g.fn.tooltip=e,this}}(jQuery),function(n){"use strict";var s=function(t,e){this.init("popover",t,e)};if(!n.fn.tooltip)throw new Error("Popover requires tooltip.js");s.VERSION="3.4.1",s.DEFAULTS=n.extend({},n.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),((s.prototype=n.extend({},n.fn.tooltip.Constructor.prototype)).constructor=s).prototype.getDefaults=function(){return s.DEFAULTS},s.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();if(this.options.html){var o=typeof i;this.options.sanitize&&(e=this.sanitizeHtml(e),"string"===o&&(i=this.sanitizeHtml(i))),t.find(".popover-title").html(e),t.find(".popover-content").children().detach().end()["string"===o?"html":"append"](i)}else t.find(".popover-title").text(e),t.find(".popover-content").children().detach().end().text(i);t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},s.prototype.hasContent=function(){return this.getTitle()||this.getContent()},s.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},s.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var t=n.fn.popover;n.fn.popover=function e(o){return this.each(function(){var t=n(this),e=t.data("bs.popover"),i="object"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data("bs.popover",e=new s(this,i)),"string"==typeof o&&e[o]())})},n.fn.popover.Constructor=s,n.fn.popover.noConflict=function(){return n.fn.popover=t,this}}(jQuery),function(s){"use strict";function n(t,e){this.$body=s(document.body),this.$scrollElement=s(t).is(document.body)?s(window):s(t),this.options=s.extend({},n.DEFAULTS,e),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",s.proxy(this.process,this)),this.refresh(),this.process()}function e(o){return this.each(function(){var t=s(this),e=t.data("bs.scrollspy"),i="object"==typeof o&&o;e||t.data("bs.scrollspy",e=new n(this,i)),"string"==typeof o&&e[o]()})}n.VERSION="3.4.1",n.DEFAULTS={offset:10},n.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},n.prototype.refresh=function(){var t=this,o="offset",n=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),s.isWindow(this.$scrollElement[0])||(o="position",n=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var t=s(this),e=t.data("target")||t.attr("href"),i=/^#./.test(e)&&s(e);return i&&i.length&&i.is(":visible")&&[[i[o]().top+n,e]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},n.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),o<=e)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(n[t+1]===undefined||e<n[t+1])&&this.activate(s[t])},n.prototype.activate=function(t){this.activeTarget=t,this.clear();var e=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',i=s(e).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},n.prototype.clear=function(){s(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var t=s.fn.scrollspy;s.fn.scrollspy=e,s.fn.scrollspy.Constructor=n,s.fn.scrollspy.noConflict=function(){return s.fn.scrollspy=t,this},s(window).on("load.bs.scrollspy.data-api",function(){s('[data-spy="scroll"]').each(function(){var t=s(this);e.call(t,t.data())})})}(jQuery),function(r){"use strict";var a=function(t){this.element=r(t)};function e(i){return this.each(function(){var t=r(this),e=t.data("bs.tab");e||t.data("bs.tab",e=new a(this)),"string"==typeof i&&e[i]()})}a.VERSION="3.4.1",a.TRANSITION_DURATION=150,a.prototype.show=function(){var t=this.element,e=t.closest("ul:not(.dropdown-menu)"),i=t.data("target");if(i||(i=(i=t.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),!t.parent("li").hasClass("active")){var o=e.find(".active:last a"),n=r.Event("hide.bs.tab",{relatedTarget:t[0]}),s=r.Event("show.bs.tab",{relatedTarget:o[0]});if(o.trigger(n),t.trigger(s),!s.isDefaultPrevented()&&!n.isDefaultPrevented()){var a=r(document).find(i);this.activate(t.closest("li"),e),this.activate(a,a.parent(),function(){o.trigger({type:"hidden.bs.tab",relatedTarget:t[0]}),t.trigger({type:"shown.bs.tab",relatedTarget:o[0]})})}}},a.prototype.activate=function(t,e,i){var o=e.find("> .active"),n=i&&r.support.transition&&(o.length&&o.hasClass("fade")||!!e.find("> .fade").length);function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),n?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu").length&&t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&n?o.one("bsTransitionEnd",s).emulateTransitionEnd(a.TRANSITION_DURATION):s(),o.removeClass("in")};var t=r.fn.tab;r.fn.tab=e,r.fn.tab.Constructor=a,r.fn.tab.noConflict=function(){return r.fn.tab=t,this};var i=function(t){t.preventDefault(),e.call(r(this),"show")};r(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(l){"use strict";var h=function(t,e){this.options=l.extend({},h.DEFAULTS,e);var i=this.options.target===h.DEFAULTS.target?l(this.options.target):l(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",l.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",l.proxy(this.checkPositionWithEventLoop,this)),this.$element=l(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function i(o){return this.each(function(){var t=l(this),e=t.data("bs.affix"),i="object"==typeof o&&o;e||t.data("bs.affix",e=new h(this,i)),"string"==typeof o&&e[o]()})}h.VERSION="3.4.1",h.RESET="affix affix-top affix-bottom",h.DEFAULTS={offset:0,target:window},h.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return n<i&&"top";if("bottom"==this.affixed)return null!=i?!(n+this.unpin<=s.top)&&"bottom":!(n+a<=t-o)&&"bottom";var r=null==this.affixed,l=r?n:s.top;return null!=i&&n<=i?"top":null!=o&&t-o<=l+(r?a:e)&&"bottom"},h.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(h.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},h.prototype.checkPositionWithEventLoop=function(){setTimeout(l.proxy(this.checkPosition,this),1)},h.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t=this.$element.height(),e=this.options.offset,i=e.top,o=e.bottom,n=Math.max(l(document).height(),l(document.body).height());"object"!=typeof e&&(o=i=e),"function"==typeof i&&(i=e.top(this.$element)),"function"==typeof o&&(o=e.bottom(this.$element));var s=this.getState(n,t,i,o);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var a="affix"+(s?"-"+s:""),r=l.Event(a+".bs.affix");if(this.$element.trigger(r),r.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(h.RESET).addClass(a).trigger(a.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:n-t-o})}};var t=l.fn.affix;l.fn.affix=i,l.fn.affix.Constructor=h,l.fn.affix.noConflict=function(){return l.fn.affix=t,this},l(window).on("load",function(){l('[data-spy="affix"]').each(function(){var t=l(this),e=t.data();e.offset=e.offset||{},null!=e.offsetBottom&&(e.offset.bottom=e.offsetBottom),null!=e.offsetTop&&(e.offset.top=e.offsetTop),i.call(t,e)})})}(jQuery); \ No newline at end of file diff --git a/stuff/bootstrap/alerts.less b/stuff/bootstrap/alerts.less old mode 100755 new mode 100644 index c4199db9..bdd0df20 --- a/stuff/bootstrap/alerts.less +++ b/stuff/bootstrap/alerts.less @@ -15,8 +15,7 @@ // Headings for larger alerts h4 { margin-top: 0; - // Specified for the h4 to prevent conflicts of changing @headings-color - color: inherit; + color: inherit; // Specified for the h4 to prevent conflicts of changing @headings-color } // Provide class for links that match alerts @@ -39,7 +38,8 @@ // // Expand the right padding and account for the close button's positioning. -.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. +// The misspelled .alert-dismissable was deprecated in 3.2.0. +.alert-dismissable, .alert-dismissible { padding-right: (@alert-padding + 20); diff --git a/stuff/bootstrap/badges.less b/stuff/bootstrap/badges.less old mode 100755 new mode 100644 index 6ee16dca..be7f8d0c --- a/stuff/bootstrap/badges.less +++ b/stuff/bootstrap/badges.less @@ -10,11 +10,11 @@ padding: 3px 7px; font-size: @font-size-small; font-weight: @badge-font-weight; - color: @badge-color; line-height: @badge-line-height; - vertical-align: middle; - white-space: nowrap; + color: @badge-color; text-align: center; + white-space: nowrap; + vertical-align: middle; background-color: @badge-bg; border-radius: @badge-border-radius; diff --git a/stuff/bootstrap/bootstrap.less b/stuff/bootstrap/bootstrap.less index 557d6299..0d9a8288 100755 --- a/stuff/bootstrap/bootstrap.less +++ b/stuff/bootstrap/bootstrap.less @@ -1,7 +1,7 @@ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE) */ // Core variables and mixins diff --git a/stuff/bootstrap/breadcrumbs.less b/stuff/bootstrap/breadcrumbs.less old mode 100755 new mode 100644 index cb01d503..e4e53961 --- a/stuff/bootstrap/breadcrumbs.less +++ b/stuff/bootstrap/breadcrumbs.less @@ -14,9 +14,9 @@ display: inline-block; + li:before { - content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space padding: 0 5px; color: @breadcrumb-color; + content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space } } diff --git a/stuff/bootstrap/button-groups.less b/stuff/bootstrap/button-groups.less index 293245a6..137d27d4 100644 --- a/stuff/bootstrap/button-groups.less +++ b/stuff/bootstrap/button-groups.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-no-qualifying-type + // // Button groups // -------------------------------------------------- @@ -59,7 +61,7 @@ .border-right-radius(0); } } -// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it +// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { .border-left-radius(0); @@ -103,18 +105,18 @@ // Give the line between buttons some depth .btn-group > .btn + .dropdown-toggle { - padding-left: 8px; padding-right: 8px; + padding-left: 8px; } .btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; padding-right: 12px; + padding-left: 12px; } // The clickable button for toggling the menu // Remove the gradient and set the same inset shadow as the :active state .btn-group.open .dropdown-toggle { - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125)); // Show no shadow for `.btn-link` since it has no other button styles. &.btn-link { @@ -205,8 +207,8 @@ border-collapse: separate; > .btn, > .btn-group { - float: none; display: table-cell; + float: none; width: 1%; } > .btn-group .btn { @@ -237,7 +239,7 @@ input[type="radio"], input[type="checkbox"] { position: absolute; - clip: rect(0,0,0,0); + clip: rect(0, 0, 0, 0); pointer-events: none; } } diff --git a/stuff/bootstrap/buttons.less b/stuff/bootstrap/buttons.less old mode 100755 new mode 100644 index 9cbb8f41..17f076bc --- a/stuff/bootstrap/buttons.less +++ b/stuff/bootstrap/buttons.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-no-qualifying-type + // // Buttons // -------------------------------------------------- @@ -11,12 +13,12 @@ margin-bottom: 0; // For input.btn font-weight: @btn-font-weight; text-align: center; + white-space: nowrap; vertical-align: middle; touch-action: manipulation; cursor: pointer; background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 border: 1px solid transparent; - white-space: nowrap; .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base); .user-select(none); @@ -38,9 +40,9 @@ &:active, &.active { - outline: 0; background-image: none; - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + outline: 0; + .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125)); } &.disabled, @@ -92,8 +94,8 @@ // Make a button look and behave like a link .btn-link { + font-weight: 400; color: @link-color; - font-weight: normal; border-radius: 0; &, diff --git a/stuff/bootstrap/carousel.less b/stuff/bootstrap/carousel.less index 252011e9..1a247958 100644 --- a/stuff/bootstrap/carousel.less +++ b/stuff/bootstrap/carousel.less @@ -1,3 +1,5 @@ +// stylelint-disable media-feature-name-no-unknown + // // Carousel // -------------------------------------------------- @@ -10,12 +12,12 @@ .carousel-inner { position: relative; - overflow: hidden; width: 100%; + overflow: hidden; > .item { - display: none; position: relative; + display: none; .transition(.6s ease-in-out left); // Account for jankitude on images @@ -27,8 +29,8 @@ // WebKit CSS3 transforms for supported devices @media all and (transform-3d), (-webkit-transform-3d) { - .transition-transform(~'0.6s ease-in-out'); - .backface-visibility(~'hidden'); + .transition-transform(~"0.6s ease-in-out"); + .backface-visibility(~"hidden"); .perspective(1000px); &.next, @@ -93,34 +95,34 @@ .carousel-control { position: absolute; top: 0; - left: 0; bottom: 0; + left: 0; width: @carousel-control-width; - .opacity(@carousel-control-opacity); font-size: @carousel-control-font-size; color: @carousel-control-color; text-align: center; text-shadow: @carousel-text-shadow; background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug + .opacity(@carousel-control-opacity); // We can't have this transition here because WebKit cancels the carousel // animation if you trip this while in the middle of another animation. // Set gradients for backgrounds &.left { - #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); + #gradient > .horizontal(@start-color: rgba(0, 0, 0, .5); @end-color: rgba(0, 0, 0, .0001)); } &.right { - left: auto; right: 0; - #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); + left: auto; + #gradient > .horizontal(@start-color: rgba(0, 0, 0, .0001); @end-color: rgba(0, 0, 0, .5)); } // Hover/focus state &:hover, &:focus { - outline: 0; color: @carousel-control-color; text-decoration: none; + outline: 0; .opacity(.9); } @@ -131,9 +133,9 @@ .glyphicon-chevron-right { position: absolute; top: 50%; - margin-top: -10px; z-index: 5; display: inline-block; + margin-top: -10px; } .icon-prev, .glyphicon-chevron-left { @@ -147,21 +149,20 @@ } .icon-prev, .icon-next { - width: 20px; + width: 20px; height: 20px; - line-height: 1; font-family: serif; + line-height: 1; } - .icon-prev { &:before { - content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) + content: "\2039";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) } } .icon-next { &:before { - content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) + content: "\203a";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) } } } @@ -177,21 +178,18 @@ left: 50%; z-index: 15; width: 60%; - margin-left: -30%; padding-left: 0; - list-style: none; + margin-left: -30%; text-align: center; + list-style: none; li { display: inline-block; - width: 10px; + width: 10px; height: 10px; margin: 1px; text-indent: -999px; - border: 1px solid @carousel-indicator-border-color; - border-radius: 10px; cursor: pointer; - // IE8-9 hack for event handling // // Internet Explorer 8-9 does not support clicks on elements without a set @@ -202,12 +200,16 @@ // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we // set alpha transparency for the best results possible. background-color: #000 \9; // IE8 - background-color: rgba(0,0,0,0); // IE9 + background-color: rgba(0, 0, 0, 0); // IE9 + + border: 1px solid @carousel-indicator-border-color; + border-radius: 10px; } + .active { - margin: 0; - width: 12px; + width: 12px; height: 12px; + margin: 0; background-color: @carousel-indicator-active-bg; } } @@ -217,15 +219,16 @@ // Hidden by default for smaller viewports .carousel-caption { position: absolute; - left: 15%; right: 15%; bottom: 20px; + left: 15%; z-index: 10; padding-top: 20px; padding-bottom: 20px; color: @carousel-caption-color; text-align: center; text-shadow: @carousel-text-shadow; + & .btn { text-shadow: none; // No shadow for button elements in carousel-caption } @@ -258,8 +261,8 @@ // Show and left align the captions .carousel-caption { - left: 20%; right: 20%; + left: 20%; padding-bottom: 30px; } diff --git a/stuff/bootstrap/close.less b/stuff/bootstrap/close.less old mode 100755 new mode 100644 index 6d5bfe08..48baf355 --- a/stuff/bootstrap/close.less +++ b/stuff/bootstrap/close.less @@ -1,3 +1,5 @@ +// stylelint-disable property-no-vendor-prefix + // // Close icons // -------------------------------------------------- @@ -30,5 +32,6 @@ background: transparent; border: 0; -webkit-appearance: none; + appearance: none; } } diff --git a/stuff/bootstrap/code.less b/stuff/bootstrap/code.less old mode 100755 new mode 100644 index a08b4d48..4e07976d --- a/stuff/bootstrap/code.less +++ b/stuff/bootstrap/code.less @@ -27,12 +27,12 @@ kbd { color: @kbd-color; background-color: @kbd-bg; border-radius: @border-radius-small; - box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); kbd { padding: 0; font-size: 100%; - font-weight: bold; + font-weight: 700; box-shadow: none; } } @@ -44,9 +44,9 @@ pre { margin: 0 0 (@line-height-computed / 2); font-size: (@font-size-base - 1); // 14px to 13px line-height: @line-height-base; + color: @pre-color; word-break: break-all; word-wrap: break-word; - color: @pre-color; background-color: @pre-bg; border: 1px solid @pre-border-color; border-radius: @border-radius-base; diff --git a/stuff/bootstrap/component-animations.less b/stuff/bootstrap/component-animations.less old mode 100755 new mode 100644 index 0bcee910..4e7cfd0b --- a/stuff/bootstrap/component-animations.less +++ b/stuff/bootstrap/component-animations.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-no-qualifying-type + // // Component animations // -------------------------------------------------- @@ -10,6 +12,7 @@ .fade { opacity: 0; .transition(opacity .15s linear); + &.in { opacity: 1; } diff --git a/stuff/bootstrap/dropdowns.less b/stuff/bootstrap/dropdowns.less old mode 100755 new mode 100644 index 08ba78f7..542c0046 --- a/stuff/bootstrap/dropdowns.less +++ b/stuff/bootstrap/dropdowns.less @@ -10,10 +10,10 @@ height: 0; margin-left: 2px; vertical-align: middle; - border-top: @caret-width-base dashed; - border-top: @caret-width-base solid ~"\9"; // IE8 + border-top: @caret-width-base dashed; + border-top: @caret-width-base solid ~"\9"; // IE8 border-right: @caret-width-base solid transparent; - border-left: @caret-width-base solid transparent; + border-left: @caret-width-base solid transparent; } // The dropdown wrapper (div) @@ -38,15 +38,15 @@ min-width: 160px; padding: 5px 0; margin: 2px 0 0; // override default ul - list-style: none; font-size: @font-size-base; text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + list-style: none; background-color: @dropdown-bg; + background-clip: padding-box; border: 1px solid @dropdown-fallback-border; // IE8 fallback border: 1px solid @dropdown-border; border-radius: @border-radius-base; - .box-shadow(0 6px 12px rgba(0,0,0,.175)); - background-clip: padding-box; + .box-shadow(0 6px 12px rgba(0, 0, 0, .175)); // Aligns the dropdown menu to right // @@ -66,20 +66,17 @@ display: block; padding: 3px 20px; clear: both; - font-weight: normal; + font-weight: 400; line-height: @line-height-base; color: @dropdown-link-color; white-space: nowrap; // prevent links from randomly breaking onto new lines - } -} -// Hover/Focus state -.dropdown-menu > li > a { - &:hover, - &:focus { - text-decoration: none; - color: @dropdown-link-hover-color; - background-color: @dropdown-link-hover-bg; + &:hover, + &:focus { + color: @dropdown-link-hover-color; + text-decoration: none; + background-color: @dropdown-link-hover-bg; + } } } @@ -90,8 +87,8 @@ &:focus { color: @dropdown-link-active-color; text-decoration: none; - outline: 0; background-color: @dropdown-link-active-bg; + outline: 0; } } @@ -110,9 +107,10 @@ &:hover, &:focus { text-decoration: none; + cursor: @cursor-disabled; background-color: transparent; background-image: none; // Remove CSS gradient - cursor: @cursor-disabled; + .reset-filter(); } } @@ -134,8 +132,8 @@ // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown // menu with the parent. .dropdown-menu-right { - left: auto; // Reset the default from `.dropdown-menu` right: 0; + left: auto; // Reset the default from `.dropdown-menu` } // With v3, we enabled auto-flipping if you have a dropdown within a right // aligned nav component. To enable the undoing of that, we provide an override @@ -144,8 +142,8 @@ // This is only for left-aligning a dropdown menu within a `.navbar-right` or // `.pull-right` nav component. .dropdown-menu-left { - left: 0; right: auto; + left: 0; } // Dropdown section headers @@ -161,10 +159,10 @@ // Backdrop to catch body clicks on mobile, etc. .dropdown-backdrop { position: fixed; - left: 0; + top: 0; right: 0; bottom: 0; - top: 0; + left: 0; z-index: (@zindex-dropdown - 10); } @@ -183,10 +181,10 @@ .navbar-fixed-bottom .dropdown { // Reverse the caret .caret { + content: ""; border-top: 0; border-bottom: @caret-width-base dashed; border-bottom: @caret-width-base solid ~"\9"; // IE8 - content: ""; } // Different positioning for bottom up menu .dropdown-menu { diff --git a/stuff/bootstrap/forms.less b/stuff/bootstrap/forms.less index c2862d5a..c9872886 100644 --- a/stuff/bootstrap/forms.less +++ b/stuff/bootstrap/forms.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-no-qualifying-type, property-no-vendor-prefix, media-feature-name-no-vendor-prefix + // // Forms // -------------------------------------------------- @@ -8,13 +10,13 @@ // Restyle and baseline non-control form elements. fieldset { - padding: 0; - margin: 0; - border: 0; // Chrome and Firefox set a `min-width: min-content;` on fieldsets, // so we reset that to ensure it behaves more like a standard block element. // See https://github.com/twbs/bootstrap/issues/12359. min-width: 0; + padding: 0; + margin: 0; + border: 0; } legend { @@ -33,7 +35,7 @@ label { display: inline-block; max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) margin-bottom: 5px; - font-weight: bold; + font-weight: 700; } @@ -43,9 +45,18 @@ label { // is required to ensure optimum display with or without those classes to better // address browser inconsistencies. -// Override content-box in Normalize (* isn't specific enough) input[type="search"] { + // Override content-box in Normalize (* isn't specific enough) .box-sizing(border-box); + + // Search inputs in iOS + // + // This overrides the extra rounded corners on search inputs in iOS so that our + // `.form-control` class can properly style them. Note that this cannot simply + // be added to `.form-control` as it's not specific enough. For details, see + // https://github.com/twbs/bootstrap/issues/11586. + -webkit-appearance: none; + appearance: none; } // Position radios and checkboxes better @@ -54,6 +65,16 @@ input[type="checkbox"] { margin: 4px 0 0; margin-top: 1px \9; // IE8-9 line-height: normal; + + // Apply same disabled cursor tweak as for inputs + // Some special care is needed because <label>s don't inherit their parent's `cursor`. + // + // Note: Neither radios nor checkboxes can be readonly. + &[disabled], + &.disabled, + fieldset[disabled] & { + cursor: @cursor-disabled; + } } input[type="file"] { @@ -123,7 +144,7 @@ output { background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 border: 1px solid @input-border; border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS. - .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); + .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Customize the `:focus` state to imitate native WebKit styles. .form-control-focus(); @@ -133,8 +154,8 @@ output { // Unstyle the caret on `<select>`s in IE10+. &::-ms-expand { - border: 0; background-color: transparent; + border: 0; } // Disabled and read-only inputs @@ -161,18 +182,6 @@ output { } -// Search inputs in iOS -// -// This overrides the extra rounded corners on search inputs in iOS so that our -// `.form-control` class can properly style them. Note that this cannot simply -// be added to `.form-control` as it's not specific enough. For details, see -// https://github.com/twbs/bootstrap/issues/11586. - -input[type="search"] { - -webkit-appearance: none; -} - - // Special styles for iOS temporal inputs // // In Mobile Safari, setting `display: block` on temporal inputs causes the @@ -180,7 +189,7 @@ input[type="search"] { // set a pixel line-height that matches the given height of the input, but only // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 // -// Note that as of 8.3, iOS doesn't support `datetime` or `week`. +// Note that as of 9.3, iOS doesn't support `week`. @media screen and (-webkit-min-device-pixel-ratio: 0) { input[type="date"], @@ -225,11 +234,19 @@ input[type="search"] { margin-top: 10px; margin-bottom: 10px; + // These are used on elements with <label> descendants + &.disabled, + fieldset[disabled] & { + label { + cursor: @cursor-disabled; + } + } + label { min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text padding-left: 20px; margin-bottom: 0; - font-weight: normal; + font-weight: 400; cursor: pointer; } } @@ -238,8 +255,8 @@ input[type="search"] { .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { position: absolute; - margin-left: -20px; margin-top: 4px \9; + margin-left: -20px; } .radio + .radio, @@ -254,9 +271,15 @@ input[type="search"] { display: inline-block; padding-left: 20px; margin-bottom: 0; + font-weight: 400; vertical-align: middle; - font-weight: normal; cursor: pointer; + + // These are used directly on <label>s + &.disabled, + fieldset[disabled] & { + cursor: @cursor-disabled; + } } .radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { @@ -264,37 +287,6 @@ input[type="search"] { margin-left: 10px; // space out consecutive inline controls } -// Apply same disabled cursor tweak as for inputs -// Some special care is needed because <label>s don't inherit their parent's `cursor`. -// -// Note: Neither radios nor checkboxes can be readonly. -input[type="radio"], -input[type="checkbox"] { - &[disabled], - &.disabled, - fieldset[disabled] & { - cursor: @cursor-disabled; - } -} -// These classes are used directly on <label>s -.radio-inline, -.checkbox-inline { - &.disabled, - fieldset[disabled] & { - cursor: @cursor-disabled; - } -} -// These classes are used on elements with <label> descendants -.radio, -.checkbox { - &.disabled, - fieldset[disabled] & { - label { - cursor: @cursor-disabled; - } - } -} - // Static form control text // @@ -302,17 +294,17 @@ input[type="checkbox"] { // a horizontal form layout. .form-control-static { + min-height: (@line-height-computed + @font-size-base); // Size it appropriately next to real form controls padding-top: (@padding-base-vertical + 1); padding-bottom: (@padding-base-vertical + 1); // Remove default margin from `p` margin-bottom: 0; - min-height: (@line-height-computed + @font-size-base); &.input-lg, &.input-sm { - padding-left: 0; padding-right: 0; + padding-left: 0; } } @@ -555,9 +547,9 @@ input[type="checkbox"] { .checkbox, .radio-inline, .checkbox-inline { + padding-top: (@padding-base-vertical + 1); // Default padding plus a border margin-top: 0; margin-bottom: 0; - padding-top: (@padding-base-vertical + 1); // Default padding plus a border } // Account for padding we're adding to ensure the alignment and of help text // and other content below items @@ -575,9 +567,9 @@ input[type="checkbox"] { // labels on narrow viewports stack the same as a default form example. @media (min-width: @screen-sm-min) { .control-label { - text-align: right; - margin-bottom: 0; padding-top: (@padding-base-vertical + 1); // Default padding plus a border + margin-bottom: 0; + text-align: right; } } diff --git a/stuff/bootstrap/glyphicons.less b/stuff/bootstrap/glyphicons.less index 7bc5852d..522d5041 100644 --- a/stuff/bootstrap/glyphicons.less +++ b/stuff/bootstrap/glyphicons.less @@ -1,3 +1,5 @@ +// stylelint-disable value-list-comma-newline-after, value-list-comma-space-after, indentation, declaration-colon-newline-after, font-family-no-missing-generic-family-keyword + // // Glyphicons for Bootstrap // @@ -9,13 +11,13 @@ // Import the fonts @font-face { - font-family: 'Glyphicons Halflings'; - src: url('@{icon-font-path}@{icon-font-name}.eot'); - src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'), - url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'), - url('@{icon-font-path}@{icon-font-name}.woff') format('woff'), - url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'), - url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg'); + font-family: "Glyphicons Halflings"; + src: url("@{icon-font-path}@{icon-font-name}.eot"); + src: url("@{icon-font-path}@{icon-font-name}.eot?#iefix") format("embedded-opentype"), + url("@{icon-font-path}@{icon-font-name}.woff2") format("woff2"), + url("@{icon-font-path}@{icon-font-name}.woff") format("woff"), + url("@{icon-font-path}@{icon-font-name}.ttf") format("truetype"), + url("@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}") format("svg"); } // Catchall baseclass @@ -23,9 +25,9 @@ position: relative; top: 1px; display: inline-block; - font-family: 'Glyphicons Halflings'; + font-family: "Glyphicons Halflings"; font-style: normal; - font-weight: normal; + font-weight: 400; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; diff --git a/stuff/bootstrap/grid.less b/stuff/bootstrap/grid.less old mode 100755 new mode 100644 index e100655b..574f462f --- a/stuff/bootstrap/grid.less +++ b/stuff/bootstrap/grid.less @@ -40,6 +40,16 @@ .make-row(); } +.row-no-gutters { + margin-right: 0; + margin-left: 0; + + [class*="col-"] { + padding-right: 0; + padding-left: 0; + } +} + // Columns // diff --git a/stuff/bootstrap/input-groups.less b/stuff/bootstrap/input-groups.less index 5f73eec4..92b67da5 100644 --- a/stuff/bootstrap/input-groups.less +++ b/stuff/bootstrap/input-groups.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-no-qualifying-type + // // Input groups // -------------------------------------------------- @@ -12,8 +14,8 @@ // Undo padding and float of grid classes &[class*="col-"] { float: none; - padding-left: 0; padding-right: 0; + padding-left: 0; } .form-control { @@ -29,7 +31,7 @@ width: 100%; margin-bottom: 0; - + &:focus { z-index: 3; } @@ -77,7 +79,7 @@ .input-group-addon { padding: @padding-base-vertical @padding-base-horizontal; font-size: @font-size-base; - font-weight: normal; + font-weight: 400; line-height: 1; color: @input-color; text-align: center; diff --git a/stuff/bootstrap/jumbotron.less b/stuff/bootstrap/jumbotron.less index 4be25e45..bf3b9a7a 100644 --- a/stuff/bootstrap/jumbotron.less +++ b/stuff/bootstrap/jumbotron.less @@ -4,7 +4,7 @@ .jumbotron { - padding-top: @jumbotron-padding; + padding-top: @jumbotron-padding; padding-bottom: @jumbotron-padding; margin-bottom: @jumbotron-padding; color: @jumbotron-color; @@ -23,9 +23,9 @@ .container &, .container-fluid & { - border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container - padding-left: (@grid-gutter-width / 2); padding-right: (@grid-gutter-width / 2); + padding-left: (@grid-gutter-width / 2); + border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container } .container { @@ -33,13 +33,13 @@ } @media screen and (min-width: @screen-sm-min) { - padding-top: (@jumbotron-padding * 1.6); + padding-top: (@jumbotron-padding * 1.6); padding-bottom: (@jumbotron-padding * 1.6); .container &, .container-fluid & { - padding-left: (@jumbotron-padding * 2); padding-right: (@jumbotron-padding * 2); + padding-left: (@jumbotron-padding * 2); } h1, diff --git a/stuff/bootstrap/labels.less b/stuff/bootstrap/labels.less old mode 100755 new mode 100644 index 9a5a2700..cf0d48df --- a/stuff/bootstrap/labels.less +++ b/stuff/bootstrap/labels.less @@ -6,7 +6,7 @@ display: inline; padding: .2em .6em .3em; font-size: 75%; - font-weight: bold; + font-weight: 700; line-height: 1; color: @label-color; text-align: center; diff --git a/stuff/bootstrap/list-group.less b/stuff/bootstrap/list-group.less old mode 100755 new mode 100644 index 216b9123..f913629c --- a/stuff/bootstrap/list-group.less +++ b/stuff/bootstrap/list-group.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-no-qualifying-type + // // List groups // -------------------------------------------------- @@ -9,8 +11,8 @@ .list-group { // No need to set list-style: none; since .list-group-item is block level - margin-bottom: 20px; padding-left: 0; // reset padding because ul and ol + margin-bottom: 20px; } @@ -35,44 +37,14 @@ margin-bottom: 0; .border-bottom-radius(@list-group-border-radius); } -} - -// Interactive list items -// -// Use anchor or button elements instead of `li`s or `div`s to create interactive items. -// Includes an extra `.active` modifier class for showing selected items. - -a.list-group-item, -button.list-group-item { - color: @list-group-link-color; - - .list-group-item-heading { - color: @list-group-link-heading-color; - } - - // Hover state - &:hover, - &:focus { - text-decoration: none; - color: @list-group-link-hover-color; - background-color: @list-group-hover-bg; - } -} - -button.list-group-item { - width: 100%; - text-align: left; -} - -.list-group-item { // Disabled state &.disabled, &.disabled:hover, &.disabled:focus { - background-color: @list-group-disabled-bg; color: @list-group-disabled-color; cursor: @cursor-disabled; + background-color: @list-group-disabled-bg; // Force color to inherit for custom content .list-group-item-heading { @@ -105,6 +77,34 @@ button.list-group-item { } +// Interactive list items +// +// Use anchor or button elements instead of `li`s or `div`s to create interactive items. +// Includes an extra `.active` modifier class for showing selected items. + +a.list-group-item, +button.list-group-item { + color: @list-group-link-color; + + .list-group-item-heading { + color: @list-group-link-heading-color; + } + + // Hover state + &:hover, + &:focus { + color: @list-group-link-hover-color; + text-decoration: none; + background-color: @list-group-hover-bg; + } +} + +button.list-group-item { + width: 100%; + text-align: left; +} + + // Contextual variants // // Add modifier classes to change text and background color on individual items. diff --git a/stuff/bootstrap/media.less b/stuff/bootstrap/media.less old mode 100755 new mode 100644 index a3e54b67..e4ae4457 --- a/stuff/bootstrap/media.less +++ b/stuff/bootstrap/media.less @@ -10,6 +10,7 @@ .media, .media-body { overflow: hidden; + zoom: 1; } .media-body { diff --git a/stuff/bootstrap/mixins.less b/stuff/bootstrap/mixins.less old mode 100755 new mode 100644 index a04aa47c..e6f9fe68 --- a/stuff/bootstrap/mixins.less +++ b/stuff/bootstrap/mixins.less @@ -6,6 +6,7 @@ @import "mixins/opacity.less"; @import "mixins/image.less"; @import "mixins/labels.less"; +@import "mixins/reset-filter.less"; @import "mixins/resize.less"; @import "mixins/responsive-visibility.less"; @import "mixins/size.less"; diff --git a/stuff/bootstrap/mixins/alerts.less b/stuff/bootstrap/mixins/alerts.less index 396196f4..b27cc5d2 100755 --- a/stuff/bootstrap/mixins/alerts.less +++ b/stuff/bootstrap/mixins/alerts.less @@ -1,13 +1,14 @@ // Alerts .alert-variant(@background; @border; @text-color) { + color: @text-color; background-color: @background; border-color: @border; - color: @text-color; hr { border-top-color: darken(@border, 5%); } + .alert-link { color: darken(@text-color, 10%); } diff --git a/stuff/bootstrap/mixins/border-radius.less b/stuff/bootstrap/mixins/border-radius.less index ca05dbf4..da7ea10e 100755 --- a/stuff/bootstrap/mixins/border-radius.less +++ b/stuff/bootstrap/mixins/border-radius.less @@ -1,18 +1,18 @@ // Single side border-radius .border-top-radius(@radius) { + border-top-left-radius: @radius; border-top-right-radius: @radius; - border-top-left-radius: @radius; } .border-right-radius(@radius) { + border-top-right-radius: @radius; border-bottom-right-radius: @radius; - border-top-right-radius: @radius; } .border-bottom-radius(@radius) { border-bottom-right-radius: @radius; - border-bottom-left-radius: @radius; + border-bottom-left-radius: @radius; } .border-left-radius(@radius) { + border-top-left-radius: @radius; border-bottom-left-radius: @radius; - border-top-left-radius: @radius; } diff --git a/stuff/bootstrap/mixins/buttons.less b/stuff/bootstrap/mixins/buttons.less index b294d8c2..42d3c512 100644 --- a/stuff/bootstrap/mixins/buttons.less +++ b/stuff/bootstrap/mixins/buttons.less @@ -12,33 +12,29 @@ &.focus { color: @color; background-color: darken(@background, 10%); - border-color: darken(@border, 25%); + border-color: darken(@border, 25%); } &:hover { color: @color; background-color: darken(@background, 10%); - border-color: darken(@border, 12%); + border-color: darken(@border, 12%); } &:active, &.active, .open > .dropdown-toggle& { color: @color; background-color: darken(@background, 10%); - border-color: darken(@border, 12%); + background-image: none; + border-color: darken(@border, 12%); &:hover, &:focus, &.focus { color: @color; background-color: darken(@background, 17%); - border-color: darken(@border, 25%); + border-color: darken(@border, 25%); } } - &:active, - &.active, - .open > .dropdown-toggle& { - background-image: none; - } &.disabled, &[disabled], fieldset[disabled] & { @@ -46,7 +42,7 @@ &:focus, &.focus { background-color: @background; - border-color: @border; + border-color: @border; } } diff --git a/stuff/bootstrap/mixins/center-block.less b/stuff/bootstrap/mixins/center-block.less old mode 100755 new mode 100644 index d18d6de9..627cfa38 --- a/stuff/bootstrap/mixins/center-block.less +++ b/stuff/bootstrap/mixins/center-block.less @@ -2,6 +2,6 @@ .center-block() { display: block; - margin-left: auto; margin-right: auto; + margin-left: auto; } diff --git a/stuff/bootstrap/mixins/clearfix.less b/stuff/bootstrap/mixins/clearfix.less old mode 100755 new mode 100644 index 3f7a3820..f60fcf16 --- a/stuff/bootstrap/mixins/clearfix.less +++ b/stuff/bootstrap/mixins/clearfix.less @@ -13,8 +13,8 @@ .clearfix() { &:before, &:after { - content: " "; // 1 display: table; // 2 + content: " "; // 1 } &:after { clear: both; diff --git a/stuff/bootstrap/mixins/forms.less b/stuff/bootstrap/mixins/forms.less old mode 100755 new mode 100644 index 27a6eb6f..c60802d9 --- a/stuff/bootstrap/mixins/forms.less +++ b/stuff/bootstrap/mixins/forms.less @@ -20,19 +20,19 @@ // Set the border and box shadow on specific inputs to match .form-control { border-color: @border-color; - .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work + .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work &:focus { @color-rgba: rgba(red(@border-color), green(@border-color), blue(@border-color), .2); border-color: darken(@border-color, 10%); - @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 0 4px @color-rgba; + @shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 0 4px @color-rgba; .box-shadow(@shadow); } } // Set validation states also for addons .input-group-addon { color: @text-color; - border-color: @border-color; background-color: @background-color; + border-color: @border-color; } // Optional feedback icon .form-control-feedback { @@ -58,7 +58,7 @@ &:focus { border-color: @color; outline: 0; - .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 0 4px @{color-rgba}"); + .box-shadow(~"inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 0 4px @{color-rgba}"); } } diff --git a/stuff/bootstrap/mixins/gradients.less b/stuff/bootstrap/mixins/gradients.less old mode 100755 new mode 100644 index 0b88a89c..b36f5916 --- a/stuff/bootstrap/mixins/gradients.less +++ b/stuff/bootstrap/mixins/gradients.less @@ -1,4 +1,4 @@ -// Gradients +// stylelint-disable value-no-vendor-prefix, selector-max-id #gradient { @@ -10,8 +10,8 @@ background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12 background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)", argb(@start-color), argb(@end-color))); // IE9 and down background-repeat: repeat-x; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down } // Vertical gradient, from top to bottom @@ -22,36 +22,36 @@ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12 background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@start-color), argb(@end-color))); // IE9 and down background-repeat: repeat-x; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down } .directional(@start-color: #555; @end-color: #333; @deg: 45deg) { - background-repeat: repeat-x; background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+ background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12 background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ + background-repeat: repeat-x; } .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color); + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback background-repeat: no-repeat; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback } .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color); + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback background-repeat: no-repeat; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback } .radial(@inner-color: #555; @outer-color: #333) { background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); background-image: radial-gradient(circle, @inner-color, @outer-color); background-repeat: no-repeat; } - .striped(@color: rgba(255,255,255,.15); @angle: 45deg) { + .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) { background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); diff --git a/stuff/bootstrap/mixins/grid-framework.less b/stuff/bootstrap/mixins/grid-framework.less old mode 100755 new mode 100644 index 8c23eed2..0c73c88b --- a/stuff/bootstrap/mixins/grid-framework.less +++ b/stuff/bootstrap/mixins/grid-framework.less @@ -19,8 +19,8 @@ // Prevent columns from collapsing when empty min-height: 1px; // Inner gutter via padding - padding-left: ceil((@grid-gutter-width / 2)); padding-right: floor((@grid-gutter-width / 2)); + padding-left: ceil((@grid-gutter-width / 2)); } } .col(1); // kickstart it diff --git a/stuff/bootstrap/mixins/grid.less b/stuff/bootstrap/mixins/grid.less index df496d0b..a9554a42 100644 --- a/stuff/bootstrap/mixins/grid.less +++ b/stuff/bootstrap/mixins/grid.less @@ -4,17 +4,17 @@ // Centered container element .container-fixed(@gutter: @grid-gutter-width) { + padding-right: ceil((@gutter / 2)); + padding-left: floor((@gutter / 2)); margin-right: auto; margin-left: auto; - padding-left: floor((@gutter / 2)); - padding-right: ceil((@gutter / 2)); &:extend(.clearfix all); } // Creates a wrapper for a series of columns .make-row(@gutter: @grid-gutter-width) { - margin-left: ceil((@gutter / -2)); margin-right: floor((@gutter / -2)); + margin-left: ceil((@gutter / -2)); &:extend(.clearfix all); } @@ -24,8 +24,8 @@ float: left; width: percentage((@columns / @grid-columns)); min-height: 1px; - padding-left: (@gutter / 2); padding-right: (@gutter / 2); + padding-left: (@gutter / 2); } .make-xs-column-offset(@columns) { margin-left: percentage((@columns / @grid-columns)); @@ -41,8 +41,8 @@ .make-sm-column(@columns; @gutter: @grid-gutter-width) { position: relative; min-height: 1px; - padding-left: (@gutter / 2); padding-right: (@gutter / 2); + padding-left: (@gutter / 2); @media (min-width: @screen-sm-min) { float: left; @@ -69,8 +69,8 @@ .make-md-column(@columns; @gutter: @grid-gutter-width) { position: relative; min-height: 1px; - padding-left: (@gutter / 2); padding-right: (@gutter / 2); + padding-left: (@gutter / 2); @media (min-width: @screen-md-min) { float: left; @@ -97,8 +97,8 @@ .make-lg-column(@columns; @gutter: @grid-gutter-width) { position: relative; min-height: 1px; - padding-left: (@gutter / 2); padding-right: (@gutter / 2); + padding-left: (@gutter / 2); @media (min-width: @screen-lg-min) { float: left; diff --git a/stuff/bootstrap/mixins/hide-text.less b/stuff/bootstrap/mixins/hide-text.less index 2bb84a3b..9b21a105 100644 --- a/stuff/bootstrap/mixins/hide-text.less +++ b/stuff/bootstrap/mixins/hide-text.less @@ -1,3 +1,5 @@ +// stylelint-disable font-family-name-quotes, font-family-no-missing-generic-family-keyword + // CSS image replacement // // Heads up! v3 launched with only `.hide-text()`, but per our pattern for diff --git a/stuff/bootstrap/mixins/image.less b/stuff/bootstrap/mixins/image.less old mode 100755 new mode 100644 index f233cb3e..f0dde6be --- a/stuff/bootstrap/mixins/image.less +++ b/stuff/bootstrap/mixins/image.less @@ -1,7 +1,4 @@ -// Image Mixins -// - Responsive image -// - Retina image - +// stylelint-disable media-feature-name-no-vendor-prefix, media-feature-parentheses-space-inside, media-feature-name-no-unknown, indentation, at-rule-name-space-after // Responsive image // @@ -22,11 +19,11 @@ @media only screen and (-webkit-min-device-pixel-ratio: 2), - only screen and ( min--moz-device-pixel-ratio: 2), - only screen and ( -o-min-device-pixel-ratio: 2/1), - only screen and ( min-device-pixel-ratio: 2), - only screen and ( min-resolution: 192dpi), - only screen and ( min-resolution: 2dppx) { + only screen and ( min--moz-device-pixel-ratio: 2), + only screen and ( -o-min-device-pixel-ratio: 2/1), + only screen and ( min-device-pixel-ratio: 2), + only screen and ( min-resolution: 192dpi), + only screen and ( min-resolution: 2dppx) { background-image: url("@{file-2x}"); background-size: @width-1x @height-1x; } diff --git a/stuff/bootstrap/mixins/opacity.less b/stuff/bootstrap/mixins/opacity.less old mode 100755 new mode 100644 index 1f714809..32cf411f --- a/stuff/bootstrap/mixins/opacity.less +++ b/stuff/bootstrap/mixins/opacity.less @@ -1,5 +1,7 @@ // Opacity .opacity(@opacity) { + @opacity-ie: (@opacity * 100); // IE8 filter + filter: ~"alpha(opacity=@{opacity-ie})"; opacity: @opacity; } diff --git a/stuff/bootstrap/mixins/reset-filter.less b/stuff/bootstrap/mixins/reset-filter.less new file mode 100644 index 00000000..68cdb5e1 --- /dev/null +++ b/stuff/bootstrap/mixins/reset-filter.less @@ -0,0 +1,8 @@ +// Reset filters for IE +// +// When you need to remove a gradient background, do not forget to use this to reset +// the IE filter for IE9 and below. + +.reset-filter() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); +} diff --git a/stuff/bootstrap/mixins/reset-text.less b/stuff/bootstrap/mixins/reset-text.less old mode 100755 new mode 100644 index 58dd4d19..a8754bd1 --- a/stuff/bootstrap/mixins/reset-text.less +++ b/stuff/bootstrap/mixins/reset-text.less @@ -2,17 +2,17 @@ font-family: @font-family-base; // We deliberately do NOT reset font-size. font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; + font-weight: 400; line-height: @line-height-base; + line-break: auto; text-align: left; // Fallback for where `start` is not supported text-align: start; text-decoration: none; text-shadow: none; text-transform: none; - white-space: normal; + letter-spacing: normal; word-break: normal; word-spacing: normal; word-wrap: normal; + white-space: normal; } diff --git a/stuff/bootstrap/mixins/resize.less b/stuff/bootstrap/mixins/resize.less old mode 100755 new mode 100644 index 3acd3afd..c8513289 --- a/stuff/bootstrap/mixins/resize.less +++ b/stuff/bootstrap/mixins/resize.less @@ -1,6 +1,6 @@ // Resize anything .resizable(@direction) { - resize: @direction; // Options: horizontal, vertical, both overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` + resize: @direction; // Options: horizontal, vertical, both } diff --git a/stuff/bootstrap/mixins/responsive-visibility.less b/stuff/bootstrap/mixins/responsive-visibility.less old mode 100755 new mode 100644 index ecf1e979..74d67289 --- a/stuff/bootstrap/mixins/responsive-visibility.less +++ b/stuff/bootstrap/mixins/responsive-visibility.less @@ -1,7 +1,5 @@ -// Responsive utilities +// stylelint-disable declaration-no-important -// -// More easily include all the states for responsive-utilities.less. .responsive-visibility() { display: block !important; table& { display: table !important; } diff --git a/stuff/bootstrap/mixins/tab-focus.less b/stuff/bootstrap/mixins/tab-focus.less old mode 100755 new mode 100644 index 1f1f05ab..d12d2362 --- a/stuff/bootstrap/mixins/tab-focus.less +++ b/stuff/bootstrap/mixins/tab-focus.less @@ -1,9 +1,9 @@ // WebKit-style focus .tab-focus() { - // Default - outline: thin dotted; - // WebKit + // WebKit-specific. Other browsers will keep their default outline style. + // (Initially tried to also force default via `outline: initial`, + // but that seems to erroneously remove the outline in Firefox altogether.) outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } diff --git a/stuff/bootstrap/mixins/vendor-prefixes.less b/stuff/bootstrap/mixins/vendor-prefixes.less index 2358a50a..0f9269d0 100644 --- a/stuff/bootstrap/mixins/vendor-prefixes.less +++ b/stuff/bootstrap/mixins/vendor-prefixes.less @@ -1,3 +1,5 @@ +// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix + // Vendor Prefixes // // All vendor mixins are deprecated as of v3.2.0 due to the introduction of diff --git a/stuff/bootstrap/modals.less b/stuff/bootstrap/modals.less index 767ce36b..2fe8e56f 100644 --- a/stuff/bootstrap/modals.less +++ b/stuff/bootstrap/modals.less @@ -14,14 +14,14 @@ // Container that the modal scrolls within .modal { - display: none; - overflow: hidden; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: @zindex-modal; + display: none; + overflow: hidden; -webkit-overflow-scrolling: touch; // Prevent Chrome on Windows from adding a focus outline. For details, see @@ -33,7 +33,7 @@ .translate(0, -25%); .transition-transform(~"0.3s ease-out"); } - &.in .modal-dialog { .translate(0, 0) } + &.in .modal-dialog { .translate(0, 0); } } .modal-open .modal { overflow-x: hidden; @@ -51,11 +51,11 @@ .modal-content { position: relative; background-color: @modal-content-bg; + background-clip: padding-box; border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) border: 1px solid @modal-content-border-color; border-radius: @border-radius-large; - .box-shadow(0 3px 9px rgba(0,0,0,.5)); - background-clip: padding-box; + .box-shadow(0 3px 9px rgba(0, 0, 0, .5)); // Remove focus outline from opened modal outline: 0; } @@ -108,8 +108,8 @@ // Properly space out buttons .btn + .btn { - margin-left: 5px; margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs + margin-left: 5px; } // but override that for button groups .btn-group .btn + .btn { @@ -138,7 +138,7 @@ margin: 30px auto; } .modal-content { - .box-shadow(0 5px 15px rgba(0,0,0,.5)); + .box-shadow(0 5px 15px rgba(0, 0, 0, .5)); } // Modal sizes diff --git a/stuff/bootstrap/navbar.less b/stuff/bootstrap/navbar.less old mode 100755 new mode 100644 index a1f9e9f8..5b1e7368 --- a/stuff/bootstrap/navbar.less +++ b/stuff/bootstrap/navbar.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, selector-max-class, declaration-no-important, selector-no-qualifying-type + // // Navbars // -------------------------------------------------- @@ -48,11 +50,11 @@ // content for the user's viewport. .navbar-collapse { - overflow-x: visible; padding-right: @navbar-padding-horizontal; - padding-left: @navbar-padding-horizontal; + padding-left: @navbar-padding-horizontal; + overflow-x: visible; border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255,255,255,.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); &:extend(.clearfix all); -webkit-overflow-scrolling: touch; @@ -76,14 +78,6 @@ overflow-y: visible; } - // Undo the collapse side padding for navbars with containers to ensure - // alignment of right-aligned contents. - .navbar-fixed-top &, - .navbar-static-top &, - .navbar-fixed-bottom & { - padding-left: 0; - padding-right: 0; - } } } @@ -96,11 +90,11 @@ > .navbar-header, > .navbar-collapse { margin-right: -@navbar-padding-horizontal; - margin-left: -@navbar-padding-horizontal; + margin-left: -@navbar-padding-horizontal; @media (min-width: @grid-float-breakpoint) { margin-right: 0; - margin-left: 0; + margin-left: 0; } } } @@ -109,10 +103,10 @@ .navbar-brand { float: left; + height: @navbar-height; padding: @navbar-padding-vertical @navbar-padding-horizontal; font-size: @font-size-large; line-height: @line-height-computed; - height: @navbar-height; &:hover, &:focus { @@ -140,8 +134,8 @@ .navbar-toggle { position: relative; float: right; - margin-right: @navbar-padding-horizontal; padding: 9px 10px; + margin-right: @navbar-padding-horizontal; .navbar-vertical-align(34px); background-color: transparent; background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 @@ -180,7 +174,7 @@ margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal; > li > a { - padding-top: 10px; + padding-top: 10px; padding-bottom: 10px; line-height: @line-height-computed; } @@ -217,7 +211,7 @@ > li { float: left; > a { - padding-top: @navbar-padding-vertical; + padding-top: @navbar-padding-vertical; padding-bottom: @navbar-padding-vertical; } } @@ -258,8 +252,8 @@ @media (min-width: @grid-float-breakpoint) { float: left; - margin-left: @navbar-padding-horizontal; margin-right: @navbar-padding-horizontal; + margin-left: @navbar-padding-horizontal; } } @@ -332,33 +326,15 @@ background-color: @navbar-default-link-disabled-bg; } } - } - .navbar-toggle { - border-color: @navbar-default-toggle-border-color; - &:hover, - &:focus { - background-color: @navbar-default-toggle-hover-bg; - } - .icon-bar { - background-color: @navbar-default-toggle-icon-bar-bg; - } - } - - .navbar-collapse, - .navbar-form { - border-color: @navbar-default-border; - } - - // Dropdown menu items - .navbar-nav { + // Dropdown menu items // Remove background color from open dropdown > .open > a { &, &:hover, &:focus { - background-color: @navbar-default-link-active-bg; color: @navbar-default-link-active-color; + background-color: @navbar-default-link-active-bg; } } @@ -393,6 +369,22 @@ } } + .navbar-toggle { + border-color: @navbar-default-toggle-border-color; + &:hover, + &:focus { + background-color: @navbar-default-toggle-hover-bg; + } + .icon-bar { + background-color: @navbar-default-toggle-icon-bar-bg; + } + } + + .navbar-collapse, + .navbar-form { + border-color: @navbar-default-border; + } + // Links in navbars // diff --git a/stuff/bootstrap/navs.less b/stuff/bootstrap/navs.less old mode 100755 new mode 100644 index a3d11b13..45df13eb --- a/stuff/bootstrap/navs.less +++ b/stuff/bootstrap/navs.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-no-qualifying-type, selector-max-type + // // Navs // -------------------------------------------------- @@ -7,8 +9,8 @@ // -------------------------------------------------- .nav { - margin-bottom: 0; padding-left: 0; // Override default ul/ol + margin-bottom: 0; list-style: none; &:extend(.clearfix all); @@ -35,8 +37,8 @@ &:focus { color: @nav-disabled-link-hover-color; text-decoration: none; - background-color: transparent; cursor: @cursor-disabled; + background-color: transparent; } } } @@ -97,10 +99,10 @@ &:hover, &:focus { color: @nav-tabs-active-link-hover-color; + cursor: default; background-color: @nav-tabs-active-link-hover-bg; border: 1px solid @nav-tabs-active-link-hover-border-color; border-bottom-color: transparent; - cursor: default; } } } @@ -163,8 +165,8 @@ > li { float: none; > a { - text-align: center; margin-bottom: 5px; + text-align: center; } } diff --git a/stuff/bootstrap/normalize.less b/stuff/bootstrap/normalize.less old mode 100755 new mode 100644 index 9dddf73a..68f9c214 --- a/stuff/bootstrap/normalize.less +++ b/stuff/bootstrap/normalize.less @@ -1,3 +1,5 @@ +// stylelint-disable + /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ // @@ -104,11 +106,14 @@ a:hover { // ========================================================================== // -// Address styling not present in IE 8/9/10/11, Safari, and Chrome. +// 1. Remove the bottom border in Chrome 57- and Firefox 39-. +// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. // abbr[title] { - border-bottom: 1px dotted; + border-bottom: none; // 1 + text-decoration: underline; // 2 + text-decoration: underline dotted; // 2 } // diff --git a/stuff/bootstrap/pager.less b/stuff/bootstrap/pager.less old mode 100755 new mode 100644 index 41abaaad..e77ba550 --- a/stuff/bootstrap/pager.less +++ b/stuff/bootstrap/pager.less @@ -6,8 +6,8 @@ .pager { padding-left: 0; margin: @line-height-computed 0; - list-style: none; text-align: center; + list-style: none; &:extend(.clearfix all); li { display: inline; @@ -47,8 +47,8 @@ > a:focus, > span { color: @pager-disabled-color; - background-color: @pager-bg; cursor: @cursor-disabled; + background-color: @pager-bg; } } } diff --git a/stuff/bootstrap/pagination.less b/stuff/bootstrap/pagination.less index 31f77aae..23b67cb2 100644 --- a/stuff/bootstrap/pagination.less +++ b/stuff/bootstrap/pagination.less @@ -14,12 +14,20 @@ position: relative; float: left; // Collapse white-space padding: @padding-base-vertical @padding-base-horizontal; + margin-left: -1px; line-height: @line-height-base; - text-decoration: none; color: @pagination-color; + text-decoration: none; background-color: @pagination-bg; border: 1px solid @pagination-border; - margin-left: -1px; + + &:hover, + &:focus { + z-index: 2; + color: @pagination-hover-color; + background-color: @pagination-hover-bg; + border-color: @pagination-hover-border; + } } &:first-child { > a, @@ -36,17 +44,6 @@ } } - > li > a, - > li > span { - &:hover, - &:focus { - z-index: 2; - color: @pagination-hover-color; - background-color: @pagination-hover-bg; - border-color: @pagination-hover-border; - } - } - > .active > a, > .active > span { &, @@ -54,9 +51,9 @@ &:focus { z-index: 3; color: @pagination-active-color; + cursor: default; background-color: @pagination-active-bg; border-color: @pagination-active-border; - cursor: default; } } @@ -68,9 +65,9 @@ > a:hover, > a:focus { color: @pagination-disabled-color; + cursor: @cursor-disabled; background-color: @pagination-disabled-bg; border-color: @pagination-disabled-border; - cursor: @cursor-disabled; } } } diff --git a/stuff/bootstrap/panels.less b/stuff/bootstrap/panels.less old mode 100755 new mode 100644 index 425eb5e6..f230a84a --- a/stuff/bootstrap/panels.less +++ b/stuff/bootstrap/panels.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, no-duplicate-selectors + // // Panels // -------------------------------------------------- @@ -9,7 +11,7 @@ background-color: @panel-bg; border: 1px solid transparent; border-radius: @panel-border-radius; - .box-shadow(0 1px 1px rgba(0,0,0,.05)); + .box-shadow(0 1px 1px rgba(0, 0, 0, .05)); } // Panel contents @@ -113,8 +115,8 @@ margin-bottom: 0; caption { - padding-left: @panel-body-padding; padding-right: @panel-body-padding; + padding-left: @panel-body-padding; } } // Add border top radius for first one @@ -147,8 +149,8 @@ > tbody:last-child, > tfoot:last-child { > tr:last-child { - border-bottom-left-radius: (@panel-border-radius - 1); border-bottom-right-radius: (@panel-border-radius - 1); + border-bottom-left-radius: (@panel-border-radius - 1); td:first-child, th:first-child { @@ -208,13 +210,13 @@ } } > .table-responsive { - border: 0; margin-bottom: 0; + border: 0; } } -// Collapsable panels (aka, accordion) +// Collapsible panels (aka, accordion) // // Wrap a series of panels in `.panel-group` to turn them into an accordion with // the help of our collapse JavaScript plugin. diff --git a/stuff/bootstrap/popovers.less b/stuff/bootstrap/popovers.less old mode 100755 new mode 100644 index 3a62a645..3920eb5b --- a/stuff/bootstrap/popovers.less +++ b/stuff/bootstrap/popovers.less @@ -15,99 +15,81 @@ // So reset our font and text properties to avoid inheriting weird values. .reset-text(); font-size: @font-size-base; - background-color: @popover-bg; background-clip: padding-box; border: 1px solid @popover-fallback-border-color; border: 1px solid @popover-border-color; border-radius: @border-radius-large; - .box-shadow(0 5px 10px rgba(0,0,0,.2)); + .box-shadow(0 5px 10px rgba(0, 0, 0, .2)); // Offset the popover to account for the popover arrow - &.top { margin-top: -@popover-arrow-width; } - &.right { margin-left: @popover-arrow-width; } - &.bottom { margin-top: @popover-arrow-width; } - &.left { margin-left: -@popover-arrow-width; } -} + &.top { margin-top: -@popover-arrow-width; } + &.right { margin-left: @popover-arrow-width; } + &.bottom { margin-top: @popover-arrow-width; } + &.left { margin-left: -@popover-arrow-width; } -.popover-title { - margin: 0; // reset heading margin - padding: 8px 14px; - font-size: @font-size-base; - background-color: @popover-title-bg; - border-bottom: 1px solid darken(@popover-title-bg, 5%); - border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0; -} + // Arrows + // .arrow is outer, .arrow:after is inner + > .arrow { + border-width: @popover-arrow-outer-width; -.popover-content { - padding: 9px 14px; -} + &, + &:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } -// Arrows -// -// .arrow is outer, .arrow:after is inner - -.popover > .arrow { - &, - &:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; + &:after { + content: ""; + border-width: @popover-arrow-width; + } } -} -.popover > .arrow { - border-width: @popover-arrow-outer-width; -} -.popover > .arrow:after { - border-width: @popover-arrow-width; - content: ""; -} -.popover { &.top > .arrow { + bottom: -@popover-arrow-outer-width; left: 50%; margin-left: -@popover-arrow-outer-width; - border-bottom-width: 0; border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-top-color: @popover-arrow-outer-color; - bottom: -@popover-arrow-outer-width; + border-bottom-width: 0; &:after { - content: " "; bottom: 1px; margin-left: -@popover-arrow-width; - border-bottom-width: 0; + content: " "; border-top-color: @popover-arrow-color; + border-bottom-width: 0; } } &.right > .arrow { top: 50%; left: -@popover-arrow-outer-width; margin-top: -@popover-arrow-outer-width; - border-left-width: 0; border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-right-color: @popover-arrow-outer-color; + border-left-width: 0; &:after { - content: " "; - left: 1px; bottom: -@popover-arrow-width; - border-left-width: 0; + left: 1px; + content: " "; border-right-color: @popover-arrow-color; + border-left-width: 0; } } &.bottom > .arrow { + top: -@popover-arrow-outer-width; left: 50%; margin-left: -@popover-arrow-outer-width; border-top-width: 0; border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-bottom-color: @popover-arrow-outer-color; - top: -@popover-arrow-outer-width; &:after { - content: " "; top: 1px; margin-left: -@popover-arrow-width; + content: " "; border-top-width: 0; border-bottom-color: @popover-arrow-color; } @@ -121,11 +103,24 @@ border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback border-left-color: @popover-arrow-outer-color; &:after { - content: " "; right: 1px; + bottom: -@popover-arrow-width; + content: " "; border-right-width: 0; border-left-color: @popover-arrow-color; - bottom: -@popover-arrow-width; } } } + +.popover-title { + padding: 8px 14px; + margin: 0; // reset heading margin + font-size: @font-size-base; + background-color: @popover-title-bg; + border-bottom: 1px solid darken(@popover-title-bg, 5%); + border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0; +} + +.popover-content { + padding: 9px 14px; +} diff --git a/stuff/bootstrap/print.less b/stuff/bootstrap/print.less old mode 100755 new mode 100644 index 66e54ab4..80458c36 --- a/stuff/bootstrap/print.less +++ b/stuff/bootstrap/print.less @@ -1,3 +1,5 @@ +// stylelint-disable declaration-no-important, selector-no-qualifying-type + /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ // ========================================================================== @@ -6,96 +8,94 @@ // ========================================================================== @media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; // Black prints faster: h5bp.com/s - box-shadow: none !important; - text-shadow: none !important; - } + *, + *:before, + *:after { + color: #000 !important; // Black prints faster: h5bp.com/s + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } - a, - a:visited { - text-decoration: underline; - } + a, + a:visited { + text-decoration: underline; + } - a[href]:after { - content: " (" attr(href) ")"; - } + a[href]:after { + content: " (" attr(href) ")"; + } - abbr[title]:after { - content: " (" attr(title) ")"; - } + abbr[title]:after { + content: " (" attr(title) ")"; + } - // Don't show links that are fragment identifiers, - // or use the `javascript:` pseudo protocol - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } + // Don't show links that are fragment identifiers, + // or use the `javascript:` pseudo protocol + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } - thead { - display: table-header-group; // h5bp.com/t - } + thead { + display: table-header-group; // h5bp.com/t + } - tr, - img { - page-break-inside: avoid; - } + tr, + img { + page-break-inside: avoid; + } - img { - max-width: 100% !important; - } + img { + max-width: 100% !important; + } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } - h2, - h3 { - page-break-after: avoid; - } + h2, + h3 { + page-break-after: avoid; + } - // Bootstrap specific changes start + // Bootstrap specific changes start - // Bootstrap components - .navbar { - display: none; - } - .btn, - .dropup > .btn { - > .caret { - border-top-color: #000 !important; - } - } - .label { - border: 1px solid #000; + // Bootstrap components + .navbar { + display: none; + } + .btn, + .dropup > .btn { + > .caret { + border-top-color: #000 !important; } + } + .label { + border: 1px solid #000; + } - .table { - border-collapse: collapse !important; + .table { + border-collapse: collapse !important; - td, - th { - background-color: #fff !important; - } + td, + th { + background-color: #fff !important; } - .table-bordered { - th, - td { - border: 1px solid #ddd !important; - } + } + .table-bordered { + th, + td { + border: 1px solid #ddd !important; } - - // Bootstrap specific changes end + } } diff --git a/stuff/bootstrap/progress-bars.less b/stuff/bootstrap/progress-bars.less old mode 100755 new mode 100644 index 8868a1fe..c40ab153 --- a/stuff/bootstrap/progress-bars.less +++ b/stuff/bootstrap/progress-bars.less @@ -1,3 +1,5 @@ +// stylelint-disable at-rule-no-vendor-prefix + // // Progress bars // -------------------------------------------------- @@ -24,12 +26,12 @@ // Outer container .progress { - overflow: hidden; height: @line-height-computed; margin-bottom: @line-height-computed; + overflow: hidden; background-color: @progress-bg; border-radius: @progress-border-radius; - .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); + .box-shadow(inset 0 1px 2px rgba(0, 0, 0, .1)); } // Bar of progress @@ -42,7 +44,7 @@ color: @progress-bar-color; text-align: center; background-color: @progress-bar-bg; - .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); + .box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .15)); .transition(width .6s ease); } diff --git a/stuff/bootstrap/responsive-embed.less b/stuff/bootstrap/responsive-embed.less old mode 100755 new mode 100644 index 080a5118..5a0e0b88 --- a/stuff/bootstrap/responsive-embed.less +++ b/stuff/bootstrap/responsive-embed.less @@ -16,10 +16,10 @@ video { position: absolute; top: 0; - left: 0; bottom: 0; - height: 100%; + left: 0; width: 100%; + height: 100%; border: 0; } } diff --git a/stuff/bootstrap/responsive-utilities.less b/stuff/bootstrap/responsive-utilities.less old mode 100755 new mode 100644 index aa192b62..5d7740ac --- a/stuff/bootstrap/responsive-utilities.less +++ b/stuff/bootstrap/responsive-utilities.less @@ -1,7 +1,30 @@ +// stylelint-disable declaration-no-important, at-rule-no-vendor-prefix + // // Responsive: Utility classes // -------------------------------------------------- + +// IE10 in Windows (Phone) 8 +// +// Support for responsive views via media queries is kind of borked in IE10, for +// Surface/desktop in split view and for Windows Phone 8. This particular fix +// must be accompanied by a snippet of JavaScript to sniff the user agent and +// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at +// our Getting Started page for more information on this bug. +// +// For more information, see the following: +// +// Issue: https://github.com/twbs/bootstrap/issues/10497 +// Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width +// Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/ +// Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ + +@-ms-viewport { + width: device-width; +} + + // Visibility utilities // Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 .visible-xs, diff --git a/stuff/bootstrap/scaffolding.less b/stuff/bootstrap/scaffolding.less old mode 100755 new mode 100644 index 1929bfc5..df91f079 --- a/stuff/bootstrap/scaffolding.less +++ b/stuff/bootstrap/scaffolding.less @@ -7,7 +7,7 @@ // // Heads up! This reset may cause conflicts with some third-party widgets. // For recommendations on resolving such conflicts, see -// http://getbootstrap.com/getting-started/#third-box-sizing +// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing * { .box-sizing(border-box); } @@ -21,7 +21,7 @@ html { font-size: 10px; - -webkit-tap-highlight-color: rgba(0,0,0,0); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { @@ -111,7 +111,7 @@ img { // Horizontal rules hr { - margin-top: @line-height-computed; + margin-top: @line-height-computed; margin-bottom: @line-height-computed; border: 0; border-top: 1px solid @hr-border; @@ -120,21 +120,21 @@ hr { // Only display content to screen readers // -// See: http://a11yproject.com/posts/how-to-hide-content/ +// See: https://a11yproject.com/posts/how-to-hide-content .sr-only { position: absolute; width: 1px; height: 1px; - margin: -1px; padding: 0; + margin: -1px; overflow: hidden; - clip: rect(0,0,0,0); + clip: rect(0, 0, 0, 0); border: 0; } // Use in conjunction with .sr-only to only display content when it's focused. -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 // Credit: HTML5 Boilerplate .sr-only-focusable { diff --git a/stuff/bootstrap/tables.less b/stuff/bootstrap/tables.less old mode 100755 new mode 100644 index 2242c036..43411b38 --- a/stuff/bootstrap/tables.less +++ b/stuff/bootstrap/tables.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-no-qualifying-type + // // Tables // -------------------------------------------------- @@ -5,13 +7,34 @@ table { background-color: @table-bg; + + // Table cell sizing + // + // Reset default table behavior + + col[class*="col-"] { + position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) + display: table-column; + float: none; + } + + td, + th { + &[class*="col-"] { + position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) + display: table-cell; + float: none; + } + } } + caption { padding-top: @table-cell-padding; padding-bottom: @table-cell-padding; color: @text-muted; text-align: left; } + th { text-align: left; } @@ -128,27 +151,6 @@ th { } -// Table cell sizing -// -// Reset default table behavior - -table col[class*="col-"] { - position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) - float: none; - display: table-column; -} -table { - td, - th { - &[class*="col-"] { - position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) - float: none; - display: table-cell; - } - } -} - - // Table backgrounds // // Exact selectors below required to override `.table-striped` and prevent @@ -169,12 +171,12 @@ table { // will display normally. .table-responsive { + min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837) overflow-x: auto; - min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837) @media screen and (max-width: @screen-xs-max) { width: 100%; - margin-bottom: (@line-height-computed * 0.75); + margin-bottom: (@line-height-computed * .75); overflow-y: hidden; -ms-overflow-style: -ms-autohiding-scrollbar; border: 1px solid @table-border-color; diff --git a/stuff/bootstrap/theme.less b/stuff/bootstrap/theme.less index 8f51d913..deda3e01 100644 --- a/stuff/bootstrap/theme.less +++ b/stuff/bootstrap/theme.less @@ -1,7 +1,9 @@ +// stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors + /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE) */ // @@ -23,14 +25,14 @@ .btn-info, .btn-warning, .btn-danger { - text-shadow: 0 -1px 0 rgba(0,0,0,.2); - @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); + text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); + @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); .box-shadow(@shadow); // Reset the shadow &:active, &.active { - .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125)); } &.disabled, @@ -88,7 +90,11 @@ } // Apply the mixin to the buttons -.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } +.btn-default { + .btn-styles(@btn-default-bg); + text-shadow: 0 1px 0 #fff; + border-color: #ccc; +} .btn-primary { .btn-styles(@btn-primary-bg); } .btn-success { .btn-styles(@btn-success-bg); } .btn-info { .btn-styles(@btn-info-bg); } @@ -102,7 +108,7 @@ .thumbnail, .img-thumbnail { - .box-shadow(0 1px 2px rgba(0,0,0,.075)); + .box-shadow(0 1px 2px rgba(0, 0, 0, .075)); } @@ -132,18 +138,18 @@ #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg); .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered border-radius: @navbar-border-radius; - @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075); + @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); .box-shadow(@shadow); .navbar-nav > .open > a, .navbar-nav > .active > a { #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%)); - .box-shadow(inset 0 3px 9px rgba(0,0,0,.075)); + .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075)); } } .navbar-brand, .navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255,255,255,.25); + text-shadow: 0 1px 0 rgba(255, 255, 255, .25); } // Inverted navbar @@ -154,12 +160,12 @@ .navbar-nav > .open > a, .navbar-nav > .active > a { #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%)); - .box-shadow(inset 0 3px 9px rgba(0,0,0,.25)); + .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25)); } .navbar-brand, .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0,0,0,.25); + text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); } } @@ -189,8 +195,8 @@ // Common styles .alert { - text-shadow: 0 1px 0 rgba(255,255,255,.2); - @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, .2); + @shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); .box-shadow(@shadow); } @@ -213,7 +219,7 @@ // Give the progress background some depth .progress { - #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg) + #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg); } // Mixin for generating new styles @@ -241,7 +247,7 @@ .list-group { border-radius: @border-radius-base; - .box-shadow(0 1px 2px rgba(0,0,0,.075)); + .box-shadow(0 1px 2px rgba(0, 0, 0, .075)); } .list-group-item.active, .list-group-item.active:hover, @@ -262,7 +268,7 @@ // Common styles .panel { - .box-shadow(0 1px 2px rgba(0,0,0,.05)); + .box-shadow(0 1px 2px rgba(0, 0, 0, .05)); } // Mixin for generating new styles @@ -286,6 +292,6 @@ .well { #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg); border-color: darken(@well-bg, 10%); - @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1); + @shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); .box-shadow(@shadow); } diff --git a/stuff/bootstrap/thumbnails.less b/stuff/bootstrap/thumbnails.less old mode 100755 new mode 100644 index 0713e67d..11bea9bf --- a/stuff/bootstrap/thumbnails.less +++ b/stuff/bootstrap/thumbnails.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-no-qualifying-type + // // Thumbnails // -------------------------------------------------- @@ -17,8 +19,8 @@ > img, a > img { &:extend(.img-responsive); - margin-left: auto; margin-right: auto; + margin-left: auto; } // Add a hover state for linked versions only diff --git a/stuff/bootstrap/tooltip.less b/stuff/bootstrap/tooltip.less old mode 100755 new mode 100644 index b48d63e0..650ab424 --- a/stuff/bootstrap/tooltip.less +++ b/stuff/bootstrap/tooltip.less @@ -15,33 +15,25 @@ .opacity(0); - &.in { .opacity(@tooltip-opacity); } - &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; } - &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; } - &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; } - &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; } -} + &.in { .opacity(@tooltip-opacity); } + &.top { + padding: @tooltip-arrow-width 0; + margin-top: -3px; + } + &.right { + padding: 0 @tooltip-arrow-width; + margin-left: 3px; + } + &.bottom { + padding: @tooltip-arrow-width 0; + margin-top: 3px; + } + &.left { + padding: 0 @tooltip-arrow-width; + margin-left: -3px; + } -// Wrapper for the tooltip content -.tooltip-inner { - max-width: @tooltip-max-width; - padding: 3px 8px; - color: @tooltip-color; - text-align: center; - background-color: @tooltip-bg; - border-radius: @border-radius-base; -} - -// Arrows -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1 -.tooltip { + // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1 &.top .tooltip-arrow { bottom: 0; left: 50%; @@ -50,8 +42,8 @@ border-top-color: @tooltip-arrow-color; } &.top-left .tooltip-arrow { - bottom: 0; right: @tooltip-arrow-width; + bottom: 0; margin-bottom: -@tooltip-arrow-width; border-width: @tooltip-arrow-width @tooltip-arrow-width 0; border-top-color: @tooltip-arrow-color; @@ -99,3 +91,22 @@ border-bottom-color: @tooltip-arrow-color; } } + +// Wrapper for the tooltip content +.tooltip-inner { + max-width: @tooltip-max-width; + padding: 3px 8px; + color: @tooltip-color; + text-align: center; + background-color: @tooltip-bg; + border-radius: @border-radius-base; +} + +// Arrows +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} diff --git a/stuff/bootstrap/type.less b/stuff/bootstrap/type.less index 0d4fee48..1980e408 100644 --- a/stuff/bootstrap/type.less +++ b/stuff/bootstrap/type.less @@ -1,3 +1,5 @@ +// stylelint-disable selector-list-comma-newline-after, selector-no-qualifying-type + // // Typography // -------------------------------------------------- @@ -15,7 +17,7 @@ h1, h2, h3, h4, h5, h6, small, .small { - font-weight: normal; + font-weight: 400; line-height: 1; color: @headings-small-color; } @@ -82,8 +84,8 @@ small, mark, .mark { - background-color: @state-warning-bg; padding: .2em; + background-color: @state-warning-bg; } // Alignment @@ -180,8 +182,8 @@ ol { > li { display: inline-block; - padding-left: 5px; padding-right: 5px; + padding-left: 5px; } } @@ -195,7 +197,7 @@ dd { line-height: @line-height-base; } dt { - font-weight: bold; + font-weight: 700; } dd { margin-left: 0; // Undo browser default @@ -230,12 +232,12 @@ dd { // ------------------------- // Abbreviations and acronyms -abbr[title], // Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 +abbr[title], abbr[data-original-title] { cursor: help; - border-bottom: 1px dotted @abbr-border-color; } + .initialism { font-size: 90%; .text-uppercase(); @@ -267,7 +269,7 @@ blockquote { color: @blockquote-small-color; &:before { - content: '\2014 \00A0'; // em dash, nbsp + content: "\2014 \00A0"; // em dash, nbsp } } } @@ -279,17 +281,17 @@ blockquote { blockquote.pull-right { padding-right: 15px; padding-left: 0; + text-align: right; border-right: 5px solid @blockquote-border-color; border-left: 0; - text-align: right; // Account for citation footer, small, .small { - &:before { content: ''; } + &:before { content: ""; } &:after { - content: '\00A0 \2014'; // nbsp, em dash + content: "\00A0 \2014"; // nbsp, em dash } } } diff --git a/stuff/bootstrap/utilities.less b/stuff/bootstrap/utilities.less old mode 100755 new mode 100644 index 7a8ca27a..834f5b72 --- a/stuff/bootstrap/utilities.less +++ b/stuff/bootstrap/utilities.less @@ -1,3 +1,5 @@ +// stylelint-disable declaration-no-important + // // Utility classes // -------------------------------------------------- diff --git a/stuff/bootstrap/variables.less b/stuff/bootstrap/variables.less index 1bec286b..0395c02c 100755 --- a/stuff/bootstrap/variables.less +++ b/stuff/bootstrap/variables.less @@ -1,3 +1,5 @@ +// stylelint-disable value-keyword-case + // // Variables // -------------------------------------------------- diff --git a/stuff/bootstrap/wells.less b/stuff/bootstrap/wells.less old mode 100755 new mode 100644 index 15d072b0..9f5bdaa3 --- a/stuff/bootstrap/wells.less +++ b/stuff/bootstrap/wells.less @@ -11,10 +11,10 @@ background-color: @well-bg; border: 1px solid @well-border; border-radius: @border-radius-base; - .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); + .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05)); blockquote { border-color: #ddd; - border-color: rgba(0,0,0,.15); + border-color: rgba(0, 0, 0, .15); } }