diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 00000000..e3ed5dcc --- /dev/null +++ b/docs/404.html @@ -0,0 +1,157 @@ + + + + + + + + +Page not found (404) • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+
+ + +Content not found. Please use links in the navbar. + +
+ +
+ + +
+
+ + + + + + + + + + diff --git a/docs/CONTRIBUTING.html b/docs/CONTRIBUTING.html new file mode 100644 index 00000000..3e8093da --- /dev/null +++ b/docs/CONTRIBUTING.html @@ -0,0 +1,276 @@ + + + + + + + + +Guidelines for contributing • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+
+ + +
+ +

First of all, thank you for considering contributing! Below are guidelines for helping you contribute to this repository.

+
+

+Raising an issue

+
+

+Bugs

+

Provide context to the bug and list any explorations you made. Reproducible examples are highly encouraged and may be asked for if not initially included.

+
+
+

+Features

+

Have an idea, big or small, for the package? Let the team know! Feature suggestions encourage development, give the team an idea how you and others use the package, and let you help shape the creative direction of the package.

+
+
+
+

+Submitting a pull request

+
+
+

+Commit messages

+

This is adapted from the Angular team’s commit guidelines

+
+

+Format of the commit message

+

A commit message consists of a header, a body, and a possible footer, separated by a blank line.

+
<type>(<scope>): <subject>
+<BLANK LINE>
+<body>
+<BLANK LINE>
+<footer>
+
+

+<type> +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
valuedescription
featfeature
fixbug fix
docsdocumentation
styleformatting, missing semi colons, …
testadding missing tests
choremaintenance
+
+
+

+<scope> +

+

Scope can be anything specifying what the commit affects. For example renderBadge, tableInput, background, css, …

+

Use * if there isn’t a more fitting scope.

+
+
+

+<subject> +

+

This is a very short description of the change.

+
    +
  • use imperative, present tense: “change” not “changed” nor “changes”
  • +
  • don’t capitalize first letter
  • +
  • no dot (.) at the end
  • +
+
+
+

+<body> +

+

As in <subject> use imperative, present tense: “change” not “changed” nor “changes”. Include the motivation for the change and contrasts with previous behavior.

+
+ +
+
+
+ +
+ +
+ + +
+
+ + + + + + + + + + diff --git a/docs/apple-touch-icon-120x120.png b/docs/apple-touch-icon-120x120.png new file mode 100644 index 00000000..dcfcb891 Binary files /dev/null and b/docs/apple-touch-icon-120x120.png differ diff --git a/docs/apple-touch-icon-152x152.png b/docs/apple-touch-icon-152x152.png new file mode 100644 index 00000000..a5574f90 Binary files /dev/null and b/docs/apple-touch-icon-152x152.png differ diff --git a/docs/apple-touch-icon-180x180.png b/docs/apple-touch-icon-180x180.png new file mode 100644 index 00000000..5c97fcdd Binary files /dev/null and b/docs/apple-touch-icon-180x180.png differ diff --git a/docs/apple-touch-icon-60x60.png b/docs/apple-touch-icon-60x60.png new file mode 100644 index 00000000..bfc7db90 Binary files /dev/null and b/docs/apple-touch-icon-60x60.png differ diff --git a/docs/apple-touch-icon-76x76.png b/docs/apple-touch-icon-76x76.png new file mode 100644 index 00000000..4d15b4a0 Binary files /dev/null and b/docs/apple-touch-icon-76x76.png differ diff --git a/docs/apple-touch-icon.png b/docs/apple-touch-icon.png new file mode 100644 index 00000000..9c9c54ef Binary files /dev/null and b/docs/apple-touch-icon.png differ diff --git a/docs/authors.html b/docs/authors.html new file mode 100644 index 00000000..6db771e1 --- /dev/null +++ b/docs/authors.html @@ -0,0 +1,182 @@ + + + + + + + + +Authors • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+
+ + +
    +
  • +

    Nathan Teetor. Author, maintainer. +

    +
  • +
  • +

    The Bootstrap Authors. Copyright holder. +
    Bootstrap library

    +
  • +
  • +

    Twitter, Inc. Copyright holder. +
    Bootstrap library

    +
  • +
  • +

    JS Foundation. Copyright holder. +
    jQuery library

    +
  • +
  • +

    Federico Zivolo. Contributor, copyright holder. +
    popper.js library

    +
  • +
  • +

    Johann Servoire. Contributor, copyright holder. +
    bs-custom-file-input library

    +
  • +
