From ec85b417f457ad16e4099f63f1bd855ecfe95c18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Platte?= Date: Sat, 31 Aug 2024 19:17:32 +0200 Subject: [PATCH] update docs --- .github/workflows/docs.yml | 29 + .gitignore | 8 + docs/.nojekyll | 0 docs/assets/css/custom.css | 2344 ++++++++++++++++++++++++++ docs/assets/css/main.css | 44 + docs/assets/css/theme.css | 579 +++++++ docs/assets/favicon/favicon.ico | Bin 0 -> 32064 bytes docs/assets/images/logo_512x512.png | Bin 0 -> 32064 bytes docs/assets/js/docsify-footer.js | 47 + docs/assets/js/docsify-footer.min.js | 1 + docs/assets/js/flexible-alerts.js | 99 ++ docs/assets/js/main.js | 148 ++ docs/index.html | 91 + docs/introduction.md | 8 + docs/polas.md | 21 + docs/products.md | 16 + docs/pvs.md | 23 + docs/r6roulette.md | 26 + docs/robots.txt | 2 + docs/sidebar.md | 5 + docs/tsup.md | 51 + 21 files changed, 3542 insertions(+) create mode 100644 .github/workflows/docs.yml create mode 100644 .gitignore create mode 100644 docs/.nojekyll create mode 100644 docs/assets/css/custom.css create mode 100644 docs/assets/css/main.css create mode 100644 docs/assets/css/theme.css create mode 100644 docs/assets/favicon/favicon.ico create mode 100644 docs/assets/images/logo_512x512.png create mode 100644 docs/assets/js/docsify-footer.js create mode 100644 docs/assets/js/docsify-footer.min.js create mode 100644 docs/assets/js/flexible-alerts.js create mode 100644 docs/assets/js/main.js create mode 100644 docs/index.html create mode 100644 docs/introduction.md create mode 100644 docs/polas.md create mode 100644 docs/products.md create mode 100644 docs/pvs.md create mode 100644 docs/r6roulette.md create mode 100644 docs/robots.txt create mode 100644 docs/sidebar.md create mode 100644 docs/tsup.md diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..e24b371 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,29 @@ +name: Push to docs branch +on: + push: + branches: + - 'main' +permissions: + contents: write +jobs: + Update_Docs: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Configure Git + run: | + git config --global user.email "${{ secrets.email }}" + git config --global user.name "${{ secrets.username }}" + + - name: Push to docs branch + run: | + git checkout docs || git checkout --orphan docs + git rm --ignore-unmatch -rf . + git checkout ${{ github.event.after }} -- docs + git add -A + git commit -m "Update docs (${{ github.sha }})" + git push origin docs --force \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f1c91f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# OS generated files # +###################### +.DS_Store +.DS_Store? +.vscode +.vscode? +.obsidian +.obsidian? \ No newline at end of file diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/assets/css/custom.css b/docs/assets/css/custom.css new file mode 100644 index 0000000..85d21cb --- /dev/null +++ b/docs/assets/css/custom.css @@ -0,0 +1,2344 @@ +.github-corner { + position: absolute; + z-index: 40; + top: 0; + right: 0; + border-bottom: 0; + text-decoration: none +} + +.github-corner svg { + height: 70px; + width: 70px; + fill: var(--theme-color); + color: var(--base-background-color) +} + +.github-corner:hover .octo-arm { + -webkit-animation: octocat-wave 560ms ease-in-out; + animation: octocat-wave 560ms ease-in-out +} + +@-webkit-keyframes octocat-wave { + + 0%, + 100% { + transform: rotate(0) + } + + 20%, + 60% { + transform: rotate(-25deg) + } + + 40%, + 80% { + transform: rotate(10deg) + } +} + +@keyframes octocat-wave { + + 0%, + 100% { + transform: rotate(0) + } + + 20%, + 60% { + transform: rotate(-25deg) + } + + 40%, + 80% { + transform: rotate(10deg) + } +} + +.progress { + position: fixed; + z-index: 2147483647; + top: 0; + left: 0; + right: 0; + height: 3px; + width: 0; + background-color: var(--theme-color); + transition: width var(--duration-fast), opacity calc(var(--duration-fast)*2) +} + +body.ready-transition:after, +body.ready-transition>*:not(.progress) { + opacity: 0; + transition: opacity var(--spinner-transition-duration) +} + +body.ready-transition:after { + content: ""; + position: absolute; + z-index: 1000; + top: calc(50% - var(--spinner-size)/2); + left: calc(50% - var(--spinner-size)/2); + height: var(--spinner-size); + width: var(--spinner-size); + border: var(--spinner-track-width, 0) solid var(--spinner-track-color); + border-left-color: var(--theme-color); + border-left-color: var(--theme-color); + border-radius: 50%; + -webkit-animation: spinner var(--duration-slow) infinite linear; + animation: spinner var(--duration-slow) infinite linear +} + +body.ready-transition.ready-spinner:after { + opacity: 1 +} + +body.ready-transition.ready-fix:after { + opacity: 0 +} + +body.ready-transition.ready-fix>*:not(.progress) { + opacity: 1; + transition-delay: var(--spinner-transition-duration) +} + +@-webkit-keyframes spinner { + 0% { + transform: rotate(0deg) + } + + 100% { + transform: rotate(360deg) + } +} + +@keyframes spinner { + 0% { + transform: rotate(0deg) + } + + 100% { + transform: rotate(360deg) + } +} + +*, +*:before, +*:after { + box-sizing: inherit; + font-size: inherit; + -webkit-overflow-scrolling: touch; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-text-size-adjust: none; + -webkit-touch-callout: none +} + +:root { + box-sizing: border-box; + background-color: var(--base-background-color); + font-size: var(--base-font-size); + font-weight: var(--base-font-weight); + line-height: var(--base-line-height); + letter-spacing: var(--base-letter-spacing); + color: var(--base-color); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +html, +button, +input, +optgroup, +select, +textarea { + font-family: var(--base-font-family) +} + +button, +input, +optgroup, +select, +textarea { + font-size: 100%; + margin: 0 +} + +a { + text-decoration: none; + -webkit-text-decoration-skip: ink; + text-decoration-skip-ink: auto +} + +body { + margin: 0 +} + +hr { + height: 0; + margin: 2em 0; + border: none; + border-bottom: var(--hr-border, 0) +} + +img { + max-width: 100%; + border: 0 +} + +main { + display: block +} + +main.hidden { + display: none +} + +mark { + background: var(--mark-background); + color: var(--mark-color) +} + +pre { + font-family: var(--pre-font-family); + font-size: var(--pre-font-size); + font-weight: var(--pre-font-weight); + line-height: var(--pre-line-height) +} + +small { + display: inline-block; + font-size: var(--small-font-size) +} + +strong { + font-weight: var(--strong-font-weight); + color: var(--strong-color, currentColor) +} + +sub, +sup { + font-size: var(--subsup-font-size); + line-height: 0; + position: relative; + vertical-align: baseline +} + +sub { + bottom: -0.25em +} + +sup { + top: -0.5em +} + +body:not([data-platform^=Mac]) * { + scrollbar-color: hsla(var(--mono-hue), var(--mono-saturation), 50%, 0.3) hsla(var(--mono-hue), var(--mono-saturation), 50%, 0.1); + scrollbar-width: thin +} + +body:not([data-platform^=Mac]) * ::-webkit-scrollbar { + width: 5px; + height: 5px +} + +body:not([data-platform^=Mac]) * ::-webkit-scrollbar-thumb { + background: hsla(var(--mono-hue), var(--mono-saturation), 50%, 0.3) +} + +body:not([data-platform^=Mac]) * ::-webkit-scrollbar-track { + background: hsla(var(--mono-hue), var(--mono-saturation), 50%, 0.1) +} + +::-moz-selection { + background: var(--selection-color) +} + +::selection { + background: var(--selection-color) +} + +.emoji { + height: var(--emoji-size); + vertical-align: middle +} + +.task-list-item { + list-style: none +} + +.task-list-item input { + margin-right: .5em; + margin-left: 0; + vertical-align: .075em +} + +.markdown-section code[class*=lang-], +.markdown-section pre[data-lang] { + font-family: var(--code-font-family); + font-size: var(--code-font-size); + font-weight: var(--code-font-weight); + letter-spacing: normal; + line-height: var(--code-block-line-height); + -moz-tab-size: var(--code-tab-size); + -o-tab-size: var(--code-tab-size); + tab-size: var(--code-tab-size); + text-align: left; + white-space: pre; + word-spacing: normal; + word-wrap: normal; + word-break: normal; + -webkit-hyphens: none; + hyphens: none +} + +.markdown-section pre[data-lang] { + position: relative; + overflow: hidden; + margin: var(--code-block-margin); + padding: 0; + border-radius: var(--code-block-border-radius) +} + +.markdown-section pre[data-lang]::after { + content: attr(data-lang); + position: absolute; + top: .75em; + right: .75em; + opacity: .6; + color: inherit; + font-size: var(--font-size-s); + line-height: 1 +} + +.markdown-section pre[data-lang] code { + display: block; + overflow: auto; + padding: var(--code-block-padding) +} + +code[class*=lang-], +pre[data-lang] { + color: var(--code-theme-text) +} + +pre[data-lang]::-moz-selection, +pre[data-lang] ::-moz-selection, +code[class*=lang-]::-moz-selection, +code[class*=lang-] ::-moz-selection { + background: var(--code-theme-selection, var(--selection-color)) +} + +pre[data-lang]::-moz-selection, +pre[data-lang] ::-moz-selection, +code[class*=lang-]::-moz-selection, +code[class*=lang-] ::-moz-selection { + background: var(--code-theme-selection, var(--selection-color)) +} + +pre[data-lang]::selection, +pre[data-lang] ::selection, +code[class*=lang-]::selection, +code[class*=lang-] ::selection { + background: var(--code-theme-selection, var(--selection-color)) +} + +:not(pre)>code[class*=lang-], +pre[data-lang] { + background: var(--code-theme-background) +} + +.namespace { + opacity: .7 +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: var(--code-theme-comment) +} + +.token.punctuation { + color: var(--code-theme-punctuation) +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: var(--code-theme-tag) +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: var(--code-theme-selector) +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: var(--code-theme-operator) +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: var(--code-theme-keyword) +} + +.token.function { + color: var(--code-theme-function) +} + +.token.regex, +.token.important, +.token.variable { + color: var(--code-theme-variable) +} + +.token.important, +.token.bold { + font-weight: bold +} + +.token.italic { + font-style: italic +} + +.token.entity { + cursor: help +} + +.markdown-section { + position: relative; + max-width: var(--content-max-width); + margin: 0 auto; + padding: 2rem 45px +} + +.app-nav:not(:empty)~main .markdown-section { + padding-top: 3.5rem +} + +.markdown-section figure, +.markdown-section p, +.markdown-section ol, +.markdown-section ul { + margin: 1em 0 +} + +.markdown-section ol, +.markdown-section ul { + padding-left: 1.5rem +} + +.markdown-section ol ol, +.markdown-section ol ul, +.markdown-section ul ol, +.markdown-section ul ul { + margin-top: .15rem; + margin-bottom: .15rem +} + +.markdown-section a { + border-bottom: var(--link-border-bottom); + color: var(--link-color); + -webkit-text-decoration: var(--link-text-decoration); + text-decoration: var(--link-text-decoration); + -webkit-text-decoration-color: var(--link-text-decoration-color); + text-decoration-color: var(--link-text-decoration-color) +} + +.markdown-section a:hover { + border-bottom: var(--link-border-bottom--hover, var(--link-border-bottom, 0)); + color: var(--link-color--hover, var(--link-color)); + -webkit-text-decoration: var(--link-text-decoration--hover, var(--link-text-decoration)); + text-decoration: var(--link-text-decoration--hover, var(--link-text-decoration)); + -webkit-text-decoration-color: var(--link-text-decoration-color--hover, var(--link-text-decoration-color)); + text-decoration-color: var(--link-text-decoration-color--hover, var(--link-text-decoration-color)) +} + +.markdown-section a.anchor { + border-bottom: 0; + color: inherit; + text-decoration: none +} + +.markdown-section a.anchor:hover { + text-decoration: underline +} + +.markdown-section blockquote { + overflow: visible; + margin: 2em 0; + padding: var(--blockquote-padding); + border-width: var(--blockquote-border-width, 0); + border-style: var(--blockquote-border-style); + border-color: var(--blockquote-border-color); + border-radius: var(--blockquote-border-radius); + background: var(--blockquote-background); + color: var(--blockquote-color); + font-family: var(--blockquote-font-family); + font-size: var(--blockquote-font-size); + font-style: var(--blockquote-font-style); + font-weight: var(--blockquote-font-weight); + quotes: "“""”""‘""’" +} + +.markdown-section blockquote em { + font-family: var(--blockquote-em-font-family); + font-size: var(--blockquote-em-font-size); + font-style: var(--blockquote-em-font-style); + font-weight: var(--blockquote-em-font-weight) +} + +.markdown-section blockquote p:first-child { + margin-top: 0 +} + +.markdown-section blockquote p:first-child:before, +.markdown-section blockquote p:first-child:after { + color: var(--blockquote-quotes-color); + font-family: var(--blockquote-quotes-font-family); + font-size: var(--blockquote-quotes-font-size); + line-height: 0 +} + +.markdown-section blockquote p:first-child:before { + content: var(--blockquote-quotes-open); + margin-right: .15em; + vertical-align: -0.45em +} + +.markdown-section blockquote p:first-child:after { + content: var(--blockquote-quotes-close); + margin-left: .15em; + vertical-align: -0.55em +} + +.markdown-section blockquote p:last-child { + margin-bottom: 0 +} + +.markdown-section code { + font-family: var(--code-font-family); + font-size: var(--code-font-size); + font-weight: var(--code-font-weight); + line-height: inherit +} + +.markdown-section code:not([class*=lang-]):not([class*=language-]) { + margin: var(--code-inline-margin); + padding: var(--code-inline-padding); + border-radius: var(--code-inline-border-radius); + background: var(--code-inline-background); + color: var(--code-inline-color, currentColor); + white-space: nowrap +} + +.markdown-section h1:first-child, +.markdown-section h2:first-child, +.markdown-section h3:first-child, +.markdown-section h4:first-child, +.markdown-section h5:first-child, +.markdown-section h6:first-child { + margin-top: 0 +} + +.markdown-section h1 a[data-id], +.markdown-section h2 a[data-id], +.markdown-section h3 a[data-id], +.markdown-section h4 a[data-id], +.markdown-section h5 a[data-id], +.markdown-section h6 a[data-id] { + display: inline-block +} + +.markdown-section h1 code, +.markdown-section h2 code, +.markdown-section h3 code, +.markdown-section h4 code, +.markdown-section h5 code, +.markdown-section h6 code { + font-size: .875em +} + +.markdown-section h1+h2, +.markdown-section h1+h3, +.markdown-section h1+h4, +.markdown-section h1+h5, +.markdown-section h1+h6, +.markdown-section h2+h3, +.markdown-section h2+h4, +.markdown-section h2+h5, +.markdown-section h2+h6, +.markdown-section h3+h4, +.markdown-section h3+h5, +.markdown-section h3+h6, +.markdown-section h4+h5, +.markdown-section h4+h6, +.markdown-section h5+h6 { + margin-top: 1rem +} + +.markdown-section h1 { + margin: var(--heading-h1-margin, var(--heading-margin)); + padding: var(--heading-h1-padding, var(--heading-padding)); + border-width: var(--heading-h1-border-width, 0); + border-style: var(--heading-h1-border-style); + border-color: var(--heading-h1-border-color); + font-family: var(--heading-h1-font-family, var(--heading-font-family)); + font-size: var(--heading-h1-font-size); + font-weight: var(--heading-h1-font-weight, var(--heading-font-weight)); + line-height: var(--base-line-height); + color: var(--heading-h1-color, var(--heading-color)) +} + +.markdown-section h2 { + margin: var(--heading-h2-margin, var(--heading-margin)); + padding: var(--heading-h2-padding, var(--heading-padding)); + border-width: var(--heading-h2-border-width, 0); + border-style: var(--heading-h2-border-style); + border-color: var(--heading-h2-border-color); + font-family: var(--heading-h2-font-family, var(--heading-font-family)); + font-size: var(--heading-h2-font-size); + font-weight: var(--heading-h2-font-weight, var(--heading-font-weight)); + line-height: var(--base-line-height); + color: var(--heading-h2-color, var(--heading-color)) +} + +.markdown-section h3 { + margin: var(--heading-h3-margin, var(--heading-margin)); + padding: var(--heading-h3-padding, var(--heading-padding)); + border-width: var(--heading-h3-border-width, 0); + border-style: var(--heading-h3-border-style); + border-color: var(--heading-h3-border-color); + font-family: var(--heading-h3-font-family, var(--heading-font-family)); + font-size: var(--heading-h3-font-size); + font-weight: var(--heading-h3-font-weight, var(--heading-font-weight)); + color: var(--heading-h3-color, var(--heading-color)) +} + +.markdown-section h4 { + margin: var(--heading-h4-margin, var(--heading-margin)); + padding: var(--heading-h4-padding, var(--heading-padding)); + border-width: var(--heading-h4-border-width, 0); + border-style: var(--heading-h4-border-style); + border-color: var(--heading-h4-border-color); + font-family: var(--heading-h4-font-family, var(--heading-font-family)); + font-size: var(--heading-h4-font-size); + font-weight: var(--heading-h4-font-weight, var(--heading-font-weight)); + color: var(--heading-h4-color, var(--heading-color)) +} + +.markdown-section h5 { + margin: var(--heading-h5-margin, var(--heading-margin)); + padding: var(--heading-h5-padding, var(--heading-padding)); + border-width: var(--heading-h5-border-width, 0); + border-style: var(--heading-h5-border-style); + border-color: var(--heading-h5-border-color); + font-family: var(--heading-h5-font-family, var(--heading-font-family)); + font-size: var(--heading-h5-font-size); + font-weight: var(--heading-h5-font-weight, var(--heading-font-weight)); + color: var(--heading-h5-color, var(--heading-color)) +} + +.markdown-section h6 { + margin: var(--heading-h6-margin, var(--heading-margin)); + padding: var(--heading-h6-padding, var(--heading-padding)); + border-width: var(--heading-h6-border-width, 0); + border-style: var(--heading-h6-border-style); + border-color: var(--heading-h6-border-color); + font-family: var(--heading-h6-font-family, var(--heading-font-family)); + font-size: var(--heading-h6-font-size); + font-weight: var(--heading-h6-font-weight, var(--heading-font-weight)); + color: var(--heading-h6-color, var(--heading-color)) +} + +.markdown-section iframe { + margin: 1em 0 +} + +.markdown-section img { + max-width: 100% +} + +.markdown-section kbd { + display: inline-block; + min-width: var(--kbd-min-width); + margin: var(--kbd-margin); + padding: var(--kbd-padding); + border: var(--kbd-border); + border-radius: var(--kbd-border-radius); + background: var(--kbd-background); + font-family: inherit; + font-size: var(--kbd-font-size); + text-align: center; + letter-spacing: 0; + line-height: 1; + color: var(--kbd-color) +} + +.markdown-section kbd+kbd { + margin-left: -0.15em +} + +.markdown-section table { + display: block; + overflow: auto; + margin: 1rem 0; + border-spacing: 0; + border-collapse: collapse +} + +.markdown-section th, +.markdown-section td { + padding: var(--table-cell-padding) +} + +.markdown-section th:not([align]) { + text-align: left +} + +.markdown-section thead { + border-color: var(--table-head-border-color); + border-style: solid; + border-width: var(--table-head-border-width, 0); + background: var(--table-head-background) +} + +.markdown-section th { + font-weight: var(--table-head-font-weight); + color: var(--strong-color) +} + +.markdown-section td { + border-color: var(--table-cell-border-color); + border-style: solid; + border-width: var(--table-cell-border-width, 0) +} + +.markdown-section tbody { + border-color: var(--table-body-border-color); + border-style: solid; + border-width: var(--table-body-border-width, 0) +} + +.markdown-section tbody tr:nth-child(odd) { + background: var(--table-row-odd-background) +} + +.markdown-section tbody tr:nth-child(even) { + background: var(--table-row-even-background) +} + +.markdown-section>ul .task-list-item { + margin-left: -1.25em +} + +.markdown-section>ul .task-list-item .task-list-item { + margin-left: 0 +} + +.markdown-section .table-wrapper { + overflow-x: auto +} + +.markdown-section .table-wrapper table { + display: table; + width: 100% +} + +.markdown-section .table-wrapper td::before { + display: none +} + +@media(max-width: 30em) { + + .markdown-section .table-wrapper tbody, + .markdown-section .table-wrapper tr, + .markdown-section .table-wrapper td { + display: block + } + + .markdown-section .table-wrapper th, + .markdown-section .table-wrapper td { + border: none + } + + .markdown-section .table-wrapper thead { + display: none + } + + .markdown-section .table-wrapper tr { + border-color: var(--table-cell-border-color); + border-style: solid; + border-width: var(--table-cell-border-width, 0); + padding: var(--table-cell-padding) + } + + .markdown-section .table-wrapper tr:not(:last-child) { + border-bottom: 0 + } + + .markdown-section .table-wrapper td { + padding: .15em 0 .15em 8em + } + + .markdown-section .table-wrapper td::before { + display: inline-block; + + width: 8em; + margin-left: -8em; + font-weight: bold; + text-align: left + } +} + +.markdown-section .tip, +.markdown-section .warn { + position: relative; + margin: 2em 0; + padding: var(--notice-padding); + border-width: var(--notice-border-width, 0); + border-style: var(--notice-border-style); + border-color: var(--notice-border-color); + border-radius: var(--notice-border-radius); + background: var(--notice-background); + font-family: var(--notice-font-family); + font-weight: var(--notice-font-weight); + color: var(--notice-color) +} + +.markdown-section .tip:before, +.markdown-section .warn:before { + display: inline-block; + position: var(--notice-before-position, relative); + top: var(--notice-before-top); + left: var(--notice-before-left); + height: var(--notice-before-height); + width: var(--notice-before-width); + margin: var(--notice-before-margin); + padding: var(--notice-before-padding); + border-radius: var(--notice-before-border-radius); + line-height: var(--notice-before-line-height); + font-family: var(--notice-before-font-family); + font-size: var(--notice-before-font-size); + font-weight: var(--notice-before-font-weight); + text-align: center +} + +.markdown-section .tip { + border-width: var(--notice-important-border-width, var(--notice-border-width, 0)); + border-style: var(--notice-important-border-style, var(--notice-border-style)); + border-color: var(--notice-important-border-color, var(--notice-border-color)); + background: var(--notice-important-background, var(--notice-background)); + color: var(--notice-important-color, var(--notice-color)) +} + +.markdown-section .tip:before { + content: var(--notice-important-before-content, var(--notice-before-content)); + background: var(--notice-important-before-background, var(--notice-before-background)); + color: var(--notice-important-before-color, var(--notice-before-color)) +} + +.markdown-section .warn { + border-width: var(--notice-tip-border-width, var(--notice-border-width, 0)); + border-style: var(--notice-tip-border-style, var(--notice-border-style)); + border-color: var(--notice-tip-border-color, var(--notice-border-color)); + background: var(--notice-tip-background, var(--notice-background)); + color: var(--notice-tip-color, var(--notice-color)) +} + +.markdown-section .warn:before { + content: var(--notice-tip-before-content, var(--notice-before-content)); + background: var(--notice-tip-before-background, var(--notice-before-background)); + color: var(--notice-tip-before-color, var(--notice-before-color)) +} + +.cover { + display: none; + position: relative; + z-index: 20; + min-height: 100vh; + flex-direction: column; + align-items: center; + justify-content: center; + padding: calc(var(--cover-border-inset, 0px) + var(--cover-border-width, 0px)); + color: var(--cover-color); + text-align: var(--cover-text-align) +} + +@media screen and (-ms-high-contrast: active), +screen and (-ms-high-contrast: none) { + .cover { + height: 100vh + } +} + +.cover:before, +.cover:after { + content: ""; + position: absolute +} + +.cover:before { + top: 0; + bottom: 0; + left: 0; + right: 0; + background-blend-mode: var(--cover-background-blend-mode); + background-color: var(--cover-background-color); + background-image: var(--cover-background-image); + background-position: var(--cover-background-position); + background-repeat: var(--cover-background-repeat); + background-size: var(--cover-background-size) +} + +.cover:after { + top: var(--cover-border-inset, 0); + bottom: var(--cover-border-inset, 0); + left: var(--cover-border-inset, 0); + right: var(--cover-border-inset, 0); + border-width: var(--cover-border-width, 0); + border-style: solid; + border-color: var(--cover-border-color) +} + +.cover a { + border-bottom: var(--cover-link-border-bottom); + color: var(--cover-link-color); + -webkit-text-decoration: var(--cover-link-text-decoration); + text-decoration: var(--cover-link-text-decoration); + -webkit-text-decoration-color: var(--cover-link-text-decoration-color); + text-decoration-color: var(--cover-link-text-decoration-color) +} + +.cover a:hover { + border-bottom: var(--cover-link-border-bottom--hover, var(--cover-link-border-bottom)); + color: var(--cover-link-color--hover, var(--cover-link-color)); + -webkit-text-decoration: var(--cover-link-text-decoration--hover, var(--cover-link-text-decoration)); + text-decoration: var(--cover-link-text-decoration--hover, var(--cover-link-text-decoration)); + -webkit-text-decoration-color: var(--cover-link-text-decoration-color--hover, var(--cover-link-text-decoration-color)); + text-decoration-color: var(--cover-link-text-decoration-color--hover, var(--cover-link-text-decoration-color)) +} + +.cover h1 { + color: var(--cover-heading-color); + position: relative; + margin: 0; + font-size: var(--cover-heading-font-size); + font-weight: var(--cover-heading-font-weight); + line-height: 1.2 +} + +.cover h1 a, +.cover h1 a:hover { + display: block; + border-bottom: none; + color: inherit; + text-decoration: none +} + +.cover h1 small { + position: absolute; + bottom: 0; + margin-left: .5em +} + +.cover h1 span { + font-size: calc(var(--cover-heading-font-size-min)*1px) +} + +@media(min-width: 26em) { + .cover h1 span { + font-size: calc(var(--cover-heading-font-size-min)*1px + (var(--cover-heading-font-size-max) - var(--cover-heading-font-size-min))*(100vw - 420px)/604) + } +} + +@media(min-width: 64em) { + .cover h1 span { + font-size: calc(var(--cover-heading-font-size-max)*1px) + } +} + +.cover blockquote { + margin: 0; + color: var(--cover-blockquote-color); + font-size: var(--cover-blockquote-font-size) +} + +.cover blockquote a { + color: inherit +} + +.cover ul { + padding: 0; + list-style-type: none +} + +.cover .cover-main { + position: relative; + z-index: 1; + max-width: var(--cover-max-width); + margin: var(--cover-margin); + padding: 0 45px +} + +.cover .cover-main>p:last-child { + margin: 1.25em -0.25em +} + +.cover .cover-main>p:last-child a { + display: block; + margin: .375em .25em; + padding: var(--cover-button-padding); + border: var(--cover-button-border); + border-radius: var(--cover-button-border-radius); + box-shadow: var(--cover-button-box-shadow); + background: var(--cover-button-background); + text-align: center; + -webkit-text-decoration: var(--cover-button-text-decoration); + text-decoration: var(--cover-button-text-decoration); + -webkit-text-decoration-color: var(--cover-button-text-decoration-color); + text-decoration-color: var(--cover-button-text-decoration-color); + color: var(--cover-button-color); + white-space: nowrap; + transition: var(--cover-button-transition) +} + +.cover .cover-main>p:last-child a:hover { + border: var(--cover-button-border--hover, var(--cover-button-border)); + box-shadow: var(--cover-button-box-shadow--hover, var(--cover-button-box-shadow)); + background: var(--cover-button-background--hover, var(--cover-button-background)); + -webkit-text-decoration: var(--cover-button-text-decoration--hover, var(--cover-button-text-decoration)); + text-decoration: var(--cover-button-text-decoration--hover, var(--cover-button-text-decoration)); + -webkit-text-decoration-color: var(--cover-button-text-decoration-color--hover, var(--cover-button-text-decoration-color)); + text-decoration-color: var(--cover-button-text-decoration-color--hover, var(--cover-button-text-decoration-color)); + color: var(--cover-button-color--hover, var(--cover-button-color)) +} + +.cover .cover-main>p:last-child a:first-child { + border: var(--cover-button-primary-border, var(--cover-button-border)); + box-shadow: var(--cover-button-primary-box-shadow, var(--cover-button-box-shadow)); + background: var(--cover-button-primary-background, var(--cover-button-background)); + -webkit-text-decoration: var(--cover-button-primary-text-decoration, var(--cover-button-text-decoration)); + text-decoration: var(--cover-button-primary-text-decoration, var(--cover-button-text-decoration)); + -webkit-text-decoration-color: var(--cover-button-primary-text-decoration-color, var(--cover-button-text-decoration-color)); + text-decoration-color: var(--cover-button-primary-text-decoration-color, var(--cover-button-text-decoration-color)); + color: var(--cover-button-primary-color, var(--cover-button-color)) +} + +.cover .cover-main>p:last-child a:first-child:hover { + border: var(--cover-button-primary-border--hover, var(--cover-button-border--hover, var(--cover-button-primary-border, var(--cover-button-border)))); + box-shadow: var(--cover-button-primary-box-shadow--hover, var(--cover-button-box-shadow--hover, var(--cover-button-primary-box-shadow, var(--cover-button-box-shadow)))); + background: var(--cover-button-primary-background--hover, var(--cover-button-background--hover, var(--cover-button-primary-background, var(--cover-button-background)))); + -webkit-text-decoration: var(--cover-button-primary-text-decoration--hover, var(--cover-button-text-decoration--hover, var(--cover-button-primary-text-decoration, var(--cover-button-text-decoration)))); + text-decoration: var(--cover-button-primary-text-decoration--hover, var(--cover-button-text-decoration--hover, var(--cover-button-primary-text-decoration, var(--cover-button-text-decoration)))); + -webkit-text-decoration-color: var(--cover-button-primary-text-decoration-color--hover, var(--cover-button-text-decoration-color--hover, var(--cover-button-primary-text-decoration-color, var(--cover-button-text-decoration-color)))); + text-decoration-color: var(--cover-button-primary-text-decoration-color--hover, var(--cover-button-text-decoration-color--hover, var(--cover-button-primary-text-decoration-color, var(--cover-button-text-decoration-color)))); + color: var(--cover-button-primary-color--hover, var(--cover-button-color--hover, var(--cover-button-primary-color, var(--cover-button-color)))) +} + +@media(min-width: 30.01em) { + .cover .cover-main>p:last-child a { + display: inline-block + } +} + +.cover .mask { + visibility: var(--cover-background-mask-visibility, hidden); + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: var(--cover-background-mask-color); + opacity: var(--cover-background-mask-opacity) +} + +.cover.has-mask .mask { + visibility: visible +} + +.cover.show { + display: flex +} + +.app-nav { + position: absolute; + z-index: 30; + top: calc(35px - .5em*var(--base-line-height)); + left: 45px; + right: 80px; + text-align: right +} + +.app-nav.no-badge { + right: 45px +} + +.app-nav li>img, +.app-nav li>a>img { + margin-top: -0.25em; + vertical-align: middle +} + +.app-nav li>img:first-child, +.app-nav li>a>img:first-child { + margin-right: .5em +} + +.app-nav ul, +.app-nav li { + margin: 0; + padding: 0; + list-style: none +} + +.app-nav li { + position: relative +} + +.app-nav li a { + display: block; + line-height: 1; + transition: var(--navbar-root-transition) +} + +.app-nav>ul>li { + display: inline-block; + margin: var(--navbar-root-margin) +} + +.app-nav>ul>li:first-child { + margin-left: 0 +} + +.app-nav>ul>li:last-child { + margin-right: 0 +} + +.app-nav>ul>li>a, +.app-nav>ul>li>span { + padding: var(--navbar-root-padding); + border-width: var(--navbar-root-border-width, 0); + border-style: var(--navbar-root-border-style); + border-color: var(--navbar-root-border-color); + border-radius: var(--navbar-root-border-radius); + background: var(--navbar-root-background); + color: var(--navbar-root-color); + -webkit-text-decoration: var(--navbar-root-text-decoration); + text-decoration: var(--navbar-root-text-decoration); + -webkit-text-decoration-color: var(--navbar-root-text-decoration-color); + text-decoration-color: var(--navbar-root-text-decoration-color) +} + +.app-nav>ul>li>a:hover, +.app-nav>ul>li>span:hover { + background: var(--navbar-root-background--hover, var(--navbar-root-background)); + border-style: var(--navbar-root-border-style--hover, var(--navbar-root-border-style)); + border-color: var(--navbar-root-border-color--hover, var(--navbar-root-border-color)); + color: var(--navbar-root-color--hover, var(--navbar-root-color)); + -webkit-text-decoration: var(--navbar-root-text-decoration--hover, var(--navbar-root-text-decoration)); + text-decoration: var(--navbar-root-text-decoration--hover, var(--navbar-root-text-decoration)); + -webkit-text-decoration-color: var(--navbar-root-text-decoration-color--hover, var(--navbar-root-text-decoration-color)); + text-decoration-color: var(--navbar-root-text-decoration-color--hover, var(--navbar-root-text-decoration-color)) +} + +.app-nav>ul>li>a:not(:last-child), +.app-nav>ul>li>span:not(:last-child) { + padding: var(--navbar-menu-root-padding, var(--navbar-root-padding)); + background: var(--navbar-menu-root-background, var(--navbar-root-background)) +} + +.app-nav>ul>li>a:not(:last-child):hover, +.app-nav>ul>li>span:not(:last-child):hover { + background: var(--navbar-menu-root-background--hover, var(--navbar-menu-root-background, var(--navbar-root-background--hover, var(--navbar-root-background)))) +} + +.app-nav>ul>li>a.active { + background: var(--navbar-root-background--active, var(--navbar-root-background)); + border-style: var(--navbar-root-border-style--active, var(--navbar-root-border-style)); + border-color: var(--navbar-root-border-color--active, var(--navbar-root-border-color)); + color: var(--navbar-root-color--active, var(--navbar-root-color)); + -webkit-text-decoration: var(--navbar-root-text-decoration--active, var(--navbar-root-text-decoration)); + text-decoration: var(--navbar-root-text-decoration--active, var(--navbar-root-text-decoration)); + -webkit-text-decoration-color: var(--navbar-root-text-decoration-color--active, var(--navbar-root-text-decoration-color)); + text-decoration-color: var(--navbar-root-text-decoration-color--active, var(--navbar-root-text-decoration-color)) +} + +.app-nav>ul>li>a.active:not(:last-child):hover { + background: var(--navbar-menu-root-background--active, var(--navbar-menu-root-background, var(--navbar-root-background--active, var(--navbar-root-background)))) +} + +.app-nav>ul>li ul { + visibility: hidden; + position: absolute; + top: 100%; + right: 50%; + overflow-y: auto; + box-sizing: border-box; + max-height: 50vh; + padding: var(--navbar-menu-padding); + border-width: var(--navbar-menu-border-width, 0); + border-style: solid; + border-color: var(--navbar-menu-border-color); + border-radius: var(--navbar-menu-border-radius); + background: var(--navbar-menu-background); + box-shadow: var(--navbar-menu-box-shadow); + text-align: left; + white-space: nowrap; + opacity: 0; + transform: translate(50%, -0.35em); + transition: var(--navbar-menu-transition) +} + +.app-nav>ul>li ul li { + white-space: nowrap +} + +.app-nav>ul>li ul a { + margin: var(--navbar-menu-link-margin); + padding: var(--navbar-menu-link-padding); + border-width: var(--navbar-menu-link-border-width, 0); + border-style: var(--navbar-menu-link-border-style); + border-color: var(--navbar-menu-link-border-color); + border-radius: var(--navbar-menu-link-border-radius); + background: var(--navbar-menu-link-background); + color: var(--navbar-menu-link-color); + -webkit-text-decoration: var(--navbar-menu-link-text-decoration); + text-decoration: var(--navbar-menu-link-text-decoration); + -webkit-text-decoration-color: var(--navbar-menu-link-text-decoration-color); + text-decoration-color: var(--navbar-menu-link-text-decoration-color) +} + +.app-nav>ul>li ul a:hover { + background: var(--navbar-menu-link-background--hover, var(--navbar-menu-link-background)); + border-style: var(--navbar-menu-link-border-style--hover, var(--navbar-menu-link-border-style)); + border-color: var(--navbar-menu-link-border-color--hover, var(--navbar-menu-link-border-color)); + color: var(--navbar-menu-link-color--hover, var(--navbar-menu-link-color)); + -webkit-text-decoration: var(--navbar-menu-link-text-decoration--hover, var(--navbar-menu-link-text-decoration)); + text-decoration: var(--navbar-menu-link-text-decoration--hover, var(--navbar-menu-link-text-decoration)); + -webkit-text-decoration-color: var(--navbar-menu-link-text-decoration-color--hover, var(--navbar-menu-link-text-decoration-color)); + text-decoration-color: var(--navbar-menu-link-text-decoration-color--hover, var(--navbar-menu-link-text-decoration-color)) +} + +.app-nav>ul>li ul a.active { + background: var(--navbar-menu-link-background--active, var(--navbar-menu-link-background)); + border-style: var(--navbar-menu-link-border-style--active, var(--navbar-menu-link-border-style)); + border-color: var(--navbar-menu-link-border-color--active, var(--navbar-menu-link-border-color)); + color: var(--navbar-menu-link-color--active, var(--navbar-menu-link-color)); + -webkit-text-decoration: var(--navbar-menu-link-text-decoration--active, var(--navbar-menu-link-text-decoration)); + text-decoration: var(--navbar-menu-link-text-decoration--active, var(--navbar-menu-link-text-decoration)); + -webkit-text-decoration-color: var(--navbar-menu-link-text-decoration-color--active, var(--navbar-menu-link-text-decoration-color)); + text-decoration-color: var(--navbar-menu-link-text-decoration-color--active, var(--navbar-menu-link-text-decoration-color)) +} + +.app-nav>ul>li:hover ul, +.app-nav>ul>li:focus ul, +.app-nav>ul>li.focus-within ul { + visibility: visible; + opacity: 1; + transform: translate(50%, 0) +} + +@media(min-width: 48em) { + nav.app-nav { + margin-left: var(--sidebar-width) + } +} + +main { + position: relative; + overflow-x: hidden; + min-height: 100vh +} + +.sidebar, +.sidebar-toggle, +.sidebar+.content { + transition: all var(--sidebar-transition-duration) ease-out +} + +@media(min-width: 48em) { + .sidebar+.content { + margin-left: var(--sidebar-width) + } +} + +.sidebar { + display: flex; + flex-direction: column; + position: fixed; + z-index: 10; + top: 0; + right: 100%; + overflow-x: hidden; + overflow-y: auto; + height: 100vh; + width: var(--sidebar-width); + padding: var(--sidebar-padding); + border-width: var(--sidebar-border-width); + border-style: solid; + border-color: var(--sidebar-border-color); + background: var(--sidebar-background) +} + +.sidebar>h1 { + margin: 0; + margin: var(--sidebar-name-margin); + padding: var(--sidebar-name-padding); + background: var(--sidebar-name-background); + color: var(--sidebar-name-color); + font-family: var(--sidebar-name-font-family); + font-size: var(--sidebar-name-font-size); + font-weight: var(--sidebar-name-font-weight); + text-align: var(--sidebar-name-text-align) +} + +.sidebar>h1 img { + max-width: 100% +} + +.sidebar>h1 .app-name-link { + color: var(--sidebar-name-color) +} + +body:not([data-platform^=Mac]) .sidebar::-webkit-scrollbar { + width: 5px +} + +body:not([data-platform^=Mac]) .sidebar::-webkit-scrollbar-thumb { + border-radius: 50vw +} + +@media(min-width: 48em) { + .sidebar { + position: absolute; + transform: translateX(var(--sidebar-width)) + } +} + +@media print { + .sidebar { + display: none + } +} + +.sidebar-nav, +.sidebar nav { + order: 1; + margin: var(--sidebar-nav-margin); + padding: var(--sidebar-nav-padding); + background: var(--sidebar-nav-background) +} + +.sidebar-nav ul, +.sidebar nav ul { + margin: 0; + padding: 0; + list-style: none +} + +.sidebar-nav ul ul, +.sidebar nav ul ul { + margin-left: var(--sidebar-nav-indent) +} + +.sidebar-nav a, +.sidebar nav a { + display: block; + overflow: hidden; + margin: var(--sidebar-nav-link-margin); + padding: var(--sidebar-nav-link-padding); + border-width: var(--sidebar-nav-link-border-width, 0); + border-style: var(--sidebar-nav-link-border-style); + border-color: var(--sidebar-nav-link-border-color); + border-radius: var(--sidebar-nav-link-border-radius); + background: var(--sidebar-nav-link-background); + color: var(--sidebar-nav-link-color); + font-weight: var(--sidebar-nav-link-font-weight); + white-space: nowrap; + -webkit-text-decoration: var(--sidebar-nav-link-text-decoration); + text-decoration: var(--sidebar-nav-link-text-decoration); + -webkit-text-decoration-color: var(--sidebar-nav-link-text-decoration-color); + text-decoration-color: var(--sidebar-nav-link-text-decoration-color); + text-overflow: ellipsis; + transition: var(--sidebar-nav-link-transition) +} + +.sidebar-nav a img, +.sidebar nav a img { + margin-top: -0.25em; + vertical-align: middle +} + +.sidebar-nav a img:first-child, +.sidebar nav a img:first-child { + margin-right: .5em +} + +.sidebar-nav a:hover, +.sidebar nav a:hover { + border-width: var(--sidebar-nav-link-border-width--hover, var(--sidebar-nav-link-border-width, 0)); + border-style: var(--sidebar-nav-link-border-style--hover, var(--sidebar-nav-link-border-style)); + border-color: var(--sidebar-nav-link-border-color--hover, var(--sidebar-nav-link-border-color)); + background: var(--sidebar-nav-link-background--hover, var(--sidebar-nav-link-background)); + color: var(--sidebar-nav-link-color--hover, var(--sidebar-nav-link-color)); + font-weight: var(--sidebar-nav-link-font-weight--hover, var(--sidebar-nav-link-font-weight)); + -webkit-text-decoration: var(--sidebar-nav-link-text-decoration--hover, var(--sidebar-nav-link-text-decoration)); + text-decoration: var(--sidebar-nav-link-text-decoration--hover, var(--sidebar-nav-link-text-decoration)); + -webkit-text-decoration-color: var(--sidebar-nav-link-text-decoration-color); + text-decoration-color: var(--sidebar-nav-link-text-decoration-color) +} + +.sidebar-nav ul>li>span, +.sidebar-nav ul>li>strong, +.sidebar nav ul>li>span, +.sidebar nav ul>li>strong { + display: block; + margin: var(--sidebar-nav-strong-margin); + padding: var(--sidebar-nav-strong-padding); + border-width: var(--sidebar-nav-strong-border-width, 0); + border-style: solid; + border-color: var(--sidebar-nav-strong-border-color); + color: var(--sidebar-nav-strong-color); + font-size: var(--sidebar-nav-strong-font-size); + font-weight: var(--sidebar-nav-strong-font-weight); + text-transform: var(--sidebar-nav-strong-text-transform) +} + +.sidebar-nav ul>li>span+ul, +.sidebar-nav ul>li>strong+ul, +.sidebar nav ul>li>span+ul, +.sidebar nav ul>li>strong+ul { + margin-left: 0 +} + +.sidebar-nav ul>li:first-child>span, +.sidebar-nav ul>li:first-child>strong, +.sidebar nav ul>li:first-child>span, +.sidebar nav ul>li:first-child>strong { + margin-top: 0 +} + +.sidebar-nav::-webkit-scrollbar, +.sidebar nav::-webkit-scrollbar { + width: 0 +} + +@supports(width: env(safe-area-inset)) { + @media only screen and (orientation: landscape) { + + .sidebar-nav, + .sidebar nav { + margin-left: calc(env(safe-area-inset-left)/2) + } + } +} + +.sidebar-nav li>a:before, +.sidebar-nav li>strong:before { + display: inline-block +} + +.sidebar-nav li>a { + background-repeat: var(--sidebar-nav-pagelink-background-repeat); + background-size: var(--sidebar-nav-pagelink-background-size) +} + +.sidebar-nav li>a[href^="/"]:not([href*="?id="]), +.sidebar-nav li>a[href^="#/"]:not([href*="?id="]) { + transition: var(--sidebar-nav-pagelink-transition) +} + +.sidebar-nav li>a[href^="/"]:not([href*="?id="]), +.sidebar-nav li>a[href^="/"]:not([href*="?id="])~ul a, +.sidebar-nav li>a[href^="#/"]:not([href*="?id="]), +.sidebar-nav li>a[href^="#/"]:not([href*="?id="])~ul a { + padding: var(--sidebar-nav-pagelink-padding, var(--sidebar-nav-link-padding)) +} + +.sidebar-nav li>a[href^="/"]:not([href*="?id="]):only-child, +.sidebar-nav li>a[href^="#/"]:not([href*="?id="]):only-child { + background: var(--sidebar-nav-pagelink-background) +} + +.sidebar-nav li>a[href^="/"]:not([href*="?id="]):not(:only-child), +.sidebar-nav li>a[href^="#/"]:not([href*="?id="]):not(:only-child) { + background: var(--sidebar-nav-pagelink-background--loaded, var(--sidebar-nav-pagelink-background)) +} + +.sidebar-nav li.active>a, +.sidebar-nav li.collapse>a { + border-width: var(--sidebar-nav-link-border-width--active, var(--sidebar-nav-link-border-width)); + border-style: var(--sidebar-nav-link-border-style--active, var(--sidebar-nav-link-border-style)); + border-color: var(--sidebar-nav-link-border-color--active, var(--sidebar-nav-link-border-color)); + background: var(--sidebar-nav-link-background--active, var(--sidebar-nav-link-background)); + color: var(--sidebar-nav-link-color--active, var(--sidebar-nav-link-color)); + font-weight: var(--sidebar-nav-link-font-weight--active, var(--sidebar-nav-link-font-weight)); + -webkit-text-decoration: var(--sidebar-nav-link-text-decoration--active, var(--sidebar-nav-link-text-decoration)); + text-decoration: var(--sidebar-nav-link-text-decoration--active, var(--sidebar-nav-link-text-decoration)); + -webkit-text-decoration-color: var(--sidebar-nav-link-text-decoration-color); + text-decoration-color: var(--sidebar-nav-link-text-decoration-color) +} + +.sidebar-nav li.active>a[href^="/"]:not([href*="?id="]):not(:only-child), +.sidebar-nav li.active>a[href^="#/"]:not([href*="?id="]):not(:only-child) { + background: var(--sidebar-nav-pagelink-background--active, var(--sidebar-nav-pagelink-background--loaded, var(--sidebar-nav-pagelink-background))) +} + +.sidebar-nav li.collapse>a[href^="/"]:not([href*="?id="]):not(:only-child), +.sidebar-nav li.collapse>a[href^="#/"]:not([href*="?id="]):not(:only-child) { + background: var(--sidebar-nav-pagelink-background--collapse, var(--sidebar-nav-pagelink-background--loaded, var(--sidebar-nav-pagelink-background))) +} + +.sidebar-nav li.collapse .app-sub-sidebar { + display: none +} + +.sidebar-nav>ul>li>a:before { + content: var(--sidebar-nav-link-before-content-l1, var(--sidebar-nav-link-before-content)); + margin: var(--sidebar-nav-link-before-margin-l1, var(--sidebar-nav-link-before-margin)); + color: var(--sidebar-nav-link-before-color-l1, var(--sidebar-nav-link-before-color)) +} + +.sidebar-nav>ul>li.active>a:before { + content: var(--sidebar-nav-link-before-content-l1--active, var(--sidebar-nav-link-before-content--active, var(--sidebar-nav-link-before-content-l1, var(--sidebar-nav-link-before-content)))); + color: var(--sidebar-nav-link-before-color-l1--active, var(--sidebar-nav-link-before-color--active, var(--sidebar-nav-link-before-color-l1, var(--sidebar-nav-link-before-color)))) +} + +.sidebar-nav>ul>li>ul>li>a:before { + content: var(--sidebar-nav-link-before-content-l2, var(--sidebar-nav-link-before-content)); + margin: var(--sidebar-nav-link-before-margin-l2, var(--sidebar-nav-link-before-margin)); + color: var(--sidebar-nav-link-before-color-l2, var(--sidebar-nav-link-before-color)) +} + +.sidebar-nav>ul>li>ul>li.active>a:before { + content: var(--sidebar-nav-link-before-content-l2--active, var(--sidebar-nav-link-before-content--active, var(--sidebar-nav-link-before-content-l2, var(--sidebar-nav-link-before-content)))); + color: var(--sidebar-nav-link-before-color-l2--active, var(--sidebar-nav-link-before-color--active, var(--sidebar-nav-link-before-color-l2, var(--sidebar-nav-link-before-color)))) +} + +.sidebar-nav>ul>li>ul>li>ul>li>a:before { + content: var(--sidebar-nav-link-before-content-l3, var(--sidebar-nav-link-before-content)); + margin: var(--sidebar-nav-link-before-margin-l3, var(--sidebar-nav-link-before-margin)); + color: var(--sidebar-nav-link-before-color-l3, var(--sidebar-nav-link-before-color)) +} + +.sidebar-nav>ul>li>ul>li>ul>li.active>a:before { + content: var(--sidebar-nav-link-before-content-l3--active, var(--sidebar-nav-link-before-content--active, var(--sidebar-nav-link-before-content-l3, var(--sidebar-nav-link-before-content)))); + color: var(--sidebar-nav-link-before-color-l3--active, var(--sidebar-nav-link-before-color--active, var(--sidebar-nav-link-before-color-l3, var(--sidebar-nav-link-before-color)))) +} + +.sidebar-nav>ul>li>ul>li>ul>li>ul>li>a:before { + content: var(--sidebar-nav-link-before-content-l4, var(--sidebar-nav-link-before-content)); + margin: var(--sidebar-nav-link-before-margin-l4, var(--sidebar-nav-link-before-margin)); + color: var(--sidebar-nav-link-before-color-l4, var(--sidebar-nav-link-before-color)) +} + +.sidebar-nav>ul>li>ul>li>ul>li>ul>li.active>a:before { + content: var(--sidebar-nav-link-before-content-l4--active, var(--sidebar-nav-link-before-content--active, var(--sidebar-nav-link-before-content-l4, var(--sidebar-nav-link-before-content)))); + color: var(--sidebar-nav-link-before-color-l4--active, var(--sidebar-nav-link-before-color--active, var(--sidebar-nav-link-before-color-l4, var(--sidebar-nav-link-before-color)))) +} + +.sidebar-nav>:last-child { + margin-bottom: 2rem +} + +.sidebar-toggle, +.sidebar-toggle-button { + width: var(--sidebar-toggle-width); + outline: none +} + +.sidebar-toggle { + position: fixed; + z-index: 11; + top: 0; + bottom: 0; + left: 0; + max-width: 40px; + margin: 0; + padding: 0; + border: 0; + background: rgba(0, 0, 0, 0); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + cursor: pointer +} + +.sidebar-toggle .sidebar-toggle-button { + position: absolute; + top: var(--sidebar-toggle-offset-top); + left: var(--sidebar-toggle-offset-left); + height: var(--sidebar-toggle-height); + border-radius: var(--sidebar-toggle-border-radius); + border-width: var(--sidebar-toggle-border-width); + border-style: var(--sidebar-toggle-border-style); + border-color: var(--sidebar-toggle-border-color); + background: var(--sidebar-toggle-background, transparent); + color: var(--sidebar-toggle-icon-color) +} + +.sidebar-toggle span { + position: absolute; + top: calc(50% - var(--sidebar-toggle-icon-stroke-width)/2); + left: calc(50% - var(--sidebar-toggle-icon-width)/2); + height: var(--sidebar-toggle-icon-stroke-width); + width: var(--sidebar-toggle-icon-width); + background-color: currentColor +} + +.sidebar-toggle span:nth-child(1) { + margin-top: calc(0px - var(--sidebar-toggle-icon-height)/2) +} + +.sidebar-toggle span:nth-child(3) { + margin-top: calc(var(--sidebar-toggle-icon-height)/2) +} + +@media(min-width: 48em) { + .sidebar-toggle { + position: absolute; + overflow: visible; + top: var(--sidebar-toggle-offset-top); + bottom: auto; + left: 0; + height: var(--sidebar-toggle-height); + transform: translateX(var(--sidebar-width)) + } + + .sidebar-toggle .sidebar-toggle-button { + top: 0 + } +} + +@media print { + .sidebar-toggle { + display: none + } +} + +@media(max-width: 47.99em) { + + body.close .sidebar, + body.close .sidebar-toggle, + body.close .sidebar+.content { + transform: translateX(var(--sidebar-width)) + } +} + +@media(min-width: 48em) { + body.close .sidebar+.content { + transform: translateX(0) + } +} + +@media(max-width: 47.99em) { + + body.close nav.app-nav, + body.close .github-corner { + display: none + } +} + +@media(min-width: 48em) { + + body.close .sidebar, + body.close .sidebar-toggle { + transform: translateX(0) + } +} + +@media(min-width: 48em) { + body.close nav.app-nav { + margin-left: 0 + } +} + +@media(max-width: 47.99em) { + body.close .sidebar-toggle { + width: 100%; + max-width: none + } + + body.close .sidebar-toggle span { + margin-top: 0 + } + + body.close .sidebar-toggle span:nth-child(1) { + transform: rotate(45deg) + } + + body.close .sidebar-toggle span:nth-child(2) { + display: none + } + + body.close .sidebar-toggle span:nth-child(3) { + transform: rotate(-45deg) + } +} + +@media(min-width: 48em) { + body.close .sidebar+.content { + margin-left: 0 + } +} + +@media(min-width: 48em) { + + body.sticky .sidebar, + body.sticky .sidebar-toggle { + position: fixed + } +} + +body .docsify-copy-code-button, +body .docsify-copy-code-button:after { + border-radius: var(--border-radius-m, 0); + border-top-left-radius: 0; + border-bottom-right-radius: 0; + background: var(--copycode-background); + color: var(--copycode-color) +} + +body .docsify-copy-code-button span { + border-radius: var(--border-radius-s, 0) +} + +body .docsify-pagination-container { + border-top: var(--pagination-border-top); + color: var(--pagination-color) +} + +body .pagination-item-label { + font-size: var(--pagination-label-font-size) +} + +body .pagination-item-label svg { + color: var(--pagination-label-color); + height: var(--pagination-chevron-height); + stroke: var(--pagination-chevron-stroke); + stroke-linecap: var(--pagination-chevron-stroke-linecap); + stroke-linejoin: var(--pagination-chevron-stroke-linecap); + stroke-width: var(--pagination-chevron-stroke-width) +} + +body .pagination-item-title { + color: var(--pagination-title-color); + font-size: var(--pagination-title-font-size) +} + +body .app-name.hide { + display: block +} + +body .sidebar { + padding: var(--sidebar-padding) +} + +.sidebar .search { + margin: 0; + padding: 0; + border: 0 +} + +.sidebar .search input { + padding: 0; + line-height: 1; + font-size: inherit +} + +.sidebar .search .clear-button { + width: auto +} + +.sidebar .search .clear-button svg { + transform: scale(1) +} + +.sidebar .search .matching-post { + border: none +} + +.sidebar .search p { + font-size: inherit +} + +.sidebar .search { + order: var(--search-flex-order); + margin: var(--search-margin); + padding: var(--search-padding); + background: var(--search-background) +} + +.sidebar .search a { + color: inherit +} + +.sidebar .search h2 { + margin: var(--search-result-heading-margin); + font-size: var(--search-result-heading-font-size); + font-weight: var(--search-result-heading-font-weight); + color: var(--search-result-heading-color) +} + +.sidebar .search .input-wrap { + align-items: stretch; + margin: var(--search-input-margin); + background-color: var(--search-input-background-color); + border-width: var(--search-input-border-width, 0); + border-style: solid; + border-color: var(--search-input-border-color); + border-radius: var(--search-input-border-radius) +} + +.sidebar .search input[type=search] { + min-width: 0; + padding: var(--search-input-padding); + border: none; + background-color: rgba(0, 0, 0, 0); + background-image: var(--search-input-background-image); + background-position: var(--search-input-background-position); + background-repeat: var(--search-input-background-repeat); + background-size: var(--search-input-background-size); + font-size: var(--search-input-font-size); + color: var(--search-input-color); + transition: var(--search-input-transition) +} + +.sidebar .search input[type=search]::-ms-clear { + display: none +} + +.sidebar .search input[type=search]::-moz-placeholder { + color: var(--search-input-placeholder-color, #808080) +} + +.sidebar .search input[type=search]::placeholder { + color: var(--search-input-placeholder-color, #808080) +} + +.sidebar .search input[type=search]::-webkit-input-placeholder { + line-height: normal +} + +.sidebar .search input[type=search]:focus { + background-color: var(--search-input-background-color--focus, var(--search-input-background-color)); + background-image: var(--search-input-background-image--focus, var(--search-input-background-image)); + background-position: var(--search-input-background-position--focus, var(--search-input-background-position)); + background-size: var(--search-input-background-size--focus, var(--search-input-background-size)) +} + +@supports(width: env(safe-area-inset)) { + @media only screen and (orientation: landscape) { + .sidebar .search input[type=search] { + margin-left: calc(env(safe-area-inset-left)/2) + } + } +} + +.sidebar .search p { + overflow: hidden; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2 +} + +.sidebar .search p:empty { + text-align: center +} + +.sidebar .search .clear-button { + margin: 0; + padding: 0 10px; + border: none; + line-height: 1; + background: rgba(0, 0, 0, 0); + cursor: pointer +} + +.sidebar .search .clear-button svg circle { + fill: var(--search-clear-icon-color1, #808080) +} + +.sidebar .search .clear-button svg path { + stroke: var(--search-clear-icon-color2, #fff) +} + +.sidebar .search.show~*:not(h1) { + display: none +} + +.sidebar .search .results-panel { + display: none; + color: var(--search-result-item-color); + font-size: var(--search-result-item-font-size); + font-weight: var(--search-result-item-font-weight) +} + +.sidebar .search .results-panel.show { + display: block +} + +.sidebar .search .matching-post { + margin: var(--search-result-item-margin); + padding: var(--search-result-item-padding) +} + +.sidebar .search .matching-post, +.sidebar .search .matching-post:last-child { + border-width: var(--search-result-item-border-width, 0) !important; + border-style: var(--search-result-item-border-style); + border-color: var(--search-result-item-border-color) +} + +.sidebar .search .matching-post p { + margin: 0 +} + +.sidebar .search .search-keyword { + margin: var(--search-result-keyword-margin); + padding: var(--search-result-keyword-padding); + border-radius: var(--search-result-keyword-border-radius); + background-color: var(--search-result-keyword-background); + color: var(--search-result-keyword-color, currentColor); + font-style: normal; + font-weight: var(--search-result-keyword-font-weight) +} + +.medium-zoom-overlay, +.medium-zoom-image--open, +.medium-zoom-image--opened { + z-index: 2147483646 !important +} + +.medium-zoom-overlay { + background: var(--zoomimage-overlay-background) !important +} + +:root { + --mono-hue: 113; + --mono-saturation: 0%; + --mono-shade3: hsl(var(--mono-hue), var(--mono-saturation), 20%); + --mono-shade2: hsl(var(--mono-hue), var(--mono-saturation), 30%); + --mono-shade1: hsl(var(--mono-hue), var(--mono-saturation), 40%); + --mono-base: hsl(var(--mono-hue), var(--mono-saturation), 50%); + --mono-tint1: hsl(var(--mono-hue), var(--mono-saturation), 70%); + --mono-tint2: hsl(var(--mono-hue), var(--mono-saturation), 89%); + --mono-tint3: hsl(var(--mono-hue), var(--mono-saturation), 97%); + --theme-hue: 204; + --theme-saturation: 90%; + --theme-lightness: 45%; + --theme-color: hsl(var(--theme-hue), var(--theme-saturation), var(--theme-lightness)); + --modular-scale: 1.333; + --modular-scale--2: calc(var(--modular-scale--1) / var(--modular-scale)); + --modular-scale--1: calc(var(--modular-scale-1) / var(--modular-scale)); + --modular-scale-1: 1rem; + --modular-scale-2: calc(var(--modular-scale-1) * var(--modular-scale)); + --modular-scale-3: calc(var(--modular-scale-2) * var(--modular-scale)); + --modular-scale-4: calc(var(--modular-scale-3) * var(--modular-scale)); + --modular-scale-5: calc(var(--modular-scale-4) * var(--modular-scale)); + --font-size-xxxl: var(--modular-scale-5); + --font-size-xxl: var(--modular-scale-4); + --font-size-xl: var(--modular-scale-3); + --font-size-l: var(--modular-scale-2); + --font-size-m: var(--modular-scale-1); + --font-size-s: var(--modular-scale--1); + --font-size-xs: var(--modular-scale--2); + --duration-slow: 1s; + --duration-medium: 0.5s; + --duration-fast: 0.25s; + --spinner-size: 60px; + --spinner-track-width: 4px; + --spinner-track-color: rgba(0, 0, 0, 0.15); + --spinner-transition-duration: var(--duration-medium) +} + +:root { + --base-background-color: #fff; + --base-color: var(--mono-shade2); + --base-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --base-font-size: 16px; + --base-font-weight: normal; + --base-line-height: 1.7; + --emoji-size: calc(var(--base-line-height) * 1em); + --hr-border: 1px solid var(--mono-tint2); + --mark-background: #ffecb3; + --pre-font-family: var(--code-font-family); + --pre-font-size: var(--code-font-size); + --pre-font-weight: normal; + --selection-color: #b4d5fe; + --small-font-size: var(--font-size-s); + --strong-color: #01afff; + --strong-font-weight: 600; + --subsup-font-size: var(--font-size-s) +} + +:root { + --content-max-width: 55em; + --blockquote-background: var(--mono-tint3); + --blockquote-border-style: solid; + --blockquote-border-radius: var(--border-radius-m); + --blockquote-em-font-weight: normal; + --blockquote-font-weight: normal; + --blockquote-padding: 1.5em; + --code-font-family: Inconsolata, Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", "Lucida Console", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; + --code-font-size: calc(var(--font-size-m) * 0.95); + --code-font-weight: normal; + --code-tab-size: 4; + --code-block-border-radius: var(--border-radius-m); + --code-block-line-height: var(--base-line-height); + --code-block-margin: 1em 0; + --code-block-padding: 1.75em 1.5em 1.5em 1.5em; + --code-inline-background: var(--code-theme-background); + --code-inline-border-radius: var(--border-radius-s); + --code-inline-color: var(--code-theme-text); + --code-inline-margin: 0 0.15em; + --code-inline-padding: 0.125em 0.4em; + --code-theme-background: var(--mono-tint3); + --heading-color: var(--mono-shade3); + --heading-margin: 2.5rem 0 0; + --heading-h1-border-style: solid; + --heading-h1-font-size: var(--font-size-xxl); + --heading-h2-border-style: solid; + --heading-h2-font-size: var(--font-size-xl); + --heading-h3-border-style: solid; + --heading-h3-font-size: var(--font-size-l); + --heading-h4-border-style: solid; + --heading-h4-font-size: var(--font-size-m); + --heading-h5-border-style: solid; + --heading-h5-font-size: var(--font-size-s); + --heading-h6-border-style: solid; + --heading-h6-font-size: var(--font-size-xs); + --kbd-background: var(--mono-tint3); + --kbd-border-radius: var(--border-radius-m); + --kbd-margin: 0 0.3em; + --kbd-min-width: 2.5em; + --kbd-padding: 0.65em 0.5em; + --link-text-decoration: underline; + --notice-background: var(--mono-tint3); + --notice-border-radius: var(--border-radius-m); + --notice-border-style: solid; + --notice-font-weight: normal; + --notice-padding: 1em 1.5em; + --notice-before-font-weight: normal; + --table-cell-padding: 0.75em 0.5em; + --table-head-border-color: var(--table-cell-border-color); + --table-head-font-weight: var(--strong-font-weight); + --table-row-odd-background: var(--mono-tint3) +} + +:root { + --cover-margin: 0 auto; + --cover-max-width: 40em; + --cover-text-align: center; + --cover-background-color: var(--base-background-color); + --cover-background-mask-color: var(--base-background-color); + --cover-background-mask-opacity: 0.8; + --cover-background-position: center center; + --cover-background-repeat: no-repeat; + --cover-background-size: cover; + --cover-blockquote-font-size: var(--font-size-l); + --cover-border-color: var(--theme-color); + --cover-button-border: 1px solid var(--theme-color); + --cover-button-border-radius: var(--border-radius-m); + --cover-button-color: var(--theme-color); + --cover-button-padding: 0.5em 2rem; + --cover-button-text-decoration: none; + --cover-button-transition: all var(--duration-fast) ease-in-out; + --cover-button-primary-background: var(--theme-color); + --cover-button-primary-border: 1px solid var(--theme-color); + --cover-button-primary-color: #fff; + --cover-heading-color: var(--theme-color); + --cover-heading-font-size: var(--font-size-xxl); + --cover-heading-font-weight: normal; + --cover-link-text-decoration: underline +} + +:root { + --navbar-root-border-style: solid; + --navbar-root-margin: 0 0 0 1.5em; + --navbar-root-transition: all var(--duration-fast); + --navbar-menu-background: var(--base-background-color); + --navbar-menu-border-radius: var(--border-radius-m); + --navbar-menu-box-shadow: rgba(45, 45, 45, 0.05) 0px 0px 1px, rgba(49, 49, 49, 0.05) 0px 1px 2px, rgba(42, 42, 42, 0.05) 0px 2px 4px, rgba(32, 32, 32, 0.05) 0px 4px 8px, rgba(49, 49, 49, 0.05) 0px 8px 16px, rgba(35, 35, 35, 0.05) 0px 16px 32px; + --navbar-menu-padding: 0.5em; + --navbar-menu-transition: all var(--duration-fast); + --navbar-menu-link-border-style: solid; + --navbar-menu-link-margin: 0.75em 0.5em; + --navbar-menu-link-padding: 0.2em 0 +} + +:root { + --copycode-background: #808080; + --copycode-color: #fff +} + +:root { + --docsifytabs-border-color: var(--mono-tint2); + --docsifytabs-border-radius-px: var(--border-radius-s); + --docsifytabs-tab-background: var(--mono-tint3); + --docsifytabs-tab-color: var(--mono-tint1) +} + +:root { + --pagination-border-top: 1px solid var(--mono-tint2); + --pagination-chevron-height: 0.8em; + --pagination-chevron-stroke: currentColor; + --pagination-chevron-stroke-linecap: round; + --pagination-chevron-stroke-width: 1px; + --pagination-label-font-size: var(--font-size-s); + --pagination-title-font-size: var(--font-size-l) +} + +:root { + --search-margin: 1.5rem 0 0; + --search-input-background-repeat: no-repeat; + --search-input-border-color: var(--mono-tint1); + --search-input-border-width: 1px; + --search-input-padding: 0.5em; + --search-flex-order: 1; + --search-result-heading-color: var(--heading-color); + --search-result-heading-font-size: var(--base-font-size); + --search-result-heading-font-weight: normal; + --search-result-heading-margin: 0 0 0.25em; + --search-result-item-border-color: var(--mono-tint2); + --search-result-item-border-style: solid; + --search-result-item-border-width: 0 0 1px 0; + --search-result-item-font-weight: normal; + --search-result-item-padding: 1em 0; + --search-result-keyword-background: var(--mark-background); + --search-result-keyword-border-radius: var(--border-radius-s); + --search-result-keyword-color: var(--mark-color); + --search-result-keyword-font-weight: normal; + --search-result-keyword-margin: 0 0.1em; + --search-result-keyword-padding: 0.2em 0 +} + +:root { + --zoomimage-overlay-background: rgba(0, 0, 0, 0.875) +} + +:root { + --sidebar-background: var(--base-background-color); + --sidebar-border-width: 0; + --sidebar-padding: 0 25px; + --sidebar-transition-duration: var(--duration-fast); + --sidebar-width: 17rem; + --sidebar-name-font-size: var(--font-size-l); + --sidebar-name-font-weight: normal; + --sidebar-name-margin: 1.5rem 0 0; + --sidebar-name-text-align: center; + --sidebar-nav-strong-border-color: var(--sidebar-border-color); + --sidebar-nav-strong-color: var(--heading-color); + --sidebar-nav-strong-font-weight: var(--strong-font-weight); + --sidebar-nav-strong-margin: 1.5em 0 0.5em; + --sidebar-nav-strong-padding: 0.25em 0; + --sidebar-nav-indent: 1em; + --sidebar-nav-margin: 1.5rem 0 0; + --sidebar-nav-link-border-style: solid; + --sidebar-nav-link-border-width: 0; + --sidebar-nav-link-color: var(--base-color); + --sidebar-nav-link-font-weight: normal; + --sidebar-nav-link-padding: 0.25em 0; + --sidebar-nav-link-text-decoration--active: underline; + --sidebar-nav-link-text-decoration--hover: underline; + --sidebar-nav-link-before-margin: 0 0.35em 0 0; + --sidebar-nav-pagelink-transition: var(--sidebar-nav-link-transition); + --sidebar-toggle-border-radius: var(--border-radius-s); + --sidebar-toggle-border-style: solid; + --sidebar-toggle-border-width: 0; + --sidebar-toggle-height: 36px; + --sidebar-toggle-icon-color: var(--base-color); + --sidebar-toggle-icon-height: 10px; + --sidebar-toggle-icon-stroke-width: 1px; + --sidebar-toggle-icon-width: 16px; + --sidebar-toggle-offset-left: 0; + --sidebar-toggle-offset-top: calc(35px - (var(--sidebar-toggle-height) / 2)); + --sidebar-toggle-width: 44px +} + +:root { + --code-theme-background: #f3f3f3; + --code-theme-comment: #6e8090; + --code-theme-function: #dd4a68; + --code-theme-keyword: #07a; + --code-theme-operator: #a67f59; + --code-theme-punctuation: #999; + --code-theme-selector: #690; + --code-theme-tag: #905; + --code-theme-text: #333; + --code-theme-variable: #e90 +} + +:root { + --border-radius-s: 2px; + --border-radius-m: 4px; + --border-radius-l: 8px; + --strong-font-weight: 600; + --blockquote-border-color: var(--theme-color); + --blockquote-border-radius: 0 var(--border-radius-m) var(--border-radius-m) 0; + --blockquote-border-width: 0 0 0 4px; + --code-inline-background: var(--mono-tint2); + --code-theme-background: var(--mono-tint3); + --heading-font-weight: var(--strong-font-weight); + --heading-h1-font-weight: 400; + --heading-h2-font-weight: 400; + --heading-h2-border-color: var(--mono-tint2); + --heading-h2-border-width: 0 0 1px 0; + --heading-h2-margin: 2.5rem 0 1.5rem; + --heading-h2-padding: 0 0 1rem 0; + --kbd-border: 1px solid var(--mono-tint2); + --notice-border-radius: 0 var(--border-radius-m) var(--border-radius-m) 0; + --notice-border-width: 0 0 0 4px; + --notice-padding: 1em 1.5em 1em 3em; + --notice-before-border-radius: 100%; + --notice-before-font-weight: bold; + --notice-before-height: 1.5em; + --notice-before-left: 0.75em; + --notice-before-line-height: 1.5; + --notice-before-margin: 0 0.25em 0 0; + --notice-before-position: absolute; + --notice-before-width: var(--notice-before-height); + --notice-important-background: hsl(340, 60%, 96%); + --notice-important-border-color: hsl(340, 90%, 45%); + --notice-important-before-background: var(--notice-important-border-color) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M10 14C10 15.1 9.1 16 8 16 6.9 16 6 15.1 6 14 6 12.9 6.9 12 8 12 9.1 12 10 12.9 10 14Z'/%3E%3Cpath d='M10 1.6C10 1.2 9.8 0.9 9.6 0.7 9.2 0.3 8.6 0 8 0 7.4 0 6.8 0.2 6.5 0.6 6.2 0.9 6 1.2 6 1.6 6 1.7 6 1.8 6 1.9L6.8 9.6C6.9 9.9 7 10.1 7.2 10.2 7.4 10.4 7.7 10.5 8 10.5 8.3 10.5 8.6 10.4 8.8 10.3 9 10.1 9.1 9.9 9.2 9.6L10 1.9C10 1.8 10 1.7 10 1.6Z'/%3E%3C/svg%3E") center / 0.875em no-repeat; + --notice-important-before-color: #fff; + --notice-important-before-content: ""; + --notice-tip-background: hsl(204, 60%, 96%); + --notice-tip-border-color: hsl(204, 90%, 45%); + --notice-tip-before-background: var(--notice-tip-border-color) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M9.1 0C10.2 0 10.7 0.7 10.7 1.6 10.7 2.6 9.8 3.6 8.6 3.6 7.6 3.6 7 3 7 2 7 1.1 7.7 0 9.1 0Z'/%3E%3Cpath d='M5.8 16C5 16 4.4 15.5 5 13.2L5.9 9.1C6.1 8.5 6.1 8.2 5.9 8.2 5.7 8.2 4.6 8.6 3.9 9.1L3.5 8.4C5.6 6.6 7.9 5.6 8.9 5.6 9.8 5.6 9.9 6.6 9.5 8.2L8.4 12.5C8.2 13.2 8.3 13.5 8.5 13.5 8.7 13.5 9.6 13.2 10.4 12.5L10.9 13.2C8.9 15.2 6.7 16 5.8 16Z'/%3E%3C/svg%3E") center / 0.875em no-repeat; + --notice-tip-before-color: #fff; + --notice-tip-before-content: ""; + --table-cell-border-color: var(--mono-tint2); + --table-cell-border-width: 1px 0; + --cover-background-color: hsl(var(--theme-hue), 25%, 60%); + --cover-background-image: radial-gradient(ellipse at center 115%, rgba(255, 255, 255, 0.9), transparent); + --cover-blockquote-color: var(--strong-color); + --cover-heading-color: #fff; + --cover-heading-font-size-max: 56; + --cover-heading-font-size-min: 34; + --cover-heading-font-weight: 200; + --navbar-root-color--active: var(--theme-color); + --navbar-menu-border-radius: var(--border-radius-m); + --navbar-menu-root-background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9.6' height='6' viewBox='0 0 9.6 6'%3E%3Cpath d='M1.5 1.5l3.3 3 3.3-3' stroke-width='1.5' stroke='rgb%28179, 179, 179%29' fill='none' stroke-linecap='square' stroke-linejoin='miter' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") right no-repeat; + --navbar-menu-root-padding: 0 18px 0 0; + --search-input-background-color: #fff; + --search-input-background-image: url("data:image/svg+xml,%3Csvg height='20px' width='20px' viewBox='0 0 24 24' fill='none' stroke='rgba(0, 0, 0, 0.3)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' preserveAspectRatio='xMidYMid meet' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10.5' cy='10.5' r='7.5' vector-effect='non-scaling-stroke'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='15.8' y2='15.8' vector-effect='non-scaling-stroke'%3E%3C/line%3E%3C/svg%3E"); + --search-input-background-position: 21px center; + --search-input-border-color: var(--sidebar-border-color); + --search-input-border-width: 1px 0; + --search-input-margin: 0 -25px; + --search-input-padding: 0.65em 1em 0.65em 50px; + --search-input-placeholder-color: rgba(0, 0, 0, 0.4); + --search-clear-icon-color1: rgba(0, 0, 0, 0.3); + --search-result-heading-font-weight: var(--strong-font-weight); + --search-result-item-border-color: var(--sidebar-border-color); + --search-result-keyword-border-radius: var(--border-radius-s); + --sidebar-background: var(--mono-tint3); + --sidebar-border-color: var(--mono-tint2); + --sidebar-border-width: 0 1px 0 0; + --sidebar-name-color: var(--theme-color); + --sidebar-name-font-weight: 300; + --sidebar-nav-strong-border-width: 0 0 1px 0; + --sidebar-nav-strong-font-size: smaller; + --sidebar-nav-strong-margin: 2em -25px 0.75em 0; + --sidebar-nav-strong-padding: 0.25em 0 0.75em 0; + --sidebar-nav-strong-text-transform: uppercase; + --sidebar-nav-link-border-color: transparent; + --sidebar-nav-link-border-color--active: var(--theme-color); + --sidebar-nav-link-border-width: 0 4px 0 0; + --sidebar-nav-link-color--active: var(--theme-color); + --sidebar-nav-link-margin: 0 -25px 0 0; + --sidebar-nav-link-text-decoration: none; + --sidebar-nav-link-text-decoration--active: none; + --sidebar-nav-link-text-decoration--hover: underline; + --sidebar-nav-pagelink-background: no-repeat 2px calc(50% - 2.5px) / 6px 5px linear-gradient(45deg, transparent 2.75px, var(--mono-tint1) 2.75px 4.25px, transparent 4px), no-repeat 2px calc(50% + 2.5px) / 6px 5px linear-gradient(135deg, transparent 2.75px, var(--mono-tint1) 2.75px 4.25px, transparent 4px); + --sidebar-nav-pagelink-background--active: no-repeat 0px center / 5px 6px linear-gradient(225deg, transparent 2.75px, var(--theme-color) 2.75px 4.25px, transparent 4.25px), no-repeat 5px center / 5px 6px linear-gradient(135deg, transparent 2.75px, var(--theme-color) 2.75px 4.25px, transparent 4.25px); + --sidebar-nav-pagelink-background--collapse: no-repeat 2px calc(50% - 2.5px) / 6px 5px linear-gradient(45deg, transparent 2.75px, var(--theme-color) 2.75px 4.25px, transparent 4px), no-repeat 2px calc(50% + 2.5px) / 6px 5px linear-gradient(135deg, transparent 2.75px, var(--theme-color) 2.75px 4.25px, transparent 4px); + --sidebar-nav-pagelink-background--loaded: no-repeat 0px center / 5px 6px linear-gradient(225deg, transparent 2.75px, var(--mono-tint1) 2.75px 4.25px, transparent 4.25px), no-repeat 5px center / 5px 6px linear-gradient(135deg, transparent 2.75px, var(--mono-tint1) 2.75px 4.25px, transparent 4.25px); + --sidebar-nav-pagelink-padding: 0.25em 0 0.25em 20px; + --sidebar-nav-pagelink-transition: none; + --sidebar-toggle-background: var(--sidebar-border-color); + --sidebar-toggle-border-radius: 0 var(--border-radius-s) var(--border-radius-s) 0; + --sidebar-toggle-width: 32px +} + +:root { + --code-theme-background: #222; + --code-theme-comment: #516e7a; + --code-theme-function: #f07178; + --code-theme-keyword: #c2e78c; + --code-theme-operator: #ffcb6b; + --code-theme-punctuation: #89ddff; + --code-theme-selector: #ffcb6b; + --code-theme-tag: #f07178; + --code-theme-text: #f3f3f3; + --code-theme-variable: #ffcb6b +} + +:root { + --mono-hue: 201; + --mono-saturation: 18%; + --mono-shade3: hsl(var(--mono-hue), var(--mono-saturation), 13%); + --mono-shade2: hsl(var(--mono-hue), var(--mono-saturation), 15%); + --mono-shade1: hsl(var(--mono-hue), var(--mono-saturation), 17%); + --mono-base: hsl(var(--mono-hue), var(--mono-saturation), 19%); + --mono-tint1: hsl(var(--mono-hue), var(--mono-saturation), 25%); + --mono-tint2: hsl(var(--mono-hue), var(--mono-saturation), 35%); + --mono-tint3: hsl(var(--mono-hue), var(--mono-saturation), 43%); + --spinner-track-color: rgba(255, 255, 255, 0.15); + --base-background-color: var(--mono-base); + --base-color: #d3d3d3; + --hr-border: 1px solid var(--mono-tint2); + --mark-background: #ffcb6b; + --mark-color: var(--base-background-color); + --selection-color: rgba(94, 131, 175, 0.75); + --blockquote-background: var(--mono-shade2); + --code-inline-background: var(--mono-tint1); + --code-theme-background: var(--mono-shade2); + --heading-color: #fff; + --heading-h2-border-color: var(--mono-tint2); + --kbd-background: var(--mono-shade2); + --kbd-border: none; + --kbd-color: var(--strong-color); + --notice-important-background: var(--mono-shade2); + --notice-tip-background: var(--mono-shade2); + --table-cell-border-color: var(--mono-tint1); + --table-row-odd-background: var(--mono-shade2); + --cover-background-color: var(--base-background-color); + --cover-background-image: radial-gradient(ellipse at center bottom, var(--mono-tint3), transparent); + --cover-blockquote-color: var(--mark-background); + --cover-button-border: 1px solid var(--mono-tint3); + --cover-button-color: #fff; + --navbar-menu-background: var(--mono-tint1); + --navbar-menu-box-shadow: rgba(0, 0, 0, 0.05) 0px 0px 1px, rgba(0, 0, 0, 0.05) 0px 1px 2px, rgba(0, 0, 0, 0.05) 0px 2px 4px, rgba(0, 0, 0, 0.05) 0px 4px 8px, rgba(0, 0, 0, 0.05) 0px 8px 16px, rgba(0, 0, 0, 0.05) 0px 16px 32px; + --copycode-background: var(--mono-tint1); + --copycode-color: #fff; + --docsifytabs-border-color: var(--mono-tint2); + --docsifytabs-tab-background: var(--mono-shade1); + --docsifytabs-tab-color: var(--mono-tint2); + --pagination-border-top: 1px solid var(--mono-tint2); + --pagination-title-color: #fff; + --search-input-background-color: var(--mono-shade2); + --search-input-background-image: url("data:image/svg+xml,%3Csvg height='20px' width='20px' viewBox='0 0 24 24' fill='none' stroke='rgba(255, 255, 255, 0.3)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' preserveAspectRatio='xMidYMid meet' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10.5' cy='10.5' r='7.5' vector-effect='non-scaling-stroke'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='15.8' y2='15.8' vector-effect='non-scaling-stroke'%3E%3C/line%3E%3C/svg%3E"); + --search-input-border-color: var(--mono-tint1); + --search-input-placeholder-color: rgba(255, 255, 255, 0.4); + --search-clear-icon-color1: rgba(255, 255, 255, 0.3); + --sidebar-background: var(--mono-shade1); + --sidebar-border-color: var(--mono-tint1); + --sidebar-nav-pagelink-background: no-repeat 2px calc(50% - 2.5px) / 6px 5px linear-gradient(45deg, transparent 2.75px, var(--mono-tint2) 2.75px 4.25px, transparent 4px), no-repeat 2px calc(50% + 2.5px) / 6px 5px linear-gradient(135deg, transparent 2.75px, var(--mono-tint2) 2.75px 4.25px, transparent 4px); + --sidebar-nav-pagelink-background--loaded: no-repeat 0px center / 5px 6px linear-gradient(225deg, transparent 2.75px, var(--mono-tint2) 2.75px 4.25px, transparent 4.25px), no-repeat 5px center / 5px 6px linear-gradient(135deg, transparent 2.75px, var(--mono-tint2) 2.75px 4.25px, transparent 4.25px) +} \ No newline at end of file diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css new file mode 100644 index 0000000..0264740 --- /dev/null +++ b/docs/assets/css/main.css @@ -0,0 +1,44 @@ +.markdown-section iframe[src*='buttons.github.io'] { + margin: 0; +} + +figure.thumbnails img { + margin: 0.75em 0; + border-radius: 3px; + box-shadow: + 0 2px 6px rgba(0, 0, 0, 0.1), + 0 4px 12px rgba(0, 0, 0, 0.15); +} + +@media (min-width: 30em) { + figure.thumbnails:after { + content: ''; + display: table; + clear: both; + } + + figure.thumbnails img { + float: left; + width: calc(50% - 0.75em); + } + + figure.thumbnails img:nth-child(even) { + margin-left: 1.5em; + } + + @supports (display: flex) { + figure.thumbnails { + display: flex; + align-items: center; + } + + figure.thumbnails img { + flex-grow: 1; + width: 0; + } + + figure.thumbnails img + img { + margin: 0 0 0 1.5em; + } + } +} diff --git a/docs/assets/css/theme.css b/docs/assets/css/theme.css new file mode 100644 index 0000000..a9e0107 --- /dev/null +++ b/docs/assets/css/theme.css @@ -0,0 +1,579 @@ +.app-nav:not(:empty)~main .markdown-section { + padding-top: 5.0rem; +} + +.pagination-item, .pagination-item-title { + opacity: .9 !important; +} + +.pagination-item:not(:last-child) a .pagination-item-label, .pagination-item:not(:last-child) a .pagination-item-subtitle, .pagination-item:not(:last-child) a .pagination-item-title { + opacity: .9 !important; + transition: all .2s; +} + +.markdown-section { + padding: 1rem 40px; +} + +.markdown-section .alert, .markdown-section blockquote { + overflow: visible; + margin: 1em 0; + padding: 1em; + border-width: var(--blockquote-border-width, 0); + border-style: var(--blockquote-border-style); + border-color: #81f100; + border-radius: var(--blockquote-border-radius); + background: var(--blockquote-background); + color: var(--blockquote-color); + font-family: var(--blockquote-font-family); + font-size: var(--blockquote-font-size); + font-style: var(--blockquote-font-style); + font-weight: var(--blockquote-font-weight); + quotes: "“""”""‘""’"; +} + +.markdown-section ul { + list-style: square outside none; +} + +.markdown-section .alert ul, .markdown-section blockquote ul { + list-style: none; + margin-top: .8em; +} + +.markdown-section .alert ul li, .markdown-section blockquote ul li { + margin: 2px 0; +} + +.markdown-section .alert ul li:before, .markdown-section blockquote ul li:before { + position: absolute; + content: '\2B29'; + margin-left: -18px; +} + +.markdown-section .button { + cursor: pointer; + color: var(--base-background-color); + height: auto; + display: inline-block; + padding: 10px; + font-family: -apple-system, "Segoe UI", "Helvetica Neue", sans-serif; + line-height: 1.2rem; + background-color: var(--link-color); + text-decoration: none; + border-radius: .25rem; +} + +.markdown-section a.button { + cursor: pointer; + color: var(--base-background-color); + text-decoration: none !important; +} + +.markdown-section .button-secondary { + cursor: pointer; + color: var(--link-color); + height: auto; + display: inline-block; + padding: 10px; + font-family: -apple-system, "Segoe UI", "Helvetica Neue", sans-serif; + line-height: 1.2rem; + background-color: transparent; + text-decoration: none; + border: 1px solid var(--link-color)!important; + border-radius: .25rem; +} + +.markdown-section a.button-secondary { + cursor: pointer; + color: var(--link-color); + text-decoration: none !important; +} + +.markdown-section .button-rounded { + cursor: pointer; + color: var(--base-background-color); + height: auto; + display: inline-block; + padding: 10px min(20px, 5%) 10px min(20px, 5%); + font-family: -apple-system, "Segoe UI", "Helvetica Neue", sans-serif; + line-height: 1.2rem; + background-color: var(--link-color); + text-decoration: none; + border-radius: 1.2rem; +} + +.markdown-section a.button-rounded { + cursor: pointer; + color: var(--base-background-color); + text-decoration: none !important; +} + +.markdown-section .button-secondary-rounded { + cursor: pointer; + color: var(--link-color); + height: auto; + display: inline-block; + padding: 10px min(20px, 5%) 10px min(20px, 5%); + font-family: -apple-system, "Segoe UI", "Helvetica Neue", sans-serif; + line-height: 1.2rem; + background-color: transparent; + text-decoration: none; + border: 1px solid var(--link-color)!important; + border-radius: 1.4rem; +} + +.markdown-section a.button-secondary-rounded { + cursor: pointer; + color: var(--link-color); + text-decoration: none !important; +} + +.markdown-section .navpill { + cursor: pointer; + color: var(--base-color); + height: auto; + display: inline-block; + border: 1px solid var(--base-color); + border-radius: 4rem; + padding: 4px 14px 4px 14px; + margin-bottom: 4px; + margin-right: 6px; + font-size: .8rem; + line-height: .9rem; + background-color: --base-background-color; + font-family: -apple-system, "Segoe UI", "Helvetica Neue", sans-serif; + font-weight: bold; + text-decoration: none; +} + +.markdown-section a.navpill { + cursor: pointer; + color: var(--base-color)!important; + border: 1px solid var(--base-color); + text-decoration: none !important; +} + +.markdown-section .badge { + color: var(--badge-text-color, var(--base-background-color)); /* Default text color */ + background-color: var(--badge-bg-color, color-mix(in srgb, var(--base-color) 70%, transparent)); /* Default background */ + + display: inline-block; + padding: .25em .4em .25em .4em; + font-family: -apple-system, "Segoe UI", "Helvetica Neue", sans-serif; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: middle; + margin-top: -0.4em; + 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; + text-decoration: none; +} + +.markdown-section .badge a { + color: var(--badge-text-color, var(--base-background-color))!important; /* Default text color */ + text-decoration: none !important; +} + +.markdown-section a[href$="?id=a"], .markdown-section a[href$='?id=b'], .markdown-section a[href$="?id=c"], .markdown-section a[href$="?id=d"], .markdown-section a[href$="?id=e"], .markdown-section a[href$="?id=f"], .markdown-section a[href$="?id=g"], .markdown-section a[href$="?id=h"], .markdown-section a[href$="?id=i"], .markdown-section a[href$="?id=j"], .markdown-section a[href$="?id=k"], .markdown-section a[href$="?id=l"], .markdown-section a[href$="?id=m"], .markdown-section a[href$="?id=n"], .markdown-section a[href$="?id=o"], .markdown-section a[href$="?id=p"], .markdown-section a[href$="?id=q"], .markdown-section a[href$="?id=r"], .markdown-section a[href$="?id=s"], .markdown-section a[href$="?id=t"], .markdown-section a[href$="?id=u"], .markdown-section a[href$="?id=v"], .markdown-section a[href$="?id=w"], .markdown-section a[href$="?id=x"], .markdown-section a[href$="?id=y"], .markdown-section a[href$="?id=z"] { + display: inline-flex; + padding-top: 0px; + padding-right: 6px; + padding-bottom: 0px; + padding-left: 6px; + line-height: 1.2em; +} + +.markdown-section #a, .markdown-section #b, .markdown-section #c, .markdown-section #d, .markdown-section #e, .markdown-section #f, .markdown-section #g, .markdown-section #h, .markdown-section #i, .markdown-section #j, .markdown-section #k, .markdown-section #l, .markdown-section #m, .markdown-section #n, .markdown-section #o, .markdown-section #p, .markdown-section #q, .markdown-section #r, .markdown-section #s, .markdown-section #t, .markdown-section #u, .markdown-section #v, .markdown-section #w, .markdown-section #x, .markdown-section #y, .markdown-section #z { + width: 2em; + color: var(--base-background-color); + font-weight: 700; + margin-top: 1.00rem; + padding-left: 0.25rem; + background: color-mix(in srgb, var(--base-color) 70%, transparent); +} + +.markdown-section .accordion { + margin-top: 1.05rem; + position: relative; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-clip: border-box; + border: 1px solid #CCCCCC; + border-radius: .15rem; +} + +.markdown-section details { + padding: .75rem 1.25rem; + margin-bottom: 0; + border-bottom: 1px solid #CCCCCC; +} + +.markdown-section summary { + cursor: pointer; + color: var(--link-color); + padding: 0; + + h1, h2, h3 { + margin: 0; + display: inline-block; + } +} + +.markdown-section code { + white-space: pre-wrap!important; +} + +.markdown-section pre code { + word-break: break-all!important; +} + +.markdown-section .fa-fw { + text-align: left; +} + +.markdown-section .video-container-4by3 { + position: relative; + padding-bottom: 75%; + height: 0; + overflow: hidden; + max-width: 100%; +} + +.markdown-section .video-container-16by9 { + position: relative; + padding-bottom: 56.25%; + height: 0; + overflow: hidden; + max-width: 100%; +} + +.video-container-16by9 iframe, .video-container-4by3 iframe, .embed-container object, .embed-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 93%; +} + +.markdown-section .responsive-container iframe { + max-width: 100%; +} + +.markdown-section .banner-image { + width: 100%; + height: 125px; + object-fit: cover; + object-position: 50% 50%; +} + +@media (min-width: 576px) { + .markdown-section .banner-image { + height: 250px; + } +} + +.markdown-section .banner-tall-image { + width: 100%; + height: 175px; + object-fit: cover; + object-position: 50% 50%; +} + +@media (min-width: 576px) { + .markdown-section .banner-tall-image { + height: 350px; + } +} + +.markdown-section .header-image-fade { + width: 100%; + margin: 0px auto; + position: absolute; + top: 0px; + left: 0; + -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0))); + mask-image: linear-gradient(to bottom, rgba(0,0,0,1), rgba(0,0,0,0)); + opacity: 0.4; + z-index: -1; +} + +/* CSS currently only works with sidebar and standalone pages */ +.markdown-section .header-image-fade-full-width { + margin-top: -2rem; + left: 50%; + right: 50%; + margin-left: -50vw; + margin-right: -50vw; + position: absolute; + width: 100vw; + max-width: 100vw; + -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0))); + mask-image: linear-gradient(to bottom, rgba(0,0,0,1), rgba(0,0,0,0)); + opacity: 0.4; + z-index: -1; +} + +/* CSS currently only works with sidebar and standalone pages */ +.markdown-section .header-image-full-width { + margin-top: -2rem; + left: 50%; + margin-left: -50vw; + margin-right: -50vw; + max-width: 100vw; + position: relative; + right: 50%; + width: 100vw; + height: 30dvh; + object-fit: cover; + object-position: center 50%; +} + +.markdown-section .header-tall-image-full-width { + margin-top: -2rem; + left: 50%; + margin-left: -50vw; + margin-right: -50vw; + max-width: 100vw; + position: relative; + right: 50%; + width: 100vw; + height: 40dvh; + object-fit: cover; + object-position: center 50%; +} + +.markdown-section .image-75 { + width: 75%; + height: auto; +} + +.markdown-section .image-50 { + width: 75%; + height: auto; +} + +.markdown-section .image-25 { + width: 75%; + height: auto; +} + +.markdown-section .image-75-border { + width: 75%; + height: auto; + border: 1px solid #dfdfdf; +} + +.markdown-section .image-50-border { + width: 75%; + height: auto; + border: 1px solid #dfdfdf; +} + +.markdown-section .image-25-border { + width: 75%; + height: auto; + border: 1px solid #dfdfdf; +} + +.markdown-section .image-border { + border: 1px solid #dfdfdf; +} + +.markdown-section .image-border-rounded { + border-radius: 0.35em; + border: 1px solid #dfdfdf; +} + +.markdown-section .column { + float: left; + padding-right: 1rem; + width: 50%; +} + +.markdown-section .column-right { + float: right; + padding-left: 1rem; + width: 50%; +} + +.markdown-section .column img { + padding-top: .35rem; +} + +.markdown-section .column-right img { + padding-top: .35rem; +} + +.markdown-section .reverse-columns .column { + float: right; +} + +.markdown-section .row:after { + content: ""; + display: table; + clear: both; +} + +@media screen and (max-width:800px) { + .markdown-section .column, .markdown-section .column-right { + width: 100%; + padding-right: 0rem; + padding-left: 0rem; + } + + .markdown-section .image-75, .markdown-section .image-50, .markdown-section .image-25, .markdown-section .image-75-border, .markdown-section .image-50-border, .markdown-section .image-25-border { + width: 100%; + height: auto; + } +} + +.markdown-section figure, .markdown-section p, .markdown-section ol, .markdown-section ul { + margin: 1em 0em .5em 0em; +} + +.markdown-section h1 { + line-height: 1.75rem; +} + +.markdown-section h2 { + line-height: 1.55rem; +} + +.markdown-section .h3 { + line-height: 1.35rem; +} + +.markdown-section h4 { + line-height: 1.3rem; +} + +.markdown-section h5 { + line-height: 1.25rem; +} + +.markdown-section h6 { + line-height: 1.2rem; +} + +.markdown-section .alert hr, .markdown-section blockquote hr { + margin: 1em 0; +} + +.markdown-section .alert h1, .markdown-section blockquote h1 { + font-size: 1.5rem; + line-height: 1.6rem; +} + +.markdown-section .alert h2, .markdown-section blockquote h2 { + font-size: 1.35rem; + line-height: 1.45rem; +} + +.markdown-section .alert h3, .markdown-section blockquote h3 { + font-size: 1.2rem; + line-height: 1.3rem; +} + +.markdown-section .alert h4, .markdown-section blockquote h4 { + font-size: 1.15rem; + line-height: 1.25rem; +} + +.markdown-section .alert h5, .markdown-section blockquote h5 { + font-size: 1.1rem; + line-height: 1.2rem; +} + +.markdown-section .alert h6, .markdown-section blockquote h6 { + font-size: 1rem; + line-height: 1.1rem; +} + +body .app-nav { + margin-right: -10px; +} + +body .docsify-pagination-container { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + overflow: hidden; + margin: 3em 0 1em; + border-top: 0px solid rgba(0, 0, 0, .07); +} + +.progress { + background-color: var(--blockquote-border-color); +} + +@media only screen and (max-width: 480px) { + + .markdown-section h1 { + font-size: 1.45rem; + line-height: 1.5rem; + } + + .markdown-section h2 { + font-size: 1.35rem; + line-height: 1.4rem; + } + + .markdown-section h3 { + font-size: 1.25rem; + line-height: 1.3rem; + } + + .markdown-section h4 { + font-size: 1.15rem; + line-height: 1.2rem; + } + + .markdown-section h5 { + font-size: 1.1rem; + line-height: 1.15rem; + } + + .markdown-section h6 { + font-size: 1rem; + line-height: 1.05rem; + } + + .markdown-section .alert h1, .markdown-section blockquote h1 { + font-size: 1.3rem; + line-height: 1.4rem; + } + + .markdown-section .alert h2, .markdown-section blockquote h2 { + font-size: 1.2rem; + line-height: 1.3rem; + } + + .markdown-section .alert h3, .markdown-section blockquote h3 { + font-size: 1.15rem; + line-height: 1.25rem; + } + + .markdown-section .alert h4, .markdown-section blockquote h4 { + font-size: 1.1rem; + line-height: 1.2rem; + } + + .markdown-section .alert h5, .markdown-section blockquote h5 { + font-size: 1.05rem; + line-height: 1.1rem; + } + + .markdown-section .alert h6, .markdown-section blockquote h6 { + font-size: 1rem; + line-height: 1.05rem; + } + +} \ No newline at end of file diff --git a/docs/assets/favicon/favicon.ico b/docs/assets/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d0461d090e0c8e39a227dba12fe151a283ab383c GIT binary patch literal 32064 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/logo_512x512.png b/docs/assets/images/logo_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..d0461d090e0c8e39a227dba12fe151a283ab383c GIT binary patch literal 32064 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 literal 0 HcmV?d00001 diff --git a/docs/assets/js/docsify-footer.js b/docs/assets/js/docsify-footer.js new file mode 100644 index 0000000..38b21ed --- /dev/null +++ b/docs/assets/js/docsify-footer.js @@ -0,0 +1,47 @@ +// Support for footer files ('_footer.md') in subfolders +// Original source plugin 'docsify-footer' by @alertbox +// This code was developed with the assistance of ChatGPT, an AI language model by OpenAI +(function (Docsify, $docsify, undefined) { + const DEFAULT_FOOTER = "_footer"; + + const install = function (hook, vm) { + const { loadFooter, ext, requestHeaders } = vm.config; + + // Fail fast if loadFooter is not defined + if (!loadFooter) { + return; + } + + hook.afterEach(function (html, next) { + try { + // Parse current URL to extract folder path + var urlFragment = window.location.hash.slice(1); // Remove '#' character + var pathSegments = urlFragment.split("/"); + var folderPath = pathSegments.slice(0, -1).join("/"); // Exclude the file part + folderPath = folderPath ? folderPath + "/" : ""; // Ensure folder path ends with '/' + + var footerAppended = false; // Flag to indicate footer append status + + var footerFile = + folderPath + + (loadFooter === true ? DEFAULT_FOOTER + ext : loadFooter); + + // Fetch and append the footer content + Docsify.get(vm.router.getFile(footerFile), false, requestHeaders) + .then((content) => { + const footerHtml = vm.compiler.compile(content); + footerAppended = true; // Set flag to true as footer is appended + next(html + footerHtml); // Append the footer to the current page content + }) + } finally { + // Check if footer was not appended, then pass html + if (!footerAppended) { + next(html); + } + } + }); + }; + + $docsify.plugins = [].concat(install, $docsify.plugins); + })(Docsify, $docsify); + \ No newline at end of file diff --git a/docs/assets/js/docsify-footer.min.js b/docs/assets/js/docsify-footer.min.js new file mode 100644 index 0000000..8a14d55 --- /dev/null +++ b/docs/assets/js/docsify-footer.min.js @@ -0,0 +1 @@ +!function(o,i,t){i.plugins=[].concat((function(i,t){const{loadFooter:e,ext:n,requestHeaders:c}=t.config;e&&i.afterEach((function(i,l){try{var s=window.location.hash.slice(1).split("/").slice(0,-1).join("/"),r=!1,a=(s=s?s+"/":"")+(!0===e?"_footer"+n:e);o.get(t.router.getFile(a),!1,c).then((o=>{const e=t.compiler.compile(o);r=!0,l(i+e)}))}finally{r||l(i)}}))}),i.plugins)}(Docsify,$docsify); \ No newline at end of file diff --git a/docs/assets/js/flexible-alerts.js b/docs/assets/js/flexible-alerts.js new file mode 100644 index 0000000..dc6eca8 --- /dev/null +++ b/docs/assets/js/flexible-alerts.js @@ -0,0 +1,99 @@ +/*! + * docsify-plugin-flexible-alerts + * v1.1.1 + * https://github.com/fzankl/docsify-plugin-flexible-alerts#readme + * (c) 2022 Fabian Zankl + * MIT license + */ +! function() { + "use strict"; + + function t(e) { + return t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { + return typeof t + } : function(t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t + }, t(e) + }! function(t, e) { + void 0 === e && (e = {}); + var a = e.insertAt; + if (t && "undefined" != typeof document) { + var o = document.head || document.getElementsByTagName("head")[0], + l = document.createElement("style"); + l.type = "text/css", "top" === a && o.firstChild ? o.insertBefore(l, o.firstChild) : o.appendChild(l), l.styleSheet ? l.styleSheet.cssText = t : l.appendChild(document.createTextNode(t)) + } + }(".alert{word-wrap:break-word;display:block;margin-bottom:1rem!important;padding:.75rem 1.25rem!important;position:relative;word-break:break-word}.alert>*{max-width:100%}.alert>:first-child{margin-top:0}.alert>:last-child{margin-bottom:0}.alert:before{content:unset!important}.alert+.alert{margin-top:-.25rem!important}.alert p{margin-bottom:.5rem;margin-top:.5rem}.alert .title{align-items:center;display:flex;flex-wrap:wrap;font-weight:600;margin:0}.icon{background-repeat:no-repeat;display:inline-block;height:16px;margin-right:.5rem;width:16px}.alert.callout{background:var(--background);border:1px solid #eee;border-left-width:.25rem;border-radius:.25rem}.alert.callout.note{border-left-color:#17a2b8!important}.alert.callout.note .title{color:#17a2b8}.alert.callout.note .icon-note{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='1em' height='1em' viewBox='0 0 16 16' fill='%2317a2b8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM8 5.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z'/%3E%3C/svg%3E\")}.alert.callout.tip{border-left-color:#28a745!important}.alert.callout.tip .title{color:#28a745}.alert.callout.tip .icon-tip{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='1em' height='1em' viewBox='0 0 352 512' fill='%2328a745' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z'/%3E%3C/svg%3E\")}.alert.callout.warning{border-left-color:#f0ad4e!important}.alert.callout.warning .title{color:#f0ad4e}.alert.callout.warning .icon-warning{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='1em' height='1em' viewBox='0 0 17 16' fill='%23f0ad4e' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 5zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E\")}.alert.callout.attention{border-left-color:#dc3545!important}.alert.callout.attention .title{color:#dc3545}.alert.callout.attention .icon-attention{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='1em' height='1em' viewBox='0 0 16 16' fill='%23dc3545' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath fill-rule='evenodd' d='M11.354 4.646a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708l6-6a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E\")}.alert.flat{background-color:#e2e3e5;border:1px solid #d6d8db;border-radius:.125rem;color:#383d41}.alert.flat.note{background-color:#cdeefd;border-color:#b4e6fc;color:#02587f}.alert.flat.note .title{color:#01354d}.alert.flat.note .icon-note{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='1em' height='1em' viewBox='0 0 16 16' fill='%2301354d' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM8 5.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z'/%3E%3C/svg%3E\")}.alert.flat.tip{background-color:#dbefdc;border-color:#c9e7cb;color:#285b2a}.alert.flat.tip .title{color:#18381a}.alert.flat.tip .icon-tip{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='1em' height='1em' viewBox='0 0 352 512' fill='%2318381a' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z'/%3E%3C/svg%3E\")}.alert.flat.warning{background-color:#ffddd3;border-color:#ffc9ba;color:#852d12}.alert.flat.warning .title{color:#581e0c}.alert.flat.warning .icon-warning{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='1em' height='1em' viewBox='0 0 17 16' fill='%23581e0c' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 5zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E\")}.alert.flat.attention{background-color:#fdd9d7;border-color:#fcc2bf;color:#7f231c}.alert.flat.attention .title{color:#551713}.alert.flat.attention .icon-attention{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='1em' height='1em' viewBox='0 0 16 16' fill='%23551713' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath fill-rule='evenodd' d='M11.354 4.646a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708l6-6a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E\")}"), + function() { + var e = { + style: "callout", + note: { + label: "Note", + icon: "icon-note", + className: "note" + }, + tip: { + label: "Tip", + icon: "icon-tip", + className: "tip" + }, + warning: { + label: "Warning", + icon: "icon-warning", + className: "warning" + }, + attention: { + label: "Attention", + icon: "icon-attention", + className: "attention" + }, + typeMappings: { + info: "note", + danger: "attention" + } + }; + + function a(t, e) { + var o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; + for (var l in e) try { + e[l].constructor === Object && o < 1 ? t[l] = a(t[l], e[l], o + 1) : t[l] = e[l] + } catch (a) { + t[l] = e[l] + } + return t + } + window.$docsify = window.$docsify || {}, window.$docsify.plugins = [].concat((function(o, l) { + var r = a(e, l.config["flexible-alerts"] || l.config.flexibleAlerts), + i = function(t, e, a, o) { + var l = (t || "").match(new RegExp("".concat(e, ":(([\\s\\w\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF-]*))"))); + return l ? o ? o(l[1]) : l[1] : o ? o(a) : a + }; + o.afterEach((function(e, a) { + a(e.replace(/<\s*blockquote[^>]*>[\s]+?(?:

)?\[!(\w*)((?:\|[\w*:[\s\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF-]*)*?)\]([\s\S]*?)(?:<\/p>)?<\s*\/\s*blockquote>/g, (function(e, a, o, n) { + !r[a.toLowerCase()] && r.typeMappings[a.toLowerCase()] && (a = r.typeMappings[a.toLowerCase()]); + var c = r[a.toLowerCase()]; + if (!c) return e; + var d = i(o, "style", r.style), + s = i(o, "iconVisibility", "visible", (function(t) { + return "hidden" !== t + })), + g = i(o, "labelVisibility", "visible", (function(t) { + return "hidden" !== t + })), + m = i(o, "label", c.label), + u = i(o, "icon", c.icon), + f = i(o, "className", c.className); + if ("object" === t(m)) { + var p = Object.keys(m).filter((function(t) { + return l.route.path.indexOf(t) > -1 + })); + p && p.length > 0 ? m = m[p[0]] : (g = !1, s = !1) + } + var w = ''), + h = '

'.concat(s ? w : "").concat(g ? m : "", "

"); + return '
\n ').concat(s || g ? h : "", "\n

").concat(n, "

\n
") + }))) + })) + }), window.$docsify.plugins) + }() +}(); +//# sourceMappingURL=docsify-plugin-flexible-alerts.min.js.map \ No newline at end of file diff --git a/docs/assets/js/main.js b/docs/assets/js/main.js new file mode 100644 index 0000000..3547c4f --- /dev/null +++ b/docs/assets/js/main.js @@ -0,0 +1,148 @@ +(function () { + // Functions + // ========================================================================= + /** + * Adds event listeners to change active stylesheet and restore previously + * activated stylesheet on reload. + * + * @example + * + * This link: + * Bar + * Activates an existing matched (href + group match): + * + * Generates a new if needed (no href + group match): + * + * Disables elements that match group but not href + * + * Ignores elements that do not match href and group + * + */ + function initStyleSwitcher() { + var SESSION_STORAGE_KEY = 'activeStylesheetHref'; + var SESSION_VAL_SEPARATOR = '||'; + + var isInitialized = false; + + function createLinkedStylesheet(styleHref, styleGroup) { + var activeElm = document.createElement('link'); + + activeElm.setAttribute('rel', 'stylesheet'); + activeElm.setAttribute('href', styleHref); + activeElm.setAttribute('data-style-group', styleGroup || ''); + + document.head.appendChild(activeElm); + + activeElm.addEventListener('load', function linkOnLoad() { + activeElm.removeEventListener('load', linkOnLoad); + handleSwitch(styleHref, styleGroup); + }); + + return activeElm; + } + + function handleSwitch(styleHref, styleGroup) { + var activeElm = styleGroup + ? document.querySelector( + 'link[href*="' + + styleHref + + '"][data-style-group="' + + styleGroup + + '"]' + ) + : document.querySelector('link[href*="' + styleHref + '"]'); + + if (!activeElm) { + activeElm = createLinkedStylesheet(styleHref, styleGroup); + + // Stylesheet will call this function after loading is complete + return; + } + + // Remove "alternate" keyword and media attribute + activeElm.setAttribute( + 'rel', + (activeElm.rel || '').replace(/\s*alternate/g, '').trim() + ); + activeElm.removeAttribute('media'); + + // Force enable stylesheet (required for some browsers) + activeElm.disabled = true; + activeElm.disabled = false; + + // Store active style sheet + sessionStorage.setItem( + SESSION_STORAGE_KEY, + styleGroup ? styleHref + SESSION_VAL_SEPARATOR + styleGroup : styleHref + ); + + var inactiveElms = styleGroup + ? document.querySelectorAll( + 'link:not([href*="' + + styleHref + + '"])[data-style-group="' + + styleGroup + + '"]' + ) + : document.querySelectorAll('link:not([href*="' + styleHref + '"])'); + + // Disable other elms + for (var i = 0; i < inactiveElms.length; i++) { + var elm = inactiveElms[i]; + + elm.disabled = true; + + // Fix for browsersync and alternate stylesheet updates. Will + // cause FOUC when switching stylesheets during development, but + // required to properly apply style updates when alternate + // stylesheets are enabled. + if (window.browsersyncObserver) { + var linkRel = elm.getAttribute('rel') || ''; + var linkRelAlt = + linkRel.indexOf('alternate') > -1 + ? linkRel + : (linkRel + ' alternate').trim(); + + elm.setAttribute('rel', linkRelAlt); + } + } + + // CSS custom property ponyfill + if ((window.$docsify || {}).themeable) { + window.$docsify.themeable.util.cssVars(); + } + } + + // Event listeners + if (!isInitialized) { + isInitialized = true; + + // Restore active stylesheet + document.addEventListener('DOMContentLoaded', function () { + var storedData = sessionStorage.getItem(SESSION_STORAGE_KEY) || ''; + var storedVals = storedData.split(SESSION_VAL_SEPARATOR); + var styleHref = storedVals[0] || ''; + var styleGroup = storedVals[1] || ''; + + if (styleHref) { + handleSwitch(styleHref, styleGroup); + } + }); + + // Update active stylesheet + document.addEventListener('click', function (evt) { + var styleHref = evt.target.getAttribute('data-style-href'); + var styleGroup = evt.target.getAttribute('data-style-group'); + + if (styleHref) { + handleSwitch(styleHref, styleGroup); + evt.preventDefault(); + } + }); + } + } + + // Main + // ========================================================================= + initStyleSwitcher(); +})(); diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..1204059 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,91 @@ + + + + + + + + + Panda-Network Docs + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + diff --git a/docs/introduction.md b/docs/introduction.md new file mode 100644 index 0000000..54379fa --- /dev/null +++ b/docs/introduction.md @@ -0,0 +1,8 @@ +--- +# Einführung + +
+ +Hier erfährst du über Panda-Network, was über Panda-Network und über die einzeln Produkte, sowie kleinen Standards, die für unsere Produkte wichtig sind. + +
diff --git a/docs/polas.md b/docs/polas.md new file mode 100644 index 0000000..0c9ed57 --- /dev/null +++ b/docs/polas.md @@ -0,0 +1,21 @@ +--- + +# Polas-System + +## Features + +* ✔ Polas + * Bürger & Fahrzeug suche +* ✔ Aktensystem + * Fahdungsliste + * Benutzerdefiniert Berichte schreiben +* ✔ Leistelle +* ✔ Bußgelrechner +* ✔ Termine +* ✔ Mitgliederliste + * Profil + * Benutzerdefiniert Logo upload +* ✔ Rechte-Einstellenung + * einfache Rechte bearbeitung +* ✔ Systemeinstellung + * Für Panelname & kleinigkeiten diff --git a/docs/products.md b/docs/products.md new file mode 100644 index 0000000..c4d0d66 --- /dev/null +++ b/docs/products.md @@ -0,0 +1,16 @@ +# Produkte + +#### Auflistung unsere System + +{% content-ref url="polas.md" %} +[polas.md](polas.md) +{% endcontent-ref %} + +{% content-ref url="pvs.md" %} +[pvs.md](pvs.md) +{% endcontent-ref %} + +{% content-ref url="tsup.md" %} +[tsup.md](tsup.md) +{% endcontent-ref %} + diff --git a/docs/pvs.md b/docs/pvs.md new file mode 100644 index 0000000..65cf293 --- /dev/null +++ b/docs/pvs.md @@ -0,0 +1,23 @@ +--- + +# PV-System + +#### Bald bei uns erhältlich. + +## Features + +- ✔ Patientenverzeichnis + - Bürger suche +- ✔ Aktenverzeichnis + - Benutzerdefiniert Berichte schreiben + - Teilen der Berichte +- ✔ Leistelle +- ✔ Mitgliederliste + - Profil + - Benutzerdefiniert Logo upload + - Passwort ändern +- ✔ Einstellenungen + - einfache Rechte bearbeitung + - einfache Akten Title Anlegen & Löschen +- ✔ Systemeinstellung + - Für Panelname & kleinigkeiten diff --git a/docs/r6roulette.md b/docs/r6roulette.md new file mode 100644 index 0000000..403d221 --- /dev/null +++ b/docs/r6roulette.md @@ -0,0 +1,26 @@ +--- + +# R6 Roulette - API + +> To access the API, you will need an API key. You can request this key through the ticket system on [Discord](https://discord.gg/z8ScRvf). +> Once you receive the API key, you can use it to access the API and utilize all available functions. + + +### Api Request +All Operator +```js +https://api.r6roulette.de/operator?api_key={YourApiKey} +``` +Select a specific one +```js +https://api.r6roulette.de/operator/Ace?api_key={YourApiKey} +``` +Only attacker or defender +```js +https://api.r6roulette.de/role/attacker?api_key={YourApiKey} +https://api.r6roulette.de/role/defender?api_key={YourApiKey} +``` +all challenges +```js +https://api.r6roulette.de/challenges?api_key={YourApiKey} +``` diff --git a/docs/robots.txt b/docs/robots.txt new file mode 100644 index 0000000..b3f1c3f --- /dev/null +++ b/docs/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /test/ \ No newline at end of file diff --git a/docs/sidebar.md b/docs/sidebar.md new file mode 100644 index 0000000..7eef348 --- /dev/null +++ b/docs/sidebar.md @@ -0,0 +1,5 @@ +- [Introduction](introduction) +- [Polas-System](polas) +- [PV-System](pvs) +- [R6 Roulette - API](r6roulette) +- [TS-Updater](tsup) diff --git a/docs/tsup.md b/docs/tsup.md new file mode 100644 index 0000000..74d22f3 --- /dev/null +++ b/docs/tsup.md @@ -0,0 +1,51 @@ +# TeamSpeak 3 Server Installer and Updater + +Ein leichtgewichtiges Skript zum Installieren oder Aktualisieren eines TeamSpeak 3-Servers unter Linux oder FreeBSD. + +## + +- **jq** 1.6 or newer (https://stedolan.github.io/jq/download/) +- curl +- shasum, sha256, or sha256sum +- tar +- bzip2 + +# How to use [Linux] + +# Installieren einen neuen TeamSpeak 3-Server + +Speicher das Skript an der Stelle, an der Sie den TS-Server installieren soll, und machen das Script ausführbar `chmod +x ts3updater.sh` und starte es mit `./ts3updater.sh`. Nach der Installation verschiebt sich das Skript in den Installationsordner. Führen Sie es von dort aus, wann immer Sie den Server aktualisieren möchten. + +## Aktualisiert eine vorhandene TeamSpeak 3-Server installation + +Kopiere das Skript im Verzeichnis Ihrer vorhandenen TS-Installation. Dies bedeutet, dass sich das Skript im selben Verzeichnis wie die `ts3server_startscript.sh`. Datei befinden muss Mache es ausführbar mit `chmod +x ts3updater.sh` und starte es mit `./ts3updater.sh`. + +Wenn TSDNS verwendet wirt, stelle sicher, dass der Dienst gestoppt ist, bevor dieses Skript ausführt wird. + +## Aktualisieren Sie den Server automatisch + +Da der Server nur aktualisiert wird, wenn eine neue Version verfügbar ist, können Sie das Skript auch zum Automatisieren von Updates verwenden. Erstellen Sie einfach einen Cronjob, der das Skript beispielsweise stündlich oder täglich ausführt. + +Ein Crontab-Eintrag, um ts3updater täglich um 13:28 Uhr auszuführen, könnte so aussehen: `28 13 * * * /home/ts/teamspeak3-server_linux_amd64/ts3updater.sh`. +Wenn du nicht jedes Mal eine E-Mail erhalten möchten, wenn das Skript ausgeführt wird. hänge das an den Crontab ` >/dev/null 2>&1` + +du must die Serverlizenzvereinbarung akzeptieren, bevor Sie den Cronjob erstellen. Wechseln dazu in das Verzeichnis der TS-Installation und lesen Sie die Datei `LICENSE`und erstellen Sie eine Datei mit dem Namen `.ts3server_license_accepted`. + +## Befehlszeilenparameter + +Alle Parameter werden an übergeben `ts3server_startscript.sh` wenn der Server gestartet wird. Wenn du den Server nach der Installation oder Aktualisierung nicht starten möchten, verwenden den Parameter`--dont-start`. + +# + +# How to use [Windows] + +## Installieren einen neuen TeamSpeak 3-Server + +Speicher das Skript an der Stelle, an der Sie den TS-Server installieren soll. +in der `ts3updater.bat` die Variable server dein Server verzeichnis angeben +Ein Crontab-Eintrag, um ts3updater täglich um 13:28 Uhr auszuführen, könnte so aussehen: `set server= D:\Teamspeak-server_win64`.und starte die `ts3updater.bat` + +## Aktualisiert eine vorhandene TeamSpeak 3-Server installation + +Kopiere das Skript im Verzeichnis Ihrer vorhandenen TS-Installation. +starte die `ts3updater.bat`