diff --git a/docs/_includes/top.html b/docs/_includes/top.html
index 2a281900..2e23895e 100644
--- a/docs/_includes/top.html
+++ b/docs/_includes/top.html
@@ -6,9 +6,9 @@
{% feed_meta %}
-
-
-
+
+
+
{% seo %}
diff --git a/docs/_sass/_docsearch.scss b/docs/_sass/_docsearch.scss
index e984edea..46d75e73 100644
--- a/docs/_sass/_docsearch.scss
+++ b/docs/_sass/_docsearch.scss
@@ -1,5 +1,524 @@
.searchbox {
+ display: inline-block;
+ position: relative;
+ width: 200px;
+ height: 32px !important;
padding-top: 1px;
+ white-space: nowrap;
+ box-sizing: border-box;
+ visibility: visible !important;
+}
+
+.searchbox .algolia-autocomplete {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+.searchbox__wrapper {
+ width: 100%;
+ height: 100%;
+ z-index: 999;
+ position: relative;
+}
+
+.searchbox__input {
+ display: inline-block;
+ box-sizing: border-box;
+ transition: box-shadow 0.4s ease, background 0.4s ease;
+ border: 0;
+ border-radius: 16px;
+ box-shadow: inset 0 0 0 1px #cccccc;
+ background: #ffffff !important;
+ padding: 0;
+ padding-right: 26px;
+ padding-left: 32px;
+ width: 100%;
+ height: 100%;
+ vertical-align: middle;
+ white-space: normal;
+ font-size: 12px;
+ appearance: none;
+}
+
+.searchbox__input::-webkit-search-decoration, .searchbox__input::-webkit-search-cancel-button, .searchbox__input::-webkit-search-results-button, .searchbox__input::-webkit-search-results-decoration {
+ display: none;
+}
+
+.searchbox__input:hover {
+ box-shadow: inset 0 0 0 1px #b3b3b3;
+}
+
+.searchbox__input:focus, .searchbox__input:active {
+ outline: 0;
+ box-shadow: inset 0 0 0 1px #aaaaaa;
+ background: #ffffff;
+}
+
+.searchbox__input::placeholder {
+ color: #aaaaaa;
+}
+
+.searchbox__submit {
+ position: absolute;
+ top: 0;
+ margin: 0;
+ border: 0;
+ border-radius: 16px 0 0 16px;
+ background-color: rgba(69, 142, 225, 0);
+ padding: 0;
+ width: 32px;
+ height: 100%;
+ vertical-align: middle;
+ text-align: center;
+ font-size: inherit;
+ user-select: none;
+ right: inherit;
+ left: 0;
+}
+
+.searchbox__submit::before {
+ display: inline-block;
+ margin-right: -4px;
+ height: 100%;
+ vertical-align: middle;
+ content: '';
+}
+
+.searchbox__submit:hover, .searchbox__submit:active {
+ cursor: pointer;
+}
+
+.searchbox__submit:focus {
+ outline: 0;
+}
+
+.searchbox__submit svg {
+ width: 14px;
+ height: 14px;
+ vertical-align: middle;
+ fill: #6d7e96;
+}
+
+.searchbox__reset {
+ display: block;
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ margin: 0;
+ border: 0;
+ background: none;
+ cursor: pointer;
+ padding: 0;
+ font-size: inherit;
+ user-select: none;
+ fill: rgba(0, 0, 0, 0.5);
+}
+
+.searchbox__reset.hide {
+ display: none;
+}
+
+.searchbox__reset:focus {
+ outline: 0;
+}
+
+.searchbox__reset svg {
+ display: block;
+ margin: 4px;
+ width: 8px;
+ height: 8px;
+}
+
+.searchbox__input:valid ~ .searchbox__reset {
+ display: block;
+ animation-name: sbx-reset-in;
+ animation-duration: 0.15s;
+}
+
+@keyframes sbx-reset-in {
+ 0% {
+ transform: translate3d(-20%, 0, 0);
+ opacity: 0;
+ }
+ 100% {
+ transform: none;
+ opacity: 1;
+ }
+}
+
+.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu {
+ right: 0 !important;
+ left: inherit !important;
+}
+
+.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before {
+ right: 48px;
+}
+
+.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu {
+ left: 0 !important;
+ right: inherit !important;
+}
+
+.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before {
+ left: 48px;
+}
+
+.algolia-autocomplete .ds-dropdown-menu {
+ position: relative;
+ top: -6px;
+ border-radius: 4px;
+ margin: 6px 0 0;
+ padding: 0;
+ text-align: left;
+ height: auto;
+ position: relative;
+ background: transparent;
+ border: none;
+ z-index: 999;
+ max-width: 600px;
+ min-width: 500px;
+ box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2), 0 2px 3px 0 rgba(0, 0, 0, 0.1);
+}
+
+.algolia-autocomplete .ds-dropdown-menu:before {
+ display: block;
+ position: absolute;
+ content: '';
+ width: 14px;
+ height: 14px;
+ background: #fff;
+ z-index: 1000;
+ top: -7px;
+ border-top: 1px solid #d9d9d9;
+ border-right: 1px solid #d9d9d9;
+ transform: rotate(-45deg);
+ border-radius: 2px;
+}
+
+.algolia-autocomplete .ds-dropdown-menu .ds-suggestions {
+ position: relative;
+ z-index: 1000;
+ margin-top: 8px;
+}
+
+.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover {
+ text-decoration: none;
+}
+
+.algolia-autocomplete .ds-dropdown-menu .ds-suggestion {
+ cursor: pointer;
+}
+
+.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple {
+ background-color: rgba(69, 142, 225, 0.05);
+}
+
+.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content {
+ background-color: rgba(69, 142, 225, 0.05);
+}
+
+.algolia-autocomplete .ds-dropdown-menu [class^='ds-dataset-'] {
+ position: relative;
+ border: solid 1px #d9d9d9;
+ background: #fff;
+ border-radius: 4px;
+ overflow: auto;
+ padding: 0 8px 8px;
+}
+
+.algolia-autocomplete .ds-dropdown-menu * {
+ box-sizing: border-box;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion {
+ display: block;
+ position: relative;
+ padding: 0 8px;
+ background: #fff;
+ color: #02060c;
+ overflow: hidden;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--highlight {
+ color: #174d8c;
+ background: rgba(143, 187, 237, 0.1);
+ padding: 0.1em 0.05em;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0
+.algolia-docsearch-suggestion--highlight,
+.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1
+.algolia-docsearch-suggestion--highlight {
+ padding: 0 0 1px;
+ background: inherit;
+ box-shadow: inset 0 -2px 0 0 rgba(69, 142, 225, 0.8);
+ color: inherit;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {
+ padding: 0 0 1px;
+ background: inherit;
+ box-shadow: inset 0 -2px 0 0 rgba(69, 142, 225, 0.8);
+ color: inherit;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--content {
+ display: block;
+ float: right;
+ width: 70%;
+ position: relative;
+ padding: 5.33333px 0 5.33333px 10.66667px;
+ cursor: pointer;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--content:before {
+ content: '';
+ position: absolute;
+ display: block;
+ top: 0;
+ height: 100%;
+ width: 1px;
+ background: #ddd;
+ left: -1px;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--category-header {
+ position: relative;
+ border-bottom: 1px solid #ddd;
+ display: none;
+ margin-top: 8px;
+ padding: 4px 0;
+ font-size: 1em;
+ color: #33363d;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--wrapper {
+ width: 100%;
+ float: left;
+ padding: 8px 0 0 0;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column {
+ float: left;
+ width: 30%;
+ padding-left: 0;
+ text-align: right;
+ position: relative;
+ padding: 5.33333px 10.66667px;
+ color: #a4a7ae;
+ font-size: 0.9em;
+ word-wrap: break-word;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before {
+ content: '';
+ position: absolute;
+ display: block;
+ top: 0;
+ height: 100%;
+ width: 1px;
+ background: #ddd;
+ right: 0;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline {
+ display: none;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--title {
+ margin-bottom: 4px;
+ color: #02060c;
+ font-size: 0.9em;
+ font-weight: bold;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--text {
+ display: block;
+ line-height: 1.2em;
+ font-size: 0.85em;
+ color: #63676d;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--no-results {
+ width: 100%;
+ padding: 8px 0;
+ text-align: center;
+ font-size: 1.2em;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion--no-results::before {
+ display: none;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion code {
+ padding: 1px 5px;
+ font-size: 90%;
+ border: none;
+ color: #222222;
+ background-color: #ebebeb;
+ border-radius: 3px;
+ font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight {
+ background: none;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header {
+ display: block;
+}
+
+.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary {
+ display: block;
+}
+
+@media all and (min-width: 768px) {
+ .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column {
+ display: block;
+ }
+}
+
+@media all and (max-width: 768px) {
+ .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column {
+ display: inline-block;
+ width: auto;
+ text-align: left;
+ float: left;
+ padding: 0;
+ color: #02060c;
+ font-size: 0.9em;
+ font-weight: bold;
+ text-align: left;
+ opacity: 0.5;
+ }
+ .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before {
+ display: none;
+ }
+ .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after {
+ content: '|';
+ }
+ .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content {
+ display: inline-block;
+ width: auto;
+ text-align: left;
+ float: left;
+ padding: 0;
+ }
+ .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before {
+ display: none;
+ }
+}
+
+.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion {
+ border-bottom: solid 1px #eee;
+ padding: 8px;
+ margin: 0;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content {
+ width: 100%;
+ padding: 0;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content::before {
+ display: none;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header {
+ margin: 0;
+ padding: 0;
+ display: block;
+ width: 100%;
+ border: none;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0 {
+ opacity: 0.6;
+ font-size: 0.85em;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1 {
+ opacity: 0.6;
+ font-size: 0.85em;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1::before {
+ background-image: url('data:image/svg+xml;utf8,');
+ content: '';
+ width: 10px;
+ height: 10px;
+ display: inline-block;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper {
+ width: 100%;
+ float: left;
+ margin: 0;
+ padding: 0;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content, .algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline {
+ display: none !important;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title {
+ margin: 0;
+ color: #458ee1;
+ font-size: 0.9em;
+ font-weight: normal;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title::before {
+ content: '#';
+ font-weight: bold;
+ color: #458ee1;
+ display: inline-block;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text {
+ margin: 4px 0 0;
+ display: block;
+ line-height: 1.4em;
+ padding: 5.33333px 8px;
+ background: #f8f8f8;
+ font-size: 0.85em;
+ opacity: 0.8;
+}
+
+.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {
+ color: #3f4145;
+ font-weight: bold;
+ box-shadow: none;
+}
+
+.algolia-autocomplete .algolia-docsearch-footer {
+ width: 134px;
+ height: 20px;
+ z-index: 2000;
+ 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,%3Csvg width='168' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938zm41.937 17.866c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199c-.295 0-.596.021-.897.069a2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874c-.41.089-1.034.19-1.868.314-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525.26-.45.608-.819 1.047-1.106.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483.158.56.233 1.175.233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164-.514.089-.938.191-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423.685.286 1.274.69 1.753 1.216a5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17z' fill='%235468FF'/%3E%3Cpath d='M6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503-.276-.127-.47-.218-.582-.271a13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z' fill='%235D6494'/%3E%3Cpath d='M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729c3.518 0 6.372-2.85 6.372-6.368a6.358 6.358 0 0 0-6.371-6.36' fill='%23FFF'/%3E%3C/g%3E%3C/svg%3E%0A");
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+ overflow: hidden;
+ text-indent: -9000px;
+ padding: 0 !important;
+ width: 100%;
+ height: 100%;
+ display: block;
+}
+
+// Overrides
+
+.searchbox {
.searchbox__input {
padding: 6px 5px 5px 29px;
font-size: 0.75em;
diff --git a/docs/_sass/_fonts.scss b/docs/_sass/_fonts.scss
new file mode 100644
index 00000000..fa0648e6
--- /dev/null
+++ b/docs/_sass/_fonts.scss
@@ -0,0 +1,87 @@
+/* lato-300 - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 300;
+ src: local('Lato Light'), local('Lato-Light'),
+ url('../fonts/lato-v14-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('../fonts/lato-v14-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+ font-display: swap;
+}
+
+/* lato-300italic - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: italic;
+ font-weight: 300;
+ src: local('Lato Light Italic'), local('Lato-LightItalic'),
+ url('../fonts/lato-v14-latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('../fonts/lato-v14-latin-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+ font-display: swap;
+}
+
+/* lato-regular - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 400;
+ src: local('Lato Regular'), local('Lato-Regular'),
+ url('../fonts/lato-v14-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('../fonts/lato-v14-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+ font-display: swap;
+}
+
+/* lato-italic - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: italic;
+ font-weight: 400;
+ src: local('Lato Italic'), local('Lato-Italic'),
+ url('../fonts/lato-v14-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('../fonts/lato-v14-latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+ font-display: swap;
+}
+
+/* lato-700 - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 700;
+ src: local('Lato Bold'), local('Lato-Bold'),
+ url('../fonts/lato-v14-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('../fonts/lato-v14-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+ font-display: swap;
+}
+
+/* lato-700italic - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: italic;
+ font-weight: 700;
+ src: local('Lato Bold Italic'), local('Lato-BoldItalic'),
+ url('../fonts/lato-v14-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('../fonts/lato-v14-latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+ font-display: swap;
+}
+
+/* lato-900 - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: normal;
+ font-weight: 900;
+ src: local('Lato Black'), local('Lato-Black'),
+ url('../fonts/lato-v14-latin-900.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('../fonts/lato-v14-latin-900.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+ font-display: swap;
+}
+
+/* lato-900italic - latin */
+@font-face {
+ font-family: 'Lato';
+ font-style: italic;
+ font-weight: 900;
+ src: local('Lato Black Italic'), local('Lato-BlackItalic'),
+ url('../fonts/lato-v14-latin-900italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+ url('../fonts/lato-v14-latin-900italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+ font-display: swap;
+}
diff --git a/docs/css/screen.scss b/docs/css/screen.scss
index 4bc6bec3..766f964b 100644
--- a/docs/css/screen.scss
+++ b/docs/css/screen.scss
@@ -6,5 +6,6 @@
@import "gridism";
@import "pygments";
@import "font-awesome";
-@import "style";
+@import "fonts";
@import "docsearch";
+@import "style";
diff --git a/docs/fonts/lato-v14-latin-300.woff b/docs/fonts/lato-v14-latin-300.woff
new file mode 100644
index 00000000..ab45ab76
Binary files /dev/null and b/docs/fonts/lato-v14-latin-300.woff differ
diff --git a/docs/fonts/lato-v14-latin-300.woff2 b/docs/fonts/lato-v14-latin-300.woff2
new file mode 100644
index 00000000..136337fd
Binary files /dev/null and b/docs/fonts/lato-v14-latin-300.woff2 differ
diff --git a/docs/fonts/lato-v14-latin-300italic.woff b/docs/fonts/lato-v14-latin-300italic.woff
new file mode 100644
index 00000000..0287996f
Binary files /dev/null and b/docs/fonts/lato-v14-latin-300italic.woff differ
diff --git a/docs/fonts/lato-v14-latin-300italic.woff2 b/docs/fonts/lato-v14-latin-300italic.woff2
new file mode 100644
index 00000000..fd1977b6
Binary files /dev/null and b/docs/fonts/lato-v14-latin-300italic.woff2 differ
diff --git a/docs/fonts/lato-v14-latin-700.woff b/docs/fonts/lato-v14-latin-700.woff
new file mode 100644
index 00000000..1d9d75bc
Binary files /dev/null and b/docs/fonts/lato-v14-latin-700.woff differ
diff --git a/docs/fonts/lato-v14-latin-700.woff2 b/docs/fonts/lato-v14-latin-700.woff2
new file mode 100644
index 00000000..d88f1af8
Binary files /dev/null and b/docs/fonts/lato-v14-latin-700.woff2 differ
diff --git a/docs/fonts/lato-v14-latin-700italic.woff b/docs/fonts/lato-v14-latin-700italic.woff
new file mode 100644
index 00000000..f79d9a99
Binary files /dev/null and b/docs/fonts/lato-v14-latin-700italic.woff differ
diff --git a/docs/fonts/lato-v14-latin-700italic.woff2 b/docs/fonts/lato-v14-latin-700italic.woff2
new file mode 100644
index 00000000..c351d88d
Binary files /dev/null and b/docs/fonts/lato-v14-latin-700italic.woff2 differ
diff --git a/docs/fonts/lato-v14-latin-900.woff b/docs/fonts/lato-v14-latin-900.woff
new file mode 100644
index 00000000..6f251d9e
Binary files /dev/null and b/docs/fonts/lato-v14-latin-900.woff differ
diff --git a/docs/fonts/lato-v14-latin-900.woff2 b/docs/fonts/lato-v14-latin-900.woff2
new file mode 100644
index 00000000..a5abe367
Binary files /dev/null and b/docs/fonts/lato-v14-latin-900.woff2 differ
diff --git a/docs/fonts/lato-v14-latin-900italic.woff b/docs/fonts/lato-v14-latin-900italic.woff
new file mode 100644
index 00000000..6922b8fe
Binary files /dev/null and b/docs/fonts/lato-v14-latin-900italic.woff differ
diff --git a/docs/fonts/lato-v14-latin-900italic.woff2 b/docs/fonts/lato-v14-latin-900italic.woff2
new file mode 100644
index 00000000..0d0f984e
Binary files /dev/null and b/docs/fonts/lato-v14-latin-900italic.woff2 differ
diff --git a/docs/fonts/lato-v14-latin-italic.woff b/docs/fonts/lato-v14-latin-italic.woff
new file mode 100644
index 00000000..169e8cf5
Binary files /dev/null and b/docs/fonts/lato-v14-latin-italic.woff differ
diff --git a/docs/fonts/lato-v14-latin-italic.woff2 b/docs/fonts/lato-v14-latin-italic.woff2
new file mode 100644
index 00000000..2688dc6f
Binary files /dev/null and b/docs/fonts/lato-v14-latin-italic.woff2 differ
diff --git a/docs/fonts/lato-v14-latin-regular.woff b/docs/fonts/lato-v14-latin-regular.woff
new file mode 100644
index 00000000..97ab144d
Binary files /dev/null and b/docs/fonts/lato-v14-latin-regular.woff differ
diff --git a/docs/fonts/lato-v14-latin-regular.woff2 b/docs/fonts/lato-v14-latin-regular.woff2
new file mode 100644
index 00000000..b14c76ca
Binary files /dev/null and b/docs/fonts/lato-v14-latin-regular.woff2 differ
diff --git a/docs/img/cloudcannon-logo.png b/docs/img/cloudcannon-logo.png
index a3a6253c..6cb0cb19 100644
Binary files a/docs/img/cloudcannon-logo.png and b/docs/img/cloudcannon-logo.png differ
diff --git a/docs/img/forestry-logo.png b/docs/img/forestry-logo.png
index de7fb17d..6954510b 100644
Binary files a/docs/img/forestry-logo.png and b/docs/img/forestry-logo.png differ
diff --git a/docs/img/icons8-logo.png b/docs/img/icons8-logo.png
index 13d9d85a..12f65c2b 100644
Binary files a/docs/img/icons8-logo.png and b/docs/img/icons8-logo.png differ
diff --git a/docs/img/siteleaf-logo.png b/docs/img/siteleaf-logo.png
index 3a305376..02ad3995 100644
Binary files a/docs/img/siteleaf-logo.png and b/docs/img/siteleaf-logo.png differ
diff --git a/docs/img/tidelift-logo.png b/docs/img/tidelift-logo.png
index bb199383..0b225dfe 100644
Binary files a/docs/img/tidelift-logo.png and b/docs/img/tidelift-logo.png differ