+ +
+ +
+ + +
+
+ + + + + + + + + + diff --git a/docs/docsearch.css b/docs/docsearch.css new file mode 100644 index 00000000..e5f1fe1d --- /dev/null +++ b/docs/docsearch.css @@ -0,0 +1,148 @@ +/* Docsearch -------------------------------------------------------------- */ +/* + Source: https://github.com/algolia/docsearch/ + License: MIT +*/ + +.algolia-autocomplete { + display: block; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1 +} + +.algolia-autocomplete .ds-dropdown-menu { + width: 100%; + min-width: none; + max-width: none; + padding: .75rem 0; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .1); + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175); +} + +@media (min-width:768px) { + .algolia-autocomplete .ds-dropdown-menu { + width: 175% + } +} + +.algolia-autocomplete .ds-dropdown-menu::before { + display: none +} + +.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-] { + padding: 0; + background-color: rgb(255,255,255); + border: 0; + max-height: 80vh; +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestions { + margin-top: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion { + padding: 0; + overflow: visible +} + +.algolia-autocomplete .algolia-docsearch-suggestion--category-header { + padding: .125rem 1rem; + margin-top: 0; + font-size: 1.3em; + font-weight: 500; + color: #00008B; + border-bottom: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--wrapper { + float: none; + padding-top: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column { + float: none; + width: auto; + padding: 0; + text-align: left +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content { + float: none; + width: auto; + padding: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content::before { + display: none +} + +.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header { + padding-top: .75rem; + margin-top: .75rem; + border-top: 1px solid rgba(0, 0, 0, .1) +} + +.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column { + display: block; + padding: .1rem 1rem; + margin-bottom: 0.1; + font-size: 1.0em; + font-weight: 400 + /* display: none */ +} + +.algolia-autocomplete .algolia-docsearch-suggestion--title { + display: block; + padding: .25rem 1rem; + margin-bottom: 0; + font-size: 0.9em; + font-weight: 400 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--text { + padding: 0 1rem .5rem; + margin-top: -.25rem; + font-size: 0.8em; + font-weight: 400; + line-height: 1.25 +} + +.algolia-autocomplete .algolia-docsearch-footer { + width: 110px; + height: 20px; + z-index: 3; + margin-top: 10.66667px; + float: right; + font-size: 0; + line-height: 0; +} + +.algolia-autocomplete .algolia-docsearch-footer--logo { + background-image: url("data:image/svg+xml;utf8,"); + background-repeat: no-repeat; + background-position: 50%; + background-size: 100%; + overflow: hidden; + text-indent: -9000px; + width: 100%; + height: 100%; + display: block; + transform: translate(-8px); +} + +.algolia-autocomplete .algolia-docsearch-suggestion--highlight { + color: #FF8C00; + background: rgba(232, 189, 54, 0.1) +} + + +.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { + box-shadow: inset 0 -2px 0 0 rgba(105, 105, 105, .5) +} + +.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content { + background-color: rgba(192, 192, 192, .15) +} diff --git a/docs/docsearch.js b/docs/docsearch.js new file mode 100644 index 00000000..b35504cd --- /dev/null +++ b/docs/docsearch.js @@ -0,0 +1,85 @@ +$(function() { + + // register a handler to move the focus to the search bar + // upon pressing shift + "/" (i.e. "?") + $(document).on('keydown', function(e) { + if (e.shiftKey && e.keyCode == 191) { + e.preventDefault(); + $("#search-input").focus(); + } + }); + + $(document).ready(function() { + // do keyword highlighting + /* modified from https://jsfiddle.net/julmot/bL6bb5oo/ */ + var mark = function() { + + var referrer = document.URL ; + var paramKey = "q" ; + + if (referrer.indexOf("?") !== -1) { + var qs = referrer.substr(referrer.indexOf('?') + 1); + var qs_noanchor = qs.split('#')[0]; + var qsa = qs_noanchor.split('&'); + var keyword = ""; + + for (var i = 0; i < qsa.length; i++) { + var currentParam = qsa[i].split('='); + + if (currentParam.length !== 2) { + continue; + } + + if (currentParam[0] == paramKey) { + keyword = decodeURIComponent(currentParam[1].replace(/\+/g, "%20")); + } + } + + if (keyword !== "") { + $(".contents").unmark({ + done: function() { + $(".contents").mark(keyword); + } + }); + } + } + }; + + mark(); + }); +}); + +/* Search term highlighting ------------------------------*/ + +function matchedWords(hit) { + var words = []; + + var hierarchy = hit._highlightResult.hierarchy; + // loop to fetch from lvl0, lvl1, etc. + for (var idx in hierarchy) { + words = words.concat(hierarchy[idx].matchedWords); + } + + var content = hit._highlightResult.content; + if (content) { + words = words.concat(content.matchedWords); + } + + // return unique words + var words_uniq = [...new Set(words)]; + return words_uniq; +} + +function updateHitURL(hit) { + + var words = matchedWords(hit); + var url = ""; + + if (hit.anchor) { + url = hit.url_without_anchor + '?q=' + escape(words.join(" ")) + '#' + hit.anchor; + } else { + url = hit.url + '?q=' + escape(words.join(" ")); + } + + return url; +} diff --git a/docs/extra.css b/docs/extra.css new file mode 100644 index 00000000..a1e13318 --- /dev/null +++ b/docs/extra.css @@ -0,0 +1,8 @@ +/*! + * An opinionated build of Bootstrap 4 for the yonder r package + *//*! + * Bootstrap v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}@media (max-width:1200px){legend{font-size:calc(1.275rem + .3vw)}}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}@media (max-width:1200px){.h1,h1{font-size:calc(1.375rem + 1.5vw)}}.h2,h2{font-size:2rem}@media (max-width:1200px){.h2,h2{font-size:calc(1.325rem + .9vw)}}.h3,h3{font-size:1.75rem}@media (max-width:1200px){.h3,h3{font-size:calc(1.3rem + .6vw)}}.h4,h4{font-size:1.5rem}@media (max-width:1200px){.h4,h4{font-size:calc(1.275rem + .3vw)}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}@media (max-width:1200px){.display-1{font-size:calc(1.725rem + 5.7vw)}}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}@media (max-width:1200px){.display-2{font-size:calc(1.675rem + 5.1vw)}}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}@media (max-width:1200px){.display-3{font-size:calc(1.575rem + 3.9vw)}}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}@media (max-width:1200px){.display-4{font-size:calc(1.475rem + 2.7vw)}}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem;box-shadow:inset 0 -.1rem 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65;box-shadow:none}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125)}.btn:not(:disabled):not(.disabled).active:focus,.btn:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.25),0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125)}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-group-primary>.btn,.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-primary>.btn:hover,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-group-primary>.btn:focus,.btn-group-primary>.focus.btn,.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(38,143,255,.5)}.btn-group-primary>.btn:disabled,.btn-group-primary>.disabled.btn,.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-group-primary.show>.dropdown-toggle.btn,.btn-group-primary>.btn:not(:disabled):not(.disabled).active,.btn-group-primary>.btn:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-group-primary.show>.dropdown-toggle.btn:focus,.btn-group-primary>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-primary>.btn:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(38,143,255,.5)}.btn-group-secondary>.btn,.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-secondary>.btn:hover,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-group-secondary>.btn:focus,.btn-group-secondary>.focus.btn,.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(130,138,145,.5)}.btn-group-secondary>.btn:disabled,.btn-group-secondary>.disabled.btn,.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-group-secondary.show>.dropdown-toggle.btn,.btn-group-secondary>.btn:not(:disabled):not(.disabled).active,.btn-group-secondary>.btn:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-group-secondary.show>.dropdown-toggle.btn:focus,.btn-group-secondary>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-secondary>.btn:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(130,138,145,.5)}.btn-group-success>.btn,.btn-success{color:#fff;background-color:#28a745;border-color:#28a745;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-success>.btn:hover,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-group-success>.btn:focus,.btn-group-success>.focus.btn,.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(72,180,97,.5)}.btn-group-success>.btn:disabled,.btn-group-success>.disabled.btn,.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-group-success.show>.dropdown-toggle.btn,.btn-group-success>.btn:not(:disabled):not(.disabled).active,.btn-group-success>.btn:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-group-success.show>.dropdown-toggle.btn:focus,.btn-group-success>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-success>.btn:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(72,180,97,.5)}.btn-group-info>.btn,.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-info>.btn:hover,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-group-info>.btn:focus,.btn-group-info>.focus.btn,.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(58,176,195,.5)}.btn-group-info>.btn:disabled,.btn-group-info>.disabled.btn,.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-group-info.show>.dropdown-toggle.btn,.btn-group-info>.btn:not(:disabled):not(.disabled).active,.btn-group-info>.btn:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-group-info.show>.dropdown-toggle.btn:focus,.btn-group-info>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-info>.btn:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(58,176,195,.5)}.btn-group-warning>.btn,.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-warning>.btn:hover,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-group-warning>.btn:focus,.btn-group-warning>.focus.btn,.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(222,170,12,.5)}.btn-group-warning>.btn:disabled,.btn-group-warning>.disabled.btn,.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-group-warning.show>.dropdown-toggle.btn,.btn-group-warning>.btn:not(:disabled):not(.disabled).active,.btn-group-warning>.btn:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-group-warning.show>.dropdown-toggle.btn:focus,.btn-group-warning>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-warning>.btn:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger,.btn-group-danger>.btn{color:#fff;background-color:#dc3545;border-color:#dc3545;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-danger:hover,.btn-group-danger>.btn:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus,.btn-group-danger>.btn:focus,.btn-group-danger>.focus.btn{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled,.btn-group-danger>.btn:disabled,.btn-group-danger>.disabled.btn{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.btn-group-danger.show>.dropdown-toggle.btn,.btn-group-danger>.btn:not(:disabled):not(.disabled).active,.btn-group-danger>.btn:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-group-danger.show>.dropdown-toggle.btn:focus,.btn-group-danger>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-danger>.btn:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(225,83,97,.5)}.btn-group-light>.btn,.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-light>.btn:hover,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-group-light>.btn:focus,.btn-group-light>.focus.btn,.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(216,217,219,.5)}.btn-group-light>.btn:disabled,.btn-group-light>.disabled.btn,.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-group-light.show>.dropdown-toggle.btn,.btn-group-light>.btn:not(:disabled):not(.disabled).active,.btn-group-light>.btn:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-group-light.show>.dropdown-toggle.btn:focus,.btn-group-light>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-light>.btn:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark,.btn-group-dark>.btn{color:#fff;background-color:#343a40;border-color:#343a40;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-dark:hover,.btn-group-dark>.btn:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus,.btn-group-dark>.btn:focus,.btn-group-dark>.focus.btn{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled,.btn-group-dark>.btn:disabled,.btn-group-dark>.disabled.btn{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.btn-group-dark.show>.dropdown-toggle.btn,.btn-group-dark>.btn:not(:disabled):not(.disabled).active,.btn-group-dark>.btn:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-group-dark.show>.dropdown-toggle.btn:focus,.btn-group-dark>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-dark>.btn:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(82,88,93,.5)}.btn-group-outline-primary>.btn,.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-group-outline-primary>.btn:hover,.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-group-outline-primary>.btn:focus,.btn-group-outline-primary>.focus.btn,.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-group-outline-primary>.btn:disabled,.btn-group-outline-primary>.disabled.btn,.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-group-outline-primary.show>.dropdown-toggle.btn,.btn-group-outline-primary>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-primary>.btn:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-group-outline-primary.show>.dropdown-toggle.btn:focus,.btn-group-outline-primary>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-primary>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(0,123,255,.5)}.btn-group-outline-secondary>.btn,.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-group-outline-secondary>.btn:hover,.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-group-outline-secondary>.btn:focus,.btn-group-outline-secondary>.focus.btn,.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-group-outline-secondary>.btn:disabled,.btn-group-outline-secondary>.disabled.btn,.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-group-outline-secondary.show>.dropdown-toggle.btn,.btn-group-outline-secondary>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-secondary>.btn:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-group-outline-secondary.show>.dropdown-toggle.btn:focus,.btn-group-outline-secondary>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-secondary>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(108,117,125,.5)}.btn-group-outline-success>.btn,.btn-outline-success{color:#28a745;border-color:#28a745}.btn-group-outline-success>.btn:hover,.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-group-outline-success>.btn:focus,.btn-group-outline-success>.focus.btn,.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-group-outline-success>.btn:disabled,.btn-group-outline-success>.disabled.btn,.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-group-outline-success.show>.dropdown-toggle.btn,.btn-group-outline-success>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-success>.btn:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-group-outline-success.show>.dropdown-toggle.btn:focus,.btn-group-outline-success>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-success>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(40,167,69,.5)}.btn-group-outline-info>.btn,.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-group-outline-info>.btn:hover,.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-group-outline-info>.btn:focus,.btn-group-outline-info>.focus.btn,.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-group-outline-info>.btn:disabled,.btn-group-outline-info>.disabled.btn,.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-group-outline-info.show>.dropdown-toggle.btn,.btn-group-outline-info>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-info>.btn:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-group-outline-info.show>.dropdown-toggle.btn:focus,.btn-group-outline-info>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-info>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(23,162,184,.5)}.btn-group-outline-warning>.btn,.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-group-outline-warning>.btn:hover,.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-group-outline-warning>.btn:focus,.btn-group-outline-warning>.focus.btn,.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-group-outline-warning>.btn:disabled,.btn-group-outline-warning>.disabled.btn,.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-group-outline-warning.show>.dropdown-toggle.btn,.btn-group-outline-warning>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-warning>.btn:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-group-outline-warning.show>.dropdown-toggle.btn:focus,.btn-group-outline-warning>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-warning>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(255,193,7,.5)}.btn-group-outline-danger>.btn,.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-group-outline-danger>.btn:hover,.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-group-outline-danger>.btn:focus,.btn-group-outline-danger>.focus.btn,.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-group-outline-danger>.btn:disabled,.btn-group-outline-danger>.disabled.btn,.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-group-outline-danger.show>.dropdown-toggle.btn,.btn-group-outline-danger>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-danger>.btn:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-group-outline-danger.show>.dropdown-toggle.btn:focus,.btn-group-outline-danger>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-danger>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(220,53,69,.5)}.btn-group-outline-light>.btn,.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-group-outline-light>.btn:hover,.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-group-outline-light>.btn:focus,.btn-group-outline-light>.focus.btn,.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-group-outline-light>.btn:disabled,.btn-group-outline-light>.disabled.btn,.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-group-outline-light.show>.dropdown-toggle.btn,.btn-group-outline-light>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-light>.btn:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-group-outline-light.show>.dropdown-toggle.btn:focus,.btn-group-outline-light>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-light>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(248,249,250,.5)}.btn-group-outline-dark>.btn,.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-group-outline-dark>.btn:hover,.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-group-outline-dark>.btn:focus,.btn-group-outline-dark>.focus.btn,.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-group-outline-dark>.btn:disabled,.btn-group-outline-dark>.disabled.btn,.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-group-outline-dark.show>.dropdown-toggle.btn,.btn-group-outline-dark>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-dark>.btn:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-group-outline-dark.show>.dropdown-toggle.btn:focus,.btn-group-outline-dark>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-dark>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.175)}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff;box-shadow:none}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff;box-shadow:none}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff;box-shadow:none}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem;box-shadow:inset 0 .1rem .1rem rgba(0,0,0,.1)}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary,.list-group-primary .list-group-item{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover,.list-group-primary .list-group-item-action.list-group-item:focus,.list-group-primary .list-group-item-action.list-group-item:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active,.list-group-primary .list-group-item-action.active.list-group-item{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary,.list-group-secondary .list-group-item{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover,.list-group-secondary .list-group-item-action.list-group-item:focus,.list-group-secondary .list-group-item-action.list-group-item:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active,.list-group-secondary .list-group-item-action.active.list-group-item{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success,.list-group-success .list-group-item{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover,.list-group-success .list-group-item-action.list-group-item:focus,.list-group-success .list-group-item-action.list-group-item:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active,.list-group-success .list-group-item-action.active.list-group-item{color:#fff;background-color:#155724;border-color:#155724}.list-group-info .list-group-item,.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-info .list-group-item-action.list-group-item:focus,.list-group-info .list-group-item-action.list-group-item:hover,.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-info .list-group-item-action.active.list-group-item,.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning,.list-group-warning .list-group-item{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover,.list-group-warning .list-group-item-action.list-group-item:focus,.list-group-warning .list-group-item-action.list-group-item:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active,.list-group-warning .list-group-item-action.active.list-group-item{color:#fff;background-color:#856404;border-color:#856404}.list-group-danger .list-group-item,.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-danger .list-group-item-action.list-group-item:focus,.list-group-danger .list-group-item-action.list-group-item:hover,.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-danger .list-group-item-action.active.list-group-item,.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light,.list-group-light .list-group-item{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover,.list-group-light .list-group-item-action.list-group-item:focus,.list-group-light .list-group-item-action.list-group-item:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active,.list-group-light .list-group-item-action.active.list-group-item{color:#fff;background-color:#818182;border-color:#818182}.list-group-dark .list-group-item,.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-dark .list-group-item-action.list-group-item:focus,.list-group-dark .list-group-item-action.list-group-item:hover,.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-dark .list-group-item-action.active.list-group-item,.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}@media (max-width:1200px){.close{font-size:calc(1.275rem + .3vw)}}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.5)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 1px 1px rgba(0,0,0,.19),0 2px 2px rgba(0,0,0,.19)!important}.shadow{box-shadow:0 1px 1px rgba(0,0,0,.15),0 2px 2px rgba(0,0,0,.15),0 4px 4px rgba(0,0,0,.15),0 8px 8px rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1px 1px rgba(0,0,0,.11),0 2px 2px rgba(0,0,0,.11),0 4px 4px rgba(0,0,0,.11),0 8px 8px rgba(0,0,0,.11),0 16px 16px rgba(0,0,0,.11),0 32px 32px rgba(0,0,0,.11)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}.btn-link{padding:0;vertical-align:inherit;text-align:inherit}.btn-link.active,.btn-link:active{box-shadow:none}.custom-control-group-primary .custom-control-input:checked~.custom-control-label::before{background-color:#007bff;border-color:#007bff}.custom-control-group-secondary .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#6c757d}.custom-control-group-success .custom-control-input:checked~.custom-control-label::before{background-color:#28a745;border-color:#28a745}.custom-control-group-info .custom-control-input:checked~.custom-control-label::before{background-color:#17a2b8;border-color:#17a2b8}.custom-control-group-warning .custom-control-input:checked~.custom-control-label::before{background-color:#ffc107;border-color:#ffc107}.custom-control-group-danger .custom-control-input:checked~.custom-control-label::before{background-color:#dc3545;border-color:#dc3545}.custom-control-group-light .custom-control-input:checked~.custom-control-label::before{background-color:#f8f9fa;border-color:#f8f9fa}.custom-control-group-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#343a40} \ No newline at end of file diff --git a/docs/extra.js b/docs/extra.js new file mode 100644 index 00000000..0053fc12 --- /dev/null +++ b/docs/extra.js @@ -0,0 +1,12 @@ +/* + Copyright (C) Federico Zivolo 2017 + Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). + */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:e?e.ownerDocument.documentElement:document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1=o.clientWidth&&i>=o.clientHeight}),l=0i[e]&&!t.escapeWithReference&&(n=_(p[o],i[e]-('right'===e?p.width:p.height))),pe({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=se({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=X,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var i;if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var n=o.element;if('string'==typeof n){if(n=e.instance.popper.querySelector(n),!n)return e;}else if(!e.instance.popper.contains(n))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',g=a?'bottom':'right',u=L(n)[l];d[g]-us[g]&&(e.offsets.popper[m]+=d[m]+u-s[g]),e.offsets.popper=c(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=J(_(s[l]-u,v),0),e.arrowElement=n,e.offsets.arrow=(i={},pe(i,m,Math.round(v)),pe(i,h,''),i),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(k(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=y(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=x(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case le.FLIP:p=[i,n];break;case le.CLOCKWISE:p=q(i);break;case le.COUNTERCLOCKWISE:p=q(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=x(i);var a=e.offsets.popper,l=e.offsets.reference,f=X,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)f(l.top)||'bottom'===i&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===i&&h||'right'===i&&c||'top'===i&&g||'bottom'===i&&u,w=-1!==['top','bottom'].indexOf(i),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u);(m||b||y)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),y&&(r=K(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=se({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=C(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=x(t),e.offsets.popper=c(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightthis._items.length-1||t<0))if(this._isSliding)g(this._element).one(Y.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Se,popperConfig:null},Fe="show",Ue="out",We={HIDE:"hide"+Oe,HIDDEN:"hidden"+Oe,SHOW:"show"+Oe,SHOWN:"shown"+Oe,INSERTED:"inserted"+Oe,CLICK:"click"+Oe,FOCUSIN:"focusin"+Oe,FOCUSOUT:"focusout"+Oe,MOUSEENTER:"mouseenter"+Oe,MOUSELEAVE:"mouseleave"+Oe},qe="fade",Me="show",Ke=".tooltip-inner",Qe=".arrow",Be="hover",Ve="focus",Ye="click",ze="manual",Xe=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Me))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(qe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,this._getPopperConfig(a)),g(o).addClass(Me),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===Ue&&e._leave(null,e)};if(g(this.tip).hasClass(qe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){function e(){n._hoverState!==Fe&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),g(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()}var n=this,i=this.getTipElement(),o=g.Event(this.constructor.Event.HIDE);if(g(this.element).trigger(o),!o.isDefaultPrevented()){if(g(i).removeClass(Me),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ye]=!1,this._activeTrigger[Ve]=!1,this._activeTrigger[Be]=!1,g(this.tip).hasClass(qe)){var r=_.getTransitionDurationFromElement(i);g(i).one(_.TRANSITION_END,e).emulateTransitionEnd(r)}else e();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Pe+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ke)),this.getTitle()),g(t).removeClass(qe+" "+Me)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=we(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t=t||("function"==typeof this.config.title?this.config.title.call(this.element):this.config.title)},t._getPopperConfig=function(t){var e=this;return l({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Qe},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},{},this.config.popperConfig)},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,{},e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Re[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==ze){var e=t===Be?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Be?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),this._hideModalHandler=function(){i.element&&i.hide()},g(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");!this.element.getAttribute("title")&&"string"==t||(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ve:Be]=!0),g(e.getTipElement()).hasClass(Me)||e._hoverState===Fe?e._hoverState=Fe:(clearTimeout(e._timeout),e._hoverState=Fe,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Fe&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ve:Be]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Ue,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Ue&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==je.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,{},e,{},"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(Ae,t,this.constructor.DefaultType),t.sanitize&&(t.template=we(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Le);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(qe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ne),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ne,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return xe}},{key:"NAME",get:function(){return Ae}},{key:"DATA_KEY",get:function(){return Ne}},{key:"Event",get:function(){return We}},{key:"EVENT_KEY",get:function(){return Oe}},{key:"DefaultType",get:function(){return He}}]),i}();g.fn[Ae]=Xe._jQueryInterface,g.fn[Ae].Constructor=Xe,g.fn[Ae].noConflict=function(){return g.fn[Ae]=ke,Xe._jQueryInterface};var $e="popover",Ge="bs.popover",Je="."+Ge,Ze=g.fn[$e],tn="bs-popover",en=new RegExp("(^|\\s)"+tn+"\\S+","g"),nn=l({},Xe.Default,{placement:"right",trigger:"click",content:"",template:''}),on=l({},Xe.DefaultType,{content:"(string|element|function)"}),rn="fade",sn="show",an=".popover-header",ln=".popover-body",cn={HIDE:"hide"+Je,HIDDEN:"hidden"+Je,SHOW:"show"+Je,SHOWN:"shown"+Je,INSERTED:"inserted"+Je,CLICK:"click"+Je,FOCUSIN:"focusin"+Je,FOCUSOUT:"focusout"+Je,MOUSEENTER:"mouseenter"+Je,MOUSELEAVE:"mouseleave"+Je},hn=function(t){function i(){return t.apply(this,arguments)||this}!function(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}(i,t);var e=i.prototype;return e.isWithContent=function(){return this.getTitle()||this._getContent()},e.addAttachmentClass=function(t){g(this.getTipElement()).addClass(tn+"-"+t)},e.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},e.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(an),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ln),e),t.removeClass(rn+" "+sn)},e._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},e._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(en);null!==e&&0=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t + + + + + + +A Reactive Web Framework Built on shiny • yonder + + + + + + + + + + + + + + + + + + +
+
+
+ +
d3("yonder")
+ + + +

+A shiny framework. +

+ +

+Build shiny applications with an all new set of +inputs, utilties, and design tools. Click + +to see these great new tools help build pieces of this page. +

+ +

Inputs

+
+
+
# button group input
+div(
+  .style %>% 
+    display("flex") %>% 
+    flex(justify = "center"),
+  buttonGroupInput(
+    .style %>% 
+      background("primary"),
+    id = NULL,
+    choices = c("Sample", "Model", "Download")
+  )
+)
+ +
+
+ + + +
+
+ +
+
+

New inputs let you build a variety of user interfaces. Develop the best ui for +your users’ needs. Whether your building an application for personal use, +internal use, or public use an intuitive ui helps guide users through your +application.

+
+
+
+
+

Another section to fill out later.

+
+
+
# list group input
+div(
+  .style %>% 
+    display("flex") %>% 
+    flex(align = "center", justify = "center"),
+  card(
+    .style %>% 
+      border("info") %>% 
+      background("info") %>% 
+      font("light"),
+    header = "Learn more",
+    listGroupInput(
+      .style %>% 
+        background("info"),
+      flush = TRUE,
+      id = NULL,
+      choices = c("About", "Our process", "Partners", "License")
+    )
+  )
+)
+ +
+
+
+Learn more +
+
+ + + + +
+
+
+ +
+
+

Designs

+
+
+

Based on the widely used Bootstrap library, yonder provides a series of design +utilities to help prototype and produce the shiny apps you imagine.

+
+
+
+
+

That control panel never has to sit on the left again.

+
+
+
div(
+  .style %>% 
+    width(100) %>% 
+    padding(2) %>% 
+    display("flex") %>% 
+    flex(justify = "center") %>% 
+    border("dark", round = "all"),
+  card(
+    header = "Controls",
+    formGroup(
+      label = "Options",
+      selectInput(
+        id = NULL,
+        choices = c("Option 1", "Option 2", "Option 3")
+      )
+    ),
+    buttonInput(
+      .style %>% 
+        background("primary"),
+      id = NULL,
+      label = "Run"
+    )
+  )
+)
+ +
+
+
+Controls +
+
+
+ +
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+
div(
+  .style %>% 
+    width(100) %>% 
+    padding(2) %>% 
+    display("flex") %>% 
+    flex(justify = "end") %>% 
+    border("dark", round = "all"),
+  dropdown(
+    .style %>% 
+      background("secondary"),
+    label = "Menu",
+    tags$h6("Controls"),
+    formInput(
+      .style %>% padding(r = 3, l = 3),
+      id = NULL,
+      formGroup(
+        label = "Target",
+        input = textInput(
+          id = NULL
+        )
+      ),
+      formGroup(
+        label = "Description",
+        input = textInput(
+          id = NULL
+        )
+      ),
+      buttonInput(
+        .style %>% background("primary"),
+        id = NULL,
+        label = "Update"
+      )
+    )
+  )
+)
+ +
+ +
+ +
+
+
+
+

Convey more.

+
+
+
checkboxInput(
+  .style %>% background("success"),
+  id = NULL,
+  choices = c("Choice 1", "Choice 2"),
+  selected = "Choice 1"
+)
+ +
+
+

+
+
+ +
+ +
+
+ +
+
+
+ +
checkboxInput(
+  .style %>% background("dark"),
+  id = NULL,
+  choices = c("Choice 1", "Choice 2"),
+  selected = "Choice 2"
+)
+ +
+
+

+
+
+ +
+ +
+
+ +
+
+
+ +
checkboxInput(
+  .style %>% background("danger"),
+  id = NULL,
+  choices = c("Choice 1", "Choice 2", "Choice 3"),
+  selected = "Choice 2"
+)
+ +
+
+

+
+
+

+
+
+ +
+ +
+
+ +
+
+
+ +
+
+
+
+
+

… and much more!

+
+
+
+ +
+
+ +
+ +
+
+
+
License
+
GPL-3
+
+
+
+
+
+
+
Community
+
Contributing guide
+
+
+
+
+
+
+
Developers
+
Nathan Teetor
Author, maintainer
+
All authors...
+
+
+
+
+ +
+
+ +
+ + diff --git a/docs/link.svg b/docs/link.svg new file mode 100644 index 00000000..88ad8276 --- /dev/null +++ b/docs/link.svg @@ -0,0 +1,12 @@ + + + + + + diff --git a/docs/logo.png b/docs/logo.png new file mode 100644 index 00000000..c6a295e0 Binary files /dev/null and b/docs/logo.png differ diff --git a/docs/news/index.html b/docs/news/index.html new file mode 100644 index 00000000..ed03d9d7 --- /dev/null +++ b/docs/news/index.html @@ -0,0 +1,235 @@ + + + + + + + + +Changelog • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+
+
+ + +
+

+yonder 0.1.2 2019-11-22 +

+
+

+Breaking changes

+
    +
  • Select inputs no longer default to the first possible value
  • +
  • The column() function’s width argument now accepts the values: 1:12, "content", and "equal". The new "content" value is equivalent to the previous value "auto". "equal" is the new default and the placeholder value, so as to allow column(width = c(xs = 2, lg = "equal")).
  • +
  • The modal() function no longer includes a title argument, instead use header +
  • +
+
+
+

+Bug fixes

+
    +
  • Added javascript polyfill for Internet Explorer NodeList forEach method (#158)
  • +
  • Arguments passed to alert() are now evaluated in the correct environment (#171)
  • +
  • The function updateRadiobarInput() correctly selects a new choice if only selected is specified (#155)
  • +
  • The function updateMenuInput() correctly selects a new choice if only selected is specified
  • +
  • The function updateTextInput() correctly passes valid and invalid feedback
  • +
  • Display headings no longer ignore elements passed as arguments (#164)
  • +
  • Input update functions now correctly handle named values passed as selected by removing names (#170)
  • +
+
+
+

+New features

+
    +
  • Button input tooltips may now be updated with updateButtonInput() +
  • +
  • The update input functions may now remove all of an input’s choices by passing a zero-length value as choices +
  • +
  • The new updateFormInput() may be used to trigger a form submission from the server (#160)
  • +
  • The new webpage() function may be used as the top-level element of an application
  • +
  • +AsIs character vectors are now concatenated with <br> when passing character values as choices or labels (#159)
  • +
+
+
+

+Major improvements

+
    +
  • Web resources are no longer attached to each element, instead they are only attached to the top-most parent element
  • +
+
+
+

+Minor improvements

+
    +
  • The documentation for select inputs no longer mentions the multiple argument (#167)
  • +
  • Added placeholder argument to chip inputs
  • +
  • The collapsePane() function now includes the argument animate to optionally prevent animation when toggling a collapsible pane
  • +
  • A menu input’s label may now be updated with updateMenuInput() +
  • +
  • Darkened the default grey color (#162)
  • +
  • Link inputs now inherit their text align property (#163)
  • +
+
+
+
+

+yonder 0.1.1 2019-05-31 +

+
    +
  • Initial CRAN release
  • +
+
+
+ +
+
+

Contents

+ +
+
+ +
+ +
+
+ +
+ + +
+ + + + + + + + diff --git a/docs/pkgdown.css b/docs/pkgdown.css new file mode 100644 index 00000000..60ed62bb --- /dev/null +++ b/docs/pkgdown.css @@ -0,0 +1,258 @@ +/* Sticky footer */ + +/** + * Basic idea: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/ + * Details: https://github.com/philipwalton/solved-by-flexbox/blob/master/assets/css/components/site.css + * + * .Site -> body > .container + * .Site-content -> body > .container .row + * .footer -> footer + * + * Key idea seems to be to ensure that .container and __all its parents__ + * have height set to 100% + * + */ + +body { + height: 100vh; +} + +header { + +} + +main { + margin-top: 56px; +} + +footer { + margin-top: 45px; + border-top: 1px solid #e5e5e5; + color: #666; + display: flex; + flex-shrink: 0; +} + +img.icon { + float: right; +} + +img { + max-width: 100%; +} + +/* Typographic tweaking ---------------------------------*/ + +.contents .page-header { + margin-top: calc(-60px + 1em); +} + +/* Section anchors ---------------------------------*/ + +a.anchor { + margin-left: -30px; + display:inline-block; + width: 30px; + height: 30px; + visibility: hidden; + + background-image: url(./link.svg); + background-repeat: no-repeat; + background-size: 20px 20px; + background-position: center center; +} + +.hasAnchor:hover a.anchor { + visibility: visible; +} + +@media (max-width: 767px) { + .hasAnchor:hover a.anchor { + visibility: hidden; + } +} + + +/* Fixes for fixed navbar --------------------------*/ + +.contents h1, .contents h2, .contents h3, .contents h4 { + padding-top: 60px; + margin-top: -40px; +} + +/* Sidebar --------------------------*/ + +#pkgdown-sidebar { + margin-top: 30px; + position: -webkit-sticky; + position: sticky; + top: 70px; +} + +#pkgdown-sidebar h2 { + font-size: 1.5em; + margin-top: 1em; +} + +#pkgdown-sidebar h2:first-child { + margin-top: 0; +} + +#pkgdown-sidebar .list-unstyled li { + margin-bottom: 0.5em; +} + +.orcid { + font-size: 16px; + color: #A6CE39; + /* margins are required by official ORCID trademark and display guidelines */ + margin-left:4px; + margin-right:4px; + vertical-align: middle; +} + +/* Reference index & topics ----------------------------------------------- */ + +.ref-index th {font-weight: normal;} + +.ref-index td {vertical-align: top;} +.ref-index .icon {width: 40px;} +.ref-index .alias {width: 40%;} +.ref-index-icons .alias {width: calc(40% - 40px);} +.ref-index .title {width: 60%;} + +.ref-arguments th {text-align: right; padding-right: 10px;} +.ref-arguments th, .ref-arguments td {vertical-align: top;} +.ref-arguments .name {width: 20%;} +.ref-arguments .desc {width: 80%;} + +/* Nice scrolling for wide elements --------------------------------------- */ + +table { + display: block; + overflow: auto; +} + +/* Syntax highlighting ---------------------------------------------------- */ + +pre { + word-wrap: normal; + word-break: normal; +} + +code { + font-family: 'Source Code Pro'; +} + +pre, +code { + background-color: #fffbf4; + color: #333; +} + +pre code { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre .img { + margin: 5px 0; +} + +pre .img img { + background-color: #fff; + display: block; + height: auto; +} + +.usage, +pre.examples, +pre.r { + padding: .5rem .75rem; + border-left: 3px solid var(--dark); + border-radius: 3px; +} + +a.sourceLine:hover { + text-decoration: none; +} + +code a, +pre a { + font-weight: 900; + color: #212529; +} + +.fl { + color: #212529; +} + +.fu { /* function */ + font-weight: 700; + color: #212529; +} + +.ch, +.st { /* string */ + font-weight: 500; + color: #212529; +} + +.kw, +.ot { /* keyword */ + font-weight: 700; + color: #212529; +} + +.co { /* comment */ + color: #f44119; +} + +.message { color: black; font-weight: bolder;} +.error { color: orange; font-weight: bolder;} +.warning { color: #6A0366; font-weight: bolder;} + +/* Clipboard --------------------------*/ + +.hasCopyButton { + position: relative; +} + +.btn-copy-ex { + position: absolute; + right: 0; + top: 0; + visibility: hidden; +} + +.hasCopyButton:hover button.btn-copy-ex { + visibility: visible; +} + +/* mark.js ----------------------------*/ + +mark { + background-color: rgba(255, 255, 51, 0.5); + border-bottom: 2px solid rgba(255, 153, 51, 0.3); + padding: 1px; +} + +/* vertical spacing after htmlwidgets */ +.html-widget { + margin-bottom: 10px; +} + +/* fontawesome ------------------------ */ + +.fab { + font-family: "Font Awesome 5 Brands" !important; +} + +/* don't display links in code chunks when printing */ +/* source: https://stackoverflow.com/a/10781533 */ +@media print { + code a:link:after, code a:visited:after { + content: ""; + } +} diff --git a/docs/pkgdown.js b/docs/pkgdown.js new file mode 100644 index 00000000..e98dbde1 --- /dev/null +++ b/docs/pkgdown.js @@ -0,0 +1,101 @@ +/* http://gregfranko.com/blog/jquery-best-practices/ */ +(function($) { + $(function() { + + $("[data-toggle='tooltip']").tooltip(); + + var cur_path = paths(location.pathname); + var links = $("#navbar ul li a"); + var max_length = -1; + var pos = -1; + for (var i = 0; i < links.length; i++) { + if (links[i].getAttribute("href") === "#") + continue; + // Ignore external links + if (links[i].host !== location.host) + continue; + + var nav_path = paths(links[i].pathname); + + var length = prefix_length(nav_path, cur_path); + if (length > max_length) { + max_length = length; + pos = i; + } + } + + // Add class to parent
  • , and enclosing
  • if in dropdown + if (pos >= 0) { + var menu_anchor = $(links[pos]); + menu_anchor.parent().addClass("active"); + menu_anchor.closest("li.dropdown").addClass("active"); + } + }); + + function paths(pathname) { + var pieces = pathname.split("/"); + pieces.shift(); // always starts with / + + var end = pieces[pieces.length - 1]; + if (end === "index.html" || end === "") + pieces.pop(); + return(pieces); + } + + // Returns -1 if not found + function prefix_length(needle, haystack) { + if (needle.length > haystack.length) + return(-1); + + // Special case for length-0 haystack, since for loop won"t run + if (haystack.length === 0) { + return(needle.length === 0 ? 0 : -1); + } + + for (var i = 0; i < haystack.length; i++) { + if (needle[i] != haystack[i]) + return(i); + } + + return(haystack.length); + } + + /* Clipboard --------------------------*/ + + function changeTooltipMessage(element, msg) { + var tooltipOriginalTitle=element.getAttribute("data-original-title"); + element.setAttribute("data-original-title", msg); + $(element).tooltip("show"); + element.setAttribute("data-original-title", tooltipOriginalTitle); + } + + if(ClipboardJS.isSupported()) { + $(document).ready(function() { + var copyButton = ""; + + $(".examples, div.sourceCode").addClass("hasCopyButton"); + + // Insert copy buttons: + $(copyButton).prependTo(".hasCopyButton"); + + // Initialize tooltips: + $(".btn-copy-ex").tooltip({container: "body"}); + + // Initialize clipboard: + var clipboardBtnCopies = new ClipboardJS("[data-clipboard-copy]", { + text: function(trigger) { + return trigger.parentNode.textContent; + } + }); + + clipboardBtnCopies.on("success", function(e) { + changeTooltipMessage(e.trigger, "Copied!"); + e.clearSelection(); + }); + + clipboardBtnCopies.on("error", function() { + changeTooltipMessage(e.trigger,"Press Ctrl+C or Command+C to copy"); + }); + }); + } +})(window.jQuery || window.$); diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml new file mode 100644 index 00000000..5a374392 --- /dev/null +++ b/docs/pkgdown.yml @@ -0,0 +1,8 @@ +pandoc: 2.9.1 +pkgdown: 1.4.1.3030 +pkgdown_sha: ~ +articles: {} +urls: + reference: https://nteetor.github.io/yonder/reference + article: https://nteetor.github.io/yonder/articles + diff --git a/docs/reference/active.html b/docs/reference/active.html new file mode 100644 index 00000000..d0a51b7b --- /dev/null +++ b/docs/reference/active.html @@ -0,0 +1,211 @@ + + + + + + + + +Selected choice color — active • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    As part of an effort to revert yonder's default bootstrap styles, the +active() utility has been deprecated. In future versions of the application +the function will be removed entirely.

    +

    Previously, active() would change the +highlight color of an input's selected choices.

    +
    + +
    active(tag, color)
    + +

    + + Arguments +

    + + + + + + + + + + +
    tag

    A tag element.

    color

    One of "primary", "secondary", "success", "info", "warning", "danger", "light" or "dark" specifying the active color of the tag element, defaults to NULL.

    + +

    See also

    + +

    Other design utilities: +affix(), +background(), +border(), +display(), +flex(), +float(), +font(), +height(), +margin(), +padding(), +scroll(), +shadow(), +width()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/affix.html b/docs/reference/affix.html new file mode 100644 index 00000000..bb350cdf --- /dev/null +++ b/docs/reference/affix.html @@ -0,0 +1,210 @@ + + + + + + + + +Fixed position elements — affix • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The affix utility function applies Bootstrap classes to fix elements to the +top or bottom of a page. Use "sticky" to cause an element to fix to the top +of a page after the element is scrolled past. Important, the IE11 and Edge +browsers do not support the sticky behavior.

    +
    + +
    affix(x, position)
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    position

    One of "top", "bottom", or "sticky" specifying the +fixed behavior of an element.

    + +

    See also

    + +

    Other design utilities: +active(), +background(), +border(), +display(), +flex(), +float(), +font(), +height(), +margin(), +padding(), +scroll(), +shadow(), +width()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/alert.html b/docs/reference/alert.html new file mode 100644 index 00000000..11ee8764 --- /dev/null +++ b/docs/reference/alert.html @@ -0,0 +1,241 @@ + + + + + + + + +Alert boxes — alert • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Use an alert element to let the user know of successes or to call attention +to problems.

    +
    + +
    alert(..., dismissible = TRUE, fade = TRUE)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + +
    ...

    Character strings specifying the text of the alert or additional +named arguments passed as HTML attributes to the alert element.

    dismissible

    One of TRUE or FALSE specifying if the alert may be +dismissed by the user, deafults to TRUE.

    fade

    One of TRUE or FALSE specifying if the alert fades out or +immediately disappears when dismissed, defaults to TRUE.

    + +

    See also

    + +

    Other components: +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### Default alert + +alert("Donec at pede.") %>% + background("primary")
    #> <div class="alert alert-dismissible fade show alert-primary" role="alert"> +#> Donec at pede. +#> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> +#> <span aria-hidden="true">&times;</span> +#> </button> +#> </div>
    +### A more complex alert + +alert( + .style %>% + background("warning"), + h4("Etiam vel tortor sodales"), + hr(), + p("Fusce commodo.") +)
    #> <div class="alert alert-dismissible fade show alert-warning" role="alert"> +#> <h4 class="alert-heading">Etiam vel tortor sodales</h4> +#> <hr/> +#> <p>Fusce commodo.</p> +#> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> +#> <span aria-hidden="true">&times;</span> +#> </button> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/background.html b/docs/reference/background.html new file mode 100644 index 00000000..7e377603 --- /dev/null +++ b/docs/reference/background.html @@ -0,0 +1,276 @@ + + + + + + + + +Backgrounds — background • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Use background() to modify the background color of a tag element.

    +
    + +
    background(x, color)
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    color

    One of "primary", "secondary", "success", "info", "warning", "danger", "light" or "dark" specifying the background color of the tag element, defaults to NULL.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +border(), +display(), +flex(), +float(), +font(), +height(), +margin(), +padding(), +scroll(), +shadow(), +width()

    +

    Changing input backgrounds

    + + + +

    Input backgrounds will change differently according to the particular +input. Changing the background of a buttonGroupInput() will change the +background colors of the buttons in the group.

    buttonGroupInput(
    +  .style %>%
    +    background("info"),
    +  id = "flavors",
    +  choices = c("Mint", "Strawberry", "Swirl"),
    +  values = c("mint", "sberry", "swirl")
    +)
    +

    + + + +
    + + + + + + + + + + + +
    + + +

    + +

    Another one.

    + +

    Examples

    +
    +### Modifying input elements + +checkbarInput( + .style %>% background("info"), + id = "bar1", + choices = c( + "Nunc rutrum turpis sed pede.", + "Etiam vel neque.", + "Lorem ipsum dolor sit amet." + ) +)
    #> <div class="yonder-checkbar btn-group btn-group-toggle d-flex bg-info" data-toggle="buttons" id="bar1"> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Nunc rutrum turpis sed pede."/> +#> Nunc rutrum turpis sed pede. +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Etiam vel neque."/> +#> Etiam vel neque. +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Lorem ipsum dolor sit amet."/> +#> Lorem ipsum dolor sit amet. +#> </label> +#> </div>
    +
    +
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/badge.html b/docs/reference/badge.html new file mode 100644 index 00000000..eb032402 --- /dev/null +++ b/docs/reference/badge.html @@ -0,0 +1,246 @@ + + + + + + + + +Badges — badge • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Small highlighted content which scales to its parent's size. A badge may +be dynamically updated with replaceContent(), in which case be sure to +pass an id argument as part of ....

    +
    + +
    badge(...)
    + +

    + + Arguments +

    + + + + + + +
    ...

    Named arguments passed as HTML attributes to the parent +element or tag elements passed as children to the parent element.

    + +

    Example application

    + + +
    ui <- container(
    +  buttonInput(
    +    id = "clicker",
    +    label = list(
    +      "Clicks",
    +      badge(id = "counter") %>%
    +        margin(left = 2) %>%
    +        background("info")
    +    )
    +  )
    +)
    +
    +server <- function(input, output) {
    +  observe({
    +    clicks <- if (is.null(input$clicker)) 0 else input$clicker
    +    replaceContent("counter", clicks)
    +  })
    +}
    +
    +shinyApp(ui, server)
    +
    + +

    See also

    + +

    Other components: +alert(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### Button & badge + +buttonInput( + .style %>% + background("primary"), + id = "counter", + label = "Count", + badge(3) %>% background("light") +)
    #> <button autocomplete="off" class="yonder-button btn btn-primary" id="counter" role="button" type="button"> +#> Count +#> <span class="badge badge-light">3</span> +#> </button>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/blockquote.html b/docs/reference/blockquote.html new file mode 100644 index 00000000..bb425e45 --- /dev/null +++ b/docs/reference/blockquote.html @@ -0,0 +1,236 @@ + + + + + + + + +Blockquotes — blockquote • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Stylized blockquotes, an updated builder function for <blockquote>.

    +
    + +
    blockquote(..., source = NULL, align = "left")
    + +

    + + Arguments +

    + + + + + + + + + + + + + + +
    ...

    Any number of tags elements or character strings passed as child +elements or named arguments passed as HTML attributes to the parent +element.

    source

    The quote source, use tags$cite to format the source title, +defaults to NULL.

    align

    One of "left" or "right", defaults to "left".

    + +

    See also

    + +

    Other components: +alert(), +badge(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### Simple example + +blockquote( + "Anyone can love a thing because.", + "That's as easy as putting a penny in your pocket.", + "But to love something despite.", + "To know the flaws and love them too.", + "That is rare and pure and perfect.", + source = list( + "Patrick Rothfuss,", tags$cite("The Wise Man's Fear") + ) +)
    #> <blockquote class="blockquote"> +#> Anyone can love a thing because. +#> That's as easy as putting a penny in your pocket. +#> But to love something despite. +#> To know the flaws and love them too. +#> That is rare and pure and perfect. +#> <footer class="blockquote-footer"> +#> Patrick Rothfuss, +#> <cite>The Wise Man's Fear</cite> +#> </footer> +#> </blockquote>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/border.html b/docs/reference/border.html new file mode 100644 index 00000000..fe9c77c7 --- /dev/null +++ b/docs/reference/border.html @@ -0,0 +1,215 @@ + + + + + + + + +Border colors — border • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Use border() to add or modify tag element borders.

    +
    + +
    border(x, color = NULL, sides = "all", round = NULL)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    color

    One of "primary", "secondary", "success", "info", "warning", "danger", "light" or "dark" specifying the border color of the tag element, defaults to NULL.

    sides

    One or more of "top", "right", "bottom", "left", or +"all" or "none" specifying which sides to add a border to, defaults to +"all". Specifying "none" will remove the element's borders.

    round

    One or more of "top", "right", "bottom", "left", +"all", or "none" specifying how to round the border(s) of a tag +element, defaults to NULL, in which case the argument is ignored.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +display(), +flex(), +float(), +font(), +height(), +margin(), +padding(), +scroll(), +shadow(), +width()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/buttonGroupInput.html b/docs/reference/buttonGroupInput.html new file mode 100644 index 00000000..a31ce24b --- /dev/null +++ b/docs/reference/buttonGroupInput.html @@ -0,0 +1,281 @@ + + + + + + + + +Button group inputs — buttonGroupInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A set of buttons with custom values.

    +
    + +
    buttonGroupInput(
    +  ...,
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  labels = deprecated(),
    +  direction = "horizontal"
    +)
    +
    +updateButtonGroupInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  enable = NULL,
    +  disable = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ...

    Additional named arguments passed as HTML attributes to the parent +element.

    id

    A character string specifying the id of the reactive input.

    choices

    A character vector specifying the labels for each button in +the group.

    values

    A character vector specifying the values of each button in the +group, defaults to choices.

    labels

    Deprecated, see values.

    direction

    One of "horizontal" or "vertical" specifying the layout +of the buttons, defaults to "horizontal".

    enable

    One of values indicating individual buttons to enable or +TRUE to enable the entire input, defaults to NULL.

    disable

    One of values indicating individual buttons to disable or +TRUE to disable the entire input, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    See also

    + + + +

    Examples

    +
    +### Default input + +buttonGroupInput( + id = "group1", + choices = c("Once", "Twice", "Thrice"), + values = c(1, 2, 3) +)
    #> <div class="yonder-button-group btn-group" id="group1" role="group"> +#> <button type="button" class="btn" value="1">Once</button> +#> <button type="button" class="btn" value="2">Twice</button> +#> <button type="button" class="btn" value="3">Thrice</button> +#> </div>
    +### Styling the button group + +buttonGroupInput( + .style %>% + background("primary"), + id = "group2", + choices = c("Button 1", "Button 2", "Button 3") +)
    #> <div class="yonder-button-group btn-group btn-group-primary" id="group2" role="group"> +#> <button type="button" class="btn" value="Button 1">Button 1</button> +#> <button type="button" class="btn" value="Button 2">Button 2</button> +#> <button type="button" class="btn" value="Button 3">Button 3</button> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/buttonInput.html b/docs/reference/buttonInput.html new file mode 100644 index 00000000..9bc886b6 --- /dev/null +++ b/docs/reference/buttonInput.html @@ -0,0 +1,372 @@ + + + + + + + + +Button and link inputs — buttonInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Button inputs are useful as triggers for reactive or observer expressions. +The reactive value of a button input begins as NULL, but subsequently is +the number of clicks.

    +
    + +
    buttonInput(..., id, label, stretch = FALSE, download = FALSE, tooltip = NULL)
    +
    +updateButtonInput(
    +  id,
    +  label = NULL,
    +  value = NULL,
    +  disable = NULL,
    +  enable = NULL,
    +  tooltip = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    +
    +linkInput(..., id, label, stretch = FALSE, download = FALSE, tooltip = NULL)
    +
    +updateLinkInput(
    +  id,
    +  label = NULL,
    +  value = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  tooltip = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    +
    +tooltip(..., placement = "top", fade = TRUE)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ...

    Additional named arguments passed as HTML attributes to the parent +element.

    id

    A character string specifying the id of the reactive input.

    label

    A character string specifying the label text on the button or +link input.

    stretch

    One of TRUE or FALSE specifying stretched behaviour for +the button or link input, defaults to FALSE. If TRUE, the button or +link will receive clicks from its containing block element. For example, a +stretched button or link inside a card() would update whenever the user +clicked on the card.

    download

    One of TRUE or FALSE specifying if the button or link +input is used to trigger a download, defaults to FALSE.

    tooltip

    A call to tooltip() specifying a tooltip for the button or +link input, defaults to NULL.

    value

    A number specifying a new value for the button, defaults to +NULL.

    disable

    if TRUE the button is disabled and will not react to clicks +from the user, default to NULL.

    enable

    If TRUE the button is enabled and will react to clicks from +the user, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    placement

    One of "top", "right", "bottom", or "left" +specifying what side of the tag element the tooltip appears on.

    fade

    One of TRUE or FALSE specifying if the tooltip fades in when +shown and fades out when hidden, defaults to TRUE.

    + +

    Details

    + +

    Tooltips

    +

    To remove a button or link input's tooltip pass an empty tooltip, +tooltip(), to updateButtonInput() or updateLinkInput().

    +

    See also

    + + + +

    Examples

    +
    +### A plain button + +buttonInput( + id = "button1", + label = "Simple" +)
    #> <button class="yonder-button btn" type="button" role="button" id="button1" autocomplete="off">Simple</button>
    +### Add a little color + +buttonInput( + .style %>% + background("primary"), + id = "button2", + label = "Blue" +)
    #> <button autocomplete="off" class="yonder-button btn btn-primary" id="button2" role="button" type="button">Blue</button>
    +# Alternatively, a button can fill the width of its parent element. + +buttonInput( + .style %>% + background("danger"), + id = "button3", + label = "Full-width", + fill = TRUE # <- +)
    #> <button autocomplete="off" class="yonder-button btn btn-danger" fill="TRUE" id="button3" role="button" type="button">Full-width</button>
    +# Use design utilities to further adjust the width of a button. + +buttonInput( + .style %>% + background("danger") %>% + width(75), # <- + id = "button4", + label = "Full and back again", + fill = TRUE # <- +)
    #> <button autocomplete="off" class="yonder-button btn btn-danger w-75" fill="TRUE" id="button4" role="button" type="button">Full and back again</button>
    +### Reactive links + +div("Curabitur", linkInput(id = "link1", label = "vulputate"), + "vestibulum lorem.")
    #> <div> +#> Curabitur +#> <button class="yonder-link btn btn-link" id="link1">vulputate</button> +#> vestibulum lorem. +#> </div>
    +### Stretched buttons and links + +card( + header = "Card with stretched button", + p("Notice when you hover over the card, the button also detects ", + "the hover."), + buttonInput( + .style %>% + background("primary"), + id = "go", + label = "Go go go", + stretch = TRUE + ) +)
    #> <div class="card"> +#> <div class="card-header">Card with stretched button</div> +#> <div class="card-body"> +#> <p class="card-text"> +#> Notice when you hover over the card, the button also detects +#> the hover. +#> </p> +#> </div> +#> <div class="card-body"> +#> <button autocomplete="off" class="yonder-button btn stretched-link btn-primary" id="go" role="button" type="button">Go go go</button> +#> </div> +#> </div>
    +### Download button + +buttonInput( + download = TRUE, + id = "download1", + label = "Download", + icon("download") +)
    #> <a class="yonder-button btn shiny-download-link" type="button" role="button" href="" _target download id="download1" autocomplete="off"> +#> Download +#> <i class="fa fa-download"></i> +#> </a>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/card.html b/docs/reference/card.html new file mode 100644 index 00000000..3c272581 --- /dev/null +++ b/docs/reference/card.html @@ -0,0 +1,460 @@ + + + + + + + + +Cards, blocks of content — card • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Create blocks of content with card. deck is used to group and add padding +is placed around any number of cards. Additionally, grouping cards with +deck has the benefit of aligning the footer of each card.

    +
    + +
    card(..., header = NULL, footer = NULL)
    +
    +deck(...)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + +
    ...

    For card, div()s, tag elements, or list groups to include in +the card or additional named arguments passed as HTML attributes to the +card element.

    +

    For deck, any number of card()s or additional named arguments passed +as HTML attributes to the parent element.

    header

    A character string or tag element specifying the header of the +card, defaults to NULL, in which case a header is not added.

    footer

    A character string or tag element specifying the footer of the +card, defaults to NULL, in which case a footer is not added.

    + +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### A simple card + +column( + width = 4, + card( + p("Praesent fermentum tempor tellus.") + ) +)
    #> <div class="col-4"> +#> <div class="card"> +#> <div class="card-body"> +#> <p class="card-text">Praesent fermentum tempor tellus.</p> +#> </div> +#> </div> +#> </div>
    +### Adding a title, subtitle + +column( + width = 4, + card( + h5("Mauris mollis tincidunt felis."), + h6("Phasellus at dui in ligula mollis ultricies."), + p("Nullam tempus. Mauris mollis tincidunt felis."), + p("Nullam libero mauris, consequat quis, varius et, dictum id, arcu.") + ) +)
    #> <div class="col-4"> +#> <div class="card"> +#> <div class="card-body"> +#> <h5 class="card-title">Mauris mollis tincidunt felis.</h5> +#> </div> +#> <div class="card-body"> +#> <h6 class="card-subtitle">Phasellus at dui in ligula mollis ultricies.</h6> +#> </div> +#> <div class="card-body"> +#> <p class="card-text">Nullam tempus. Mauris mollis tincidunt felis.</p> +#> </div> +#> <div class="card-body"> +#> <p class="card-text">Nullam libero mauris, consequat quis, varius et, dictum id, arcu.</p> +#> </div> +#> </div> +#> </div>
    +### Styling cards + +deck( + card( + .style %>% + border("info") %>% + font("info"), + header = "Donec pretium posuere tellus", + p("Donec hendrerit tempor tellus."), + p("Cras placerat accumsan nulla.") + ), + card( + .style %>% + border("danger") %>% + font("danger"), + p("Aliquam posuere."), + p("Phasellus neque orci, porta a, aliquet quis, semper a, massa."), + p("Pellentesque dapibus suscipit ligula.") + ), + card( + .style %>% + background("dark") %>% + font("light"), + header = "Phasellus lacus", + p("Etiam laoreet quam sed arcu."), + p("Etiam vel tortor sodales tellus ultricies commodo."), + footer = "Nam euismod tellus id erat." + ) +)
    #> <div class="card-deck"> +#> <div class="card border border-info text-info"> +#> <div class="card-header">Donec pretium posuere tellus</div> +#> <div class="card-body"> +#> <p class="card-text">Donec hendrerit tempor tellus.</p> +#> </div> +#> <div class="card-body"> +#> <p class="card-text">Cras placerat accumsan nulla.</p> +#> </div> +#> </div> +#> <div class="card border border-danger text-danger"> +#> <div class="card-body"> +#> <p class="card-text">Aliquam posuere.</p> +#> </div> +#> <div class="card-body"> +#> <p class="card-text">Phasellus neque orci, porta a, aliquet quis, semper a, massa.</p> +#> </div> +#> <div class="card-body"> +#> <p class="card-text">Pellentesque dapibus suscipit ligula.</p> +#> </div> +#> </div> +#> <div class="card bg-dark text-light"> +#> <div class="card-header">Phasellus lacus</div> +#> <div class="card-body"> +#> <p class="card-text">Etiam laoreet quam sed arcu.</p> +#> </div> +#> <div class="card-body"> +#> <p class="card-text">Etiam vel tortor sodales tellus ultricies commodo.</p> +#> </div> +#> <div class="card-footer">Nam euismod tellus id erat.</div> +#> </div> +#> </div>
    +### Cards with list groups + +column( + width = 4, + card( + listGroupInput( + id = "lg1", + flush = TRUE, + choices = c( + "Pellentesque tristique imperdiet tortor.", + "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", + "Phasellus purus." + ), + values = c( + "choice1", + "choice2", + "choice3" + ) + ) + ) +)
    #> <div class="col-4"> +#> <div class="card"> +#> <div class="yonder-list-group list-group list-group-flush" id="lg1"> +#> <button class="list-group-item list-group-item-action" value="choice1">Pellentesque tristique imperdiet tortor.</button> +#> <button class="list-group-item list-group-item-action" value="choice2">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</button> +#> <button class="list-group-item list-group-item-action" value="choice3">Phasellus purus.</button> +#> </div> +#> </div> +#> </div>
    +### Tabbed content in cards + +card( + header = navInput( + id = "tabs", + choices = c("Tab 1", "Tab 2", "Tab 3"), + appearance = "tabs" + ), + navContent( + navPane( + "Phasellus purus.", + "Proin neque massa, cursus ut, gravida ut, lobortis eget, lacus.", + "Phasellus purus." + ), + navPane( + "Donec at pede. Praesent augue.", + "Pellentesque tristique imperdiet tortor." + ), + navPane( + "Fusce suscipit, wisi nec facilisis facilisis,", + "est dui fermentum leo, quis tempor ligula erat quis odio.", + "Donec hendrerit tempor tellus." + ) + ) +)
    #> <div class="card"> +#> <div class="card-header"> +#> <ul class="yonder-nav nav nav-tabs card-header-tabs" id="tabs"> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link active" value="Tab 1">Tab 1</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Tab 2">Tab 2</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Tab 3">Tab 3</button> +#> </li> +#> </ul> +#> </div> +#> <div class="card-body"> +#> <div class="tab-content"> +#> <div class="tab-pane fade" role="tab-panel" id="Phasellus purus."> +#> Proin neque massa, cursus ut, gravida ut, lobortis eget, lacus. +#> Phasellus purus. +#> </div> +#> <div class="tab-pane fade" role="tab-panel" id="Donec at pede. Praesent augue.">Pellentesque tristique imperdiet tortor.</div> +#> <div class="tab-pane fade" role="tab-panel" id="Fusce suscipit, wisi nec facilisis facilisis,"> +#> est dui fermentum leo, quis tempor ligula erat quis odio. +#> Donec hendrerit tempor tellus. +#> </div> +#> </div> +#> </div> +#> </div>
    +### Deck of cards + +deck( + card( + .style %>% + background("info"), + title = "Nullam tristique", + p("Fusce sagittis, libero non molestie mollis, magna orci ultrices ", + "dolor, at vulputate neque nulla lacinia eros."), + p("Nunc rutrum turpis sed pede."), + footer = "Cras placerat accumsan nulla." + ), + card( + .style %>% + background("dark"), + title = "Integer placerat", + p("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec ", + "hendrerit tempor tellus."), + footer = "Cras placerat accumsan nulla." + ), + card( + .style %>% + background("primary"), + title = "Phasellus neque", + p("Donec at pede. Etiam vel neque nec dui dignissim bibendum."), + footer = "Cras placerat accumsan nulla." + ) +)
    #> <div class="card-deck"> +#> <div class="card bg-info" title="Nullam tristique"> +#> <div class="card-body"> +#> <p class="card-text"> +#> Fusce sagittis, libero non molestie mollis, magna orci ultrices +#> dolor, at vulputate neque nulla lacinia eros. +#> </p> +#> </div> +#> <div class="card-body"> +#> <p class="card-text">Nunc rutrum turpis sed pede.</p> +#> </div> +#> <div class="card-footer">Cras placerat accumsan nulla.</div> +#> </div> +#> <div class="card bg-dark" title="Integer placerat"> +#> <div class="card-body"> +#> <p class="card-text"> +#> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec +#> hendrerit tempor tellus. +#> </p> +#> </div> +#> <div class="card-footer">Cras placerat accumsan nulla.</div> +#> </div> +#> <div class="card bg-primary" title="Phasellus neque"> +#> <div class="card-body"> +#> <p class="card-text">Donec at pede. Etiam vel neque nec dui dignissim bibendum.</p> +#> </div> +#> <div class="card-footer">Cras placerat accumsan nulla.</div> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/checkbarInput.html b/docs/reference/checkbarInput.html new file mode 100644 index 00000000..2a63bc37 --- /dev/null +++ b/docs/reference/checkbarInput.html @@ -0,0 +1,315 @@ + + + + + + + + +Checkbar input — checkbarInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A stylized checkbox input. The checkbar input appears similar to a group of +buttons, but with a checked or highlighted state.

    +
    + +
    checkbarInput(..., id, choices = NULL, values = choices, selected = NULL)
    +
    +updateCheckbarInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    id

    A character string specifying the id of the reactive input.

    choices

    A character vector or list of tag element specifying the +input's choices, defaults to NULL.

    values

    A vector of values specifying the values of the input's +choices, defaults to choices.

    selected

    One or more of values specifying the input's default +selected values, defaults to NULL.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    See also

    + + + +

    Examples

    +
    +### Default checkbar + +checkbarInput( + id = "cb1", + choices = c("When", "Why", "Where") +)
    #> <div class="yonder-checkbar btn-group btn-group-toggle d-flex" id="cb1" data-toggle="buttons"> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="When"/> +#> When +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Why"/> +#> Why +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Where"/> +#> Where +#> </label> +#> </div>
    +### Modifying background color + +checkbarInput( + id = "cb2", + choices = c("What", "Which") +) %>% + background("info")
    #> <div class="yonder-checkbar btn-group btn-group-toggle d-flex btn-group-info" id="cb2" data-toggle="buttons"> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="What"/> +#> What +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Which"/> +#> Which +#> </label> +#> </div>
    +### Labeling a checkbar + +formGroup( + label = "Toppings", + checkbarInput( + id = "fixins", + choices = c( + "Sprinkles", + "Nuts", + "Fudge" + ) + ) +)
    #> <div class="form-group"> +#> <label>Toppings</label> +#> <div class="yonder-checkbar btn-group btn-group-toggle d-flex" id="fixins" data-toggle="buttons"> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Sprinkles"/> +#> Sprinkles +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Nuts"/> +#> Nuts +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Fudge"/> +#> Fudge +#> </label> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/checkboxInput.html b/docs/reference/checkboxInput.html new file mode 100644 index 00000000..d98412b2 --- /dev/null +++ b/docs/reference/checkboxInput.html @@ -0,0 +1,372 @@ + + + + + + + + +Checkbox and switch inputs — checkboxInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Reactive checkbox and checkbar inputs. Users may select one or more choices. +The checkbox input appears as a standard checkbox or set of checkboxes. When +a checkbox input has no selected choices the reactive value is NULL. Switch +inputs differ from checkboxes only in appearance.

    +
    + +
    checkboxInput(
    +  ...,
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  inline = FALSE
    +)
    +
    +updateCheckboxInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  inline = FALSE,
    +  enable = NULL,
    +  disable = NULL,
    +  valid = NULL,
    +  invalid = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    +
    +switchInput(..., id, choices, values = choices, selected = NULL)
    +
    +updateSwitchInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  valid = NULL,
    +  invalid = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    id

    A character string specifying the id of the reactive input.

    choices

    A character string or vector specifying a label or labels for +the checkbox or checkbar.

    values

    A character string or vector specifying values for the +checkbox or checkbar input, defaults to choice or values, respectively.

    selected

    One or more of values specifying which choices are +selected by default, defaults to NULL, in which case no choices are +initially selected.

    inline

    One of TRUE or FALSE specifying if the checkbox input +choices render inline or stacked, defaults to FALSE, in which case the +choices are stacked.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    valid

    A character string specifying a message to the user indicating +how the input's value is valid, defaults to NULL.

    invalid

    A character string specifying a message to the user +indicating how the input's value is invalid, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    See also

    + + + +

    Examples

    +
    +### One option + +checkboxInput( + id = "checkbox1", + choices = "Choice 1", + selected = "Choice 1" +)
    #> <div class="yonder-checkbox" id="checkbox1"> +#> <div class="custom-control custom-checkbox"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-173-407" name="checkbox-173-407" value="Choice 1" checked autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-173-407">Choice 1</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div>
    +### Multiple options + +checkboxInput( + id = "checkbox2", + choices = c("Choice 1", "Choice 2") +)
    #> <div class="yonder-checkbox" id="checkbox2"> +#> <div class="custom-control custom-checkbox"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-460-63" name="checkbox-460-63" value="Choice 1" autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-460-63">Choice 1</label> +#> </div> +#> <div class="custom-control custom-checkbox"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-485-870" name="checkbox-485-870" value="Choice 2" autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-485-870">Choice 2</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div>
    +### Inline checkbox + +checkboxInput( + id = "checkbox3", + choices = c("Choice 1", "Choice 2", "Choice 3"), + inline = TRUE +)
    #> <div class="yonder-checkbox" id="checkbox3"> +#> <div class="custom-control custom-checkbox custom-control-inline"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-879-559" name="checkbox-879-559" value="Choice 1" autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-879-559">Choice 1</label> +#> </div> +#> <div class="custom-control custom-checkbox custom-control-inline"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-927-452" name="checkbox-927-452" value="Choice 2" autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-927-452">Choice 2</label> +#> </div> +#> <div class="custom-control custom-checkbox custom-control-inline"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-998-201" name="checkbox-998-201" value="Choice 3" autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-998-201">Choice 3</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div>
    +### Switches + +switchInput( + id = "switch1", + .style %>% background("success"), + choices = paste("Switch choice", 1:3), + selected = "Switch choice 3" +)
    #> <div class="yonder-checkbox custom-control-group-success" id="switch1"> +#> <div class="custom-control custom-switch"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-197-517" name="checkbox-197-517" value="Switch choice 1" autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-197-517">Switch choice 1</label> +#> </div> +#> <div class="custom-control custom-switch"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-767-536" name="checkbox-767-536" value="Switch choice 2" autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-767-536">Switch choice 2</label> +#> </div> +#> <div class="custom-control custom-switch"> +#> <input class="custom-control-input" type="checkbox" id="checkbox-847-77" name="checkbox-847-77" value="Switch choice 3" checked autocomplete="off"/> +#> <label class="custom-control-label" for="checkbox-847-77">Switch choice 3</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/chipInput.html b/docs/reference/chipInput.html new file mode 100644 index 00000000..8d2f36eb --- /dev/null +++ b/docs/reference/chipInput.html @@ -0,0 +1,366 @@ + + + + + + + + +Chip inputs — chipInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The chip input is a selectize alternative. Choices are selected from a +dropdown menu and appear as chips below the input's text box. Chips do not +appear in the order they are selected. Instead chips are shown in the order +specified by the choices argument. Use the max argument to limit the +number of choices a user may select.

    +
    + +
    chipInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  ...,
    +  placeholder = NULL,
    +  max = Inf,
    +  inline = TRUE
    +)
    +
    +updateChipInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  max = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    choices

    A character vector or list specifying the possible choices.

    values

    A character vector or list of strings specifying the input's +values, defaults to choices.

    selected

    One or more of values specifying which values are selected +by default.

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    placeholder

    A character string specifying placeholder text of the +chip input, defaults to NULL.

    max

    A number specifying the maximum number of items a user may select, +defaults to Inf.

    inline

    One of TRUE or FALSE specifying if chips are rendered +inline. If TRUE multiple chips may fit onto a single row, otherwise, if +FALSE, chips expand to fill the width of their parent element, one chip +per row.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Example simple application

    + +

    ui <- container(
    +  chipInput(
    +    .style %>% width(50),
    +    id = "chips",
    +    choices = paste("Option number", 1:10),
    +    values = 1:10,
    +    inline = TRUE
    +  )
    +)
    +
    +server <- function(input, output) {
    +
    +}
    +
    +shinyApp(ui, server)
    +

    +

    Example inline chips

    + +

    ui <- container(
    +  chipInput(
    +    .style %>%
    +      width(50) %>%
    +      background("primary"),
    +    id = "chips",
    +    choices = c(
    +      "A rather long option, isn't it?",
    +      "Shorter",
    +      "A middle-size option",
    +      "One more"
    +    ),
    +    values = 1:4,
    +    fill = FALSE
    +  )
    +)
    +
    +server <- function(input, output) {
    +
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + + + +

    Examples

    +
    +### Default input + +chipInput( + id = "chip1", + choices = paste("Choice", 1:5), + selected = c("Choice 3", "Choice 4") +)
    #> <div id="chip1" class="yonder-chip btn-group dropup" data-max="-1"> +#> <input class="form-control custom-select" data-toggle="dropdown"/> +#> <div class="dropdown-menu"> +#> <button class="dropdown-item" value="Choice 1">Choice 1</button> +#> <button class="dropdown-item" value="Choice 2">Choice 2</button> +#> <button class="dropdown-item selected" value="Choice 3">Choice 3</button> +#> <button class="dropdown-item selected" value="Choice 4">Choice 4</button> +#> <button class="dropdown-item" value="Choice 5">Choice 5</button> +#> </div> +#> <div class="chips chips-inline chips-grey"> +#> <button class="chip" value="Choice 1"> +#> <span class="chip-content">Choice 1</span> +#> <span class="chip-close">&times;</span> +#> </button> +#> <button class="chip" value="Choice 2"> +#> <span class="chip-content">Choice 2</span> +#> <span class="chip-close">&times;</span> +#> </button> +#> <button class="chip active" value="Choice 3"> +#> <span class="chip-content">Choice 3</span> +#> <span class="chip-close">&times;</span> +#> </button> +#> <button class="chip active" value="Choice 4"> +#> <span class="chip-content">Choice 4</span> +#> <span class="chip-close">&times;</span> +#> </button> +#> <button class="chip" value="Choice 5"> +#> <span class="chip-content">Choice 5</span> +#> <span class="chip-close">&times;</span> +#> </button> +#> </div> +#> </div>
    +
    +
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/collapsePane.html b/docs/reference/collapsePane.html new file mode 100644 index 00000000..85c77517 --- /dev/null +++ b/docs/reference/collapsePane.html @@ -0,0 +1,273 @@ + + + + + + + + +Collapsible panes — collapsePane • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The collapsePane() creates a collapsible container. The state of the +container, expanded or collapsed, is toggled using showCollapsePane(), +hideCollapsePane(), and toggleCollapsePane().

    +
    + +
    collapsePane(id, ..., show = FALSE, animate = TRUE)
    +
    +hideCollapsePane(id, session = getDefaultReactiveDomain())
    +
    +showCollapsePane(id, session = getDefaultReactiveDomain())
    +
    +toggleCollapsePane(id, session = getDefaultReactiveDomain())
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the collapse pane.

    ...

    Tag elements inside the collapsible pane or additional named +arguments passed as HTML attributes to parent element.

    show

    One of TRUE or FALSE specifying if the collapsible pane +is shown when the page renders, defaults to FALSE.

    animate

    One of TRUE or FALSE specifying if showing and closing the +collapsible pane is animated, defaults to TRUE.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Details

    + +

    Padding may not be applied to the collapsible pane div element. To pad a +collapsible pane first wrap the pane in another element and add padding to +this new element.

    +

    App with collapse

    + +

    ui <- container(
    +  buttonInput(
    +    id = "demo",
    +    label = "Toggle collapse"
    +  ),
    +  collapsePane(
    +    id = "collapse",
    +    p(
    +      "Pellentesque condimentum, magna ut suscipit hendrerit, ",
    +      "ipsum augue ornare nulla, non luctus diam neque sit amet urna."
    +    ),
    +    p(
    +      "Praesent fermentum tempor tellus.  Vestibulum convallis, ",
    +      "lorem a tempus semper, dui dui euismod elit, vitae placerat ",
    +      "urna tortor vitae lacus."
    +    )
    +  )
    +)
    +
    +server <- function(input, output) {
    +  observeEvent(input$demo, {
    +    toggleCollapsePane("collapse")
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### Examples + +# As these are server-side utilities, please run the example applications +# above. + +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/column.html b/docs/reference/column.html new file mode 100644 index 00000000..5d8a5a11 --- /dev/null +++ b/docs/reference/column.html @@ -0,0 +1,385 @@ + + + + + + + + +Grid layout — column • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    These functions are the foundation of any application. Grid elements are +nested as follows: container() > columns() > column() ~ column(). A +column() may be created with an explicit width, 1 through 12. To fit a +column automatically to its content use width = "content". To divide the +space in a row evenly amongst all columns use width = "equal". For examples +and usage tips see the sections below.

    +
    + +
    column(..., width = "equal")
    +
    +columns(...)
    +
    +container(..., centered = FALSE)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + +
    ...

    Any number of tags elements passed as child elements or named +arguments passed as HTML attributes to the parent element.

    width

    A responsive argument. One of 1:12, "content", or +"equal", defaults to "equal".

    centered

    One of TRUE or FALSE specifying how a container fills the +browser or viewport window. If TRUE the container is responsively +centered, otherwise, if FALSE, the container occupies the entire width of +the viewport, defaults to FALSE.

    + +

    See also

    + +

    Other layout functions: +fieldset(), +navbar(), +webpage()

    + +

    Examples

    +
    +### Equal width columns + +container( + columns( + column( + "Aliquam erat volutpat." + ), + column( + "Mauris mollis tincidunt felis." + ), + column( + "Cum sociis natoque penatibus et magnis dis parturient montes,", + "nascetur ridiculus mus." + ) + ) +)
    #> <div class="container-fluid"> +#> <div class="row"> +#> <div class="col">Aliquam erat volutpat.</div> +#> <div class="col">Mauris mollis tincidunt felis.</div> +#> <div class="col"> +#> Cum sociis natoque penatibus et magnis dis parturient montes, +#> nascetur ridiculus mus. +#> </div> +#> </div> +#> </div>
    +### Shiny's panel with sidebar layout + +container( + columns( + column( + width = 4, + card( + title = "Sidebar", + formGroup( + label = "Control 1", + selectInput("control1", "...") + ), + formGroup( + label = "Control 2", + selectInput("control2", "...") + ), + formGroup( + label = "Control 3", + selectInput("control3", "...") + ) + ) + ), + column( + d4("Main panel") + ) + ) +)
    #> <div class="container-fluid"> +#> <div class="row"> +#> <div class="col-4"> +#> <div class="card" title="Sidebar"> +#> <div class="card-body"> +#> <div class="form-group"> +#> <label>Control 1</label> +#> <div class="yonder-select" id="control1"> +#> <input type="text" class="form-control custom-select" data-toggle="dropdown" data-boundary="window" placeholder="..."/> +#> <div class="dropdown-menu"> +#> <button class="dropdown-item active" value="...">...</button> +#> </div> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> </div> +#> <div class="card-body"> +#> <div class="form-group"> +#> <label>Control 2</label> +#> <div class="yonder-select" id="control2"> +#> <input type="text" class="form-control custom-select" data-toggle="dropdown" data-boundary="window" placeholder="..."/> +#> <div class="dropdown-menu"> +#> <button class="dropdown-item active" value="...">...</button> +#> </div> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> </div> +#> <div class="card-body"> +#> <div class="form-group"> +#> <label>Control 3</label> +#> <div class="yonder-select" id="control3"> +#> <input type="text" class="form-control custom-select" data-toggle="dropdown" data-boundary="window" placeholder="..."/> +#> <div class="dropdown-menu"> +#> <button class="dropdown-item active" value="...">...</button> +#> </div> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> </div> +#> </div> +#> </div> +#> <div class="col"> +#> <h1 class="display-4">Main panel</h1> +#> </div> +#> </div> +#> </div>
    +### Mobile friendly grids + +# Use `column()`s [responsive] `width` argument to make mobile friendly +# applications. + +container( + columns( + column( + width = c(sm = 4), + "Mauris ac felis vel velit tristique imperdiet." + ), + column( + width = c(sm = 4), + "Nam vestibulum accumsan nisl." + ), + column( + width = c(sm = 4), + "Proin neque massa, cursus ut, gravida ut, lobortis eget, lacus." + ) + ) +)
    #> <div class="container-fluid"> +#> <div class="row"> +#> <div class="col-sm-4">Mauris ac felis vel velit tristique imperdiet.</div> +#> <div class="col-sm-4">Nam vestibulum accumsan nisl.</div> +#> <div class="col-sm-4">Proin neque massa, cursus ut, gravida ut, lobortis eget, lacus.</div> +#> </div> +#> </div>
    +# or + +container( + columns( + column( + width = c(sm = 4), + "Aenean in sem ac leo mollis blandit." + ), + column( + width = c(sm = 8), + "Nulla posuere. In id erat non orci commodo lobortis." + ) + ) +)
    #> <div class="container-fluid"> +#> <div class="row"> +#> <div class="col-sm-4">Aenean in sem ac leo mollis blandit.</div> +#> <div class="col-sm-8">Nulla posuere. In id erat non orci commodo lobortis.</div> +#> </div> +#> </div>
    +### Fit columns to their content + +container( + columns( + column(), + column( + width = "content", + "Cras placerat accumsan nulla. Aenean in sem ac leo mollis blandit." + ), + column() + ) +)
    #> <div class="container-fluid"> +#> <div class="row"> +#> <div class="col"></div> +#> <div class="col-auto">Cras placerat accumsan nulla. Aenean in sem ac leo mollis blandit.</div> +#> <div class="col"></div> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/d1.html b/docs/reference/d1.html new file mode 100644 index 00000000..7b75cf9b --- /dev/null +++ b/docs/reference/d1.html @@ -0,0 +1,224 @@ + + + + + + + + +Headings — d1 • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Display headings are not meant to replace the standard HTML heading tags, +they are a stand out alternative for eye-catching titles.

    +
    + +
    d1(...)
    +
    +d2(...)
    +
    +d3(...)
    +
    +d4(...)
    + +

    + + Arguments +

    + + + + + + +
    ...

    Any number of character strings or tag elements or named arguments +passed as HTML attributes to the parent element.

    + +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### d1 + +d1("Eye-catching!")
    #> <h1 class="display-1">Eye-catching!</h1>
    +### d2 + +d2("Just incredible")
    #> <h1 class="display-2">Just incredible</h1>
    +### d3 + +d3("Wowie, zowie")
    #> <h1 class="display-3">Wowie, zowie</h1>
    +### d4 + +d4("You'll never guess what happens next.")
    #> <h1 class="display-4">You'll never guess what happens next.</h1>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/display.html b/docs/reference/display.html new file mode 100644 index 00000000..c87a5e50 --- /dev/null +++ b/docs/reference/display.html @@ -0,0 +1,208 @@ + + + + + + + + +Display — display • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Use the display() utility to adjust how a tag element is rendered. All +arguments are responsive allowing you to hide elements on small screens or +convert elements from inline to block on large screens.

    +
    + +
    display(x, type)
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    type

    A responsive argument. One of "inline", "block", +"inline-block", "flex", "inline-flex", or "none".

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +flex(), +float(), +font(), +height(), +margin(), +padding(), +scroll(), +shadow(), +width()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/dot-style.html b/docs/reference/dot-style.html new file mode 100644 index 00000000..d8d4c451 --- /dev/null +++ b/docs/reference/dot-style.html @@ -0,0 +1,192 @@ + + + + + + + + +Style pronoun — .style • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The .style pronoun allows you to define styles for a tag element within the +context of the element. Prior to the introduction of the .style pronoun tag +styles were always applied outside or after constructing a tag element.

    card() %>% background("primary") %>% display("flex")
    +

    +

    However, once the content of a tag element grows to more than a few lines, +associating the element's styles with the element becomes increasingly +unintuitive. In these situations, make use of the .style pronoun.

    card(
    +  .style %>%
    +    border("primary") %>%
    +    font("primary")
    +)
    +

    +
    + +
    .style
    + + + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/dropdown.html b/docs/reference/dropdown.html new file mode 100644 index 00000000..d67eb70c --- /dev/null +++ b/docs/reference/dropdown.html @@ -0,0 +1,342 @@ + + + + + + + + +Dropdown menus — dropdown • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Dropdown menus are a container for buttons, text, and form inputs. See +argument ... for details on composing dropdown menus.

    +
    + +
    dropdown(label, ..., direction = "down", align = "left")
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + +
    label

    A character string specifying the label of the dropdown's +button.

    ...

    Character strings or vectors, header tag elements, button inputs, +or form inputs specifying the elements of the dropdown. These elements may +be grouped into lists to create a menu with sections. h6() is the +recommended heading level for menu headers. Character vectors are converted +into paragraphs of text. To format menu text use p() and utility +functions.

    +

    Additional named arguments are passed as HTML attributes to the parent +element.

    direction

    One of "up", "right", "down", or "left" specifying +the direction in which the menu opens, defaults to "down".

    align

    One of "left" or "right" specifying which side of the button +to align the dropdown menu to, defaults to "left".

    + +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### Dropdown with buttons + +dropdown( + label = "Choices", + buttonInput(id = "choice1", label = "Choice 1"), + buttonInput(id = "choice2", label = "Choice 2"), + buttonInput(id = "choice3", label = "Choice 3") +)
    #> <div class="dropdown"> +#> <button class="btn dropdown-toggle" type="button" data-toggle="dropdown" aria-haspop="true" aria-expanded="false">Choices</button> +#> <div class="dropdown-menu"> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="choice1" role="button" type="button">Choice 1</button> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="choice2" role="button" type="button">Choice 2</button> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="choice3" role="button" type="button">Choice 3</button> +#> </div> +#> </div>
    +### Dropdown with links + +dropdown( + label = "Choices", + linkInput(id = "link1", label = "Choice 1"), + linkInput(id = "link2", label = "Choice 2") +)
    #> <div class="dropdown"> +#> <button class="btn dropdown-toggle" type="button" data-toggle="dropdown" aria-haspop="true" aria-expanded="false">Choices</button> +#> <div class="dropdown-menu"> +#> <button class="yonder-link btn btn-link dropdown-item" id="link1">Choice 1</button> +#> <button class="yonder-link btn btn-link dropdown-item" id="link2">Choice 2</button> +#> </div> +#> </div>
    +### Grouped sections + +dropdown( + label = "Sections", + h6("Section 1"), + buttonInput(id = "a", label = "Option A"), + buttonInput(id = "b", label = "Option B"), + hr(), + h6("Section 2"), + buttonInput(id = "c", label = "Option C"), + buttonInput(id = "d", label = "Option D") +)
    #> <div class="dropdown"> +#> <button class="btn dropdown-toggle" type="button" data-toggle="dropdown" aria-haspop="true" aria-expanded="false">Sections</button> +#> <div class="dropdown-menu"> +#> <h6 class="dropdown-header">Section 1</h6> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="a" role="button" type="button">Option A</button> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="b" role="button" type="button">Option B</button> +#> <div class="dropdown-divider"></div> +#> <h6 class="dropdown-header">Section 2</h6> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="c" role="button" type="button">Option C</button> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="d" role="button" type="button">Option D</button> +#> </div> +#> </div>
    +### Direction variations + +dropdown( + label = "Up!", + direction = "up", + buttonInput(id = "up1", label = "Choice 1"), + buttonInput(id = "up2", label = "Choice 2") +)
    #> <div class="dropdown dropup"> +#> <button class="btn dropdown-toggle" type="button" data-toggle="dropdown" aria-haspop="true" aria-expanded="false">Up!</button> +#> <div class="dropdown-menu"> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="up1" role="button" type="button">Choice 1</button> +#> <button autocomplete="off" class="yonder-button btn dropdown-item" id="up2" role="button" type="button">Choice 2</button> +#> </div> +#> </div>
    +### Dropdowns with forms + +dropdown( + label = "Sign in", + formInput( + id = "login", + formGroup( + label = "Username / Email", + textInput( + type = "email", + id = "user" + ) + ), + formGroup( + label = "Password", + textInput( + type = "password", + id = "pass" + ) + ), + formSubmit( + label = "Sign in", + value = "signin" + ) + ) %>% + padding(3, 4, 3, 4) +)
    #> <div class="dropdown"> +#> <button class="btn dropdown-toggle" type="button" data-toggle="dropdown" aria-haspop="true" aria-expanded="false">Sign in</button> +#> <div class="dropdown-menu"> +#> <form class="yonder-form p-3 pt-4 pr-3 pb-4" id="login"> +#> <div class="form-group"> +#> <label>Username / Email</label> +#> <div class="yonder-textual" id="user"> +#> <input class="form-control" type="email" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> <div class="form-group"> +#> <label>Password</label> +#> <div class="yonder-textual" id="pass"> +#> <input class="form-control" type="password" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> <button class="yonder-form-submit btn btn-blue" value="signin">Sign in</button> +#> </form> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/fieldset.html b/docs/reference/fieldset.html new file mode 100644 index 00000000..f05f552a --- /dev/null +++ b/docs/reference/fieldset.html @@ -0,0 +1,258 @@ + + + + + + + + +Group and label multiple inputs — fieldset • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Use fieldset to associate and label inputs. This is good for screen readers +and other assistive technologies.

    +
    + +
    fieldset(..., legend = NULL)
    + +

    + + Arguments +

    + + + + + + + + + + +
    ...

    Any number of inputs to group or named arguments passed as HTML +attributes to the parent element.

    legend

    A character string specifying the fieldset's legend.

    + +

    See also

    + +

    Other layout functions: +column(), +navbar(), +webpage()

    + +

    Examples

    +
    +### Grouping related inputs + +fieldset( + legend = "Pizza order", + formGroup( + "What toppings would you like?", + div( + checkbarInput( + id = "toppings", + choices = c( + "Cheese", + "Black olives", + "Mushrooms" + ) + ) + ) + ), + formGroup( + "Is this for delivery?", + checkboxInput( + id = "deliver", + choice = "Deliver" + ) + ), + buttonInput( + .style %>% background("primary"), + id = "order", + label = "Place order" + ) +)
    #> <fieldset class="form-group"> +#> <legend class="col-form-legend">Pizza order</legend> +#> <div> +#> <div class="form-group"> +#> <label>What toppings would you like?</label> +#> <div> +#> <div class="yonder-checkbar btn-group btn-group-toggle d-flex" id="toppings" data-toggle="buttons"> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Cheese"/> +#> Cheese +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Black olives"/> +#> Black olives +#> </label> +#> <label class="btn"> +#> <input type="checkbox" autocomplete="off" value="Mushrooms"/> +#> Mushrooms +#> </label> +#> </div> +#> </div> +#> </div> +#> <div class="form-group"> +#> <label>Is this for delivery?</label> +#> <div class="yonder-checkbox" id="deliver" choice="Deliver"></div> +#> </div> +#> <button autocomplete="off" class="yonder-button btn btn-primary" id="order" role="button" type="button">Place order</button> +#> </div> +#> </fieldset>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/figures/logo.png b/docs/reference/figures/logo.png new file mode 100644 index 00000000..c6a295e0 Binary files /dev/null and b/docs/reference/figures/logo.png differ diff --git a/docs/reference/fileInput.html b/docs/reference/fileInput.html new file mode 100644 index 00000000..de3f76ff --- /dev/null +++ b/docs/reference/fileInput.html @@ -0,0 +1,286 @@ + + + + + + + + +File inputs — fileInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Upload files to the server.

    +
    + +
    fileInput(
    +  id,
    +  placeholder = "Choose file",
    +  browse = "Browse",
    +  ...,
    +  multiple = TRUE,
    +  accept = NULL
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    placeholder

    A character string specifying the text inside the file +input, defaults to "Choose file".

    browse

    A character string specifying the label of file input, defaults +to "Browse".

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    multiple

    One of TRUE or FALSE specifying whether or not the user +can upload multiple files at once, defaults to TRUE.

    accept

    A character vector of possible MIME types or file extensions, +defaults to NULL, in which case any file type may be selected.

    + +

    Example uploading a file

    + +

    shinyApp(
    +  ui = container(
    +    fileInput("upload") %>%
    +      margin(0, "auto", 0, "auto")
    +  ),
    +  server = function(input, output) {
    +    observe({
    +      req(input$upload)
    +
    +      print(input$upload)
    +    })
    +  }
    +)
    +

    +

    See also

    + + + +

    Examples

    +
    +### Standard file input + +fileInput(id = "file1")
    #> <div class="yonder-file custom-file" id="file1"> +#> <input type="file" class="custom-file-input" multiple autocomplete="off"/> +#> <label class="custom-file-label" data-browse="Browse">Choose file</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div>
    +### Adding a button + +fileInput( + id = "file2", + left = buttonInput(id = "upload", label = "Upload") %>% + background("success") +)
    #> <div class="yonder-file custom-file" id="file2" left="&lt;button class=&quot;yonder-button btn btn-success&quot; type=&quot;button&quot; role=&quot;button&quot; id=&quot;upload&quot; autocomplete=&quot;off&quot;&gt;Upload&lt;/button&gt;"> +#> <input type="file" class="custom-file-input" multiple autocomplete="off"/> +#> <label class="custom-file-label" data-browse="Browse">Choose file</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div>
    +### Customizing text + +fileInput( + id = "file3", + placeholder = "Pick a file", + browse = "Go go go!" +)
    #> <div class="yonder-file custom-file" id="file3"> +#> <input type="file" class="custom-file-input" multiple autocomplete="off"/> +#> <label class="custom-file-label" data-browse="Go go go!">Pick a file</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div>
    +
    +
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/flex.html b/docs/reference/flex.html new file mode 100644 index 00000000..91797bcf --- /dev/null +++ b/docs/reference/flex.html @@ -0,0 +1,432 @@ + + + + + + + + +Flex layout — flex • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Use flex() to control how a flex container tag element places its flex +items or child tag elements. For more on turning a tag element into a flex +container see display(). By default tag elements within a flex container +are treated as flex items.

    +
    + +
    flex(
    +  x,
    +  direction = NULL,
    +  justify = NULL,
    +  align = NULL,
    +  wrap = NULL,
    +  reverse = NULL
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    direction

    A responsive argument. One of "row" or "column" +specifying the placement of flex items, defaults to NULL. If "row" +items are placed vertically, if "column" items are placed horizontally. +Browsers place items vertically by default.

    justify

    A responsive argument. One of "start", "end", +"center", "between", or "around" specifying how items are +horizontally aligned, defaults to NULL. See the justify section below +for more on how the different values affect horizontal spacing.

    align

    A responsive argument. One of "start", "end", "center", +"baseline", or "stretch" specifying how items are vertically aligned, +defaults to NULL. See the align section below for more on how the +different values affect vertical spacing.

    wrap

    A responsive argument. One of TRUE or FALSE specifying +whether to wrap flex items inside the flex containter, tag, defaults +to NULL. If TRUE items wrap inside the container, if FALSE items will +not wrap. See the wrap section below for more.

    reverse

    A responsive argument. One of TRUE or FALSE specifying +if flex items are placed in reverse order, defaults to NULL. If TRUE +items are placed from right to left when direction is "row" or bottom +to top when direction is "column".

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +float(), +font(), +height(), +margin(), +padding(), +scroll(), +shadow(), +width()

    + +

    Examples

    +
    +### Different `direction`s + +# Many of `flex()`'s arguments are viewport responsive and below we will see +# how useful this can be. On small screens the flex items are placed +# vertically and can occupy the full width of the mobile device. On medium +# or larger screens the items are placed horizontally once again. + +div( + .style %>% + display("flex") %>% + flex( + direction = list(xs = "column", md = "row") # <- + ) %>% + background("secondary") %>% + border(), + div("A flex item") %>% + padding(3) %>% + border(), + div("A flex item") %>% + padding(3) %>% + border(), + div("A flex item") %>% + padding(3) %>% + border() +)
    #> <div class="d-flex flex-column flex-md-row bg-secondary border"> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> </div>
    +# *Resize the browser for this example.* + +# You can keep items as a column by specifying only `"column"`. + +div( + .style %>% + display("flex") %>% + flex("column"), # <- + div("A flex item") %>% + padding(3) %>% + border(), + div("A flex item") %>% + padding(3) %>% + border(), + div("A flex item") %>% + padding(3) %>% + border() +)
    #> <div class="d-flex flex-column"> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> </div>
    +### Spacing items with `justify` + +# Below is a series of examples showing how to change the horizontal +# alignment of your flex items. Let's start by pushing items to the +# beginning of their parent container. + +div( + replicate( + div("A flex item") %>% + padding(3) %>% + border(), + n = 5, + simplify = FALSE + ) +) %>% + display("flex") %>% + flex(justify = "start") # <-
    #> <div class="d-flex justify-content-start"> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> </div>
    +# We can also push items to the **end**. + +div( + replicate( + div("A flex item") %>% + padding(3) %>% + border(), + n = 5, + simplify = FALSE + ) +) %>% + display("flex") %>% + flex(justify = "end") # <-
    #> <div class="d-flex justify-content-end"> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> </div>
    +# Without using a table layout we can **center** items. + +div( + replicate( + div("A flex item") %>% + padding(3) %>% + border(), + n = 5, + simplify = FALSE + ) +) %>% + display("flex") %>% + flex(justify = "center") # <-
    #> <div class="d-flex justify-content-center"> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> </div>
    +# You can also put space **between** items + +div( + replicate( + div("A flex item") %>% + padding(3) %>% + border(), + n = 5, + simplify = FALSE + ) +) %>% + display("flex") %>% + flex(justify = "between") # <-
    #> <div class="d-flex justify-content-between"> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> </div>
    +# ... or put space **around** items. + +div( + replicate( + div("A flex item") %>% + padding(3) %>% + border(), + n = 5, + simplify = FALSE + ) +) %>% + display("flex") %>% + flex(justify = "around") # <-
    #> <div class="d-flex justify-content-around"> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> <div class="p-3 border">A flex item</div> +#> </div>
    +# *The "between" and "around" values come from the original CSS values +# "space-between" and "space-around".* + +### Wrap onto new lines + +# Using flexbox we can also control how items wrap onto new lines. + +div( + .style %>% + display("flex") %>% + flex(wrap = TRUE), + replicate( + div("A flex item") %>% + padding(3) %>% + margin(1) %>% + border(), + n = 10, + simplify = FALSE + ) +)
    #> <div class="d-flex flex-wrap"> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> <div class="p-3 m-1 border">A flex item</div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/float.html b/docs/reference/float.html new file mode 100644 index 00000000..4231ef07 --- /dev/null +++ b/docs/reference/float.html @@ -0,0 +1,261 @@ + + + + + + + + +Floats — float • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Use float() to float an element to the left or right side of its parent +element. A newspaper layout is a classic example where an image is floated +with text wrapped around.

    +
    + +
    float(x, side)
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    side

    A responsive argument. One of "left" or "right" specifying +the side to float the element.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +flex(), +font(), +height(), +margin(), +padding(), +scroll(), +shadow(), +width()

    + +

    Examples

    +
    +### Float an alert + +div( + .style %>% + padding(2), + alert("This just in!") %>% + margin(3) %>% + background("warning") %>% + float("left"), + p("Fusce commodo. Nullam tempus. Nunc rutrum turpis sed pede.", + "Phasellus lacus. Cras placerat accumsan nulla.", + "Fusce sagittis, libero non molestie mollis, ", + "magna orci ultrices dolor, at vulputate neque nulla lacinia eros."), + p("Nulla facilisis, risus a rhoncus fermentum, tellus tellus", + "lacinia purus, et dictum nunc justo sit amet elit."), + p("Proin neque massa, cursus ut, gravida ut, lobortis eget, lacus.", + "Aliquam posuere.", + "Sed id ligula quis est convallis tempor."), + p("Fusce dapibus, tellus ac cursus commodo, ", + "tortor mauris condimentum nibh, ut fermentum massa justo sit", + "amet risus.") +)
    #> <div class="p-2"> +#> <div class="alert alert-dismissible fade show m-3 alert-warning float-left" role="alert"> +#> This just in! +#> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> +#> <span aria-hidden="true">&times;</span> +#> </button> +#> </div> +#> <p> +#> Fusce commodo. Nullam tempus. Nunc rutrum turpis sed pede. +#> Phasellus lacus. Cras placerat accumsan nulla. +#> Fusce sagittis, libero non molestie mollis, +#> magna orci ultrices dolor, at vulputate neque nulla lacinia eros. +#> </p> +#> <p> +#> Nulla facilisis, risus a rhoncus fermentum, tellus tellus +#> lacinia purus, et dictum nunc justo sit amet elit. +#> </p> +#> <p> +#> Proin neque massa, cursus ut, gravida ut, lobortis eget, lacus. +#> Aliquam posuere. +#> Sed id ligula quis est convallis tempor. +#> </p> +#> <p> +#> Fusce dapibus, tellus ac cursus commodo, +#> tortor mauris condimentum nibh, ut fermentum massa justo sit +#> amet risus. +#> </p> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/font.html b/docs/reference/font.html new file mode 100644 index 00000000..c6dfcb06 --- /dev/null +++ b/docs/reference/font.html @@ -0,0 +1,261 @@ + + + + + + + + +Font color, size, weight — font • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The font() utility modifies the color, size, weight, case, or alignment of +a tag element's text. All arguments default to NULL, in which case they are +ignored. For example, font(.., size = "lg") increases font size without +affecting color, weight, case, or alignment.

    +
    + +
    font(x, color = NULL, size = NULL, weight = NULL, case = NULL, align = NULL)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    color

    One of "primary", "secondary", "success", "info", "warning", "danger", "light" or "dark" specifying the text color of the tag element, defaults to NULL.

    size

    Deprecated, in future versions of bootstrap resonsive font sizing +will be enabled by default, +https://github.com/twbs/bootstrap/pull/29152.

    +

    One of "xs", "sm", "base", "lg", "xl" specifying a font size +relative to the default base page font size, defaults to NULL.

    weight

    One of "bold", "bolder", "normal", "lighter", or +"light" specifying the font weight of the element's text, defaults to +NULL. "bolder" and "lighter" change the weight relative to the +current font weight of the element.

    case

    One of "upper", "lower", or "title" specifying a +transformation of the tag element's text, default to NULL.

    align

    A responsive argument. One of "left", "center", "right", +or "justify", specifying the alignment of the tag element's text, +defaults to NULL.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +flex(), +float(), +height(), +margin(), +padding(), +scroll(), +shadow(), +width()

    + +

    Examples

    +
    +### Changing text color + +card( + .style %>% + font("primary") %>% + border("primary"), + header = h3("Important!"), + p("This is a reminder.") +)
    #> <div class="card text-primary border border-primary"> +#> <div class="card-header"> +#> <h3>Important!</h3> +#> </div> +#> <div class="card-body"> +#> <p class="card-text">This is a reminder.</p> +#> </div> +#> </div>
    +### Changing font weight + +p("Curabitur lacinia pulvinar nibh.") %>% + font(weight = "bold")
    #> <p class="font-weight-bold">Curabitur lacinia pulvinar nibh.</p>
    +p("Proin quam nisl, tincidunt et.") %>% + font(weight = "light")
    #> <p class="font-weight-light">Proin quam nisl, tincidunt et.</p>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/formGroup.html b/docs/reference/formGroup.html new file mode 100644 index 00000000..7421cd05 --- /dev/null +++ b/docs/reference/formGroup.html @@ -0,0 +1,292 @@ + + + + + + + + +Input labels, help text, and formatting to inputs — formGroup • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Form groups are a way of labeling an input. Form rows are similar to +columns()s, but include additional styles intended for forms. The +flexibility provided by form rows and groups means you can confidently +develop shiny applications for devices and screens of varying sizes.

    +
    + +
    formGroup(label, input, ..., help = NULL, width = NULL)
    +
    +formRow(...)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + +
    label

    A character string specifying a label for the input or NULL +in which case a label is not added.

    input

    A tag element specifying the input to label.

    ...

    For formGroup, additional named arguments passed as HTML +attributes to the parent element.

    +

    For formRow, any number of formGroups or additional named arguments +passed as HTML attributes to the parent element.

    help

    A character string specifying help text for the input, defaults +to NULL, in which case help text is not added.

    width

    A responsive argument. One of 1:12, "content", or +"equal" specifying a column width for the form group, defaults to NULL.

    + + +

    Examples

    +
    +### Grid layout forms + +# Use responsive arguments to adjust form layouts based on viewport size. +# Be sure to adjust the size of your browser window between large and small. + +card( + .style %>% + background("secondary") %>% + margin(3), + formRow( + formGroup( + width = c(md = 6), # <- + label = "Username", + textInput( + id = "user" + ) + ), + formGroup( + width = c(md = 6), # <- + label = "Password", + textInput( + type = "password", + id = "pass" + ) + ) + ), + formGroup( + label = "Username", + groupTextInput( + id = "username", + left = "@" + ) + ), + buttonInput( + id = "go", + label = "Go!" + ) %>% + background("primary") +)
    #> <div class="card bg-secondary m-3"> +#> <div class="card-body"> +#> <div class="form-row"> +#> <div class="form-group col-md-6"> +#> <label>Username</label> +#> <div class="yonder-textual" id="user"> +#> <input class="form-control" type="text" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> <div class="form-group col-md-6"> +#> <label>Password</label> +#> <div class="yonder-textual" id="pass"> +#> <input class="form-control" type="password" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> </div> +#> </div> +#> <div class="card-body"> +#> <div class="form-group"> +#> <label>Username</label> +#> <div class="yonder-group-text input-group" id="username"> +#> <div class="input-group-prepend"> +#> <span class="input-group-text">@</span> +#> </div> +#> <input type="text" class="form-control" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> </div> +#> <div class="card-body"> +#> <button class="yonder-button btn btn-primary" type="button" role="button" id="go" autocomplete="off">Go!</button> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/formInput.html b/docs/reference/formInput.html new file mode 100644 index 00000000..8d9c8e64 --- /dev/null +++ b/docs/reference/formInput.html @@ -0,0 +1,352 @@ + + + + + + + + +Form inputs — formInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Form inputs are a new reactive input. Form inputs are an alternative to +shiny's submit buttons. A form input is comprised of any number of inputs. +The value of these inputs will not change until a form submit button within +the form input is clicked. A form input's reactive value depends on the +clicked form submit button. This allows you to distinguish between different +form submission types, think "login" versus "register".

    +

    A form submit button, formSubmit(), is a special type of button used to +control form input submission. A form input and its child reactive inputs +will never update if a form submit button is not included in ... passed +to formInput().

    +
    + +
    formInput(id, ..., inline = FALSE)
    +
    +formSubmit(label, value = label, ...)
    +
    +updateFormInput(id, submit = FALSE, session = getDefaultReactiveDomain())
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    ...

    Any number of unnamed arguments passed as child elements to the +parent form element or named arguments passed as HTML attributes to the +parent element. At least one formSubmit() must be included.

    inline

    One of TRUE or FALSE, if TRUE the form and its child +elements are rendered in a horizontal row, defaults to FALSE. On small +viewports, think mobile device, inline intentionally has no effect and +the form will span multiple lines.

    label

    A character string specifying the label of the form submit +button.

    value

    A character string specifying the value of the form submit +button and the value of the form input when the button is clicked, +defaults to label.

    submit

    One of TRUE or FALSE or a character string specifying +whether to trigger a form submission, defaults to FALSE. If a character +string, the form is submitted and the reactive value passed is the character +string specified.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Details

    + +

    When inline is TRUE you may want to adjust the right margin of each child +element for viewports larger than mobile, margin(<TAG>, right = c(sm = 2)), +see margin(). You only need to apply extra space for larger viewports +because inline forms do not take effect on small viewports.

    +

    Use updateFormInput() to submit a form input. This will cause all the form's +child inputs to update.

    +

    Frozen inputs with scope

    + +

    ui <- container(
    +  formInput(
    +    id = "login",
    +    formGroup(
    +      label = "Username",
    +      textInput(
    +        id = "user"
    +      )
    +    ),
    +    formGroup(
    +      label = "Password",
    +      textInput(
    +        type = "password",
    +        id = "pass"
    +      )
    +    ),
    +    formSubmit(
    +      label = "Login",
    +      value = "login"
    +    )
    +  )
    +)
    +
    +server <- function(input, output) {
    +  # Will not react until the form submit button is
    +  # clicked.
    +  observe({
    +    print(input$email)
    +    print(input$password)
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + + + +

    Examples

    +
    +### A simple form + +card( + header = "Please pick a flavor", + formInput( + id = "form1", + formGroup( + label = "Ice creams", + radioInput( + id = "flavor", + choices = c("Mint", "Moose tracks", "Marble"), + ) + ), + formSubmit("Make choice", "choice") %>% + background("info") + ) +) %>% + border("info") %>% + width(50)
    #> <div class="card border border-info w-50"> +#> <div class="card-header">Please pick a flavor</div> +#> <div class="card-body"> +#> <form class="yonder-form" id="form1"> +#> <div class="form-group"> +#> <label>Ice creams</label> +#> <div class="yonder-radio" id="flavor"> +#> <div class="custom-control custom-radio"> +#> <input class="custom-control-input" type="radio" id="radio-898-446" name="flavor" value="Mint" checked autocomplete="off"/> +#> <label class="custom-control-label" for="radio-898-446">Mint</label> +#> </div> +#> <div class="custom-control custom-radio"> +#> <input class="custom-control-input" type="radio" id="radio-567-427" name="flavor" value="Moose tracks" autocomplete="off"/> +#> <label class="custom-control-label" for="radio-567-427">Moose tracks</label> +#> </div> +#> <div class="custom-control custom-radio"> +#> <input class="custom-control-input" type="radio" id="radio-62-555" name="flavor" value="Marble" autocomplete="off"/> +#> <label class="custom-control-label" for="radio-62-555">Marble</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div> +#> </div> +#> <button class="yonder-form-submit btn btn-blue bg-info" value="choice">Make choice</button> +#> </form> +#> </div> +#> </div>
    +
    +
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/height.html b/docs/reference/height.html new file mode 100644 index 00000000..f978334e --- /dev/null +++ b/docs/reference/height.html @@ -0,0 +1,218 @@ + + + + + + + + +Height — height • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Utility function to change a tag element's height. Heights are specified +relative the height of a parent element, an element's content, or the +size of the browser window.

    +
    + +
    height(x, size)
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    size

    A character string or number specifying the height of the tag +element. Possible values:

    +

    One of 25, 50, 75, 100 specifying the element's height as a +percentage of its parent's height. The height of the parent element must +also be specified. Percentages do not account for margins or padding and +may cause an element to extend beyond its parent element.

    +

    "auto", in which case the element's height is determined by the browser. +The browser will take into account the height, padding, margins, and border +of the tag element's parent to keep the element from extending beyond its +parent.

    +

    "viewport", in which case the element's height is determined by the size +of the browser window.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +flex(), +float(), +font(), +margin(), +padding(), +scroll(), +shadow(), +width()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/img.html b/docs/reference/img.html new file mode 100644 index 00000000..eae4f3f0 --- /dev/null +++ b/docs/reference/img.html @@ -0,0 +1,219 @@ + + + + + + + + +Responsive images and figures — img • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A small update to tags$img and tags$figure. Create responsive images with +img. figure has specific arguments for an image child element and image +caption.

    +
    + +
    img(src, ...)
    +
    +figure(image, caption = NULL, ...)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + +
    src

    A character string specifying the source of the image.

    ...

    Additional tag elements or named arguments passed as HTML attributes +to the parent element.

    image

    An <img> tag, typically a call to img.

    caption

    A character string specifying the image caption, defaults to +NULL.

    + +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +jumbotron(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/index.html b/docs/reference/index.html new file mode 100644 index 00000000..6ffcb4fd --- /dev/null +++ b/docs/reference/index.html @@ -0,0 +1,819 @@ + + + + + + + + +Function reference • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    +

    Reference

    + +

    Components

    +
    +

    Build out your user interfaces.

    +
    + +
    +
    + alert() +
    + +
    +

    + Alert boxes +

    +
    +
    +
    +
    + badge() +
    + +
    +

    + Badges +

    +
    +
    +
    + + +
    +

    + Blockquotes +

    +
    +
    +
    +
    + card() + deck() +
    + +
    +

    + Cards, blocks of content +

    +
    +
    +
    + + +
    +

    + Collapsible panes +

    +
    +
    +
    + + +
    +

    + Dropdown menus +

    +
    +
    +
    +
    + d1() + d2() + d3() + d4() +
    + +
    +

    + Headings +

    +
    +
    +
    + + +
    +

    + Group and label multiple inputs +

    +
    +
    +
    +
    + img() + figure() +
    + +
    +

    + Responsive images and figures +

    +
    +
    +
    + + +
    +

    + Jumbotron +

    +
    +
    +
    + + +
    +

    + Modal dialogs +

    +
    +
    +
    +
    + navbar() +
    + +
    +

    + Navigation bar +

    +
    +
    +
    + + +
    +

    + Navigation panes +

    +
    +
    +
    + + +
    +

    + Popovers +

    +
    +
    +
    +
    + pre() +
    + +
    +

    + Scrollable code snippets +

    +
    +
    +
    + + +
    +

    + Toasts +

    +
    +
    +

    Design

    +
    +

    Customize components and inputs.

    +
    + +
    +
    + .style +
    + +
    +

    + Style pronoun +

    +
    +
    +
    +
    + active() +
    + +
    +

    + Selected choice color +

    +
    +
    +
    +
    + affix() +
    + +
    +

    + Fixed position elements +

    +
    +
    +
    + + +
    +

    + Backgrounds +

    +
    +
    +
    +
    + border() +
    + +
    +

    + Border colors +

    +
    +
    +
    +
    + display() +
    + +
    +

    + Display +

    +
    +
    +
    +
    + float() +
    + +
    +

    + Floats +

    +
    +
    +
    +
    + font() +
    + +
    +

    + Font color, size, weight +

    +
    +
    +
    +
    + height() +
    + +
    +

    + Height +

    +
    +
    +
    +
    + margin() +
    + +
    +

    + Margins +

    +
    +
    +
    +
    + padding() +
    + +
    +

    + Padding +

    +
    +
    +
    +
    + scroll() +
    + +
    +

    + Vertical and horizontal scroll +

    +
    +
    +
    +
    + shadow() +
    + +
    +

    + Shadows +

    +
    +
    +
    +
    + width() +
    + +
    +

    + Width +

    +
    +
    +

    Inputs

    +
    +

    Get information from the user with reactive inputs.

    +
    + +
    + + +
    +

    + Button group inputs +

    +
    +
    +
    + + +
    +

    + Button and link inputs +

    +
    +
    +
    + + +
    +

    + Checkbar input +

    +
    +
    +
    + + +
    +

    + Checkbox and switch inputs +

    +
    +
    +
    + + +
    +

    + Chip inputs +

    +
    +
    +
    + + +
    +

    + File inputs +

    +
    +
    +
    + + +
    +

    + Form inputs +

    +
    +
    +
    + + +
    +

    + List group inputs +

    +
    +
    +
    + + +
    +

    + Menu inputs +

    +
    +
    +
    + + +
    +

    + Page navigation inputs +

    +
    +
    +
    + + +
    +

    + Radio inputs +

    +
    +
    +
    + + +
    +

    + Radiobar inputs +

    +
    +
    +
    + + +
    +

    + Range input +

    +
    +
    + + +

    Layout

    +
    +

    Build user interfaces for devices of all sizes.

    +
    + +
    + + +
    +

    + Grid layout +

    +
    +
    +
    +
    + flex() +
    + +
    +

    + Flex layout +

    +
    +
    +
    + + +
    +

    + Input labels, help text, and formatting to inputs +

    +
    +
    +
    + + +
    +

    + Understanding responsive arguments +

    +
    +
    +
    +
    + webpage() +
    + +
    +

    + User interface +

    +
    +
    +

    Utilities

    +
    +

    Assorted tools for more possibilities.

    +
    + +
    + + +
    +

    + Dynamic content +

    +
    +
    +
    + + +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/jumbotron.html b/docs/reference/jumbotron.html new file mode 100644 index 00000000..43e4cf02 --- /dev/null +++ b/docs/reference/jumbotron.html @@ -0,0 +1,228 @@ + + + + + + + + +Jumbotron — jumbotron • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A showcase banner, good for front or splash pages.

    +
    + +
    jumbotron(..., title = NULL, subtitle = NULL)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + +
    ...

    Tag elements passed as child elements or named arguments passed as +HTML attributes to the parent element.

    title

    A character string specifying a title for the jumbotron, +defaults to NULL, in which case a title is not added.

    subtitle

    A character string specifying a subtitle for the jumbotron, +defaults to NULL, in which case a subtitle is not added.

    + +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +modal(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### Landing page welcome + +jumbotron( + title = "Welcome, welcome!", + subtitle = "Here we are showcasing the very showcase itself.", + tags$p( + "Now let's talk more about that superb new feature." + ) +)
    #> <div class="jumbotron"> +#> <h1 class="display-3">Welcome, welcome!</h1> +#> <p class="lead">Here we are showcasing the very showcase itself.</p> +#> <hr class="my-4"/> +#> <p>Now let's talk more about that superb new feature.</p> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/listGroupInput.html b/docs/reference/listGroupInput.html new file mode 100644 index 00000000..4ec1b9b8 --- /dev/null +++ b/docs/reference/listGroupInput.html @@ -0,0 +1,371 @@ + + + + + + + + +List group inputs — listGroupInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    List group inputs are an actionable list of items. They behave similarly to +checkboxes or radios, that is, users may select one or more items from the +list. However, list group items may include highly variable content.

    +
    + +
    listGroupInput(
    +  ...,
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  layout = "vertical",
    +  flush = FALSE
    +)
    +
    +updateListGroupInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    id

    A character string specifying the id of the reactive input.

    choices

    A vector of character strings or list of tag elements specifying +the content of the list group's items.

    values

    A character vector specifying the values of the list items, +defaults to choices.

    selected

    One or more of values specifying which choices are selected +by default, defaults to NULL, in which case no choice is selected.

    layout

    A responsive argument. One of "vertical" or "horizontal" +specifying how list items are laid out, defaults to "vertical". Note, if +layout is "horizontal" and the flush argument is ignored.

    flush

    One of TRUE or FALSE specifying if the list group is +rendered without an outside border, defaults to FALSE. Removing the list +group border is useful when rendering a list group inside a custom parent +container, e.g. inside a card().

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + + + + + + +

    A list group can also control a set of panes. Be sure to set multiple = FALSE. This layout is reminiscent of a table of contents.

    ui <- container(
    +  columns(
    +    column(
    +      width = 3,
    +      listGroupInput(
    +        id = "nav",
    +        selected = "pane1",
    +        choices = c(
    +          "Item 1",
    +          "Item 2",
    +          "Item 3"
    +        ),
    +        values = c(
    +          "pane1",
    +          "pane2",
    +          "pane3"
    +        )
    +      )
    +    ),
    +    column(
    +      navContent(
    +        navPane(
    +          id = "pane1",
    +          p("Pellentesque tristique imperdiet tortor.")
    +        ),
    +        navPane(
    +          id = "pane2",
    +          p("Sed bibendum. Donec pretium posuere tellus.")
    +        ),
    +        navPane(
    +          id = "pane3",
    +          p("Pellentesque tristique imperdiet tortor.")
    +        )
    +      )
    +    )
    +  )
    +)
    +
    +server <- function(input, output) {
    +  observeEvent(input$nav, {
    +    showPane(input$nav)
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + + + +

    Examples

    +
    +### An actionable list group + +listGroupInput( + id = "list1", + choices = paste("Item", 1:5) +)
    #> <div class="yonder-list-group list-group" id="list1"> +#> <button class="list-group-item list-group-item-action" value="Item 1">Item 1</button> +#> <button class="list-group-item list-group-item-action" value="Item 2">Item 2</button> +#> <button class="list-group-item list-group-item-action" value="Item 3">Item 3</button> +#> <button class="list-group-item list-group-item-action" value="Item 4">Item 4</button> +#> <button class="list-group-item list-group-item-action" value="Item 5">Item 5</button> +#> </div>
    +### List group within a card + +card( + header = h6("Pick an item"), + listGroupInput( + id = "list2", + flush = TRUE, + choices = paste("Item", 1:5), + ) +)
    #> <div class="card"> +#> <div class="card-header"> +#> <h6>Pick an item</h6> +#> </div> +#> <div class="yonder-list-group list-group list-group-flush" id="list2"> +#> <button class="list-group-item list-group-item-action" value="Item 1">Item 1</button> +#> <button class="list-group-item list-group-item-action" value="Item 2">Item 2</button> +#> <button class="list-group-item list-group-item-action" value="Item 3">Item 3</button> +#> <button class="list-group-item list-group-item-action" value="Item 4">Item 4</button> +#> <button class="list-group-item list-group-item-action" value="Item 5">Item 5</button> +#> </div> +#> </div>
    +### Horizontal list group + +listGroupInput( + id = "list3", + choices = paste("Item", 1:4), + layout = "horizontal" +)
    #> <div class="yonder-list-group list-group list-group-horizontal" id="list3"> +#> <button class="list-group-item list-group-item-action" value="Item 1">Item 1</button> +#> <button class="list-group-item list-group-item-action" value="Item 2">Item 2</button> +#> <button class="list-group-item list-group-item-action" value="Item 3">Item 3</button> +#> <button class="list-group-item list-group-item-action" value="Item 4">Item 4</button> +#> </div>
    +
    +
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/margin.html b/docs/reference/margin.html new file mode 100644 index 00000000..95088367 --- /dev/null +++ b/docs/reference/margin.html @@ -0,0 +1,316 @@ + + + + + + + + +Margins — margin • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The margin utilty changes the outer spacing of a tag element. The margin of +a tag element is the space outside and around the tag element, its border, +and its content. All arguments default to NULL, in which case they are +ignored.

    +
    + +
    margin(x, all = NULL, top = NULL, right = NULL, bottom = NULL, left = NULL)
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    all, top, right, bottom, left

    A responsive argument. One of -5:5 or +"auto" specifying a margin for one or more sides of the tag element. 0 +removes all outer space, 5 adds the most space, and negative values will +consume space pulling the element in that direction.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +flex(), +float(), +font(), +height(), +padding(), +scroll(), +shadow(), +width()

    + +

    Examples

    +
    +### Centering an element + +# In most modern browsers you want to horizontally center a tag element using +# the flex layout. Alternatively, you can horizontally center an element +# using `margin(.., right = "auto", left = "auto")`. + +div( + "Nam a sapien. Integer placerat tristique nisl.", + style = "height: 100px; width: 200px;" +) %>% + margin(top = 2, r = "auto", b = 2, l = "auto") %>% # <- + padding(3) %>% + background("info")
    #> <div style="height: 100px; width: 200px;" class="pt-2 pr-auto pb-2 ml-auto p-3 bg-info">Nam a sapien. Integer placerat tristique nisl.</div>
    +### Building an inline form + +# Inline form elements automatically use the flex layout providing you a +# means of creating condensed sets of inputs. However, you may need to adjust +# the spacing of the form's child elements. + +# Here is an inline form without any additional spacing applied. + +formInput( + id = "form1", + inline = TRUE, + textInput( + id = "name", + placeholder = "Full name" + ), + groupTextInput( + id = "username", + left = "@", + placeholder = "Username" + ), + checkboxInput( + id = "remember", + choice = "Remember me" + ), + formSubmit("Login", "login") +)
    #> <form class="yonder-form form-inline" id="form1"> +#> <div class="yonder-textual" id="name"> +#> <input class="form-control" type="text" placeholder="Full name" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> <div class="yonder-group-text input-group" id="username"> +#> <div class="input-group-prepend"> +#> <span class="input-group-text">@</span> +#> </div> +#> <input type="text" class="form-control" placeholder="Username" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> <div class="yonder-checkbox" id="remember" choice="Remember me"></div> +#> <button class="yonder-form-submit btn btn-blue" value="login">Login</button> +#> </form>
    +# Without any adjustments the layout is not great. But, with some styling we +# can make this form sparkle. Notice we are also adjusting the default submit +# button added to the form input. + +formInput( + id = "form2", + inline = TRUE, + textInput( + id = "name", + placeholder = "Full name" + ) %>% + margin(r = c(sm = 2), b = 2), # <- + groupTextInput( + id = "username", + left = "@", + placeholder = "Username" + ) %>% + margin(r = c(sm = 2), b = 2), # <- + checkboxInput( + id = "remember", + choice = "Remember me" + ) %>% + margin(r = c(sm = 2), b = 2), # <- + formSubmit( + label = "Login", + value = "login" + ) %>% + margin(b = 2) # <- +)
    #> <form class="yonder-form form-inline" id="form2"> +#> <div class="yonder-textual pr-sm-2 pb-2" id="name"> +#> <input class="form-control" type="text" placeholder="Full name" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> <div class="yonder-group-text input-group pr-sm-2 pb-2" id="username"> +#> <div class="input-group-prepend"> +#> <span class="input-group-text">@</span> +#> </div> +#> <input type="text" class="form-control" placeholder="Username" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> <div class="yonder-checkbox pr-sm-2 pb-2" id="remember" choice="Remember me"></div> +#> <button class="yonder-form-submit btn btn-blue pb-2" value="login">Login</button> +#> </form>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/menuInput.html b/docs/reference/menuInput.html new file mode 100644 index 00000000..17316b2e --- /dev/null +++ b/docs/reference/menuInput.html @@ -0,0 +1,335 @@ + + + + + + + + +Menu inputs — menuInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A toggleable dropdown menu input. Menu inputs may be used as standalone +reactive inputs or within a navInput(). For building custom, more complex +dropdown elements please see dropdown().

    +
    + +
    menuInput(
    +  id,
    +  label,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  ...,
    +  direction = "down",
    +  align = "left"
    +)
    +
    +updateMenuInput(
    +  id,
    +  label = NULL,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    label

    A character string or tag element specifying the label of the +menu's toggle button.

    choices

    A character vector specifying the choice text of the menu's +items.

    values

    A character vector specifying the values of the menu's items, +defaults to choices.

    selected

    One or more of values specifying which choices are +selected by default, defaults to NULL, in which case no choices are +initially selected.

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    direction

    One of "up", "right", "down", or "left" specifying +which direction the menu opens, defaults to "down".

    align

    One or "right" or "left" specifying which side of the +toggle button the menu aligns to, defaults to "left".`

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    See also

    + + + +

    Examples

    +
    +### A simple menu + +menuInput( + id = "menu1", + label = "Menu", + choices = c( + "Choice 1", + "Choice 2", + "Choice 3" + ) +)
    #> <div class="yonder-menu dropdown" id="menu1"> +#> <button class="btn dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Menu</button> +#> <div class="dropdown-menu"> +#> <button class="dropdown-item" type="button" value="Choice 1">Choice 1</button> +#> <button class="dropdown-item" type="button" value="Choice 2">Choice 2</button> +#> <button class="dropdown-item" type="button" value="Choice 3">Choice 3</button> +#> </div> +#> </div>
    +### Use in navigation + +navInput( + id = "nav1", + choices = list( + "Tab 1", + menuInput( + id = "navOptions", + label = "Tab 2", + choices = c( + "Option 1", + "Option 2", + "Option 3" + ) + ), + "Tab 3", + "Tab 4" + ), + values = paste0("tab", 1:4) +)
    #> <ul class="yonder-nav nav" id="nav1"> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link active" value="tab1">Tab 1</button> +#> </li> +#> <li class="yonder-menu dropdown nav-item" id="navOptions"> +#> <button class="btn dropdown-toggle nav-link btn-link" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" value="tab2">Tab 2</button> +#> <div class="dropdown-menu"> +#> <button class="dropdown-item" type="button" value="Option 1">Option 1</button> +#> <button class="dropdown-item" type="button" value="Option 2">Option 2</button> +#> <button class="dropdown-item" type="button" value="Option 3">Option 3</button> +#> </div> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="tab3">Tab 3</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="tab4">Tab 4</button> +#> </li> +#> </ul>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/modal.html b/docs/reference/modal.html new file mode 100644 index 00000000..7fcbdaaa --- /dev/null +++ b/docs/reference/modal.html @@ -0,0 +1,356 @@ + + + + + + + + +Modal dialogs — modal • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Modals are a flexible alert window, which disable interaction with the page +behind them. Modals may include inputs, buttons, or simply text. Each modal +may be assigned an id. By default hideModal() will hide all modals, but +you may instead specify a modal's id in which case only that modal is +closed. Additionally, when id is not NULL observers and reactives may +watch for the modal's close event.

    +
    + +
    modal(
    +  id,
    +  ...,
    +  header = NULL,
    +  footer = NULL,
    +  center = FALSE,
    +  size = "md",
    +  fade = TRUE
    +)
    +
    +showModal(modal, session = getDefaultReactiveDomain())
    +
    +closeModal(id = NULL, session = getDefaultReactiveDomain())
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the modal, when closed +input[[id]] is set to TRUE.

    ...

    Unnamed values passed as tag elements to the body of the modal. +or named values passed as HTML attributes to the body element of the +modal.

    header

    A character string or tag element specifying the header of the +modal.

    footer

    A character string or tag element specifying the footer of the +modal.

    center

    One of TRUE or FALSE specifying whether the modal is +vertically centered on the page, defaults to FALSE.

    size

    One of "sm" (small), "md" (medium), "lg" (large), or "xl" +(extra large) specifying the relative width of the modal, defaults to +"md".

    fade

    One of TRUE or FALSE specifying if the modal fades in when +shown and fades out when closed, defaults to TRUE.

    modal

    A modal tag element created using modal().

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Example application

    + +

    ui <- container(
    +  buttonInput(
    +    id = "open",
    +    "Open modal",
    +    icon("plus")
    +  )
    +)
    +
    +server <- function(input, output) {
    +  modal1 <- modal(
    +    title = "A simple modal",
    +    p(
    +      "Cras mattis consectetur purus sit amet fermentum.",
    +      "Cras justo odio, dapibus ac facilisis in, egestas",
    +      "eget quam. Morbi leo risus, porta ac consectetur",
    +      "ac, vestibulum at eros."
    +    )
    +  )
    +
    +  observeEvent(input$open, ignoreInit = TRUE, {
    +    showModal(modal1)
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +navContent(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### Simple modal + +modal( + id = "simple", + header = h5("Title"), + p("Cras placerat accumsan nulla.") +)
    #> <div class="yonder-modal modal fade" id="simple" tabindex="-1" role="dialog"> +#> <div class="modal-dialog" role="document"> +#> <div class="modal-content"> +#> <div class="modal-header"> +#> <h5 class="modal-title">Title</h5> +#> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> +#> <span aria-hidden="true">&times;</span> +#> </button> +#> </div> +#> <div class="modal-body"> +#> <p>Cras placerat accumsan nulla.</p> +#> </div> +#> </div> +#> </div> +#> </div>
    +### Modal with container body + +modal( + id = "more_complex", + size = "lg", + header = h5("More complex"), + container( + columns( + column("Cras placerat accumsan nulla."), + column("Curabitur lacinia pulvinar nibh."), + column( + "Aliquam posuere.", + "Praesent fermentum tempor tellus." + ) + ) + ) +)
    #> <div class="yonder-modal modal fade" id="more_complex" tabindex="-1" role="dialog"> +#> <div class="modal-dialog modal-lg" role="document"> +#> <div class="modal-content"> +#> <div class="modal-header"> +#> <h5 class="modal-title">More complex</h5> +#> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> +#> <span aria-hidden="true">&times;</span> +#> </button> +#> </div> +#> <div class="modal-body"> +#> <div class="container-fluid"> +#> <div class="row"> +#> <div class="col">Cras placerat accumsan nulla.</div> +#> <div class="col">Curabitur lacinia pulvinar nibh.</div> +#> <div class="col"> +#> Aliquam posuere. +#> Praesent fermentum tempor tellus. +#> </div> +#> </div> +#> </div> +#> </div> +#> </div> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/navContent.html b/docs/reference/navContent.html new file mode 100644 index 00000000..a160b9b7 --- /dev/null +++ b/docs/reference/navContent.html @@ -0,0 +1,409 @@ + + + + + + + + +Navigation panes — navContent • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    These functions pair with navInput(). Use navContent() and navPane() to +create the pane layout. To show a new pane use showNavPane() from within an +observer. showNavPane() will also hide a previously active pane. If needed +you can hide an active pane with hideNavPane(). hideNavPane() is useful +when you do not have a new pane to show, but want to hide the current active +pane.

    +
    + +
    navContent(...)
    +
    +navPane(id, ..., fade = TRUE)
    +
    +showNavPane(id, session = getDefaultReactiveDomain())
    +
    +hideNavPane(id, session = getDefaultReactiveDomain())
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + +
    ...

    For navContent, any number of nav panes passed as child +elements to the nav parent element or named arguments passed as HTML +attributes to the parent element.

    +

    For navPane, any number of unnamed arguments passed as tag elements to +the parent element or named arguments passed as HTML elements to the +parent element.

    id

    A character string specifying the id of the nav pane.

    fade

    One of TRUE or FALSE specifying if the pane fades in when +shown and fades out when hidden, defaults to TRUE.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    App with pills

    + +

    ui <- container(
    +  navInput(
    +    id = "tabs",
    +    choices = paste("Tab", 1:3),
    +    values = paste0("pane", 1:3),
    +    appearance = "pills"
    +  ),
    +  navContent(
    +    navPane(
    +      id = "pane1",
    +      "Nullam tristique diam non turpis.",
    +      "Cum sociis natoque penatibus et magnis dis parturient montes, ",
    +      "nascetur ridiculus mus.",
    +      "Etiam laoreet quam sed arcu.",
    +      "Curabitur vulputate vestibulum lorem."
    +    ),
    +    navPane(
    +      id = "pane2",
    +      "Praesent fermentum tempor tellus.",
    +      "Proin neque massa, cursus ut, gravida ut, lobortis eget, lacus.",
    +      "Phasellus lacus.",
    +      "Nam euismod tellus id erat."
    +    ),
    +    navPane(
    +      id = "pane3",
    +      "Nullam eu ante vel est convallis dignissim.",
    +      "Phasellus at dui in ligula mollis ultricies.",
    +      "Fusce suscipit, wisi nec facilisis facilisis, est dui ",
    +      "fermentum leo, quis tempor ligula erat quis odio.",
    +      "Donec hendrerit tempor tellus."
    +    )
    +  )
    +)
    +
    +server <- function(input, output) {
    +  observeEvent(input$tabs, {
    +    showNavPane(input$tabs)
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    App with dropdown

    + +

    ui <- container(
    +  navInput(
    +    id = "tabs",
    +    choices = list(
    +      "Tab 1",
    +      dropdown(
    +        label = "Tab 2",
    +        buttonInput("action", "Action"),
    +        buttonInput("another", "Another action")
    +      ),
    +      "Tab 3"
    +    ),
    +    values = paste0("pane", 1:3),
    +    appearance = "tabs"
    +  ),
    +  navContent(
    +    navPane(
    +      id = "pane1",
    +      "Donec at pede.",
    +      "Pellentesque tristique imperdiet tortor.",
    +      "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."
    +    ),
    +    navPane(
    +      id = "pane2",
    +      "Nullam tristique diam non turpis.",
    +      "Cras placerat accumsan nulla.",
    +      "Donec at pede."
    +    ),
    +    navPane(
    +      id = "pane3",
    +      "Phasellus purus.",
    +      "Etiam laoreet quam sed arcu.",
    +      "Donec pretium posuere tellus."
    +    )
    +  )
    +)
    +
    +server <- function(input, output) {
    +  observeEvent(input$tabs, {
    +    showNavPane(input$tabs)
    +  })
    +
    +  observeEvent(c(input$action, input$another), {
    +    if (input$action > 0 || input$another > 0) {
    +      showNavPane("pane2")
    +    }
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    App with multiple sets of panes

    + +

    ui <- container(
    +  navInput(
    +    id = "tabs",
    +    choices = paste("Tab", 1:3),
    +    values = paste0("pane", 1:3)
    +  ),
    +  columns(
    +    column(
    +      navContent(
    +        navPane(
    +          id = "pane1_1",
    +          "Aenean eu leo quam. Pellentesque ornare sem lacinia quam ",
    +          "venenatis vestibulum. Praesent commodo cursus magna, vel ",
    +          "scelerisque nisl consectetur et. Vivamus sagittis lacus vel ",
    +          "augue laoreet rutrum faucibus dolor auctor."
    +        ),
    +        navPane(
    +          id = "pane2_1",
    +          "Nullam quis risus eget urna mollis ornare vel eu leo. ",
    +          "Maecenas faucibus mollis interdum. Praesent commodo cursus ",
    +          "magna, vel scelerisque nisl consectetur et."
    +        ),
    +        navPane(
    +          id = "pane3_1",
    +          "Lorem ipsum dolor sit amet, consectetur adipiscing elit. ",
    +          "Vivamus sagittis lacus vel augue laoreet rutrum faucibus ",
    +          "dolor auctor. Etiam porta sem malesuada magna mollis euismod."
    +        )
    +      )
    +    ),
    +    column(
    +      navContent(
    +        navPane(
    +          id = "pane1_2",
    +          "Aenean eu leo quam. Pellentesque ornare sem lacinia quam ",
    +          "venenatis vestibulum. Praesent commodo cursus magna, vel ",
    +          "scelerisque nisl consectetur et. Vivamus sagittis lacus vel ",
    +          "augue laoreet rutrum faucibus dolor auctor."
    +        ),
    +        navPane(
    +          id = "pane2_2",
    +          "Nullam quis risus eget urna mollis ornare vel eu leo. ",
    +          "Maecenas faucibus mollis interdum. Praesent commodo cursus ",
    +          "magna, vel scelerisque nisl consectetur et."
    +        ),
    +        navPane(
    +          id = "pane3_2",
    +          "Lorem ipsum dolor sit amet, consectetur adipiscing elit. ",
    +          "Vivamus sagittis lacus vel augue laoreet rutrum faucibus ",
    +          "dolor auctor. Etiam porta sem malesuada magna mollis euismod."
    +        )
    +      )
    +    )
    +  )
    +)
    +
    +server <- function(input, output) {
    +  observeEvent(input$tabs, {
    +    showNavPane(paste0(input$tabs, "_1"))
    +    showNavPane(paste0(input$tabs, "_2"))
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +popover(), +pre(), +toast()

    + +

    Examples

    +
    +### Examples + +# Because these are server-side utilities please see the example applications +# above. + +
    +
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/navInput.html b/docs/reference/navInput.html new file mode 100644 index 00000000..8544428d --- /dev/null +++ b/docs/reference/navInput.html @@ -0,0 +1,420 @@ + + + + + + + + +Page navigation inputs — navInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A reactive input styled as a navigation control. The navigation input can be +styled as links, tabs, or pills. A nav input is paired with navContent() +and showNavPane() to create tabbed user interfaces. Observers and reactives +are triggered when a nav choice or menu item is clicked. The reactive value +of a nav input is NULL or a singleton character string. The value of any +menus in the nav input must be retrieved with its own reactive id.

    +
    + +
    navInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = values[[1]],
    +  ...,
    +  appearance = "links",
    +  fill = FALSE
    +)
    +
    +updateNavInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    choices

    A character vector or list of tag elements specifying the +navigation items of the input.

    values

    A character vector specifying the values of the input's +chocies, defaults to choices.

    selected

    One of values specifying which choice is selected by +default, defaults to values[[1]].

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    appearance

    One of "links", "pills", or "tabs" specifying the +appearance of the nav input, defaults to "links".

    fill

    One of TRUE or FALSE specifying if the nav input fills the +width of its parent element. If TRUE, the space is divided evenly among +the nav items.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Including a menu

    + + + + +

    Use the reactive id of any nav menus to know when a menu item is clicked.

    ui <- navInput(
    +  id = "navigation",
    +  choices = list(
    +    "Item 1",
    +    "Item 2",
    +    menuInput(
    +      id = "navMenu",  # <-
    +      label = "Item 3",
    +      choices = c("Choice 1", "Choice 2")
    +    )
    +  ),
    +  values = c("item1", "item2", "item3")
    +)
    +
    +server <- function(input, output) {
    +  observeEvent(input$navMenu, {
    +    cat(paste("Click menu item:", input$navMenu, "\n"))
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + + + +

    Examples

    +
    +### Nav styled as tabs + +navInput( + id = "tabs1", + choices = c( + "Tab 1", + "Tab 2", + "Tab 3" + ), + selected = "Tab 1", + appearance = "tabs" +)
    #> <ul class="yonder-nav nav nav-tabs" id="tabs1"> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link active" value="Tab 1">Tab 1</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Tab 2">Tab 2</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Tab 3">Tab 3</button> +#> </li> +#> </ul>
    +### Nav styled as pills + +navInput( + id = "tabs2", + choices = paste("Tab", 1:3), + selected = "Tab 1", + appearance = "pills" +)
    #> <ul class="yonder-nav nav nav-pills" id="tabs2"> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link active" value="Tab 1">Tab 1</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Tab 2">Tab 2</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Tab 3">Tab 3</button> +#> </li> +#> </ul>
    +### Nav with dropdown + +navInput( + id = "tabs3", + choices = list( + "Tab 1", + menuInput( + id = "menu1", + label = "Tab 2", + choices = c( + "Action", + "Another action" + ) + ), + "Tab 2" + ), + values = c("tab1", "tab2", "tab3") +)
    #> <ul class="yonder-nav nav" id="tabs3"> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link active" value="tab1">Tab 1</button> +#> </li> +#> <li class="yonder-menu dropdown nav-item" id="menu1"> +#> <button class="btn dropdown-toggle nav-link btn-link" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" value="tab2">Tab 2</button> +#> <div class="dropdown-menu"> +#> <button class="dropdown-item" type="button" value="Action">Action</button> +#> <button class="dropdown-item" type="button" value="Another action">Another action</button> +#> </div> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="tab3">Tab 2</button> +#> </li> +#> </ul>
    +### Full width nav input + +navInput( + id = "tabs4", + choices = paste("Tab", 1:5), + values = paste0("tab", 1:5), + appearance = "pills", + fill = TRUE +)
    #> <ul class="yonder-nav nav nav-fill nav-pills" id="tabs4"> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link active" value="tab1">Tab 1</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="tab2">Tab 2</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="tab3">Tab 3</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="tab4">Tab 4</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="tab5">Tab 5</button> +#> </li> +#> </ul>
    +### Centering a nav input + +navInput( + id = "tabs5", + choices = paste("Tab", 1:3) +) %>% + flex(justify = "center")
    #> <ul class="yonder-nav nav justify-content-center" id="tabs5"> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link active" value="Tab 1">Tab 1</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Tab 2">Tab 2</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Tab 3">Tab 3</button> +#> </li> +#> </ul>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/navbar.html b/docs/reference/navbar.html new file mode 100644 index 00000000..b53907ca --- /dev/null +++ b/docs/reference/navbar.html @@ -0,0 +1,283 @@ + + + + + + + + +Navigation bar — navbar • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Add a navigation bar to your application with navbar(). Navigation bars may +include a tab toggle (useful for multi-page applications), inline forms +(perhaps a search feature or login item), or character strings to add simple +text. Navbars are responsive and will collapse on small screens, think mobile +device. A button is automatically added to toggle between the collapsed and +expanded states.

    +
    + +
    navbar(..., brand = NULL, collapse = NULL)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + +
    ...

    A tab toggle, inline forms, or text to add to include as part of +the navigation bar.

    brand

    A tag element or text placed on the left end of the navbar, +defaults to NULL, in which case nothing is added.

    collapse

    One of "sm", "md", "lg", "xl", or NULL specifying +the breakpoint at which the navbar collaspes, defaults to NULL, in which +case the navbar is always expanded.

    + +

    See also

    + +

    Other layout functions: +column(), +fieldset(), +webpage()

    + +

    Examples

    +
    +### Navbar with tabs + +div( + navbar( + brand = "Navbar", + navInput( + id = "tabs", + choices = c("Home", "About", "Our process") + ) %>% + margin(right = "auto"), + formInput( + inline = TRUE, + id = "navForm", + textInput( + type = "search", + id = "site_search", + placeholder = "Search" + ) %>% + margin(right = c(sm = 2)), + formSubmit( + label = "Search", + value = "search" + ) %>% + background("warning") + ) + ) %>% + background("info"), + container( + navContent( + navPane( + h3("Home") + ), + navPane( + h3("About") + ), + navPane( + h3("The process") + ) + ) + ) +)
    #> <div> +#> <nav class="navbar navbar-expand navbar-light bg-info"> +#> <a class="navbar-brand" href="#">Navbar</a> +#> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#nav-content-773-469" aria-controls="nav-content-773-469" aria-expanded="false" aria-label="Toggle navigation"> +#> <span class="navbar-toggler-icon"></span> +#> </button> +#> <div class="collapse navbar-collapse" id="nav-content-773-469"> +#> <ul class="yonder-nav nav pr-auto navbar-nav" id="tabs"> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link active" value="Home">Home</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="About">About</button> +#> </li> +#> <li class="nav-item"> +#> <button class="nav-link btn btn-link" value="Our process">Our process</button> +#> </li> +#> </ul> +#> </div> +#> </nav> +#> <div class="container-fluid"> +#> <div class="tab-content"> +#> <div class="tab-pane fade" role="tab-panel" id="&lt;h3&gt;Home&lt;/h3&gt;"></div> +#> <div class="tab-pane fade" role="tab-panel" id="&lt;h3&gt;About&lt;/h3&gt;"></div> +#> <div class="tab-pane fade" role="tab-panel" id="&lt;h3&gt;The process&lt;/h3&gt;"></div> +#> </div> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/padding.html b/docs/reference/padding.html new file mode 100644 index 00000000..e29ad9cc --- /dev/null +++ b/docs/reference/padding.html @@ -0,0 +1,211 @@ + + + + + + + + +Padding — padding • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The padding utility changes the inner spacing of a tag element. The padding +of a tag element is the space between the tag element's border and its +content or child elements. All arguments default to NULL, in which case +they are ignored.

    +
    + +
    padding(x, all = NULL, top = NULL, right = NULL, bottom = NULL, left = NULL)
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    all, top, right, bottom, left

    A responsive argument. One of 0:5 or +"auto" specifying padding for one or more sides of the tag element. 0 +removes all inner space and 5 adds the most space.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +flex(), +float(), +font(), +height(), +margin(), +scroll(), +shadow(), +width()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/popover.html b/docs/reference/popover.html new file mode 100644 index 00000000..6b373278 --- /dev/null +++ b/docs/reference/popover.html @@ -0,0 +1,282 @@ + + + + + + + + +Popovers — popover • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Popovers are small windows of content associated with a tag element. Use +popover() to construct the element and showPopover() to add it to any tag +element with an HTML id. Popovers are great for explaining inputs and giving +hints to the users. Popovers are hidden with closePopover().

    +
    + +
    popover(..., title = NULL)
    +
    +showPopover(
    +  id,
    +  popover,
    +  placement = "top",
    +  duration = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    +
    +closePopover(id, session = getDefaultReactiveDomain())
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ...

    Character strings or tag elements specifying the content of the +popover or additional named arguments passed as HTML attributes to the +parent element.

    title

    A character string specifying a title for the popover, defaults +to NULL, in which case a title is not added.

    id

    A character string specifying the id of a popover's target tag +element.

    popover

    The popover element to show, typically a call to popover().

    placement

    One of "top", "left", "bottom", or "right" +specifying where the popover is positioned relative to the target tag +element indicated by id, defaults to "top".

    duration

    A positive integer specifying the duration of the popover in +seconds or NULL, in which case the popover is not automatically removed. +When NULL the popover must be removed with closePopover().

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Example application

    + +

    ui <- container(
    +  buttonInput("showHelp", "Help!"),
    +  div(
    +    id = "textBlock1",
    +    "Sociis natoque penatibus et magnis"
    +  ) %>%
    +    padding(3)
    +) %>%
    +  display("flex") %>%
    +  flex(justify = "around")
    +
    +server <- function(input, output) {
    +  observeEvent(input$showHelp, ignoreInit = TRUE, {
    +    showPopover(
    +      target = "textBlock1",
    +      popover(title = "Hint", "I am a <div> element!"),
    +      placement = "bottom",
    +      duration = 4
    +    )
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +pre(), +toast()

    + +

    Examples

    +
    +### Examples + +# Please see example application above. + +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/pre.html b/docs/reference/pre.html new file mode 100644 index 00000000..6a5d30ab --- /dev/null +++ b/docs/reference/pre.html @@ -0,0 +1,235 @@ + + + + + + + + +Scrollable code snippets — pre • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The pre function adds a maximum height and scroll bar to the standard +<pre> element.

    +
    + +
    pre(...)
    + +

    + + Arguments +

    + + + + + + +
    ...

    Text, tag elements, or named arguments passed as HTML attributes +to the tag.

    + +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +toast()

    + +

    Examples

    +
    +### Simple example + +pre( + "shinyApp(", + " ui = container(", + " columns(", + " column(", + " ", + " )", + " )", + " )", + " server = function(input, output) {", + " ", + " }", + ")" +)
    #> <pre class="pre-scrollable"> +#> shinyApp( +#> ui = container( +#> columns( +#> column( +#> +#> ) +#> ) +#> ) +#> server = function(input, output) { +#> +#> } +#> ) +#> </pre>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/radioInput.html b/docs/reference/radioInput.html new file mode 100644 index 00000000..99259055 --- /dev/null +++ b/docs/reference/radioInput.html @@ -0,0 +1,335 @@ + + + + + + + + +Radio inputs — radioInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A stylized radio input. A reactive input with multiple choices where only one +choice and value at most may be selected.

    +
    + +
    radioInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = values[[1]],
    +  ...,
    +  inline = FALSE
    +)
    +
    +updateRadioInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  inline = FALSE,
    +  enable = NULL,
    +  disable = NULL,
    +  valid = NULL,
    +  invalid = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    choices

    A character vector or list of tag elements specifying the +input's choices.

    values

    A character vector, list of character strings, vector of values +to coerce to character strings, or list of values to coerce to character +strings specifying the values of the radio input's choices, defaults to +choices.

    selected

    One of values indicating the default selected value of the +radio input, defaults to NULL, in which case the first choice is +selected by default.

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    inline

    If TRUE, the radio input renders inline, defaults to FALSE, +in which case the radio controls render on separate lines.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    valid

    A character string specifying a message to the user indicating +how the input's value is valid, defaults to NULL.

    invalid

    A character string specifying a message to the user +indicating how the input's value is invalid, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    See also

    + + + +

    Examples

    +
    +### Out-of-the-box radios + +radioInput( + id = "radio1", + choices = c( + "Vehicula adipiscing mattis", + "Magna nullam", + "Aenean venenatis", + "Tristique quam porta" + ) +)
    #> <div class="yonder-radio" id="radio1"> +#> <div class="custom-control custom-radio"> +#> <input class="custom-control-input" type="radio" id="radio-300-957" name="radio1" value="Vehicula adipiscing mattis" checked autocomplete="off"/> +#> <label class="custom-control-label" for="radio-300-957">Vehicula adipiscing mattis</label> +#> </div> +#> <div class="custom-control custom-radio"> +#> <input class="custom-control-input" type="radio" id="radio-546-70" name="radio1" value="Magna nullam" autocomplete="off"/> +#> <label class="custom-control-label" for="radio-546-70">Magna nullam</label> +#> </div> +#> <div class="custom-control custom-radio"> +#> <input class="custom-control-input" type="radio" id="radio-447-260" name="radio1" value="Aenean venenatis" autocomplete="off"/> +#> <label class="custom-control-label" for="radio-447-260">Aenean venenatis</label> +#> </div> +#> <div class="custom-control custom-radio"> +#> <input class="custom-control-input" type="radio" id="radio-752-674" name="radio1" value="Tristique quam porta" autocomplete="off"/> +#> <label class="custom-control-label" for="radio-752-674">Tristique quam porta</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div>
    +### Inline radio input + +radioInput( + id = "radio2", + choices = c( + "Choice 1", + "Choice 2", + "Choice 3" + ), + inline = TRUE # <- +)
    #> <div class="yonder-radio" id="radio2"> +#> <div class="custom-control custom-radio custom-control-inline"> +#> <input class="custom-control-input" type="radio" id="radio-675-217" name="radio2" value="Choice 1" checked autocomplete="off"/> +#> <label class="custom-control-label" for="radio-675-217">Choice 1</label> +#> </div> +#> <div class="custom-control custom-radio custom-control-inline"> +#> <input class="custom-control-input" type="radio" id="radio-726-555" name="radio2" value="Choice 2" autocomplete="off"/> +#> <label class="custom-control-label" for="radio-726-555">Choice 2</label> +#> </div> +#> <div class="custom-control custom-radio custom-control-inline"> +#> <input class="custom-control-input" type="radio" id="radio-903-544" name="radio2" value="Choice 3" autocomplete="off"/> +#> <label class="custom-control-label" for="radio-903-544">Choice 3</label> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/radiobarInput.html b/docs/reference/radiobarInput.html new file mode 100644 index 00000000..9a99a9c8 --- /dev/null +++ b/docs/reference/radiobarInput.html @@ -0,0 +1,283 @@ + + + + + + + + +Radiobar inputs — radiobarInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A stylized group of radio inputs. A radiobar input is similar to a button +group, but with a checked or highlighted stated. Additionally, only one value +at most may be selected at any given time.

    +
    + +
    radiobarInput(id, choices, values = choices, selected = values[[1]], ...)
    +
    +updateRadiobarInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    choices

    A character vector or list of tag elements specifying the +labels of the input's choices.

    values

    A vector specifying the values of the input's choices, +defaults to choices.

    selected

    One of values specifying the input's default selected +choice, defualts to values[[1]].

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    See also

    + + + +

    Examples

    +
    +### Radiobars + +radiobarInput( + id = "radiobar1", + choices = c( + "fusce sagittis", + "libero non molestie", + "magna orci", + "ultrices dolor" + ), + selected = "ultrices dolor" +) %>% + background("secondary")
    #> <div class="yonder-radiobar btn-group btn-group-toggle d-flex bg-secondary" id="radiobar1" data-toggle="buttons"> +#> <label class="btn"> +#> <input name="radiobar1" type="radio" value="fusce sagittis" autocomplete="off"/> +#> fusce sagittis +#> </label> +#> <label class="btn"> +#> <input name="radiobar1" type="radio" value="libero non molestie" autocomplete="off"/> +#> libero non molestie +#> </label> +#> <label class="btn"> +#> <input name="radiobar1" type="radio" value="magna orci" autocomplete="off"/> +#> magna orci +#> </label> +#> <label class="btn active"> +#> <input name="radiobar1" type="radio" value="ultrices dolor" checked autocomplete="off"/> +#> ultrices dolor +#> </label> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/rangeInput.html b/docs/reference/rangeInput.html new file mode 100644 index 00000000..270ccd39 --- /dev/null +++ b/docs/reference/rangeInput.html @@ -0,0 +1,274 @@ + + + + + + + + +Range input — rangeInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    rangeInput() creates a simple numeric range input.

    +
    + +
    rangeInput(id, min = 0, max = 100, default = min, step = 1, ...)
    +
    +updateRangeInput(
    +  id,
    +  value = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    min

    A number specifying the minimum value of the input, defaults to +0.

    max

    A number specifying the maximum value of the input, defaults to +100.

    default

    A number between min and max specifying the default value +of the input, defaults to min.

    step

    A number specifying the interval step of the input, defaults to +1.

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    value

    A number specifying a new value for the input, defaults to +NULL.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Details

    + +

    The sophistication of this input will improve as browsers adopt the latest +HTML standards.

    +

    See also

    + + + +

    Examples

    +
    +### Range inputs + +# Select from a range of numeric values. + +rangeInput(id = "range1")
    #> <div class="yonder-range" id="range1"> +#> <input class="custom-range" type="range" step="1" min="0" max="100" value="0" autocomplete="off"/> +#> </div>
    +### Custom step + +rangeInput(id = "range2", step = 10)
    #> <div class="yonder-range" id="range2"> +#> <input class="custom-range" type="range" step="10" min="0" max="100" value="0" autocomplete="off"/> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/reexports.html b/docs/reference/reexports.html new file mode 100644 index 00000000..5461d2e6 --- /dev/null +++ b/docs/reference/reexports.html @@ -0,0 +1,179 @@ + + + + + + + + +Objects exported from other packages — reexports • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    These objects are imported from other packages. Follow the links +below to see their documentation.

    +
    +
    magrittr

    %>%

    + +
    +
    + + + + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/replaceContent.html b/docs/reference/replaceContent.html new file mode 100644 index 00000000..5891feda --- /dev/null +++ b/docs/reference/replaceContent.html @@ -0,0 +1,203 @@ + + + + + + + + +Dynamic content — replaceContent • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    An application may require dynamic content. This content may be quite simple. +The content could also be quite variable. These tools are an alternative to +the standard output related render*() functions.

    +
    + +
    replaceContent(id, ..., session = getDefaultReactiveDomain())
    +
    +removeContent(id, session = getDefaultReactiveDomain())
    + +

    + + Arguments +

    + + + + + + + + + + + + + + +
    id

    A character string specifying a reactive id.

    ...

    Additional named arguments passed as HTML attributes to the parent +element or unnamed arguments passed as the new contents of the output +element.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Details

    + +

    These functions are experimental and are subject to change. Additionally, +they may be moved from this package entirely.

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/responsive.html b/docs/reference/responsive.html new file mode 100644 index 00000000..d468e73a --- /dev/null +++ b/docs/reference/responsive.html @@ -0,0 +1,235 @@ + + + + + + + + +Understanding responsive arguments — responsive • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A responsive argument may be a single value or a named list. Possible names +includes default or xs, sm, md, lg, and xl. Specifying a single +unnamed value is equivalent to specifying default or xs. The possible +values will be described in the specific help page. Most responsive arguments +will default to NULL in which case no corresponding style is applied.

    +

    Responsive arguments allow you to apply styles to tag elements based on the +size of the viewport. This is important when developing applications for both +web and mobile. Specifying a single unnamed value the style will be applied +for all viewport sizes. Use the names above to apply a style for viewports of +that size and larger. For example, specifying list(default = x, md = y) +will apply x on extra small and small viewports, but for medium, large, and +extra large viewports y is applied.

    +

    Styles for larger viewports take precedance. See below for details about each +breakpoint.

    +

    extra small

    +

    How: pass a single value, use name xs, or use name default.

    +

    When: the style is always applied, unless supplanted by a style for any other +viewport size.

    +

    small

    +

    How: use name sm.

    +

    When: the style is applied when the viewport is at least 576px wide, think +landscape phones.

    +

    medium

    +

    How: use name md.

    +

    When: the style is applied when the viewport is at least 768px wide, think +tablets.

    +

    large

    +

    How: use name lg.

    +

    When: the style is applied when the viewport is at least 992px wide, think +laptop or smaller desktops.

    +

    extra large

    +

    How: use name xl.

    +

    When: the style is applied when the viewport is at least 1200px wide, think +large desktops.

    +
    + + + + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/scroll.html b/docs/reference/scroll.html new file mode 100644 index 00000000..87375909 --- /dev/null +++ b/docs/reference/scroll.html @@ -0,0 +1,209 @@ + + + + + + + + +Vertical and horizontal scroll — scroll • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Many of the applications you build despite a complex layout will still fit +onto a single page. To help scroll long content alongside shorter content use +the scroll() utility function.

    +
    + +
    scroll(x, direction = "vertical")
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    direction

    One of "horizontal" or "vertical" specifying which +direction to scroll overflowing content, defaults to "vertical", in which +case the content may croll up and down.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +flex(), +float(), +font(), +height(), +margin(), +padding(), +shadow(), +width()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/selectInput.html b/docs/reference/selectInput.html new file mode 100644 index 00000000..7e550ad5 --- /dev/null +++ b/docs/reference/selectInput.html @@ -0,0 +1,368 @@ + + + + + + + + +Select inputs — selectInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Create a select input. Select elements typically appear as a simple menu of +choices and may have one selected choice. A group select input is a select +input with one or two additional components. These addon components are used +to change the reactivity or value of the input, see Details for more +information.

    +
    + +
    selectInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = values[[1]],
    +  ...,
    +  placeholder = NULL
    +)
    +
    +updateSelectInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = choices[[1]],
    +  enable = NULL,
    +  disable = NULL,
    +  valid = NULL,
    +  invalid = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    +
    +groupSelectInput(
    +  id,
    +  choices,
    +  values = choices,
    +  selected = values[[1]],
    +  ...,
    +  left = NULL,
    +  right = NULL
    +)
    +
    +updateGroupSelectInput(
    +  id,
    +  choices = NULL,
    +  values = choices,
    +  selected = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  valid = NULL,
    +  invalid = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    choices

    A character vector specifying the input's choices.

    values

    A character vector specifying the values of the input's +choices, defaults to choices.

    selected

    One of values indicating the default value of the input, +defaults to values[[1]].

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    placeholder

    A character string specifying the placeholder text of +the select input, defaults to NULL.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    valid

    A character string specifying a message to the user indicating +how the input's value is valid, defaults to NULL.

    invalid

    A character string specifying a message to the user +indicating how the input's value is invalid, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    left, right

    A character vector specifying static addons or +buttonInput() or dropdown() elements specifying dynamic addons. Addons +affect the reactive value of the group input, see the Details section below +for more information.

    +

    left is character or right is character

    +

    If left or right are character vectors, then the group input functions +like a text input. The value will update and trigger a reactive event when +the text box is modified. The group input's reactive value is the +concatention of the static addons specified by left or right and the +value of the text input.

    +

    left is button or right is button

    +

    The button does not change the value of the group input. However, the input +no longer triggers event when the text box is updated. Instead the value is +updated when a button is clicked. Static addons are still applied to the +group input value.

    +

    left is a dropdown or right is a dropdown

    +

    The value of the group input does chance depending on the clicked dropdown +menu item. The value of the input group is the concatentation of the +dropdown input value, the value of the text input, and any static addons.

    + +

    See also

    + + + +

    Examples

    +
    +### Simple select input + +selectInput( + id = "select1", + choices = c( + "Choice 1", + "Choice 2", + "Choice 3" + ), + values = list(1, 2, 3) +)
    #> <div class="yonder-select" id="select1"> +#> <input type="text" class="form-control custom-select" data-toggle="dropdown" data-boundary="window" placeholder="Choice 1"/> +#> <div class="dropdown-menu"> +#> <button class="dropdown-item active" value="1">Choice 1</button> +#> <button class="dropdown-item" value="2">Choice 2</button> +#> <button class="dropdown-item" value="3">Choice 3</button> +#> </div> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div>
    +### Group select input + +groupSelectInput( + id = "select2", + choices = 1:5, + left = "$", + right = ".00" +)
    #> <div class="yonder-group-select input-group" id="select2"> +#> <div class="input-group-prepend"> +#> <span class="input-group-text">$</span> +#> </div> +#> <select class="custom-select"> +#> <option selected value="1">1</option> +#> <option value="2">2</option> +#> <option value="3">3</option> +#> <option value="4">4</option> +#> <option value="5">5</option> +#> </select> +#> <div class="input-group-append"> +#> <span class="input-group-text">.00</span> +#> </div> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/shadow.html b/docs/reference/shadow.html new file mode 100644 index 00000000..7911a024 --- /dev/null +++ b/docs/reference/shadow.html @@ -0,0 +1,257 @@ + + + + + + + + +Shadows — shadow • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    The shadow utility applies a shadow to a tag element. By default many +elements include a shadow to help distinguish them. Use "none" to remove an +element's shadow.

    +
    + +
    shadow(x, size = "medium")
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    size

    One of "none", "small", "medium", or "large" specifying +the amount of shadow added, defaults to "medium".

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +flex(), +float(), +font(), +height(), +margin(), +padding(), +scroll(), +width()

    + +

    Examples

    +
    +### Styling a navbar + +div( + navbar(brand = "Navbar") %>% + background("dark") %>% + font("light") %>% + margin(bottom = 3), + p( + "Cras mattis consectetur purus sit amet fermentum. Donec sed ", + "odio dui. Lorem ipsum dolor sit amet, consectetur adipiscing ", + "elit. Aenean eu leo quam. Pellentesque ornare sem lacinia quam ", + "venenatis vestibulum." + ) +)
    #> <div> +#> <nav class="navbar navbar-expand navbar-light bg-dark text-light pb-3"> +#> <a class="navbar-brand" href="#">Navbar</a> +#> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#nav-content-949-70" aria-controls="nav-content-949-70" aria-expanded="false" aria-label="Toggle navigation"> +#> <span class="navbar-toggler-icon"></span> +#> </button> +#> <div class="collapse navbar-collapse" id="nav-content-949-70"></div> +#> </nav> +#> <p> +#> Cras mattis consectetur purus sit amet fermentum. Donec sed +#> odio dui. Lorem ipsum dolor sit amet, consectetur adipiscing +#> elit. Aenean eu leo quam. Pellentesque ornare sem lacinia quam +#> venenatis vestibulum. +#> </p> +#> </div>
    +### Different shadows + +div( + buttonInput(id = "b1", label = "Small") %>% + margin(2) %>% + shadow("small"), + buttonInput(id = "b2", label = "Medium") %>% + margin(2) %>% + shadow("medium"), + buttonInput(id = "b3", label = "Large") %>% + margin(2) %>% + shadow("large") +)
    #> <div> +#> <button class="yonder-button btn m-2 shadow-sm" type="button" role="button" id="b1" autocomplete="off">Small</button> +#> <button class="yonder-button btn m-2 shadow" type="button" role="button" id="b2" autocomplete="off">Medium</button> +#> <button class="yonder-button btn m-2 shadow-lg" type="button" role="button" id="b3" autocomplete="off">Large</button> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/textInput.html b/docs/reference/textInput.html new file mode 100644 index 00000000..2a183858 --- /dev/null +++ b/docs/reference/textInput.html @@ -0,0 +1,384 @@ + + + + + + + + +Text inputs — textInput • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    A text input. A group text input is an alternative text input. The group text +input allows you to include static prefixes or buttons with a standard text +input.

    +

    numberInput() is a simple wrapper around textInput() with type set to +"number" and explicit arguments for specifying a min value, max value, and +the step amount. Use updateTextInput() to update a number input.

    +
    + +
    textInput(id, value = NULL, placeholder = NULL, ..., type = "text")
    +
    +numberInput(
    +  id,
    +  value = NULL,
    +  placeholder = NULL,
    +  ...,
    +  min = NULL,
    +  max = NULL,
    +  step = 1
    +)
    +
    +updateTextInput(
    +  id,
    +  value = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  valid = NULL,
    +  invalid = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    +
    +groupTextInput(
    +  id,
    +  value = NULL,
    +  placeholder = NULL,
    +  ...,
    +  type = "text",
    +  left = NULL,
    +  right = NULL
    +)
    +
    +updateGroupTextInput(
    +  id,
    +  value = NULL,
    +  enable = NULL,
    +  disable = NULL,
    +  valid = NULL,
    +  invalid = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    id

    A character string specifying the id of the reactive input.

    value

    A character string or a value coerced to a character string +specifying the default value of the textual input.

    placeholder

    A character string specifying placeholder text for the +input, defaults to NULL, in which case there is no placeholder text.

    ...

    Additional named arguments passed as HTML attributes to the +parent element or tag elements passed as child elements to the parent +element.

    type

    One of "color", "date", "datetime-local", "email", "month", "number", "password", "search", "tel", "text", "time", "url" or "week" specifying the type of text input, defaults to "text".

    +

    For details on a particular type please see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input.

    min

    A number specifying the minimum allowed value of the number input, +defaults to NULL.

    max

    A number specifying the maximum allowed value of the number input, +defaults to NULL.

    step

    A number specifying the increment step of the number input, +defaults to 1.

    enable

    One of values specifying particular choices to enable or +TRUE specifying the entire input is enabled, defaults to NULL.

    disable

    One of values specifying particular choices to disable or +TRUE specifying the entire input is disabled, defaults to NULL.

    valid

    A character string specifying a message to the user indicating +how the input's value is valid, defaults to NULL.

    invalid

    A character string specifying a message to the user +indicating how the input's value is invalid, defaults to NULL.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    left

    A character vector specifying static addons or +buttonInput() or dropdown() elements specifying dynamic addons. Addons +affect the reactive value of the group input, see the Details section below +for more information.

    +

    left is character or right is character

    +

    If left or right are character vectors, then the group input functions +like a text input. The value will update and trigger a reactive event when +the text box is modified. The group input's reactive value is the +concatention of the static addons specified by left or right and the +value of the text input.

    +

    left is button or right is button

    +

    The button does not change the value of the group input. However, the input +no longer triggers event when the text box is updated. Instead the value is +updated when a button is clicked. Static addons are still applied to the +group input value.

    +

    left is a dropdown or right is a dropdown

    +

    The value of the group input does chance depending on the clicked dropdown +menu item. The value of the input group is the concatentation of the +dropdown input value, the value of the text input, and any static addons.

    right

    A character vector specifying static addons or +buttonInput() or dropdown() elements specifying dynamic addons. Addons +affect the reactive value of the group input, see the Details section below +for more information.

    +

    left is character or right is character

    +

    If left or right are character vectors, then the group input functions +like a text input. The value will update and trigger a reactive event when +the text box is modified. The group input's reactive value is the +concatention of the static addons specified by left or right and the +value of the text input.

    +

    left is button or right is button

    +

    The button does not change the value of the group input. However, the input +no longer triggers event when the text box is updated. Instead the value is +updated when a button is clicked. Static addons are still applied to the +group input value.

    +

    left is a dropdown or right is a dropdown

    +

    The value of the group input does chance depending on the clicked dropdown +menu item. The value of the input group is the concatentation of the +dropdown input value, the value of the text input, and any static addons.

    + +

    See also

    + + + +

    Examples

    +
    +### Default text input + +textInput(id = "text")
    #> <div class="yonder-textual" id="text"> +#> <input class="form-control" type="text" autocomplete="off"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div>
    +### Default number input + +numberInput(id = "num1")
    #> <div class="yonder-textual" id="num1"> +#> <input class="form-control" type="number" autocomplete="off" step="1"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div>
    +### Specify `min`, `max`, and `step` + +numberInput( + id = "num2", + min = 1, + max = 10, + step = 2 +)
    #> <div class="yonder-textual" id="num2"> +#> <input class="form-control" type="number" autocomplete="off" min="1" max="10" step="2"/> +#> <div class="valid-feedback"></div> +#> <div class="invalid-feedback"></div> +#> </div>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/toast.html b/docs/reference/toast.html new file mode 100644 index 00000000..0a56fda5 --- /dev/null +++ b/docs/reference/toast.html @@ -0,0 +1,350 @@ + + + + + + + + +Toasts — toast • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Send notifications to the user. Create notification elements, toasts, with +the toast() function. Display toasts with showToast() and remove all +active toasts with closeToast().

    +
    + +
    toast(header, ...)
    +
    +showToast(
    +  toast,
    +  duration = 4,
    +  action = NULL,
    +  session = getDefaultReactiveDomain()
    +)
    +
    +closeToast(session = getDefaultReactiveDomain())
    + +

    + + Arguments +

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    header

    A character string or tag element specifying a header for the +toast, defaults to NULL. A close button is always included in the +header.

    ...

    Any number of character strings or tag elements to include in the +body of the toast.

    +

    Any number of named arguments passed as HTML attributes to the parent +element.

    toast

    A toast element, typically built with toast().

    duration

    A positive integer or NULL specifying the duration of the +toast in seconds by default a toast is removed after 4 seconds. If NULL +the toast is not automatically removed.

    action

    A character string specifying a reactive id. If specified, the +hiding or closing of the toast will set the reactive id action to TRUE.

    session

    A reactive context, defaults to getDefaultReactiveDomain().

    + +

    Showing notifications

    + +

    ui <- container(
    +  buttonInput(
    +    id = "show",
    +    label = "Show notification"
    +  ) %>%
    +    margin(3)
    +)
    +
    +server <- function(input, output) {
    +  observeEvent(input$show, {
    +    showToast(
    +      toast(
    +        list(
    +          span("Notification") %>%
    +            margin(right = "4"),
    +          span(strftime(Sys.time(), "%H:%M")) %>%
    +            margin(right = 1)
    +        ),
    +        "This is notification ", input$show
    +      ) %>%
    +        margin(right = 2, top = 2)
    +    )
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    Reacting to notifications

    + + + + +

    When a notification is not automatically closed you may want to know +when the notification is manually closed.

    ui <- container(
    +  buttonInput(
    +    id = "show",
    +    label = "Show notification"
    +  ) %>%
    +    margin(3)
    +)
    +
    +server <- function(input, output) {
    +  observeEvent(input$show, {
    +    showToast(
    +      action = "undo",
    +      duration = NULL,
    +      toast(
    +        tags$strong("Close") %>%
    +          margin(right = "auto"),
    +        "When closing this notification, see the console"
    +      ) %>%
    +        margin(right = 2, top = 2)
    +    )
    +  })
    +
    +  observeEvent(input$undo, {
    +    print("The notification was closed")
    +  })
    +}
    +
    +shinyApp(ui, server)
    +

    +

    See also

    + +

    Other components: +alert(), +badge(), +blockquote(), +card(), +collapsePane(), +d1(), +dropdown(), +img(), +jumbotron(), +modal(), +navContent(), +popover(), +pre()

    + +

    Examples

    +
    +### A simple toast + +# The `"fade"` and `"show"` classes have been added for the sake of +# these examples. + +toast( + class = "fade show", + header = div("Header") %>% + margin(right = "auto"), + "Hello, world!" +)
    #> <div aria-atomic="true" aria-live="polite" class="toast fade show" role="alert"> +#> <div class="toast-header"> +#> <div class="pr-auto">Header</div> +#> <button type="button" class="ml-auto close" data-dismiss="toast" aria-label="Close"> +#> <span aria-hidden="true">&times;</span> +#> </button> +#> </div> +#> <div class="toast-body">Hello, world!</div> +#> </div>
    +### Styling pieces of a toast + +toast( + class = "fade show", + list( + div("Notification") %>% + font(weight = "bold") %>% + margin(right = "auto"), + tags$small("1 min ago") + ), + "Hello, world!" +)
    #> <div aria-atomic="true" aria-live="polite" class="toast fade show" role="alert"> +#> <div class="toast-header"> +#> <div class="font-weight-bold pr-auto">Notification</div> +#> <small>1 min ago</small> +#> <button type="button" class="ml-auto close" data-dismiss="toast" aria-label="Close"> +#> <span aria-hidden="true">&times;</span> +#> </button> +#> </div> +#> <div class="toast-body">Hello, world!</div> +#> </div>
    +
    +
    + +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/webpage.html b/docs/reference/webpage.html new file mode 100644 index 00000000..00ad4830 --- /dev/null +++ b/docs/reference/webpage.html @@ -0,0 +1,235 @@ + + + + + + + + +User interface — webpage • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Begin creating a user interface. The webpage() function properly lays out a +navigation bar and main section of elements.

    +
    + +
    webpage(..., nav = NULL)
    + +

    + + Arguments +

    + + + + + + + + + + +
    ...

    Any number of tag elements or named values added as children and +attributes to the main section of the page.

    nav

    A navigation element, typically a call to navbar(), added at the +top of the page, defaults to NULL.

    + +

    See also

    + +

    Other layout functions: +column(), +fieldset(), +navbar()

    + +

    Examples

    +
    +webpage( + p("Pretty simple") +)
    #> <body> +#> <header></header> +#> <main role="main"> +#> <p>Pretty simple</p> +#> </main> +#> </body>
    +webpage( + nav = navbar(), + container( + columns( + column(), + column() + ) + ) +)
    #> <body> +#> <header> +#> <nav class="navbar navbar-expand navbar-light"> +#> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#nav-content-265-150" aria-controls="nav-content-265-150" aria-expanded="false" aria-label="Toggle navigation"> +#> <span class="navbar-toggler-icon"></span> +#> </button> +#> <div class="collapse navbar-collapse" id="nav-content-265-150"></div> +#> </nav> +#> </header> +#> <main role="main"> +#> <div class="container-fluid"> +#> <div class="row"> +#> <div class="col"></div> +#> <div class="col"></div> +#> </div> +#> </div> +#> </main> +#> </body>
    +
    +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/width.html b/docs/reference/width.html new file mode 100644 index 00000000..bc1a1841 --- /dev/null +++ b/docs/reference/width.html @@ -0,0 +1,218 @@ + + + + + + + + +Width — width • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Utility function to change a tag element's width. Widths are specified +relative the width of a parent element, an element's content, or the size of +the browser window.

    +
    + +
    width(x, size)
    + +

    + + Arguments +

    + + + + + + + + + + +
    x

    A tag element or .style pronoun.

    size

    A character string or number specifying the width of the tag +element. Possible values:

    +

    One of 25, 50, 75, or 100 specifying the element's width is a percentage of +its parent's width. The width of the parent element must be +specified. Percentages do not account for margins or padding and may cause +an element to extend beyond its parent element.

    +

    "auto", in which case the element's width is determined by the browser. +The browser will take into account the width, padding, margins, and border +of the tag element's parent to keep the element from extending beyond its +parent.

    +

    "viewport", in which case the element's width is determined by the size +of the browser window.

    + +

    See also

    + +

    Other design utilities: +active(), +affix(), +background(), +border(), +display(), +flex(), +float(), +font(), +height(), +margin(), +padding(), +scroll(), +shadow()

    + +
    +
    +

    Contents

    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/yonder-package.html b/docs/reference/yonder-package.html new file mode 100644 index 00000000..35909c2e --- /dev/null +++ b/docs/reference/yonder-package.html @@ -0,0 +1,243 @@ + + + + + + + + +An opinionated shiny framework — yonder-package • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    + +

    Yonder is a set of tools for flexible and creative shiny application +construction and design.

    + +
    + + +

    Inputs

    + + + + +

    Yonder provides many familiar inputs like selectInput() or radioInput(). +There are also new inputs like groupTextInput() or formInput().

    +

    Changes to be mindful of

      +
    • Input functions have an id argument instead of inputId.

    • +
    • Input functions do not include a label argument for the purpose of adding +a label above the input. Button and menu inputs do include a label +argument, but these arguments refer to button labels. If you would like to +add a label above an input please use formGroup().

    • +
    + +

    Familiar variants

    +

    Looking for ... ?

    + + +

    Layout and content

    + + + + +

    Included are a handful of utilities for building applications suited for +devices and screens of varying sizes. For real control over spacing elements +be sure to check out flex(), which gives you the power of flexbox layout.

    +

    Familiar variants

    +

    Looking for ... ?

    + + +

    See also

    + + + + +
    +
    +

    Contents

    + + +

    Author

    +

    Maintainer: Nathan Teetor nathanteetor@gmail.com

    +

    Other contributors:

      +
    • The Bootstrap Authors (Bootstrap library) [copyright holder]

    • +
    • Twitter, Inc (Bootstrap library) [copyright holder]

    • +
    • JS Foundation (jQuery library) [copyright holder]

    • +
    • Federico Zivolo (popper.js library) [contributor, copyright holder]

    • +
    • Johann Servoire (bs-custom-file-input library) [contributor, copyright holder]

    • +
    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/reference/yonder.html b/docs/reference/yonder.html new file mode 100644 index 00000000..8c74e463 --- /dev/null +++ b/docs/reference/yonder.html @@ -0,0 +1,236 @@ + + + + + + + + +An opinionated shiny framework — yonder • yonder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +
    +
    + + +
    +

    Yonder is a set of tools for flexible and creative shiny application +construction and design.

    +
    + + + +

    Inputs

    + + + + +

    Yonder provides many familiar inputs like selectInput() or radioInput(). +There are also new inputs like groupTextInput() or formInput().

    +

    Changes to be mindful of

      +
    • Input functions have an id argument instead of inputId.

    • +
    • Input functions do not include a label argument for the purpose of adding +a label above the input. Button and menu inputs do include a label +argument, but these arguments refer to button labels. If you would like to +add a label above an input please use formGroup().

    • +
    + +

    Familiar variants

    +

    Looking for ... ?

    + +

    Layout and content

    + + + + +

    Included are a handful of utilities for building applications suited for +devices and screens of varying sizes. For real control over spacing elements +be sure to check out flex(), which gives you the power of flexbox layout.

    +

    Familiar variants

    +

    Looking for ... ?

    + +

    See also

    + + + +
    +
    +

    Contents

    + + +

    Author

    +

    Maintainer: Nathan Teetor nathanteetor@gmail.com

    +

    Other contributors:

      +
    • The Bootstrap Authors (Bootstrap library) [copyright holder]

    • +
    • Twitter, Inc (Bootstrap library) [copyright holder]

    • +
    • JS Foundation (jQuery library) [copyright holder]

    • +
    • Federico Zivolo (popper.js library) [contributor, copyright holder]

    • +
    • Johann Servoire (bs-custom-file-input library) [contributor, copyright holder]

    • +
    + + +
    +
    + +
    +
    + +
    + + +
    + + + + + + + + diff --git a/docs/sitemap.xml b/docs/sitemap.xml new file mode 100644 index 00000000..05a31ecc --- /dev/null +++ b/docs/sitemap.xml @@ -0,0 +1,165 @@ + + + + https://nteetor.github.io/yonder/index.html + + + https://nteetor.github.io/yonder/reference/active.html + + + https://nteetor.github.io/yonder/reference/affix.html + + + https://nteetor.github.io/yonder/reference/alert.html + + + https://nteetor.github.io/yonder/reference/background.html + + + https://nteetor.github.io/yonder/reference/badge.html + + + https://nteetor.github.io/yonder/reference/blockquote.html + + + https://nteetor.github.io/yonder/reference/border.html + + + https://nteetor.github.io/yonder/reference/buttonGroupInput.html + + + https://nteetor.github.io/yonder/reference/buttonInput.html + + + https://nteetor.github.io/yonder/reference/card.html + + + https://nteetor.github.io/yonder/reference/checkbarInput.html + + + https://nteetor.github.io/yonder/reference/checkboxInput.html + + + https://nteetor.github.io/yonder/reference/chipInput.html + + + https://nteetor.github.io/yonder/reference/collapsePane.html + + + https://nteetor.github.io/yonder/reference/column.html + + + https://nteetor.github.io/yonder/reference/d1.html + + + https://nteetor.github.io/yonder/reference/display.html + + + https://nteetor.github.io/yonder/reference/dot-style.html + + + https://nteetor.github.io/yonder/reference/dropdown.html + + + https://nteetor.github.io/yonder/reference/fieldset.html + + + https://nteetor.github.io/yonder/reference/fileInput.html + + + https://nteetor.github.io/yonder/reference/flex.html + + + https://nteetor.github.io/yonder/reference/float.html + + + https://nteetor.github.io/yonder/reference/font.html + + + https://nteetor.github.io/yonder/reference/formGroup.html + + + https://nteetor.github.io/yonder/reference/formInput.html + + + https://nteetor.github.io/yonder/reference/height.html + + + https://nteetor.github.io/yonder/reference/img.html + + + https://nteetor.github.io/yonder/reference/jumbotron.html + + + https://nteetor.github.io/yonder/reference/listGroupInput.html + + + https://nteetor.github.io/yonder/reference/margin.html + + + https://nteetor.github.io/yonder/reference/menuInput.html + + + https://nteetor.github.io/yonder/reference/modal.html + + + https://nteetor.github.io/yonder/reference/navContent.html + + + https://nteetor.github.io/yonder/reference/navInput.html + + + https://nteetor.github.io/yonder/reference/navbar.html + + + https://nteetor.github.io/yonder/reference/padding.html + + + https://nteetor.github.io/yonder/reference/popover.html + + + https://nteetor.github.io/yonder/reference/pre.html + + + https://nteetor.github.io/yonder/reference/radioInput.html + + + https://nteetor.github.io/yonder/reference/radiobarInput.html + + + https://nteetor.github.io/yonder/reference/rangeInput.html + + + https://nteetor.github.io/yonder/reference/reexports.html + + + https://nteetor.github.io/yonder/reference/replaceContent.html + + + https://nteetor.github.io/yonder/reference/responsive.html + + + https://nteetor.github.io/yonder/reference/scroll.html + + + https://nteetor.github.io/yonder/reference/selectInput.html + + + https://nteetor.github.io/yonder/reference/shadow.html + + + https://nteetor.github.io/yonder/reference/textInput.html + + + https://nteetor.github.io/yonder/reference/toast.html + + + https://nteetor.github.io/yonder/reference/webpage.html + + + https://nteetor.github.io/yonder/reference/width.html + + + https://nteetor.github.io/yonder/reference/yonder.html + + diff --git a/docs/yonder.min.css b/docs/yonder.min.css new file mode 100644 index 00000000..a1e13318 --- /dev/null +++ b/docs/yonder.min.css @@ -0,0 +1,8 @@ +/*! + * An opinionated build of Bootstrap 4 for the yonder r package + *//*! + * Bootstrap v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}@media (max-width:1200px){legend{font-size:calc(1.275rem + .3vw)}}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}@media (max-width:1200px){.h1,h1{font-size:calc(1.375rem + 1.5vw)}}.h2,h2{font-size:2rem}@media (max-width:1200px){.h2,h2{font-size:calc(1.325rem + .9vw)}}.h3,h3{font-size:1.75rem}@media (max-width:1200px){.h3,h3{font-size:calc(1.3rem + .6vw)}}.h4,h4{font-size:1.5rem}@media (max-width:1200px){.h4,h4{font-size:calc(1.275rem + .3vw)}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}@media (max-width:1200px){.display-1{font-size:calc(1.725rem + 5.7vw)}}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}@media (max-width:1200px){.display-2{font-size:calc(1.675rem + 5.1vw)}}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}@media (max-width:1200px){.display-3{font-size:calc(1.575rem + 3.9vw)}}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}@media (max-width:1200px){.display-4{font-size:calc(1.475rem + 2.7vw)}}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem;box-shadow:inset 0 -.1rem 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65;box-shadow:none}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125)}.btn:not(:disabled):not(.disabled).active:focus,.btn:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.25),0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125)}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-group-primary>.btn,.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-primary>.btn:hover,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-group-primary>.btn:focus,.btn-group-primary>.focus.btn,.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(38,143,255,.5)}.btn-group-primary>.btn:disabled,.btn-group-primary>.disabled.btn,.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-group-primary.show>.dropdown-toggle.btn,.btn-group-primary>.btn:not(:disabled):not(.disabled).active,.btn-group-primary>.btn:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-group-primary.show>.dropdown-toggle.btn:focus,.btn-group-primary>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-primary>.btn:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(38,143,255,.5)}.btn-group-secondary>.btn,.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-secondary>.btn:hover,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-group-secondary>.btn:focus,.btn-group-secondary>.focus.btn,.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(130,138,145,.5)}.btn-group-secondary>.btn:disabled,.btn-group-secondary>.disabled.btn,.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-group-secondary.show>.dropdown-toggle.btn,.btn-group-secondary>.btn:not(:disabled):not(.disabled).active,.btn-group-secondary>.btn:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-group-secondary.show>.dropdown-toggle.btn:focus,.btn-group-secondary>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-secondary>.btn:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(130,138,145,.5)}.btn-group-success>.btn,.btn-success{color:#fff;background-color:#28a745;border-color:#28a745;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-success>.btn:hover,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-group-success>.btn:focus,.btn-group-success>.focus.btn,.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(72,180,97,.5)}.btn-group-success>.btn:disabled,.btn-group-success>.disabled.btn,.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-group-success.show>.dropdown-toggle.btn,.btn-group-success>.btn:not(:disabled):not(.disabled).active,.btn-group-success>.btn:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-group-success.show>.dropdown-toggle.btn:focus,.btn-group-success>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-success>.btn:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(72,180,97,.5)}.btn-group-info>.btn,.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-info>.btn:hover,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-group-info>.btn:focus,.btn-group-info>.focus.btn,.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(58,176,195,.5)}.btn-group-info>.btn:disabled,.btn-group-info>.disabled.btn,.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-group-info.show>.dropdown-toggle.btn,.btn-group-info>.btn:not(:disabled):not(.disabled).active,.btn-group-info>.btn:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-group-info.show>.dropdown-toggle.btn:focus,.btn-group-info>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-info>.btn:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(58,176,195,.5)}.btn-group-warning>.btn,.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-warning>.btn:hover,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-group-warning>.btn:focus,.btn-group-warning>.focus.btn,.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(222,170,12,.5)}.btn-group-warning>.btn:disabled,.btn-group-warning>.disabled.btn,.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-group-warning.show>.dropdown-toggle.btn,.btn-group-warning>.btn:not(:disabled):not(.disabled).active,.btn-group-warning>.btn:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-group-warning.show>.dropdown-toggle.btn:focus,.btn-group-warning>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-warning>.btn:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger,.btn-group-danger>.btn{color:#fff;background-color:#dc3545;border-color:#dc3545;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-danger:hover,.btn-group-danger>.btn:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus,.btn-group-danger>.btn:focus,.btn-group-danger>.focus.btn{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled,.btn-group-danger>.btn:disabled,.btn-group-danger>.disabled.btn{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.btn-group-danger.show>.dropdown-toggle.btn,.btn-group-danger>.btn:not(:disabled):not(.disabled).active,.btn-group-danger>.btn:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-group-danger.show>.dropdown-toggle.btn:focus,.btn-group-danger>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-danger>.btn:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(225,83,97,.5)}.btn-group-light>.btn,.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-group-light>.btn:hover,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-group-light>.btn:focus,.btn-group-light>.focus.btn,.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(216,217,219,.5)}.btn-group-light>.btn:disabled,.btn-group-light>.disabled.btn,.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-group-light.show>.dropdown-toggle.btn,.btn-group-light>.btn:not(:disabled):not(.disabled).active,.btn-group-light>.btn:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-group-light.show>.dropdown-toggle.btn:focus,.btn-group-light>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-light>.btn:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark,.btn-group-dark>.btn{color:#fff;background-color:#343a40;border-color:#343a40;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075)}.btn-dark:hover,.btn-group-dark>.btn:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus,.btn-group-dark>.btn:focus,.btn-group-dark>.focus.btn{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled,.btn-group-dark>.btn:disabled,.btn-group-dark>.disabled.btn{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.btn-group-dark.show>.dropdown-toggle.btn,.btn-group-dark>.btn:not(:disabled):not(.disabled).active,.btn-group-dark>.btn:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-group-dark.show>.dropdown-toggle.btn:focus,.btn-group-dark>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-dark>.btn:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(82,88,93,.5)}.btn-group-outline-primary>.btn,.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-group-outline-primary>.btn:hover,.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-group-outline-primary>.btn:focus,.btn-group-outline-primary>.focus.btn,.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-group-outline-primary>.btn:disabled,.btn-group-outline-primary>.disabled.btn,.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-group-outline-primary.show>.dropdown-toggle.btn,.btn-group-outline-primary>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-primary>.btn:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-group-outline-primary.show>.dropdown-toggle.btn:focus,.btn-group-outline-primary>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-primary>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(0,123,255,.5)}.btn-group-outline-secondary>.btn,.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-group-outline-secondary>.btn:hover,.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-group-outline-secondary>.btn:focus,.btn-group-outline-secondary>.focus.btn,.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-group-outline-secondary>.btn:disabled,.btn-group-outline-secondary>.disabled.btn,.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-group-outline-secondary.show>.dropdown-toggle.btn,.btn-group-outline-secondary>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-secondary>.btn:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-group-outline-secondary.show>.dropdown-toggle.btn:focus,.btn-group-outline-secondary>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-secondary>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(108,117,125,.5)}.btn-group-outline-success>.btn,.btn-outline-success{color:#28a745;border-color:#28a745}.btn-group-outline-success>.btn:hover,.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-group-outline-success>.btn:focus,.btn-group-outline-success>.focus.btn,.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-group-outline-success>.btn:disabled,.btn-group-outline-success>.disabled.btn,.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-group-outline-success.show>.dropdown-toggle.btn,.btn-group-outline-success>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-success>.btn:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-group-outline-success.show>.dropdown-toggle.btn:focus,.btn-group-outline-success>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-success>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(40,167,69,.5)}.btn-group-outline-info>.btn,.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-group-outline-info>.btn:hover,.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-group-outline-info>.btn:focus,.btn-group-outline-info>.focus.btn,.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-group-outline-info>.btn:disabled,.btn-group-outline-info>.disabled.btn,.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-group-outline-info.show>.dropdown-toggle.btn,.btn-group-outline-info>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-info>.btn:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-group-outline-info.show>.dropdown-toggle.btn:focus,.btn-group-outline-info>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-info>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(23,162,184,.5)}.btn-group-outline-warning>.btn,.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-group-outline-warning>.btn:hover,.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-group-outline-warning>.btn:focus,.btn-group-outline-warning>.focus.btn,.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-group-outline-warning>.btn:disabled,.btn-group-outline-warning>.disabled.btn,.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-group-outline-warning.show>.dropdown-toggle.btn,.btn-group-outline-warning>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-warning>.btn:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-group-outline-warning.show>.dropdown-toggle.btn:focus,.btn-group-outline-warning>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-warning>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(255,193,7,.5)}.btn-group-outline-danger>.btn,.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-group-outline-danger>.btn:hover,.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-group-outline-danger>.btn:focus,.btn-group-outline-danger>.focus.btn,.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-group-outline-danger>.btn:disabled,.btn-group-outline-danger>.disabled.btn,.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-group-outline-danger.show>.dropdown-toggle.btn,.btn-group-outline-danger>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-danger>.btn:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-group-outline-danger.show>.dropdown-toggle.btn:focus,.btn-group-outline-danger>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-danger>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(220,53,69,.5)}.btn-group-outline-light>.btn,.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-group-outline-light>.btn:hover,.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-group-outline-light>.btn:focus,.btn-group-outline-light>.focus.btn,.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-group-outline-light>.btn:disabled,.btn-group-outline-light>.disabled.btn,.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-group-outline-light.show>.dropdown-toggle.btn,.btn-group-outline-light>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-light>.btn:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-group-outline-light.show>.dropdown-toggle.btn:focus,.btn-group-outline-light>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-light>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(248,249,250,.5)}.btn-group-outline-dark>.btn,.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-group-outline-dark>.btn:hover,.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-group-outline-dark>.btn:focus,.btn-group-outline-dark>.focus.btn,.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-group-outline-dark>.btn:disabled,.btn-group-outline-dark>.disabled.btn,.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-group-outline-dark.show>.dropdown-toggle.btn,.btn-group-outline-dark>.btn:not(:disabled):not(.disabled).active,.btn-group-outline-dark>.btn:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-group-outline-dark.show>.dropdown-toggle.btn:focus,.btn-group-outline-dark>.btn:not(:disabled):not(.disabled).active:focus,.btn-group-outline-dark>.btn:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125),0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.175)}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:0 1px 1px rgba(0,0,0,.125),0 2px 2px rgba(0,0,0,.125),0 4px 4px rgba(0,0,0,.125),0 8px 8px rgba(0,0,0,.125)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff;box-shadow:none}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 1px 1px rgba(0,0,0,.075),0 2px 2px rgba(0,0,0,.075),0 4px 4px rgba(0,0,0,.075),0 8px 8px rgba(0,0,0,.075),0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff;box-shadow:none}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff;box-shadow:none}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem;box-shadow:inset 0 .1rem .1rem rgba(0,0,0,.1)}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary,.list-group-primary .list-group-item{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover,.list-group-primary .list-group-item-action.list-group-item:focus,.list-group-primary .list-group-item-action.list-group-item:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active,.list-group-primary .list-group-item-action.active.list-group-item{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary,.list-group-secondary .list-group-item{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover,.list-group-secondary .list-group-item-action.list-group-item:focus,.list-group-secondary .list-group-item-action.list-group-item:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active,.list-group-secondary .list-group-item-action.active.list-group-item{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success,.list-group-success .list-group-item{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover,.list-group-success .list-group-item-action.list-group-item:focus,.list-group-success .list-group-item-action.list-group-item:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active,.list-group-success .list-group-item-action.active.list-group-item{color:#fff;background-color:#155724;border-color:#155724}.list-group-info .list-group-item,.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-info .list-group-item-action.list-group-item:focus,.list-group-info .list-group-item-action.list-group-item:hover,.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-info .list-group-item-action.active.list-group-item,.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning,.list-group-warning .list-group-item{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover,.list-group-warning .list-group-item-action.list-group-item:focus,.list-group-warning .list-group-item-action.list-group-item:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active,.list-group-warning .list-group-item-action.active.list-group-item{color:#fff;background-color:#856404;border-color:#856404}.list-group-danger .list-group-item,.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-danger .list-group-item-action.list-group-item:focus,.list-group-danger .list-group-item-action.list-group-item:hover,.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-danger .list-group-item-action.active.list-group-item,.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light,.list-group-light .list-group-item{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover,.list-group-light .list-group-item-action.list-group-item:focus,.list-group-light .list-group-item-action.list-group-item:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active,.list-group-light .list-group-item-action.active.list-group-item{color:#fff;background-color:#818182;border-color:#818182}.list-group-dark .list-group-item,.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-dark .list-group-item-action.list-group-item:focus,.list-group-dark .list-group-item-action.list-group-item:hover,.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-dark .list-group-item-action.active.list-group-item,.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}@media (max-width:1200px){.close{font-size:calc(1.275rem + .3vw)}}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.5)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 1px 1px rgba(0,0,0,.19),0 2px 2px rgba(0,0,0,.19)!important}.shadow{box-shadow:0 1px 1px rgba(0,0,0,.15),0 2px 2px rgba(0,0,0,.15),0 4px 4px rgba(0,0,0,.15),0 8px 8px rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1px 1px rgba(0,0,0,.11),0 2px 2px rgba(0,0,0,.11),0 4px 4px rgba(0,0,0,.11),0 8px 8px rgba(0,0,0,.11),0 16px 16px rgba(0,0,0,.11),0 32px 32px rgba(0,0,0,.11)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}.btn-link{padding:0;vertical-align:inherit;text-align:inherit}.btn-link.active,.btn-link:active{box-shadow:none}.custom-control-group-primary .custom-control-input:checked~.custom-control-label::before{background-color:#007bff;border-color:#007bff}.custom-control-group-secondary .custom-control-input:checked~.custom-control-label::before{background-color:#6c757d;border-color:#6c757d}.custom-control-group-success .custom-control-input:checked~.custom-control-label::before{background-color:#28a745;border-color:#28a745}.custom-control-group-info .custom-control-input:checked~.custom-control-label::before{background-color:#17a2b8;border-color:#17a2b8}.custom-control-group-warning .custom-control-input:checked~.custom-control-label::before{background-color:#ffc107;border-color:#ffc107}.custom-control-group-danger .custom-control-input:checked~.custom-control-label::before{background-color:#dc3545;border-color:#dc3545}.custom-control-group-light .custom-control-input:checked~.custom-control-label::before{background-color:#f8f9fa;border-color:#f8f9fa}.custom-control-group-dark .custom-control-input:checked~.custom-control-label::before{background-color:#343a40;border-color:#343a40} \ No newline at end of file diff --git a/man/roxygen/_setup.Rmd b/man/roxygen/_setup.Rmd new file mode 100644 index 00000000..d637103b --- /dev/null +++ b/man/roxygen/_setup.Rmd @@ -0,0 +1,9 @@ +```{r, include = FALSE} +knitr::opts_chunk$set( + results = "asis", + eval = TRUE +) + +library(yonder) +options(yonder.deps = FALSE) +``` diff --git a/man/roxygen/background-inputs.Rmd b/man/roxygen/background-inputs.Rmd new file mode 100644 index 00000000..4b55826c --- /dev/null +++ b/man/roxygen/background-inputs.Rmd @@ -0,0 +1,28 @@ +--- +output: + rmarkdown::github_document: + pandoc_args: [ + "--to", "html5" + ] +--- + +```{r, child = "_setup.Rmd", include = FALSE} +``` + +# Changing input backgrounds + +Input backgrounds will change differently according to the particular input. +Changing the background of a `buttonGroupInput()` will change the background +colors of the buttons in the group. + +```{r, results="asis"} +buttonGroupInput( + .style %>% + background("info"), + id = "flavors", + choices = c("Mint", "Strawberry", "Swirl"), + values = c("mint", "sberry", "swirl") +) +``` + +Another one. diff --git a/pkgdown/index.Rmd b/pkgdown/index.Rmd new file mode 100644 index 00000000..62579def --- /dev/null +++ b/pkgdown/index.Rmd @@ -0,0 +1,232 @@ +--- +always_allow_html: yes +output: + github_document: + pandoc_args: ["--wrap=preserve", "--to", "html5"] +--- + +```{r, setup, include = FALSE} +knitr::opts_chunk$set( + eval = TRUE, + results = "asis" +) + +# library(yonder) +devtools::load_all("..") +options(yonder.deps = FALSE) +``` + +```{r} +d3("yonder") +``` + +

    +A shiny framework. +

    + +```{r, echo = FALSE} +p( + class = "lead", + "Build shiny applications with an all new set of", + "inputs, utilties, and design tools. Click", + linkInput( + id = NULL, + label = "here", + `data-toggle` = "collapse", + `data-target` = ".hasCopyButton" + ), + "to see these great new tools help build pieces of this page." +) +``` + +## Inputs + +::: { .row } +::: { .col-md-6 .col-12 } +```{r} +# button group input +div( + .style %>% + display("flex") %>% + flex(justify = "center"), + buttonGroupInput( + .style %>% + background("primary"), + id = NULL, + choices = c("Sample", "Model", "Download") + ) +) +``` +::: + +::: { .col-md-6 .col-12 } +New inputs let you build a variety of user interfaces. Develop the best ui for +your users' needs. Whether you are building an application for personal use, +internal use, or public use an intuitive ui helps guide users through your +application. +::: +::: + +::: { .row } +::: { .col-md-6 .col-12 } +As shiny developers we are not only developing programs and scripts for a +variety of users we are developing applications for many different devices. +Yonder's inputs are ready for both mobile and web. Once you include +::: + +::: { .col-md-6 .col-12 } +```{r} +# list group input +div( + .style %>% + display("flex") %>% + flex(align = "center", justify = "center"), + card( + .style %>% + border("info") %>% + background("info") %>% + font("light"), + header = "Learn more", + listGroupInput( + .style %>% + background("info"), + flush = TRUE, + id = NULL, + choices = c("About", "Our process", "Partners", "License") + ) + ) +) +``` +::: +::: + +## Designs + +::: { .row } +::: { .col-12 } +Based on the widely used Bootstrap library, yonder provides a series of design +utilities to help prototype and produce the shiny apps you imagine. +::: +::: + +::: { .row } +::: { .col-4-md .col-12 } +That control panel never has to sit on the left again. +::: + +::: { .col-8-md .col-12 } +```{r} +div( + .style %>% + width(100) %>% + padding(2) %>% + display("flex") %>% + flex(justify = "center") %>% + border("dark", round = "all"), + card( + header = "Controls", + formGroup( + label = "Options", + selectInput( + id = NULL, + choices = c("Option 1", "Option 2", "Option 3") + ) + ), + buttonInput( + .style %>% + background("primary"), + id = NULL, + label = "Run" + ) + ) +) +``` +::: +::: + +::: { .row .mt-5 } +::: { .col-12 } +```{r} +div( + .style %>% + width(100) %>% + padding(2) %>% + display("flex") %>% + flex(justify = "end") %>% + border("dark", round = "all"), + dropdown( + .style %>% + background("secondary"), + label = "Menu", + h5("Controls") %>% margin(r = 3, l = 3), + formInput( + .style %>% padding(r = 3, l = 3), + id = NULL, + formGroup( + label = "Target", + input = textInput( + id = NULL + ) + ), + formGroup( + label = "Description", + input = textInput( + id = NULL + ) + ), + buttonInput( + .style %>% background("primary"), + id = NULL, + label = "Update" + ) + ) + ) +) +``` +::: +::: + +::: { .row } +::: { .col-md-4 .col-12 } +Convey more. +::: + +::: { .col-md-8 .col-12 .d-flex .flex-row .justify-content-around } +```{r} +checkboxInput( + .style %>% background("success"), + id = NULL, + choices = c("Choice 1", "Choice 2"), + selected = "Choice 1" +) +``` + +```{r} +checkboxInput( + .style %>% background("dark"), + id = NULL, + choices = c("Choice 1", "Choice 2"), + selected = "Choice 2" +) +``` + +```{r} +checkboxInput( + .style %>% background("danger"), + id = NULL, + choices = c("Choice 1", "Choice 2", "Choice 3"), + selected = "Choice 2" +) +``` +::: +::: + +::: { .row } +::: { .col-12 .d-flex .justify-content-center } + +::: { .display-4 } +... and much [more](reference/index.html)! +::: + +::: +::: diff --git a/pkgdown/index.md b/pkgdown/index.md new file mode 100644 index 00000000..ba219db9 --- /dev/null +++ b/pkgdown/index.md @@ -0,0 +1,355 @@ + +
    d3("yonder")
    + +

    +yonder +

    + +

    +A shiny framework. +

    + +

    +Build shiny applications with an all new set of +inputs, utilties, and design tools. Click + +to see these great new tools help build pieces of this page. +

    + +

    Inputs

    +
    +
    +
    # button group input
    +div(
    +  .style %>% 
    +    display("flex") %>% 
    +    flex(justify = "center"),
    +  buttonGroupInput(
    +    .style %>% 
    +      background("primary"),
    +    id = NULL,
    +    choices = c("Sample", "Model", "Download")
    +  )
    +)
    + +
    +
    + + + +
    +
    + +
    +
    +

    New inputs let you build a variety of user interfaces. Develop the best ui for +your users’ needs. Whether your building an application for personal use, +internal use, or public use an intuitive ui helps guide users through your +application.

    +
    +
    +
    +
    +

    Another section to fill out later.

    +
    +
    +
    # list group input
    +div(
    +  .style %>% 
    +    display("flex") %>% 
    +    flex(align = "center", justify = "center"),
    +  card(
    +    .style %>% 
    +      border("info") %>% 
    +      background("info") %>% 
    +      font("light"),
    +    header = "Learn more",
    +    listGroupInput(
    +      .style %>% 
    +        background("info"),
    +      flush = TRUE,
    +      id = NULL,
    +      choices = c("About", "Our process", "Partners", "License")
    +    )
    +  )
    +)
    + +
    +
    +
    +Learn more +
    +
    + + + + +
    +
    +
    + +
    +
    +

    Designs

    +
    +
    +

    Based on the widely used Bootstrap library, yonder provides a series of design +utilities to help prototype and produce the shiny apps you imagine.

    +
    +
    +
    +
    +

    That control panel never has to sit on the left again.

    +
    +
    +
    div(
    +  .style %>% 
    +    width(100) %>% 
    +    padding(2) %>% 
    +    display("flex") %>% 
    +    flex(justify = "center") %>% 
    +    border("dark", round = "all"),
    +  card(
    +    header = "Controls",
    +    formGroup(
    +      label = "Options",
    +      selectInput(
    +        id = NULL,
    +        choices = c("Option 1", "Option 2", "Option 3")
    +      )
    +    ),
    +    buttonInput(
    +      .style %>% 
    +        background("primary"),
    +      id = NULL,
    +      label = "Run"
    +    )
    +  )
    +)
    + +
    +
    +
    +Controls +
    +
    +
    + +
    + + +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    div(
    +  .style %>% 
    +    width(100) %>% 
    +    padding(2) %>% 
    +    display("flex") %>% 
    +    flex(justify = "end") %>% 
    +    border("dark", round = "all"),
    +  dropdown(
    +    .style %>% 
    +      background("secondary"),
    +    label = "Menu",
    +    tags$h6("Controls"),
    +    formInput(
    +      .style %>% padding(r = 3, l = 3),
    +      id = NULL,
    +      formGroup(
    +        label = "Target",
    +        input = textInput(
    +          id = NULL
    +        )
    +      ),
    +      formGroup(
    +        label = "Description",
    +        input = textInput(
    +          id = NULL
    +        )
    +      ),
    +      buttonInput(
    +        .style %>% background("primary"),
    +        id = NULL,
    +        label = "Update"
    +      )
    +    )
    +  )
    +)
    + +
    + +
    + +
    +
    +
    +
    +

    Convey more.

    +
    +
    +
    checkboxInput(
    +  .style %>% background("success"),
    +  id = NULL,
    +  choices = c("Choice 1", "Choice 2"),
    +  selected = "Choice 1"
    +)
    + +
    +
    +

    +

    +
    +
    + + +
    + +
    +
    + +
    +
    +
    + +
    checkboxInput(
    +  .style %>% background("dark"),
    +  id = NULL,
    +  choices = c("Choice 1", "Choice 2"),
    +  selected = "Choice 2"
    +)
    + +
    +
    +

    +

    +
    +
    + + +
    + +
    +
    + +
    +
    +
    + +
    checkboxInput(
    +  .style %>% background("danger"),
    +  id = NULL,
    +  choices = c("Choice 1", "Choice 2", "Choice 3"),
    +  selected = "Choice 2"
    +)
    + +
    +
    +

    +

    +
    +
    +

    +

    +
    +
    + + +
    + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +

    … and much more!

    +
    +
    +
    diff --git a/renv.lock b/renv.lock index 32009486..e04d525c 100644 --- a/renv.lock +++ b/renv.lock @@ -16,6 +16,13 @@ "Repository": "CRAN", "Hash": "00d67366d2b1bbd0a4dd0279817a66d4" }, + "DT": { + "Package": "DT", + "Version": "0.11", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "41012742c331838c6f802830f2b87021" + }, "MASS": { "Package": "MASS", "Version": "7.3-51.4", @@ -23,6 +30,13 @@ "Repository": "CRAN", "Hash": "a94714e63996bc284b8795ec50defc07" }, + "Matrix": { + "Package": "Matrix", + "Version": "1.2-17", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "39ea11fb3ad0d759f9f1c053fd442957" + }, "R6": { "Package": "R6", "Version": "2.4.1", @@ -30,6 +44,13 @@ "Repository": "CRAN", "Hash": "292b54f8f4b94669b08f94e5acce6be2" }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "e031418365a7f7a766181ab5a41a5716" + }, "Rcpp": { "Package": "Rcpp", "Version": "1.0.3", @@ -65,6 +86,13 @@ "Repository": "CRAN", "Hash": "543776ae6848fde2f48ff3816d0628bc" }, + "brew": { + "Package": "brew", + "Version": "1.0-6", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "92a5f887f9ae3035ac7afde22ba73ee9" + }, "callr": { "Package": "callr", "Version": "3.2.0", @@ -79,6 +107,41 @@ "Repository": "CRAN", "Hash": "f41a3aa27b911750a6526b450d0b8ea4" }, + "clipr": { + "Package": "clipr", + "Version": "0.7.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "08cf4045c149a0f0eaf405324c7495bd" + }, + "clisymbols": { + "Package": "clisymbols", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "96c01552bfd5661b9bbdefbc762f4bcd" + }, + "colorspace": { + "Package": "colorspace", + "Version": "1.4-1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "6b436e95723d1f0e861224dd9b094dfb" + }, + "commonmark": { + "Package": "commonmark", + "Version": "1.7", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "0f22be39ec1d141fd03683c06f3a6e67" + }, + "covr": { + "Package": "covr", + "Version": "3.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "f74318f5d25fa79665684bcdc296ea4f" + }, "crayon": { "Package": "crayon", "Version": "1.3.4", @@ -86,6 +149,13 @@ "Repository": "CRAN", "Hash": "0d57bc8e27b7ba9e45dba825ebc0de6b" }, + "crosstalk": { + "Package": "crosstalk", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "4ac529753d1e529966ef675d7f0c762b" + }, "curl": { "Package": "curl", "Version": "4.3", @@ -100,6 +170,13 @@ "Repository": "CRAN", "Hash": "6c8fe8fa26a23b79949375d372c7b395" }, + "devtools": { + "Package": "devtools", + "Version": "2.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "5f7e8f803a05446ff0b5f98732b1e4b4" + }, "digest": { "Package": "digest", "Version": "0.6.23", @@ -128,6 +205,13 @@ "Repository": "CRAN", "Hash": "b31d9e5d051553d1177083aeba04b5b9" }, + "farver": { + "Package": "farver", + "Version": "2.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "e1e33215c942e78d2128221079b5dc35" + }, "fastmap": { "Package": "fastmap", "Version": "1.0.1", @@ -142,6 +226,27 @@ "Repository": "CRAN", "Hash": "0e26be4558dbbc713d7cfe4a4c361f38" }, + "ggplot2": { + "Package": "ggplot2", + "Version": "3.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "9ac60f09a2f437af8df8638ef3da0288" + }, + "gh": { + "Package": "gh", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "4da58d15239da30de8c7de088250d3be" + }, + "git2r": { + "Package": "git2r", + "Version": "0.26.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "135db4dbc94ed18f629ff8843a8064b7" + }, "glue": { "Package": "glue", "Version": "1.3.1", @@ -149,6 +254,13 @@ "Repository": "CRAN", "Hash": "d4e25697c450c01b202c79ef35694a83" }, + "gtable": { + "Package": "gtable", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "ac5c6baf7822ce8732b343f14c072c4d" + }, "highlight": { "Package": "highlight", "Version": "0.4.7.2", @@ -170,6 +282,13 @@ "Repository": "CRAN", "Hash": "2d7691222f82f41e93f6d30f169bd5e1" }, + "htmlwidgets": { + "Package": "htmlwidgets", + "Version": "1.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "41bace23583fbc25089edae324de2dc3" + }, "httpuv": { "Package": "httpuv", "Version": "1.5.2", @@ -184,6 +303,13 @@ "Repository": "CRAN", "Hash": "7146fea4685b4252ebf478978c75f597" }, + "ini": { + "Package": "ini", + "Version": "0.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "6154ec2223172bce8162d4153cda21f7" + }, "jsonlite": { "Package": "jsonlite", "Version": "1.6", @@ -198,6 +324,13 @@ "Repository": "CRAN", "Hash": "d3085a2c6c75da96ad333143dcc35ce8" }, + "labeling": { + "Package": "labeling", + "Version": "0.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "73832978c1de350df58108c745ed0e3e" + }, "later": { "Package": "later", "Version": "1.0.0", @@ -205,6 +338,20 @@ "Repository": "CRAN", "Hash": "6d927978fc658d24175ce37db635f9e5" }, + "lattice": { + "Package": "lattice", + "Version": "0.20-38", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "848f8c593fd1050371042d18d152e3d7" + }, + "lazyeval": { + "Package": "lazyeval", + "Version": "0.2.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "d908914ae53b04d4c0c0fd72ecc35370" + }, "lifecycle": { "Package": "lifecycle", "Version": "0.1.0", @@ -233,6 +380,13 @@ "Repository": "CRAN", "Hash": "58baa74e4603fcfb9a94401c58c8f9b1" }, + "mgcv": { + "Package": "mgcv", + "Version": "1.8-28", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "aa301a255aac625db12ee1793bd79265" + }, "mime": { "Package": "mime", "Version": "0.8", @@ -240,6 +394,20 @@ "Repository": "CRAN", "Hash": "3d8abfab430c94a15e20eb91f052293f" }, + "munsell": { + "Package": "munsell", + "Version": "0.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "6dfe8bf774944bd5595785e3229d8771" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-142", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "557d78d7eac2c1090ee58647a6274142" + }, "openssl": { "Package": "openssl", "Version": "1.4.1", @@ -254,6 +422,13 @@ "Repository": "CRAN", "Hash": "9f20924c27aee3d09296c22fb84bc9de" }, + "pkgbuild": { + "Package": "pkgbuild", + "Version": "1.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "74d289e18e8cb14988e47eb811b0b4e9" + }, "pkgconfig": { "Package": "pkgconfig", "Version": "2.0.3", @@ -263,11 +438,24 @@ }, "pkgdown": { "Package": "pkgdown", - "Version": "1.4.1.3030", + "Version": "1.4.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "96f7c798b04acb01cee43b266b884755" + }, + "pkgload": { + "Package": "pkgload", + "Version": "1.0.2", "Source": "Repository", "Repository": "CRAN", - "Remotes": "nteetor/yonder@v0-dev", - "Hash": "ea8994808a1b1b4aceb9982f67090158" + "Hash": "5e655fb54cceead0f095f22d7be33da3" + }, + "plyr": { + "Package": "plyr", + "Version": "1.8.5", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "3f1b0dbcc503320e6e7aae6c3ff87eaa" }, "praise": { "Package": "praise", @@ -276,6 +464,13 @@ "Repository": "CRAN", "Hash": "a555924add98c99d2f411e37e7d25e9f" }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "f3c960f0105f2ed179460864979fc37c" + }, "processx": { "Package": "processx", "Version": "3.3.1", @@ -304,6 +499,13 @@ "Repository": "CRAN", "Hash": "22aca7d1181718e927d403a8c2d69d62" }, + "rcmdcheck": { + "Package": "rcmdcheck", + "Version": "1.3.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "ed95895886dab6d2a584da45503555da" + }, "rematch2": { "Package": "rematch2", "Version": "2.0.1", @@ -311,6 +513,13 @@ "Repository": "CRAN", "Hash": "d22ce2ccd9ca1fa6d7d391c2a19ea778" }, + "remotes": { + "Package": "remotes", + "Version": "2.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "824a9fab6c4b3f3afd78e9e285d9c365" + }, "renv": { "Package": "renv", "Version": "0.9.2", @@ -318,6 +527,20 @@ "Repository": "CRAN", "Hash": "5181d5f316c7a6589219866d640e004c" }, + "reshape2": { + "Package": "reshape2", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "15a23ad30f51789188e439599559815c" + }, + "rex": { + "Package": "rex", + "Version": "1.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "6d3dbb5d528c8f726861018472bc668c" + }, "rlang": { "Package": "rlang", "Version": "0.4.2", @@ -332,6 +555,13 @@ "Repository": "CRAN", "Hash": "745a60d9256842b1abae2dcf7b64ebc1" }, + "roxygen2": { + "Package": "roxygen2", + "Version": "7.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "1977524d886576fe7da0332de2f30dae" + }, "rprojroot": { "Package": "rprojroot", "Version": "1.3-2", @@ -346,6 +576,27 @@ "Repository": "CRAN", "Hash": "da31c988698b91fdf6a3e2317679d6cb" }, + "rversions": { + "Package": "rversions", + "Version": "2.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "2aa84e83767ba93ee6415b439fa981d2" + }, + "scales": { + "Package": "scales", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "a1c68369c629ea3188d0676e37069c65" + }, + "sessioninfo": { + "Package": "sessioninfo", + "Version": "1.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "308013098befe37484df72c39cf90d6e" + }, "shiny": { "Package": "shiny", "Version": "1.4.0", @@ -402,6 +653,13 @@ "Repository": "CRAN", "Hash": "7df05133dc64791897b0a809a5c5d2de" }, + "usethis": { + "Package": "usethis", + "Version": "1.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "50e12b2d397bf55b2c674a1a3ccdece9" + }, "utf8": { "Package": "utf8", "Version": "1.1.4", @@ -416,6 +674,13 @@ "Repository": "CRAN", "Hash": "c40cfd786b30c20ea9f1247f06a7ee56" }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "ce4f6271baa94776db692f1cb2055bee" + }, "whisker": { "Package": "whisker", "Version": "0.4", @@ -444,6 +709,13 @@ "Repository": "CRAN", "Hash": "84ea8bdcf73292d25a42645d30e58e1b" }, + "xopen": { + "Package": "xopen", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "6c85f015dee9cc7710ddd20f86881f58" + }, "xtable": { "Package": "xtable", "Version": "1.8-4",