Add Lotusdocs theme

main
Abner Coimbre 2026-01-11 16:46:05 -08:00
parent d051d46d1f
commit 8a4d04db58
577 changed files with 40404 additions and 0 deletions

BIN
themes/lotusdocs/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,134 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behaviour that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behaviour include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behaviour and will take appropriate and fair corrective action in
response to any behaviour that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behaviour may be
reported to the community leaders responsible for enforcement at
contact@aigis.uk.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behaviour deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behaviour was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behaviour. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behaviour.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behaviour, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

20
themes/lotusdocs/LICENSE Normal file
View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2025 Colin Wilson
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

207
themes/lotusdocs/README.md Normal file
View File

@ -0,0 +1,207 @@
# Lotus Docs
[Lotus Docs](https://lotusdocs.dev) is an easily updated and customisable [Hugo](https://gohugo.io/) theme for building fast, secure, and SEO-friendly documentation sites.
![Lotus Docs Banner](https://res.cloudinary.com/lotuslabs/image/upload/r_10/v1693340386/Lotus%20Docs/Social%20Media/lotus_docs_social_preview_github_1280x640_colour_v1.3_xzm1ex.webp)
Check out the demo site [https://lotusdocs.dev/docs/](https://lotusdocs.dev/docs/) (also doubles as the documentation guide for Lotus Docs 📖)
## Features
* [x] Modern documentation layout
* [x] Responsive design / Mobile support
* [x] Fast, Accessible and SEO-Friendly (4 x 💯 scores on [Google Lighthouse](https://pagespeed.web.dev/)!)
* [x] Secure by default
* [x] Built on Bootstrap 5
* [x] Deploy on [GitHub Pages](https://lotusdocs.dev/docs/deployment/platforms/github-pages/), [GitLab Pages](https://lotusdocs.dev/docs/deployment/platforms/gitlab-pages/), [Vercel](https://vercel.com/), [Netlify](https://netlify.com), or [Cloudflare Pages](https://pages.cloudflare.com/)
* [x] Multilingual support (i18n)
* [x] Powerful Syntax Highlighting via [Prism.js](https://prismjs.com/)
* [x] Dark Mode
* [x] Custom fonts (via [Google Fonts](https://fonts.google.com/))
* [x] Custom icons (via [Google Material Symbols](https://fonts.google.com/icons?icon.style=Outlined&icon.set=Material+Symbols))
* [x] Landing page template included
* [x] Documentation sidebar menu (with optional icons)
* [x] Table of Contents menu on each page (optional)
* [x] Customisable theme accent colour
* [x] Social media links (Github, Twitter, Instagram etc)
* [x] Static Search plugin option (powered by [FlexSearch](https://github.com/nextapps-de/flexsearch), enabled by default)
* [x] Support for [DocSearch](https://docsearch.algolia.com/)
* [x] Custom shortcodes (PrismJS, Alerts, Tabs, Tables)
* [x] Analytics ([Google Analytics v4](https://analytics.google.com/analytics/web/), [Plausible Analytics](https://plausible.io/))
* [x] Cross-browser testing via [BrowserStack](https://browserstack.com)
* [x] Feedback widget
* [x] Math equations powered by [KaTeX](https://katex.org/)
* [x] [Mermaid](https://mermaid.js.org/) Support
* [x] [Open Graph](https://ogp.me/)
## Getting Started
### Requirements
- Hugo **Extended** (minimum version: 0.140.0)
- git
- Go (minimum version v1.21)
### Initialize your site as a Hugo Module
The Lotus Docs theme makes use of the [Hugo Bootstrap Module](https://github.com/gohugoio/hugo-mod-bootstrap-scss). For this reason, it's necessary to initialize your site as a Hugo Module. If your site isn't already, use the `hugo mod init` command to initialize your site as a Hugo module:
```bash
hugo mod init github.com/<username>/<your-hugo-site-name>
```
### Install Options
The Lotus Docs theme can be installed using one of the following methods:
- As a Hugo Module[^1] (recommended)
- As a Git submodule
- Clone the theme files locally
Prerequisites:
- `contentDir` present in project folder
### Install as a Hugo Module (recommended)
Edit the `hugo.toml` configuration file to include the [Lotus Docs theme](https://github.com/colinwilson/lotusdocs) and the [Hugo Bootstrap module](https://github.com/gohugoio/hugo-mod-bootstrap-scss) as modules:
```toml
baseURL = 'http://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
contentDir = 'content'
enableEmoji = true
[module]
[[module.imports]]
path = "github.com/colinwilson/lotusdocs"
disable = false
[[module.imports]]
path = "github.com/gohugoio/hugo-mod-bootstrap-scss/v5"
disable = false
[markup]
[markup.tableOfContents]
endLevel = 3
startLevel = 1
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true # https://jdhao.github.io/2019/12/29/hugo_html_not_shown/
[markup.goldmark.parser]
[markup.goldmark.parser.attribute]
block = true
```
### Install as a Git Submodule
From the root of your project run the following `git` commands:
```bash
git init
git submodule add https://github.com/colinwilson/lotusdocs themes/lotusdocs
```
Edit the `hugo.toml` config file:
```toml
baseURL = 'http://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
contentDir = 'content'
enableEmoji = true
[module]
# uncomment line below for temporary local development of module
# or when using a 'theme' as a git submodule
replacements = "github.com/colinwilson/lotusdocs -> lotusdocs"
[[module.imports]]
path = "github.com/colinwilson/lotusdocs"
disable = false
[[module.imports]]
path = "github.com/gohugoio/hugo-mod-bootstrap-scss/v5"
disable = false
[markup]
[markup.tableOfContents]
endLevel = 3
startLevel = 1
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true # https://jdhao.github.io/2019/12/29/hugo_html_not_shown/
[markup.goldmark.parser]
[markup.goldmark.parser.attribute]
block = true
```
### Install Locally
There may be cases where you prefer to customize and maintain the Lotus Docs theme yourself. In such cases, use `git` to clone the theme into the `themes/lotusdocs` directory:
```bash
git clone https://github.com/colinwilson/lotusdocs themes/lotusdocs
```
Edit the `hugo.toml` config file:
```toml
baseURL = 'http://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
[module]
# uncomment line below for temporary local development of module,
# when using a 'theme' as a git submodule or git cloned files
replacements = "github.com/colinwilson/lotusdocs -> lotusdocs"
[[module.imports]]
path = "github.com/colinwilson/lotusdocs"
disable = false
[[module.imports]]
path = "github.com/gohugoio/hugo-mod-bootstrap-scss/v5"
disable = false
```
## Create New Content
Navigate to the root of your Hugo project and use the `hugo new` command to create a file in the `content/docs` directory:
```shell
hugo new docs/example-page.md
```
This will create a markdown file named `example-page.md` with the following default front matter:
```yaml
---
title: "Example Page"
description: ""
icon: "article"
date: "2023-05-22T00:27:57+01:00"
lastmod: "2023-05-22T00:27:57+01:00"
draft: false
toc: true
weight: 999
---
```
Modify the above front matter options to suit your needs.
## Preview your site locally
Now that you've created some sample content you can preview your new Lotus Docs site using the `huge server` command:
```shell
hugo server -D
```
Navigate to `localhost:1313/docs/` and you should see a card link to the **Example Page** created earlier:
![New Lotus Docs Site - Example Content](https://res.cloudinary.com/lotuslabs/image/upload/v1690992310/Lotus%20Docs/images/lotus_docs_new_site_and_content_module_setup_oiuyex.png)
## Author
[Colin Wilson](https://github.com/colinwilson)
Copyright © 2022-2025 [Colin Wilson](https://github.com/colinwilson)
[^1]: [Hugo Modules](https://gohugo.io/hugo-modules/)

View File

@ -0,0 +1,7 @@
# Reporting Security Issues
The Lotus Labs team and community take security issues in Lotus Docs seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions.
To report a security issue, email [security@aigis.uk](mailto:security@aigis.uk) and include the word "SECURITY" in the subject line.
We'll endeavour to respond quickly, and will keep you updated throughout the process.

View File

@ -0,0 +1,2 @@
---
---

View File

@ -0,0 +1,10 @@
---
weight: 999
title: "{{ replace .Name "-" " " | title }}"
description: ""
icon: "article"
date: "{{ .Date }}"
lastmod: "{{ .Date }}"
draft: true
toc: true
---

BIN
themes/lotusdocs/assets/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,259 @@
/* Template Name: LotusLabs Docs
Author: Colin Wilson
E-mail: colin@aigis.uk
Created: October 2022
Version: 1.0.0
File Description: Main JS file of the docs template
*/
/*********************************/
/* INDEX */
/*================================
* 01. Toggle Menus *
* 02. Active Menu *
* 03. Clickable Menu *
* 04. Back to top *
* 05. DD Menu *
* 06. Active Sidebar Menu *
* 07. ScrollSpy *
================================*/
// Menu
// Toggle menu
function toggleMenu() {
document.getElementById('isToggle').classList.toggle('open');
var isOpen = document.getElementById('navigation')
if (isOpen.style.display === "block") {
isOpen.style.display = "none";
} else {
isOpen.style.display = "block";
}
};
// Menu Active
function getClosest(elem, selector) {
// Element.matches() polyfill
if (!Element.prototype.matches) {
Element.prototype.matches =
Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function (s) {
var matches = (this.document || this.ownerDocument).querySelectorAll(s),
i = matches.length;
while (--i >= 0 && matches.item(i) !== this) { }
return i > -1;
};
}
// Get the closest matching element
for (; elem && elem !== document; elem = elem.parentNode) {
if (elem.matches(selector)) return elem;
}
return null;
};
function activateMenu() {
var menuItems = document.getElementsByClassName("sub-menu-item");
if (menuItems) {
var matchingMenuItem = null;
for (var idx = 0; idx < menuItems.length; idx++) {
if (menuItems[idx].href === window.location.href) {
matchingMenuItem = menuItems[idx];
}
}
if (matchingMenuItem) {
matchingMenuItem.classList.add('active');
var immediateParent = getClosest(matchingMenuItem, 'li');
if (immediateParent) {
immediateParent.classList.add('active');
}
var parent = getClosest(matchingMenuItem, '.parent-menu-item');
if (parent) {
parent.classList.add('active');
var parentMenuitem = parent.querySelector('.menu-item');
if (parentMenuitem) {
parentMenuitem.classList.add('active');
}
var parentOfParent = getClosest(parent, '.parent-parent-menu-item');
if (parentOfParent) {
parentOfParent.classList.add('active');
}
} else {
var parentOfParent = getClosest(matchingMenuItem, '.parent-parent-menu-item');
if (parentOfParent) {
parentOfParent.classList.add('active');
}
}
}
}
}
// Sidebar Menu
function activateSidebarMenu() {
var current = location.pathname.substring(location.pathname.lastIndexOf('/') + 1);
if (current !== "" && document.getElementById("sidebar")) {
var menuItems = document.querySelectorAll('#sidebar button');
for (var i = 0, len = menuItems.length; i < len; i++) {
if (menuItems[i].getAttribute("href").indexOf(current) !== -1) {
menuItems[i].parentElement.className += " active";
if (menuItems[i].closest(".sidebar-submenu")) {
menuItems[i].closest(".sidebar-submenu").classList.add("d-block");
}
if (menuItems[i].closest(".sidebar-dropdown")) {
menuItems[i].closest(".sidebar-dropdown").classList.add("active");
}
}
}
}
}
if (document.getElementById("close-sidebar")) {
document.getElementById("close-sidebar").addEventListener("click", function () {
document.getElementsByClassName("page-wrapper")[0].classList.toggle("toggled");
});
}
// Close Sidebar (mobile)
if (!window.matchMedia('(min-width: 1024px)').matches) {
if (document.getElementById("close-sidebar")) {
const closeSidebar = document.getElementById("close-sidebar");
const sidebar = document.getElementById("sidebar");
const sidebarMenuLinks = Array.from(document.querySelectorAll(".sidebar-root-link,.sidebar-nested-link"));
// Close sidebar by clicking outside
document.addEventListener('click', function(elem) {
if (!closeSidebar.contains(elem.target) && !sidebar.contains(elem.target))
document.getElementsByClassName("page-wrapper")[0].classList.add("toggled");
});
// Close sidebar immediately when clicking sidebar menu item
sidebarMenuLinks.forEach(menuLink => {
menuLink.addEventListener("click", function () {
document.getElementsByClassName("page-wrapper")[0].classList.add("toggled");
});
});
}
}
// Clickable Menu
if (document.getElementById("navigation")) {
var elements = document.getElementById("navigation").getElementsByTagName("a");
for (var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function (elem) {
if (elem.target.getAttribute("href") === "javascript:void(0)") {
var submenu = elem.target.nextElementSibling.nextElementSibling;
submenu.classList.toggle('open');
}
}
}
}
if (document.getElementById("sidebar")) {
var elements = document.getElementById("sidebar").getElementsByTagName("button");
for (var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function (elem) {
// if(elem.target !== document.querySelectorAll("li.sidebar-dropdown.active > a")[0]){
// document.querySelectorAll("li.sidebar-dropdown.active")[0]?.classList?.toggle("active");
// document.querySelectorAll("div.sidebar-submenu.d-block")[0]?.classList?.toggle("d-block");
// }
// if(elem.target.getAttribute("href") === "javascript:void(0)") {
elem.target.parentElement.classList.toggle("active");
elem.target.nextElementSibling.classList.toggle("d-block");
// }
}
}
}
// Menu sticky
function windowScroll() {
var navbar = document.getElementById("topnav");
if (navbar === null) {
} else if (document.body.scrollTop >= 50 ||
document.documentElement.scrollTop >= 50) {
navbar.classList.add("nav-sticky");
} else {
navbar.classList.remove("nav-sticky");
}
}
window.addEventListener('scroll', (ev) => {
ev.preventDefault();
windowScroll();
})
// back-to-top
var mybutton = document.getElementById("back-to-top");
window.onscroll = function () {
scrollFunction();
};
function scrollFunction() {
if (mybutton != null) {
if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
mybutton.style.display = "block";
} else {
mybutton.style.display = "none";
}
}
}
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
// dd-menu
if (document.getElementsByClassName("dd-menu")) {
var ddmenu = document.getElementsByClassName("dd-menu");
for (var i = 0, len = ddmenu.length; i < len; i++) {
ddmenu[i].onclick = function (elem) {
elem.stopPropagation();
}
}
}
// Active Sidebar
(function () {
var current = location.pathname.substring(location.pathname.lastIndexOf('/') + 1);
if (current === "") return;
var menuItems = document.querySelectorAll('.sidebar-nav a');
for (var i = 0, len = menuItems.length; i < len; i++) {
if (menuItems[i].getAttribute("href").indexOf(current) !== -1) {
menuItems[i].parentElement.className += " active";
}
}
})();
// Last Modified Date of current page (relative time format)
if (document.getElementById("relativetime")) {
dayjs.extend(window.dayjs_plugin_relativeTime);
const modId = document.getElementById('relativetime');
let modAgo = dayjs(modId.getAttribute('data-authdate')).fromNow();
document.getElementById("relativetime").innerHTML = modAgo;
};
// Initialize Bootstrap Tooltips
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new Tooltip(tooltipTriggerEl))
/**
* Sanitize and encode all HTML in a user-submitted string
* https://portswigger.net/web-security/cross-site-scripting/preventing
* @param {String} str The user-submitted string
* @return {String} str The sanitized string
*/
var sanitizeHTML = function (str) {
return str.replace(/[^\w. ]/gi, function (c) {
return '&#' + c.charCodeAt(0) + ';';
});
};

View File

@ -0,0 +1,349 @@
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("katex"));
else if(typeof define === 'function' && define.amd)
define(["katex"], factory);
else if(typeof exports === 'object')
exports["renderMathInElement"] = factory(require("katex"));
else
root["renderMathInElement"] = factory(root["katex"]);
})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__771__) {
return /******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ 771:
/***/ (function(module) {
module.exports = __WEBPACK_EXTERNAL_MODULE__771__;
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ !function() {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function() { return module['default']; } :
/******/ function() { return module; };
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ !function() {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = function(exports, definition) {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ !function() {
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ }();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
!function() {
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"default": function() { return /* binding */ auto_render; }
});
// EXTERNAL MODULE: external "katex"
var external_katex_ = __webpack_require__(771);
var external_katex_default = /*#__PURE__*/__webpack_require__.n(external_katex_);
;// CONCATENATED MODULE: ./contrib/auto-render/splitAtDelimiters.js
/* eslint no-constant-condition:0 */
var findEndOfMath = function findEndOfMath(delimiter, text, startIndex) {
// Adapted from
// https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx
var index = startIndex;
var braceLevel = 0;
var delimLength = delimiter.length;
while (index < text.length) {
var character = text[index];
if (braceLevel <= 0 && text.slice(index, index + delimLength) === delimiter) {
return index;
} else if (character === "\\") {
index++;
} else if (character === "{") {
braceLevel++;
} else if (character === "}") {
braceLevel--;
}
index++;
}
return -1;
};
var escapeRegex = function escapeRegex(string) {
return string.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
};
var amsRegex = /^\\begin{/;
var splitAtDelimiters = function splitAtDelimiters(text, delimiters) {
var index;
var data = [];
var regexLeft = new RegExp("(" + delimiters.map(function (x) {
return escapeRegex(x.left);
}).join("|") + ")");
while (true) {
index = text.search(regexLeft);
if (index === -1) {
break;
}
if (index > 0) {
data.push({
type: "text",
data: text.slice(0, index)
});
text = text.slice(index); // now text starts with delimiter
} // ... so this always succeeds:
var i = delimiters.findIndex(function (delim) {
return text.startsWith(delim.left);
});
index = findEndOfMath(delimiters[i].right, text, delimiters[i].left.length);
if (index === -1) {
break;
}
var rawData = text.slice(0, index + delimiters[i].right.length);
var math = amsRegex.test(rawData) ? rawData : text.slice(delimiters[i].left.length, index);
data.push({
type: "math",
data: math,
rawData: rawData,
display: delimiters[i].display
});
text = text.slice(index + delimiters[i].right.length);
}
if (text !== "") {
data.push({
type: "text",
data: text
});
}
return data;
};
/* harmony default export */ var auto_render_splitAtDelimiters = (splitAtDelimiters);
;// CONCATENATED MODULE: ./contrib/auto-render/auto-render.js
/* eslint no-console:0 */
/* Note: optionsCopy is mutated by this method. If it is ever exposed in the
* API, we should copy it before mutating.
*/
var renderMathInText = function renderMathInText(text, optionsCopy) {
var data = auto_render_splitAtDelimiters(text, optionsCopy.delimiters);
if (data.length === 1 && data[0].type === 'text') {
// There is no formula in the text.
// Let's return null which means there is no need to replace
// the current text node with a new one.
return null;
}
var fragment = document.createDocumentFragment();
for (var i = 0; i < data.length; i++) {
if (data[i].type === "text") {
fragment.appendChild(document.createTextNode(data[i].data));
} else {
var span = document.createElement("span");
var math = data[i].data; // Override any display mode defined in the settings with that
// defined by the text itself
optionsCopy.displayMode = data[i].display;
try {
if (optionsCopy.preProcess) {
math = optionsCopy.preProcess(math);
}
external_katex_default().render(math, span, optionsCopy);
} catch (e) {
if (!(e instanceof (external_katex_default()).ParseError)) {
throw e;
}
optionsCopy.errorCallback("KaTeX auto-render: Failed to parse `" + data[i].data + "` with ", e);
fragment.appendChild(document.createTextNode(data[i].rawData));
continue;
}
fragment.appendChild(span);
}
}
return fragment;
};
var renderElem = function renderElem(elem, optionsCopy) {
for (var i = 0; i < elem.childNodes.length; i++) {
var childNode = elem.childNodes[i];
if (childNode.nodeType === 3) {
// Text node
// Concatenate all sibling text nodes.
// Webkit browsers split very large text nodes into smaller ones,
// so the delimiters may be split across different nodes.
var textContentConcat = childNode.textContent;
var sibling = childNode.nextSibling;
var nSiblings = 0;
while (sibling && sibling.nodeType === Node.TEXT_NODE) {
textContentConcat += sibling.textContent;
sibling = sibling.nextSibling;
nSiblings++;
}
var frag = renderMathInText(textContentConcat, optionsCopy);
if (frag) {
// Remove extra text nodes
for (var j = 0; j < nSiblings; j++) {
childNode.nextSibling.remove();
}
i += frag.childNodes.length - 1;
elem.replaceChild(frag, childNode);
} else {
// If the concatenated text does not contain math
// the siblings will not either
i += nSiblings;
}
} else if (childNode.nodeType === 1) {
(function () {
// Element node
var className = ' ' + childNode.className + ' ';
var shouldRender = optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) === -1 && optionsCopy.ignoredClasses.every(function (x) {
return className.indexOf(' ' + x + ' ') === -1;
});
if (shouldRender) {
renderElem(childNode, optionsCopy);
}
})();
} // Otherwise, it's something else, and ignore it.
}
};
var renderMathInElement = function renderMathInElement(elem, options) {
if (!elem) {
throw new Error("No element provided to render");
}
var optionsCopy = {}; // Object.assign(optionsCopy, option)
for (var option in options) {
if (options.hasOwnProperty(option)) {
optionsCopy[option] = options[option];
}
} // default options
optionsCopy.delimiters = optionsCopy.delimiters || [{
left: "$$",
right: "$$",
display: true
}, {
left: "\\(",
right: "\\)",
display: false
}, // LaTeX uses $…$, but it ruins the display of normal `$` in text:
// {left: "$", right: "$", display: false},
// $ must come after $$
// Render AMS environments even if outside $$…$$ delimiters.
{
left: "\\begin{equation}",
right: "\\end{equation}",
display: true
}, {
left: "\\begin{align}",
right: "\\end{align}",
display: true
}, {
left: "\\begin{alignat}",
right: "\\end{alignat}",
display: true
}, {
left: "\\begin{gather}",
right: "\\end{gather}",
display: true
}, {
left: "\\begin{CD}",
right: "\\end{CD}",
display: true
}, {
left: "\\[",
right: "\\]",
display: true
}];
optionsCopy.ignoredTags = optionsCopy.ignoredTags || ["script", "noscript", "style", "textarea", "pre", "code", "option"];
optionsCopy.ignoredClasses = optionsCopy.ignoredClasses || [];
optionsCopy.errorCallback = optionsCopy.errorCallback || console.error; // Enable sharing of global macros defined via `\gdef` between different
// math elements within a single call to `renderMathInElement`.
optionsCopy.macros = optionsCopy.macros || {};
renderElem(elem, optionsCopy);
};
/* harmony default export */ var auto_render = (renderMathInElement);
}();
__webpack_exports__ = __webpack_exports__["default"];
/******/ return __webpack_exports__;
/******/ })()
;
});

View File

@ -0,0 +1,18 @@
// Import the Bootstrap components we want to use.
// See https://github.com/twbs/bootstrap/blob/main/js/index.umd.js
import Tab from "/js/bootstrap/src/tab";
import Collapse from "/js/bootstrap/src/collapse";
import Dropdown from "/js/bootstrap/src/dropdown";
import ScrollSpy from "js/bootstrap/src/scrollspy";
import Tooltip from "js/bootstrap/src/tooltip";
export default {
Tab,
Collapse,
Dropdown,
ScrollSpy,
Tooltip
}
window.Collapse = Collapse;
window.Tooltip = Tooltip;

View File

@ -0,0 +1,15 @@
const globalDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
const localMode = localStorage.getItem('theme');
if (globalDark && (localMode === null)) {
localStorage.setItem('theme', 'dark');
document.documentElement.setAttribute('data-dark-mode', '');
}
if (globalDark && (localMode === 'dark')) {
document.documentElement.setAttribute('data-dark-mode', '');
}
if (localMode === 'dark') {
document.documentElement.setAttribute('data-dark-mode', '');
}

View File

@ -0,0 +1,23 @@
//Low light switcher
const mode = document.getElementById('mode');
if (mode !== null) {
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
if (event.matches) {
localStorage.setItem('theme', 'dark');
document.documentElement.setAttribute('data-dark-mode', '');
} else {
localStorage.setItem('theme', 'light');
document.documentElement.removeAttribute('data-dark-mode');
}
})
mode.addEventListener('click', () => {
document.documentElement.toggleAttribute('data-dark-mode');
localStorage.setItem('theme', document.documentElement.hasAttribute('data-dark-mode') ? 'dark' : 'light');
});
if (localStorage.getItem('theme') === 'dark') {
document.documentElement.setAttribute('data-dark-mode', '');
} else {
document.documentElement.removeAttribute('data-dark-mode');
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,33 @@
/**!
* FlexSearch.js v0.7.31 (Bundle)
* Copyright 2018-2022 Nextapps GmbH
* Author: Thomas Wilkerling
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function _f(self){'use strict';try{if(module)self=module}catch(e){}self._factory=_f;var t;function u(a){return"undefined"!==typeof a?a:!0}function aa(a){const b=Array(a);for(let c=0;c<a;c++)b[c]=v();return b}function v(){return Object.create(null)}function ba(a,b){return b.length-a.length}function x(a){return"string"===typeof a}function C(a){return"object"===typeof a}function D(a){return"function"===typeof a};function ca(a,b){var c=da;if(a&&(b&&(a=E(a,b)),this.H&&(a=E(a,this.H)),this.J&&1<a.length&&(a=E(a,this.J)),c||""===c)){a=a.split(c);if(this.filter){b=this.filter;c=a.length;const d=[];for(let e=0,f=0;e<c;e++){const g=a[e];g&&!b[g]&&(d[f++]=g)}a=d}return a}return a}const da=/[\p{Z}\p{S}\p{P}\p{C}]+/u,ea=/[\u0300-\u036f]/g;
function fa(a,b){const c=Object.keys(a),d=c.length,e=[];let f="",g=0;for(let h=0,k,m;h<d;h++)k=c[h],(m=a[k])?(e[g++]=F(b?"(?!\\b)"+k+"(\\b|_)":k),e[g++]=m):f+=(f?"|":"")+k;f&&(e[g++]=F(b?"(?!\\b)("+f+")(\\b|_)":"("+f+")"),e[g]="");return e}function E(a,b){for(let c=0,d=b.length;c<d&&(a=a.replace(b[c],b[c+1]),a);c+=2);return a}function F(a){return new RegExp(a,"g")}function ha(a){let b="",c="";for(let d=0,e=a.length,f;d<e;d++)(f=a[d])!==c&&(b+=c=f);return b};var ja={encode:ia,F:!1,G:""};function ia(a){return ca.call(this,(""+a).toLowerCase(),!1)};const ka={},G={};function la(a){I(a,"add");I(a,"append");I(a,"search");I(a,"update");I(a,"remove")}function I(a,b){a[b+"Async"]=function(){const c=this,d=arguments;var e=d[d.length-1];let f;D(e)&&(f=e,delete d[d.length-1]);e=new Promise(function(g){setTimeout(function(){c.async=!0;const h=c[b].apply(c,d);c.async=!1;g(h)})});return f?(e.then(f),this):e}};function ma(a,b,c,d){const e=a.length;let f=[],g,h,k=0;d&&(d=[]);for(let m=e-1;0<=m;m--){const n=a[m],w=n.length,q=v();let r=!g;for(let l=0;l<w;l++){const p=n[l],z=p.length;if(z)for(let B=0,A,y;B<z;B++)if(y=p[B],g){if(g[y]){if(!m)if(c)c--;else if(f[k++]=y,k===b)return f;if(m||d)q[y]=1;r=!0}if(d&&(A=(h[y]||0)+1,h[y]=A,A<e)){const H=d[A-2]||(d[A-2]=[]);H[H.length]=y}}else q[y]=1}if(d)g||(h=q);else if(!r)return[];g=q}if(d)for(let m=d.length-1,n,w;0<=m;m--){n=d[m];w=n.length;for(let q=0,r;q<w;q++)if(r=
n[q],!g[r]){if(c)c--;else if(f[k++]=r,k===b)return f;g[r]=1}}return f}function na(a,b){const c=v(),d=v(),e=[];for(let f=0;f<a.length;f++)c[a[f]]=1;for(let f=0,g;f<b.length;f++){g=b[f];for(let h=0,k;h<g.length;h++)k=g[h],c[k]&&!d[k]&&(d[k]=1,e[e.length]=k)}return e};function J(a){this.l=!0!==a&&a;this.cache=v();this.h=[]}function oa(a,b,c){C(a)&&(a=a.query);let d=this.cache.get(a);d||(d=this.search(a,b,c),this.cache.set(a,d));return d}J.prototype.set=function(a,b){if(!this.cache[a]){var c=this.h.length;c===this.l?delete this.cache[this.h[c-1]]:c++;for(--c;0<c;c--)this.h[c]=this.h[c-1];this.h[0]=a}this.cache[a]=b};J.prototype.get=function(a){const b=this.cache[a];if(this.l&&b&&(a=this.h.indexOf(a))){const c=this.h[a-1];this.h[a-1]=this.h[a];this.h[a]=c}return b};const qa={memory:{charset:"latin:extra",D:3,B:4,m:!1},performance:{D:3,B:3,s:!1,context:{depth:2,D:1}},match:{charset:"latin:extra",G:"reverse"},score:{charset:"latin:advanced",D:20,B:3,context:{depth:3,D:9}},"default":{}};function ra(a,b,c,d,e,f,g){setTimeout(function(){const h=a(c?c+"."+d:d,JSON.stringify(g));h&&h.then?h.then(function(){b.export(a,b,c,e,f+1)}):b.export(a,b,c,e,f+1)})};function K(a,b){if(!(this instanceof K))return new K(a);var c;if(a){x(a)?a=qa[a]:(c=a.preset)&&(a=Object.assign({},c[c],a));c=a.charset;var d=a.lang;x(c)&&(-1===c.indexOf(":")&&(c+=":default"),c=G[c]);x(d)&&(d=ka[d])}else a={};let e,f,g=a.context||{};this.encode=a.encode||c&&c.encode||ia;this.register=b||v();this.D=e=a.resolution||9;this.G=b=c&&c.G||a.tokenize||"strict";this.depth="strict"===b&&g.depth;this.l=u(g.bidirectional);this.s=f=u(a.optimize);this.m=u(a.fastupdate);this.B=a.minlength||1;this.C=
a.boost;this.map=f?aa(e):v();this.A=e=g.resolution||1;this.h=f?aa(e):v();this.F=c&&c.F||a.rtl;this.H=(b=a.matcher||d&&d.H)&&fa(b,!1);this.J=(b=a.stemmer||d&&d.J)&&fa(b,!0);if(c=b=a.filter||d&&d.filter){c=b;d=v();for(let h=0,k=c.length;h<k;h++)d[c[h]]=1;c=d}this.filter=c;this.cache=(b=a.cache)&&new J(b)}t=K.prototype;t.append=function(a,b){return this.add(a,b,!0)};
t.add=function(a,b,c,d){if(b&&(a||0===a)){if(!d&&!c&&this.register[a])return this.update(a,b);b=this.encode(b);if(d=b.length){const m=v(),n=v(),w=this.depth,q=this.D;for(let r=0;r<d;r++){let l=b[this.F?d-1-r:r];var e=l.length;if(l&&e>=this.B&&(w||!n[l])){var f=L(q,d,r),g="";switch(this.G){case "full":if(2<e){for(f=0;f<e;f++)for(var h=e;h>f;h--)if(h-f>=this.B){var k=L(q,d,r,e,f);g=l.substring(f,h);M(this,n,g,k,a,c)}break}case "reverse":if(1<e){for(h=e-1;0<h;h--)g=l[h]+g,g.length>=this.B&&M(this,n,
g,L(q,d,r,e,h),a,c);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=l[h],g.length>=this.B&&M(this,n,g,f,a,c);break}default:if(this.C&&(f=Math.min(f/this.C(b,l,r)|0,q-1)),M(this,n,l,f,a,c),w&&1<d&&r<d-1)for(e=v(),g=this.A,f=l,h=Math.min(w+1,d-r),e[f]=1,k=1;k<h;k++)if((l=b[this.F?d-1-r-k:r+k])&&l.length>=this.B&&!e[l]){e[l]=1;const p=this.l&&l>f;M(this,m,p?f:l,L(g+(d/2>g?0:1),d,r,h-1,k-1),a,c,p?l:f)}}}}this.m||(this.register[a]=1)}}return this};
function L(a,b,c,d,e){return c&&1<a?b+(d||0)<=a?c+(e||0):(a-1)/(b+(d||0))*(c+(e||0))+1|0:0}function M(a,b,c,d,e,f,g){let h=g?a.h:a.map;if(!b[c]||g&&!b[c][g])a.s&&(h=h[d]),g?(b=b[c]||(b[c]=v()),b[g]=1,h=h[g]||(h[g]=v())):b[c]=1,h=h[c]||(h[c]=[]),a.s||(h=h[d]||(h[d]=[])),f&&h.includes(e)||(h[h.length]=e,a.m&&(a=a.register[e]||(a.register[e]=[]),a[a.length]=h))}
t.search=function(a,b,c){c||(!b&&C(a)?(c=a,a=c.query):C(b)&&(c=b));let d=[],e;let f,g=0;if(c){a=c.query||a;b=c.limit;g=c.offset||0;var h=c.context;f=c.suggest}if(a&&(a=this.encode(""+a),e=a.length,1<e)){c=v();var k=[];for(let n=0,w=0,q;n<e;n++)if((q=a[n])&&q.length>=this.B&&!c[q])if(this.s||f||this.map[q])k[w++]=q,c[q]=1;else return d;a=k;e=a.length}if(!e)return d;b||(b=100);h=this.depth&&1<e&&!1!==h;c=0;let m;h?(m=a[0],c=1):1<e&&a.sort(ba);for(let n,w;c<e;c++){w=a[c];h?(n=sa(this,d,f,b,g,2===e,w,
m),f&&!1===n&&d.length||(m=w)):n=sa(this,d,f,b,g,1===e,w);if(n)return n;if(f&&c===e-1){k=d.length;if(!k){if(h){h=0;c=-1;continue}return d}if(1===k)return ta(d[0],b,g)}}return ma(d,b,g,f)};
function sa(a,b,c,d,e,f,g,h){let k=[],m=h?a.h:a.map;a.s||(m=ua(m,g,h,a.l));if(m){let n=0;const w=Math.min(m.length,h?a.A:a.D);for(let q=0,r=0,l,p;q<w;q++)if(l=m[q])if(a.s&&(l=ua(l,g,h,a.l)),e&&l&&f&&(p=l.length,p<=e?(e-=p,l=null):(l=l.slice(e),e=0)),l&&(k[n++]=l,f&&(r+=l.length,r>=d)))break;if(n){if(f)return ta(k,d,0);b[b.length]=k;return}}return!c&&k}function ta(a,b,c){a=1===a.length?a[0]:[].concat.apply([],a);return c||a.length>b?a.slice(c,c+b):a}
function ua(a,b,c,d){c?(d=d&&b>c,a=(a=a[d?b:c])&&a[d?c:b]):a=a[b];return a}t.contain=function(a){return!!this.register[a]};t.update=function(a,b){return this.remove(a).add(a,b)};
t.remove=function(a,b){const c=this.register[a];if(c){if(this.m)for(let d=0,e;d<c.length;d++)e=c[d],e.splice(e.indexOf(a),1);else N(this.map,a,this.D,this.s),this.depth&&N(this.h,a,this.A,this.s);b||delete this.register[a];if(this.cache){b=this.cache;for(let d=0,e,f;d<b.h.length;d++)f=b.h[d],e=b.cache[f],e.includes(a)&&(b.h.splice(d--,1),delete b.cache[f])}}return this};
function N(a,b,c,d,e){let f=0;if(a.constructor===Array)if(e)b=a.indexOf(b),-1!==b?1<a.length&&(a.splice(b,1),f++):f++;else{e=Math.min(a.length,c);for(let g=0,h;g<e;g++)if(h=a[g])f=N(h,b,c,d,e),d||f||delete a[g]}else for(let g in a)(f=N(a[g],b,c,d,e))||delete a[g];return f}t.searchCache=oa;
t.export=function(a,b,c,d,e){let f,g;switch(e||(e=0)){case 0:f="reg";if(this.m){g=v();for(let h in this.register)g[h]=1}else g=this.register;break;case 1:f="cfg";g={doc:0,opt:this.s?1:0};break;case 2:f="map";g=this.map;break;case 3:f="ctx";g=this.h;break;default:return}ra(a,b||this,c,f,d,e,g);return!0};t.import=function(a,b){if(b)switch(x(b)&&(b=JSON.parse(b)),a){case "cfg":this.s=!!b.opt;break;case "reg":this.m=!1;this.register=b;break;case "map":this.map=b;break;case "ctx":this.h=b}};la(K.prototype);function va(a){a=a.data;var b=self._index;const c=a.args;var d=a.task;switch(d){case "init":d=a.options||{};a=a.factory;b=d.encode;d.cache=!1;b&&0===b.indexOf("function")&&(d.encode=Function("return "+b)());a?(Function("return "+a)()(self),self._index=new self.FlexSearch.Index(d),delete self.FlexSearch):self._index=new K(d);break;default:a=a.id,b=b[d].apply(b,c),postMessage("search"===d?{id:a,msg:b}:{id:a})}};let wa=0;function O(a){if(!(this instanceof O))return new O(a);var b;a?D(b=a.encode)&&(a.encode=b.toString()):a={};(b=(self||window)._factory)&&(b=b.toString());const c="undefined"===typeof window&&self.exports,d=this;this.o=xa(b,c,a.worker);this.h=v();if(this.o){if(c)this.o.on("message",function(e){d.h[e.id](e.msg);delete d.h[e.id]});else this.o.onmessage=function(e){e=e.data;d.h[e.id](e.msg);delete d.h[e.id]};this.o.postMessage({task:"init",factory:b,options:a})}}P("add");P("append");P("search");
P("update");P("remove");function P(a){O.prototype[a]=O.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;D(d)&&(e=d,c.splice(c.length-1,1));d=new Promise(function(f){setTimeout(function(){b.h[++wa]=f;b.o.postMessage({task:a,id:wa,args:c})})});return e?(d.then(e),this):d}}
function xa(a,b,c){let d;try{d=b?eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")'):a?new Worker(URL.createObjectURL(new Blob(["onmessage="+va.toString()],{type:"text/javascript"}))):new Worker(x(c)?c:"worker/worker.js",{type:"module"})}catch(e){}return d};function Q(a){if(!(this instanceof Q))return new Q(a);var b=a.document||a.doc||a,c;this.K=[];this.h=[];this.A=[];this.register=v();this.key=(c=b.key||b.id)&&S(c,this.A)||"id";this.m=u(a.fastupdate);this.C=(c=b.store)&&!0!==c&&[];this.store=c&&v();this.I=(c=b.tag)&&S(c,this.A);this.l=c&&v();this.cache=(c=a.cache)&&new J(c);a.cache=!1;this.o=a.worker;this.async=!1;c=v();let d=b.index||b.field||b;x(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++)f=d[e],x(f)||(g=f,f=f.field),g=C(g)?Object.assign({},a,g):a,
this.o&&(c[f]=new O(g),c[f].o||(this.o=!1)),this.o||(c[f]=new K(g,this.register)),this.K[e]=S(f,this.A),this.h[e]=f;if(this.C)for(a=b.store,x(a)&&(a=[a]),b=0;b<a.length;b++)this.C[b]=S(a[b],this.A);this.index=c}function S(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],0<=a.indexOf("[]")&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}function T(a,b){if(x(b))a=a[b];else for(let c=0;a&&c<b.length;c++)a=a[b[c]];return a}
function U(a,b,c,d,e){a=a[e];if(d===c.length-1)b[e]=a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)U(a,b,c,d,e);else b=b[e]||(b[e]=v()),e=c[++d],U(a,b,c,d,e)}function V(a,b,c,d,e,f,g,h){if(a=a[g])if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(f,a[b],!0,!0);return}a=a.join(" ")}e.add(f,a,h,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)V(a,b,c,d,e,f,g,h);else g=b[++d],V(a,b,c,d,e,f,g,h)}t=Q.prototype;
t.add=function(a,b,c){C(a)&&(b=a,a=T(b,this.key));if(b&&(a||0===a)){if(!c&&this.register[a])return this.update(a,b);for(let d=0,e,f;d<this.h.length;d++)f=this.h[d],e=this.K[d],x(e)&&(e=[e]),V(b,e,this.A,0,this.index[f],a,e[0],c);if(this.I){let d=T(b,this.I),e=v();x(d)&&(d=[d]);for(let f=0,g,h;f<d.length;f++)if(g=d[f],!e[g]&&(e[g]=1,h=this.l[g]||(this.l[g]=[]),!c||!h.includes(a)))if(h[h.length]=a,this.m){const k=this.register[a]||(this.register[a]=[]);k[k.length]=h}}if(this.store&&(!c||!this.store[a])){let d;
if(this.C){d=v();for(let e=0,f;e<this.C.length;e++)f=this.C[e],x(f)?d[f]=b[f]:U(b,d,f,0,f[0])}this.store[a]=d||b}}return this};t.append=function(a,b){return this.add(a,b,!0)};t.update=function(a,b){return this.remove(a).add(a,b)};
t.remove=function(a){C(a)&&(a=T(a,this.key));if(this.register[a]){for(var b=0;b<this.h.length&&(this.index[this.h[b]].remove(a,!this.o),!this.m);b++);if(this.I&&!this.m)for(let c in this.l){b=this.l[c];const d=b.indexOf(a);-1!==d&&(1<b.length?b.splice(d,1):delete this.l[c])}this.store&&delete this.store[a];delete this.register[a]}return this};
t.search=function(a,b,c,d){c||(!b&&C(a)?(c=a,a=""):C(b)&&(c=b,b=0));let e=[],f=[],g,h,k,m,n,w,q=0;if(c)if(c.constructor===Array)k=c,c=null;else{a=c.query||a;k=(g=c.pluck)||c.index||c.field;m=c.tag;h=this.store&&c.enrich;n="and"===c.bool;b=c.limit||b||100;w=c.offset||0;if(m&&(x(m)&&(m=[m]),!a)){for(let l=0,p;l<m.length;l++)if(p=ya.call(this,m[l],b,w,h))e[e.length]=p,q++;return q?e:[]}x(k)&&(k=[k])}k||(k=this.h);n=n&&(1<k.length||m&&1<m.length);const r=!d&&(this.o||this.async)&&[];for(let l=0,p,z,B;l<
k.length;l++){let A;z=k[l];x(z)||(A=z,z=A.field,a=A.query||a,b=A.limit||b);if(r)r[l]=this.index[z].searchAsync(a,b,A||c);else{d?p=d[l]:p=this.index[z].search(a,b,A||c);B=p&&p.length;if(m&&B){const y=[];let H=0;n&&(y[0]=[p]);for(let X=0,pa,R;X<m.length;X++)if(pa=m[X],B=(R=this.l[pa])&&R.length)H++,y[y.length]=n?[R]:R;H&&(p=n?ma(y,b||100,w||0):na(p,y),B=p.length)}if(B)f[q]=z,e[q++]=p;else if(n)return[]}}if(r){const l=this;return new Promise(function(p){Promise.all(r).then(function(z){p(l.search(a,b,
c,z))})})}if(!q)return[];if(g&&(!h||!this.store))return e[0];for(let l=0,p;l<f.length;l++){p=e[l];p.length&&h&&(p=za.call(this,p));if(g)return p;e[l]={field:f[l],result:p}}return e};function ya(a,b,c,d){let e=this.l[a],f=e&&e.length-c;if(f&&0<f){if(f>b||c)e=e.slice(c,c+b);d&&(e=za.call(this,e));return{tag:a,result:e}}}function za(a){const b=Array(a.length);for(let c=0,d;c<a.length;c++)d=a[c],b[c]={id:d,doc:this.store[d]};return b}t.contain=function(a){return!!this.register[a]};t.get=function(a){return this.store[a]};
t.set=function(a,b){this.store[a]=b;return this};t.searchCache=oa;t.export=function(a,b,c,d,e){e||(e=0);d||(d=0);if(d<this.h.length){const f=this.h[d],g=this.index[f];b=this;setTimeout(function(){g.export(a,b,e?f:"",d,e++)||(d++,e=1,b.export(a,b,f,d,e))})}else{let f,g;switch(e){case 1:f="tag";g=this.l;break;case 2:f="store";g=this.store;break;default:return}ra(a,this,c,f,d,e,g)}};
t.import=function(a,b){if(b)switch(x(b)&&(b=JSON.parse(b)),a){case "tag":this.l=b;break;case "reg":this.m=!1;this.register=b;for(let d=0,e;d<this.h.length;d++)e=this.index[this.h[d]],e.register=b,e.m=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.index[c].import(a,b)}};la(Q.prototype);var Ba={encode:Aa,F:!1,G:""};const Ca=[F("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",F("[\u00e8\u00e9\u00ea\u00eb]"),"e",F("[\u00ec\u00ed\u00ee\u00ef]"),"i",F("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",F("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",F("[\u00fd\u0177\u00ff]"),"y",F("\u00f1"),"n",F("[\u00e7c]"),"k",F("\u00df"),"s",F(" & ")," and "];function Aa(a){var b=a=""+a;b.normalize&&(b=b.normalize("NFD").replace(ea,""));return ca.call(this,b.toLowerCase(),!a.normalize&&Ca)};var Ea={encode:Da,F:!1,G:"strict"};const Fa=/[^a-z0-9]+/,Ga={b:"p",v:"f",w:"f",z:"s",x:"s","\u00df":"s",d:"t",n:"m",c:"k",g:"k",j:"k",q:"k",i:"e",y:"e",u:"o"};function Da(a){a=Aa.call(this,a).join(" ");const b=[];if(a){const c=a.split(Fa),d=c.length;for(let e=0,f,g=0;e<d;e++)if((a=c[e])&&(!this.filter||!this.filter[a])){f=a[0];let h=Ga[f]||f,k=h;for(let m=1;m<a.length;m++){f=a[m];const n=Ga[f]||f;n&&n!==k&&(h+=n,k=n)}b[g++]=h}}return b};var Ia={encode:Ha,F:!1,G:""};const Ja=[F("ae"),"a",F("oe"),"o",F("sh"),"s",F("th"),"t",F("ph"),"f",F("pf"),"f",F("(?![aeo])h(?![aeo])"),"",F("(?!^[aeo])h(?!^[aeo])"),""];function Ha(a,b){a&&(a=Da.call(this,a).join(" "),2<a.length&&(a=E(a,Ja)),b||(1<a.length&&(a=ha(a)),a&&(a=a.split(" "))));return a||[]};var La={encode:Ka,F:!1,G:""};const Ma=F("(?!\\b)[aeo]");function Ka(a){a&&(a=Ha.call(this,a,!0),1<a.length&&(a=a.replace(Ma,"")),1<a.length&&(a=ha(a)),a&&(a=a.split(" ")));return a||[]};G["latin:default"]=ja;G["latin:simple"]=Ba;G["latin:balance"]=Ea;G["latin:advanced"]=Ia;G["latin:extra"]=La;const W=self;let Y;const Z={Index:K,Document:Q,Worker:O,registerCharset:function(a,b){G[a]=b},registerLanguage:function(a,b){ka[a]=b}};(Y=W.define)&&Y.amd?Y([],function(){return Z}):W.exports?W.exports=Z:W.FlexSearch=Z;}(this));

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_relativeTime=r()}(this,function(){"use strict";return function(p,e,v){p=p||{};var o=e.prototype,M={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function t(e,r,t,n){return o.fromToBase(e,r,t,n)}v.en.relativeTime=M,o.fromToBase=function(e,r,t,n,o){for(var i,d,u=t.$locale().relativeTime||M,f=p.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],a=f.length,s=0;s<a;s+=1){var l=f[s],h=(l.d&&(i=n?v(e).diff(t,l.d,!0):t.diff(e,l.d,!0)),(p.rounding||Math.round)(Math.abs(i))),m=0<i;if(h<=l.r||!l.r){var c=u[(l=h<=1&&0<s?f[s-1]:l).l];o&&(h=o(""+h)),d="string"==typeof c?c.replace("%d",h):c(h,r,l.l,m);break}}if(r)return d;var y=m?u.future:u.past;return"function"==typeof y?y(d):y.replace("%s",d)},o.to=function(e,r){return t(e,r,this,!0)},o.from=function(e,r){return t(e,r,this)};function r(e){return e.$u?v.utc():v()}o.toNow=function(e){return this.to(r(this),e)},o.fromNow=function(e){return this.from(r(this),e)}}});

View File

@ -0,0 +1,15 @@
//ScrollSpy - via https://github.com/kimyvgy/simple-scrollspy
window.onload = function () {
scrollSpy('toc', {
sectionClass: 'h1,h2,h3,h4',
// menuActiveTarget: 'href',
offset: 100,
// scrollContainer: null,
// smooth scroll
// smoothScroll: true,
// smoothScrollBehavior: function(element) {
// console.log('run "smoothScrollBehavior"...', element)
// element.scrollIntoView({ behavior: 'smooth' })
// }
})
}

View File

@ -0,0 +1 @@
!function(t,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.scrollSpy=o():t.scrollSpy=o()}(self,(()=>(()=>{var t={138:(t,o,e)=>{t.exports=(t,o={})=>{const{ScrollSpy:s}=e(218),i=new s(t,o);return window.onload=i.onScroll(),window.addEventListener("scroll",(()=>i.onScroll())),i}},218:(t,o,e)=>{"use strict";e.r(o),e.d(o,{ScrollSpy:()=>s});class s{constructor(t,o={}){if(!t)throw new Error("First argument is query selector to your navigation.");if("object"!=typeof o)throw new Error("Second argument must be instance of Object.");o.smoothScroll=!0===o.smoothScroll&&{}||o.smoothScroll,this.menuList=t instanceof HTMLElement?t:document.querySelector(t),this.options=Object.assign({},{sectionClass:".scrollspy",menuActiveTarget:"li > a",offset:0,hrefAttribute:"href",activeClass:"active",scrollContainer:"",smoothScroll:{}},o),this.options.scrollContainer?this.scroller=this.options.scrollContainer instanceof HTMLElement?this.options.scrollContainer:document.querySelector(this.options.scrollContainer):this.scroller=window,this.sections=document.querySelectorAll(this.options.sectionClass),this.attachEventListeners()}attachEventListeners(){if(this.scroller&&(this.scroller.addEventListener("scroll",(()=>this.onScroll())),this.options.smoothScroll)){this.menuList.querySelectorAll(this.options.menuActiveTarget).forEach((t=>t.addEventListener("click",this.onClick.bind(this))))}}onClick(t){const o=t.target.getAttribute(this.options.hrefAttribute),e=document.querySelector(o);e&&this.options.smoothScroll&&(t.preventDefault(),this.scrollTo(e))}onScroll(){const t=this.getSectionInView(),o=this.getMenuItemBySection(t);o&&(this.removeCurrentActive({ignore:o}),this.setActive(o))}scrollTo(t){const o="function"==typeof this.options.smoothScrollBehavior&&this.options.smoothScrollBehavior;o?o(t,this.options.smoothScroll):t.scrollIntoView({...this.options.smoothScroll,behavior:"smooth"})}getMenuItemBySection(t){if(!t)return;const o=t.getAttribute("id");return this.menuList.querySelector(`[${this.options.hrefAttribute}="#${o}"]`)}getSectionInView(){for(let t=0;t<this.sections.length;t++){const o=this.sections[t].offsetTop,e=o+this.sections[t].offsetHeight;let s=(document.documentElement.scrollTop||document.body.scrollTop)+this.options.offset;this.options.scrollContainer&&this.scroller&&(s=this.scroller.scrollTop+this.options.offset);if(s>o&&s<=e)return this.sections[t]}}setActive(t){t.classList.contains(this.options.activeClass)||t.classList.add(this.options.activeClass)}removeCurrentActive({ignore:t}){const{hrefAttribute:o,menuActiveTarget:e,activeClass:s}=this.options,i=`${e}.${s}:not([${o}="${t.getAttribute(o)}"])`;this.menuList.querySelectorAll(i).forEach((t=>t.classList.remove(this.options.activeClass)))}}}},o={};function e(s){var i=o[s];if(void 0!==i)return i.exports;var r=o[s]={exports:{}};return t[s](r,r.exports,e),r.exports}return e.d=(t,o)=>{for(var s in o)e.o(o,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:o[s]})},e.o=(t,o)=>Object.prototype.hasOwnProperty.call(t,o),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e(138)})()));

View File

@ -0,0 +1,18 @@
// ToC Mobile Menu (Bootstrap 5 Dropdown with ScrollSpy)
const scrollArea = document.getElementById('content');
const tocBtn = document.getElementById('toc-dropdown-btn');
scrollArea.addEventListener("activate.bs.scrollspy", function(){
var currentItem = document.querySelector('.dropdown-menu li > a.active').innerHTML;
tocBtn.innerHTML = currentItem;
})
tocBtn.addEventListener('shown.bs.dropdown', event => {
tocBtn.style.borderBottom = 'none'
tocBtn.style.borderRadius = '4px 4px 0 0'
// console.log("dropdown opened");
})
tocBtn.addEventListener('hidden.bs.dropdown', event => {
tocBtn.style.borderBottom = '1px solid var(--alert-border-color)'
tocBtn.style.borderRadius = '4px'
// console.log("dropdown closed");
});

View File

@ -0,0 +1,362 @@
// Prefix for :root CSS variables
$prefix: bs-;
$btn-link-color: var(--#{$prefix}link-color);
$btn-link-hover-color: var(--#{$prefix}link-hover-color);
:root {
// color-variables (HSL)
--blue-900-hsl: 243, 72%, 25%;
--blue-800-hsl: 239, 70%, 32%;
--blue-700-hsl: 235, 68%, 38%;
--blue-600-hsl: 231, 66%, 45%;
--blue-500-hsl: 226, 66%, 51%;
--blue-400-hsl: 221, 77%, 60%;
--blue-300-hsl: 217, 88%, 69%;
--blue-200-hsl: 212, 100%, 79%;
--blue-100-hsl: 207, 100%, 88%;
--blue-50-hsl: 198, 100%, 97%;
--green-900-hsl: 153, 54%, 20%;
--green-800-hsl: 145, 57%, 25%;
--green-700-hsl: 136, 60%, 29%;
--green-600-hsl: 128, 63%, 34%;
--green-500-hsl: 119, 66%, 39%;
--green-400-hsl: 114, 49%, 51%;
--green-300-hsl: 110, 56%, 62%;
--green-200-hsl: 105, 64%, 74%;
--green-100-hsl: 102, 69%, 86%;
--green-50-hsl: 98, 73%, 97%;
--red-900-hsl: 344, 48%, 33%;
--red-800-hsl: 348, 50%, 40%;
--red-700-hsl: 352, 53%, 46%;
--red-600-hsl: 356, 62%, 53%;
--red-500-hsl: 1, 84%, 59%;
--red-400-hsl: 356, 98%, 67%;
--red-300-hsl: 350, 100%, 73%;
--red-200-hsl: 345, 100%, 80%;
--red-100-hsl: 339, 100%, 88%;
--red-50-hsl: 332, 100%, 97%;
--yellow-900-hsl: 44, 60%, 17%;
--yellow-800-hsl: 45, 59%, 25%;
--yellow-700-hsl: 46, 58%, 33%;
--yellow-600-hsl: 48, 57%, 41%;
--yellow-500-hsl: 48, 55%, 49%;
--yellow-400-hsl: 50, 72%, 57%;
--yellow-300-hsl: 51, 98%, 65%;
--yellow-200-hsl: 54, 100%, 72%;
--yellow-100-hsl: 54, 100%, 81%;
--yellow-50-hsl: 55, 100%, 93%;
--cyan-900-hsl: 194, 100%, 16%;
--cyan-800-hsl: 193, 100%, 21%;
--cyan-700-hsl: 192, 100%, 27%;
--cyan-600-hsl: 191, 100%, 32%;
--cyan-500-hsl: 190, 98%, 37%;
--cyan-400-hsl: 189, 94%, 43%;
--cyan-300-hsl: 187, 85%, 58%;
--cyan-200-hsl: 185, 100%, 72%;
--cyan-100-hsl: 180, 100%, 83%;
--cyan-50-hsl: 180, 100%, 94%;
--cardinal-900-hsl: 355, 68%, 21%;
--cardinal-800-hsl: 353, 67%, 29%;
--cardinal-700-hsl: 353, 65%, 37%;
--cardinal-600-hsl: 352, 63%, 45%;
--cardinal-500-hsl: 351, 67%, 52%;
--cardinal-400-hsl: 350, 89%, 60%;
--cardinal-300-hsl: 347, 100%, 68%;
--cardinal-200-hsl: 343, 100%, 75%;
--cardinal-100-hsl: 340, 100%, 83%;
--cardinal-50-hsl: 338, 100%, 96%;
--magenta-900-hsl: 297, 63%, 21%;
--magenta-800-hsl: 296, 62%, 29%;
--magenta-700-hsl: 295, 61%, 37%;
--magenta-600-hsl: 294, 58%, 45%;
--magenta-500-hsl: 293, 63%, 53%;
--magenta-400-hsl: 292, 84%, 61%;
--magenta-300-hsl: 291, 100%, 69%;
--magenta-200-hsl: 292, 100%, 75%;
--magenta-100-hsl: 293, 100%, 84%;
--magenta-50-hsl: 293, 100%, 94%;
--emerald-900-hsl: 165, 97%, 13%;
--emerald-800-hsl: 164, 96%, 18%;
--emerald-700-hsl: 163, 93%, 23%;
--emerald-600-hsl: 162, 89%, 29%;
--emerald-500-hsl: 161, 87%, 34%;
--emerald-400-hsl: 160, 84%, 39%;
--emerald-300-hsl: 158, 66%, 53%;
--emerald-200-hsl: 154, 77%, 68%;
--emerald-100-hsl: 149, 89%, 82%;
--emerald-50-hsl: 145, 100%, 94%;
--blue-900: hsl(var(--blue-900-hsl));
--blue-800: hsl(var(--blue-800-hsl));
--blue-700: hsl(var(--blue-700-hsl));
--blue-600: hsl(var(--blue-600-hsl));
--blue-500: hsl(var(--blue-500-hsl));
--blue-400: hsl(var(--blue-400-hsl));
--blue-300: hsl(var(--blue-300-hsl));
--blue-200: hsl(var(--blue-200-hsl));
--blue-100: hsl(var(--blue-100-hsl));
--blue-50: hsl(var(--blue-50-hsl));
--green-900: hsl(var(--green-900-hsl));
--green-800: hsl(var(--green-800-hsl));
--green-700: hsl(var(--green-700-hsl));
--green-600: hsl(var(--green-600-hsl));
--green-500: hsl(var(--green-500-hsl));
--green-400: hsl(var(--green-400-hsl));
--green-300: hsl(var(--green-300-hsl));
--green-200: hsl(var(--green-200-hsl));
--green-100: hsl(var(--green-100-hsl));
--green-50: hsl(var(--green-50-hsl));
--red-900: hsl(var(--red-900-hsl));
--red-800: hsl(var(--red-800-hsl));
--red-700: hsl(var(--red-700-hsl));
--red-600: hsl(var(--red-600-hsl));
--red-500: hsl(var(--red-500-hsl));
--red-400: hsl(var(--red-400-hsl));
--red-300: hsl(var(--red-300-hsl));
--red-200: hsl(var(--red-200-hsl));
--red-100: hsl(var(--red-100-hsl));
--red-50: hsl(var(--red-50-hsl));
--yellow-900: hsl(var(--yellow-900-hsl));
--yellow-800: hsl(var(--yellow-800-hsl));
--yellow-700: hsl(var(--yellow-700-hsl));
--yellow-600: hsl(var(--yellow-600-hsl));
--yellow-500: hsl(var(--yellow-500-hsl));
--yellow-400: hsl(var(--yellow-400-hsl));
--yellow-300: hsl(var(--yellow-300-hsl));
--yellow-200: hsl(var(--yellow-200-hsl));
--yellow-100: hsl(var(--yellow-100-hsl));
--yellow-50: hsl(var(--yellow-50-hsl));
--cyan-900: hsl(var(--cyan-900-hsl));
--cyan-800: hsl(var(--cyan-800-hsl));
--cyan-700: hsl(var(--cyan-700-hsl));
--cyan-600: hsl(var(--cyan-600-hsl));
--cyan-500: hsl(var(--cyan-500-hsl));
--cyan-400: hsl(var(--cyan-400-hsl));
--cyan-300: hsl(var(--cyan-300-hsl));
--cyan-200: hsl(var(--cyan-200-hsl));
--cyan-100: hsl(var(--cyan-100-hsl));
--cyan-50: hsl(var(--cyan-50-hsl));
--cardinal-900: hsl(var(--cardinal-900-hsl));
--cardinal-800: hsl(var(--cardinal-800-hsl));
--cardinal-700: hsl(var(--cardinal-700-hsl));
--cardinal-600: hsl(var(--cardinal-600-hsl));
--cardinal-500: hsl(var(--cardinal-500-hsl));
--cardinal-400: hsl(var(--cardinal-400-hsl));
--cardinal-300: hsl(var(--cardinal-300-hsl));
--cardinal-200: hsl(var(--cardinal-200-hsl));
--cardinal-100: hsl(var(--cardinal-100-hsl));
--cardinal-50: hsl(var(--cardinal-50-hsl));
--magenta-900: hsl(var(--magenta-900-hsl));
--magenta-800: hsl(var(--magenta-800-hsl));
--magenta-700: hsl(var(--magenta-700-hsl));
--magenta-600: hsl(var(--magenta-600-hsl));
--magenta-500: hsl(var(--magenta-500-hsl));
--magenta-400: hsl(var(--magenta-400-hsl));
--magenta-300: hsl(var(--magenta-300-hsl));
--magenta-200: hsl(var(--magenta-200-hsl));
--magenta-100: hsl(var(--magenta-100-hsl));
--magenta-50: hsl(var(--magenta-50-hsl));
--emerald-900: hsl(var(--emerald-900-hsl));
--emerald-800: hsl(var(--emerald-800-hsl));
--emerald-700: hsl(var(--emerald-700-hsl));
--emerald-600: hsl(var(--emerald-600-hsl));
--emerald-500: hsl(var(--emerald-500-hsl));
--emerald-400: hsl(var(--emerald-400-hsl));
--emerald-300: hsl(var(--emerald-300-hsl));
--emerald-200: hsl(var(--emerald-200-hsl));
--emerald-100: hsl(var(--emerald-100-hsl));
--emerald-50: hsl(var(--emerald-50-hsl));
--blue: var(--blue-500);
--green: var(--green-500);
--red: var(--red-500);
--yellow: var(--yellow-500);
--cyan: var(--cyan-500);
--cardinal: var(--cardinal-500);
--magenta: var(--magenta-500);
--emerald: var(--emerald-500);
--secondary: var(--gray-600);
--success: var(--green);
--info: var(--cyan);
--warning: var(--yellow);
--danger: var(--red);
--light: var(--gray-100);
// --dark: #0e1420;
--dark: #181921;
// --dark: #241c2d;
--dark-alt: #212529;
--dark-secondary: #292a35;
// scss-docs-start gray-color-variables
--white: #ffffff;
--gray-50: #f7fafc;
--gray-100: #f8f9fa;
--gray-200: #e9ecef;
--gray-300: #dee2e6;
--gray-400: #ced4da;
--gray-500: #adb5bd;
--gray-600: #6c757d;
--gray-700: #495057;
--gray-800: #343a40;
--gray-900: #212529;
--black: #000000;
// Links
//
// Style anchor elements.
--link-color: var(--primary);
--link-decoration: underline;
--link-shade-percentage: 20%;
// $link-hover-color: shift-color($link-color, $link-shade-percentage);
--link-hover-decoration: null;
// Buttons
// Core
--text-default: var(--text-dark);
--text-default-inv: var(--text-light);
--text-muted: var(--gray-600);
--#{$prefix}secondary-color: var(--gray-600);
--body-color: var(--text-default);
--body-bg: var(--white);
// Text
--text-dark: #3C4257;
--text-light: #dee2e6;
// Fonts
--fw-medium: 600;
// Shadows
--shadow-sm: 0 .125rem .25rem rgba(var(--dark), .15);
--shadow: 0 0 3px rgba(var(--dark), .15);
--shadow-md: 0 5px 13px rgba(var(--dark), .2);
--shadow-lg: 0 10px 25px rgba(var(--dark), 0.15);
// Overlay
--overlay: rgba(var(--dark), 0.7);
--bg-overlay-white: rgba(var(--white), 0.5);
// Back to top
--back-to-top-color: var(--white);
// Simplebar
--simplebar-color: #adb5bd;
// Footer
--footer: #202942;
--footer-bg: var(--white);
--foot-social-color: #adb5bd;
--social-border-color: #adb5bd;
--foot-social-color-white: var(--white);
// lightness variables
--l-100: 100%;
// Buttons
--btn-soft-color: var(--primary);
--btn-soft-bg: transparent;
--btn-soft-border: var(--gray-200);
--btn-primary-color: var(--white);
--btn-primary-bg: var(--primary);
--btn-primary-border: transparent;
--btn-default-color: var(--text-default);
--btn-default-hover-color: var(--primary);
--btn-default-bg: transparent;
--btn-default-border: transparent;
// Icons
--icon-color: var(--primary);
--folder: "\e2c7";
--article: "\ef42";
--dash: "\f88a";
--dir-right: "\e5da";
// Cards
--card-bg: var(--white);
--card-border-color: var(--gray-400);
--card-border-hover-color: var(--primary);
// Sidebar
--sidebar-primary: var(--primary);
--sidebar-bg: var(--white);
--top-header-bg: hsla(255,100%,100%,0.8);
--sidebar-text-color: #606770;
--sidebar-border-color: var(--gray-200);
--sidebar-dropdown-hover-bg: #eff1f4;
--sidebar-menu-active-bg: #f5f6f8;
--sidebar-icon-bg: #f8f9fa;
--sidebar-light-icon: #f8f9fa;
--sidebar-scrollbar-thumb-color: var(--gray-200);
--sidebar-directory-icon: var(--dir-right);
--sidebar-file-icon: var(--dash);
}
[data-dark-mode] {
--body-bg: var(--dark);
--text-default: var(--text-light);
--text-default-inv: var(--text-dark);
--text-muted: #b6b9be;
--#{$prefix}secondary-color: #6c757d;
// Buttons
--btn-soft-color: var(--gray-400);
--btn-soft-bg: none;
--btn-soft-border: var(--gray-800);
--btn-primary-color: var(--primary-200);
--btn-primary-bg: none;
--btn-primary-border: var(--gray-700);
--btn-default-color: var(--text-default);
--btn-default-hover-color: var(--primary-300);
--btn-default-bg: transparent;
--btn-default-border: transparent;
// Icons
--icon-color: #b6bbc9;
// Cards
--card-bg: none;
--card-border-color: var(--gray-800);
--card-border-hover-color: var(--primary-200);
// sidebar
--sidebar-primary: var(--primary-300);
--sidebar-bg: var(--dark);
--top-header-bg: hsla(233,16%,11%,0.8);
--sidebar-text-color: #b6bbc9;
--sidebar-border-color: var(--gray-900);
--sidebar-dropdown-hover-bg: #2b303b;
--sidebar-menu-active-bg: #2b303b;
--sidebar-icon-bg: #2b303b;
--sidebar-light-icon: #f8f9fa;
--sidebar-scrollbar-thumb-color: var(--gray-800);
}

View File

@ -0,0 +1,17 @@
// blue (default)
:root {
--primary: var(--blue);
--primary-50: var(--blue-50);
--primary-100: var(--blue-100);
--primary-200: var(--blue-200);
--primary-300: var(--blue-300);
--primary-400: var(--blue-400);
--primary-800: var(--blue-800);
--primary-hsl: var(--blue-500-hsl);
--primary-50-hsl: var(--blue-50-hsl);
--primary-100-hsl: var(--blue-100-hsl);
--primary-200-hsl: var(--blue-200-hsl);
--primary-300-hsl: var(--blue-300-hsl);
--primary-800-hsl: var(--blue-800-hsl);
}

View File

@ -0,0 +1,17 @@
// cardinal
:root {
--primary: var(--cardinal);
--primary-50: var(--cardinal-50);
--primary-100: var(--cardinal-100);
--primary-200: var(--cardinal-200);
--primary-300: var(--cardinal-300);
--primary-400: var(--cardinal-400);
--primary-800: var(--cardinal-800);
--primary-hsl: var(--cardinal-500-hsl);
--primary-50-hsl: var(--cardinal-50-hsl);
--primary-100-hsl: var(--cardinal-100-hsl);
--primary-200-hsl: var(--cardinal-200-hsl);
--primary-300-hsl: var(--cardinal-300-hsl);
--primary-800-hsl: var(--cardinal-800-hsl);
}

View File

@ -0,0 +1,17 @@
// cyan
:root {
--primary: var(--cyan);
--primary-50: var(--cyan-50);
--primary-100: var(--cyan-100);
--primary-200: var(--cyan-200);
--primary-300: var(--cyan-300);
--primary-400: var(--cyan-400);
--primary-800: var(--cyan-800);
--primary-hsl: var(--cyan-500-hsl);
--primary-50-hsl: var(--cyan-50-hsl);
--primary-100-hsl: var(--cyan-100-hsl);
--primary-200-hsl: var(--cyan-200-hsl);
--primary-300-hsl: var(--cyan-300-hsl);
--primary-800-hsl: var(--cyan-800-hsl);
}

View File

@ -0,0 +1,17 @@
// emerald
:root {
--primary: var(--emerald);
--primary-50: var(--emerald-50);
--primary-100: var(--emerald-100);
--primary-200: var(--emerald-200);
--primary-300: var(--emerald-300);
--primary-400: var(--emerald-400);
--primary-800: var(--emerald-800);
--primary-hsl: var(--emerald-500-hsl);
--primary-50-hsl: var(--emerald-50-hsl);
--primary-100-hsl: var(--emerald-100-hsl);
--primary-200-hsl: var(--emerald-200-hsl);
--primary-300-hsl: var(--emerald-300-hsl);
--primary-800-hsl: var(--emerald-800-hsl);
}

View File

@ -0,0 +1,17 @@
// green
:root {
--primary: var(--green);
--primary-50: var(--green-50);
--primary-100: var(--green-100);
--primary-200: var(--green-200);
--primary-300: var(--green-300);
--primary-400: var(--green-400);
--primary-800: var(--green-800);
--primary-hsl: var(--green-500-hsl);
--primary-50-hsl: var(--green-50-hsl);
--primary-100-hsl: var(--green-100-hsl);
--primary-200-hsl: var(--green-200-hsl);
--primary-300-hsl: var(--green-300-hsl);
--primary-800-hsl: var(--green-800-hsl);
}

View File

@ -0,0 +1,17 @@
// magenta
:root {
--primary: var(--magenta);
--primary-50: var(--magenta-50);
--primary-100: var(--magenta-100);
--primary-200: var(--magenta-200);
--primary-300: var(--magenta-300);
--primary-400: var(--magenta-400);
--primary-800: var(--magenta-800);
--primary-hsl: var(--magenta-500-hsl);
--primary-50-hsl: var(--magenta-50-hsl);
--primary-100-hsl: var(--magenta-100-hsl);
--primary-200-hsl: var(--magenta-200-hsl);
--primary-300-hsl: var(--magenta-300-hsl);
--primary-800-hsl: var(--magenta-800-hsl);
}

View File

@ -0,0 +1,17 @@
// red
:root {
--primary: var(--red);
--primary-50: var(--red-50);
--primary-100: var(--red-100);
--primary-200: var(--red-200);
--primary-300: var(--red-300);
--primary-400: var(--red-400);
--primary-800: var(--red-800);
--primary-hsl: var(--red-500-hsl);
--primary-50-hsl: var(--red-50-hsl);
--primary-100-hsl: var(--red-100-hsl);
--primary-200-hsl: var(--red-200-hsl);
--primary-300-hsl: var(--red-300-hsl);
--primary-800-hsl: var(--red-800-hsl);
}

View File

@ -0,0 +1,17 @@
// yellow
:root {
--primary: var(--yellow);
--primary-50: var(--yellow-50);
--primary-100: var(--yellow-100);
--primary-200: var(--yellow-200);
--primary-300: var(--yellow-300);
--primary-400: var(--yellow-400);
--primary-800: var(--yellow-800);
--primary-hsl: var(--yellow-500-hsl);
--primary-50-hsl: var(--yellow-50-hsl);
--primary-100-hsl: var(--yellow-100-hsl);
--primary-200-hsl: var(--yellow-200-hsl);
--primary-300-hsl: var(--yellow-300-hsl);
--primary-800-hsl: var(--yellow-800-hsl);
}

View File

@ -0,0 +1,241 @@
:root {
--alert-border-color: #dee2e6;
// Default
--alert-default-color: 225.9, 68%, 95.1%;
--alert-default-bg: hsl(var(--alert-default-color));
--alert-default-border-color: var(--alert-border-color);
// Primary
--alert-primary-color: var(--primary-50-hsl);
--alert-primary-bg: hsl(var(--alert-primary-color),0.5);
--alert-primary-border-color: var(--alert-border-color);
// Info
--alert-info-color: 204, 45.5%, 97.8%;
--alert-info-bg: hsl(var(--alert-info-color));
--alert-info-border-color: var(--alert-border-color);
// Success
--alert-success-color: var(--emerald-50-hsl);
--alert-success-bg: hsl(var(--alert-success-color),0.4);
--alert-success-border-color: var(--alert-border-color);
// Danger
--alert-danger-color: var(--cardinal-50-hsl);
--alert-danger-bg: hsl(var(--alert-danger-color),0.5);
--alert-danger-border-color: var(--alert-border-color);
// Warning
--alert-warning-color: var(--yellow-50-hsl);
--alert-warning-bg: hsl(var(--alert-warning-color),0.5);
--alert-warning-border-color: var(--alert-border-color);
// Light
--alert-light-bg: var(--gray-200);
--alert-light-border-color: var(--alert-border-color);
// Dark
--alert-dark-bg: var(--gray-800);
--alert-dark-border-color: var(--alert-border-color);
}
[data-dark-mode] {
--alert-border-color: var(--gray-800);
// Default
--alert-default-bg: hsl(var(--alert-default-color),0.05);
--alert-default-border-color: var(--alert-border-color);
// Primary
--alert-primary-bg: hsl(var(--primary-hsl),0.1);
--alert-primary-icon-color: var(--primary-200);
--alert-primary-border-color: var(--primary-800);
// Info
--alert-info-bg: hsl(var(--blue-500-hsl),0.1);
--alert-info-icon-color: var(--blue-200);
--alert-info-border-color: var(--blue-800);
// Success
--alert-success-bg: hsl(var(--emerald-500-hsl),0.1);
--alert-success-icon-color: var(--emerald-200);
--alert-success-border-color: var(--emerald-800);
// Danger
--alert-danger-bg: hsl(var(--cardinal-500-hsl),0.1);
--alert-danger-icon-color: var(--cardinal-200);
--alert-danger-border-color: var(--cardinal-800);
// Warning
--alert-warning-bg: hsl(var(--yellow-500-hsl),0.1);
--alert-warning-icon-color: var(--yellow-200);
--alert-warning-border-color: var(--yellow-800);
// Light
--alert-light-bg: var(--gray-900);
--alert-light-icon-color: var(--gray-200);
--alert-light-border-color: var(--gray-800);
// Dark
--alert-dark-bg: var(--gray-400);
--alert-dark-icon-color: var(--gray-800);
--alert-dark-border-color: var(--gray-200);
}
.alert {
// font-family: $font-family-monospace;
font-size: var(--font-size-sm);
border-radius: 4px;
color: var(--gray-700);
p {
line-height: 1.525rem;
}
p:last-child {
margin-bottom: 0;
}
}
.alert-icon {
margin-right: 0.35rem;
}
.alert-default {
background-color: var(--alert-default-bg);
border-color: var(--alert-border-color);
color: var(--text-default);
}
.alert-white {
background-color: rgba(255, 255, 255, 0.95);
}
.alert-primary {
background-color: var(--alert-primary-bg);
border-color: var(--alert-primary-border-color);
color: var(--text-default);
> .alert-icon span {
color: var(--alert-primary-icon-color);
margin-top: 0.15rem;
}
}
.alert-primary a {
font-weight: bold;
// color: $white;
}
.alert-success {
background-color: var(--alert-success-bg);
border-color: var(--alert-success-border-color);
color: var(--text-default);
> .alert-icon span {
color: var(--alert-success-icon-color);
margin-top: 0.15rem;
}
}
.alert-success a {
font-weight: bold;
}
.alert-info {
background-color: var(--alert-info-bg);
border-color: var(--alert-info-border-color);
color: var(--text-default);
> .alert-icon span {
color: var(--alert-info-icon-color);
margin-top: 0.15rem;
}
}
.alert-info a {
font-weight: bold;
// color: #04414d;
}
.alert-warning {
background-color: var(--alert-warning-bg);
border-color: var(--alert-warning-border-color);
color: var(--text-default);
> .alert-icon span {
color: var(--alert-warning-icon-color);
margin-top: 0.15rem;
}
}
.alert-warning .alert-link {
color: #523e02;
}
.alert-danger {
background-color: var(--alert-danger-bg);
border-color: var(--alert-danger-border-color);
color: var(--text-default);
> .alert-icon span {
color: var(--alert-danger-icon-color);
margin-top: 0.15rem;
}
}
.alert-danger .alert-link {
color: #6a1a21;
}
.alert-light {
background-color: var(--alert-light-bg);
border-color: var(--alert-light-border-color);
color: var(--text-default);
> .alert-icon span {
color: var(--alert-light-icon-color);
margin-top: 0.15rem;
}
}
.alert-light .alert-link {
color: #4f5050;
}
.alert-dark {
background-color: var(--alert-dark-bg);
border-color: var(--alert-dark-border-color);
color: var(--text-default-inv);
> .alert-icon span {
color: var(--alert-dark-icon-color);
margin-top: 0.15rem;
}
}
.alert-dark .alert-link {
color: #101214;
}
.alert .alert-link:hover,
.alert .alert-link:focus {
text-decoration: none;
}
.alert-dismissible .btn-close {
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 1rem;
z-index: 2;
padding: 0.5rem;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-x'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
background-size: 1.5rem;
filter: invert(1) grayscale(100%) brightness(200%);
}
[data-global-alert="closed"] #announcement {
display: none;
}

View File

@ -0,0 +1,37 @@
//
// backgrounds.scss
//
:root {
--bg-default: hsl(var(--primary-800-hsl),0.1);
--bg-default-border: hsl(var(--primary-800-hsl),0.1);
--bg-default-color: var(--text-default);
}
[data-dark-mode] {
--bg-default: var(--gray-800);
--bg-default-border: hsl(var(--primary-200-hsl),0.1);
--bg-default-color: var(--text-default);
}
.bg-default {
background-color: var(--bg-default) !important;
border: 1px solid var(--bg-default-border) !important;
color: var(--bg-default-color) !important;
}
.bg-primary {
background-color: var(--btn-primary-bg) !important;
border: 1px solid var(--btn-primary-border) !important;
color: var(--btn-primary-color) !important;
}
// .bg-light {
// background-color: rgba($value, 0.1) !important;
// border: 1px solid rgba($value, 0.1) !important;
// color: #{$value} !important;
// }
// .bg-dark {
// background-color: rgba($value, 0.1) !important;
// border: 1px solid rgba($value, 0.1) !important;
// color: #{$value} !important;
// }

View File

@ -0,0 +1,17 @@
//
// _badge.scss
//
//Badges
.badge {
letter-spacing: 1.1px;
padding: 6px 8px 7px 8px;
font-weight: 600;
line-height: 11px;
border-radius: 4px;
&.badge-link {
&:hover {
color: var(--white) !important;
}
}
}

View File

@ -0,0 +1,24 @@
//
// breadcrumb.scss
//
:root {
--breadcrumb-item-color: var(--primary);
}
[data-dark-mode] {
--breadcrumb-item-color: var(--primary-300);
}
.breadcrumb .breadcrumb-item a {
color: var(--breadcrumb-item-color);
}
.breadcrumb .breadcrumb-item.active {
color: var(--text-muted);
}
@media (max-width: 1199px) {
.breadcrumb {
--bs-breadcrumb-padding-x: 0.7rem;
}
}

View File

@ -0,0 +1,211 @@
//
// _buttons.scss
//
:root {
--invert: invert(0%);
--btn-modal-hover-bg: var(--gray-200);
}
[data-dark-mode] {
--invert: invert(100%);
--btn-modal-hover-bg: var(--gray-800);
}
//Buttons
.btn-soft {
background-color: var(--btn-soft-bg) !important;
border: 1px solid var(--btn-soft-border) !important;
color: var(--btn-soft-color) !important;
// box-shadow: 0 3px 5px 0 hsl(var(--primary-hsl), 0.1);
&:hover,
// &:focus,
&:active,
&.active,
&.focus {
// background-color: var(--primary) !important;
background: var(--btn-soft-bg);
border-color: var(--btn-soft-border) !important;
color: var(--btn-soft-color) !important;
}
}
.btn-primary {
background-color: var(--btn-primary-bg) !important;
border: 1px solid var(--btn-primary-border) !important;
color: var(--btn-primary-color) !important;
// box-shadow: 0 3px 5px 0 hsl(var(--primary-hsl), 0.1);
&:hover,
// &:focus,
&:active,
&.active,
&.focus {
// background-color: var(--primary) !important;
background: var(--btn-primary-bg);
border-color: var(--btn-primary-border) !important;
color: var(--btn-primary-color) !important;
}
}
.btn-default {
background-color: var(--btn-default-bg) !important;
border: 1px solid var(--btn-default-border) !important;
color: var(--btn-default-color) !important;
// box-shadow: 0 3px 5px 0 hsl(var(--primary-hsl), 0.1);
&:hover,
// &:focus,
&:active,
&.active,
&.focus {
// background-color: var(--primary) !important;
background: var(--btn-default-bg);
border-color: var(--btn-default-border) !important;
color: var(--btn-default-hover-color) !important;
}
}
.btn-link-modal {
--bs-btn-font-weight: 600;
--bs-btn-color: var(--text-default);
--bs-btn-bg: none;
--bs-btn-border-color: var(--bd-violet-bg);
--bs-btn-hover-color: var(--btn-default-hover-color);
--bs-btn-hover-bg: var(--btn-modal-hover-bg);
--bs-btn-hover-border-color: var(--bd-violet-bg);
--bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
--bs-btn-active-color: var(--bs-btn-hover-color);
--bs-btn-active-bg: var(--bd-violet-bg);
--bs-btn-active-border-color: var(--bd-violet-bg);
}
.btn-close {
filter: var(--invert);
}
body .toggle-dark {
display: block;
}
body .toggle-light {
display: none;
}
[data-dark-mode] body .toggle-light {
display: block;
}
[data-dark-mode] body .toggle-dark {
display: none;
}
.btn {
padding: 8px 20px;
outline: none;
text-decoration: none;
font-size: 16px;
letter-spacing: 0.5px;
transition: all 0.3s;
font-weight: 600;
border-radius: 6px;
&:focus {
box-shadow: none !important;
}
&.btn-sm {
padding: 7px 16px;
font-size: 12px;
}
&.btn-xs {
padding: 4px 10px;
font-size: 10px;
}
&.btn-lg {
padding: 14px 30px;
font-size: 16px;
}
&.searchbtn {
padding: 6px 20px;
}
&.btn-pills {
border-radius: 30px;
}
// &.btn-light {
// border: 1px solid darken($light, 2%);
// }
&.btn-outline-light {
border-color: var(--gray-200) !important;
}
&.btn-soft-light {
color: var(--gray-500) !important;
border-color: var(--gray-200) !important;
}
&.btn-soft-dark {
&:hover,
&:focus,
&:active,
&.active,
&.focus {
color: var(--gray-400) !important;
border-color: var(--gray-200) !important;
}
}
&.btn-dark,
&.btn-secondary {
color: var(--gray-200);
}
&.btn-outline-light {
color: var(--gray-900);
}
&.btn-icon {
height: 36px;
width: 36px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
.icons {
height: 16px;
width: 16px;
font-size: 16px;
}
&.btn-lg {
height: 48px;
width: 48px;
line-height: 46px;
.icons {
height: 20px;
width: 20px;
font-size: 20px;
}
}
&.btn-sm {
height: 30px;
width: 30px;
line-height: 28px;
}
}
}
button:not(:disabled) {
outline: none;
}

View File

@ -0,0 +1,39 @@
//
// _card.scss
//
//card
:root {
--card-title-color: var(--text-default);
--card-text-color: var(--text-muted);
}
[data-dark-mode] {
--card-title-color: var(--text-default);
--card-text-color: var(--gray-500);
}
.card {
background: var(--card-bg);
border-color: var(--card-border-color);
border-radius: 4px;
transition: all 0.2s;
-webkit-transition: all 0.2s;
.card-body {
padding: 1.5rem;
}
&:hover {
border-color: var(--card-border-hover-color);
.card-title {
color: #fff;
}
}
}
.card-title {
color: var(--card-title-color);
}
.card-text {
color: var(--card-text-color);
font-weight: 500;
}

View File

@ -0,0 +1,36 @@
//
// dropdown.scss
//
:root {
--dropdown-link-color: var(--text-default);
--dropdown-bg: var(--body-bg);
--dropdown-border-color: var(--alert-border-color);
--dropdown-border-radius: 0 0 4px 4px;
--dropdown-link-hover-color: var(--primary);
}
[data-dark-mode] {
--dropdown-link-color: var(--text-default);
--dropdown-bg: var(--body-bg);
--dropdown-border-color: var(--alert-border-color);
--dropdown-border-radius: 0 0 4px 4px;
--dropdown-link-hover-color: var(--primary-300);
}
.dropdown-menu {
--bs-dropdown-min-width: 7rem;
--#{$prefix}dropdown-link-color: var(--dropdown-link-color);
--#{$prefix}dropdown-bg: var(--dropdown-bg);
--#{$prefix}dropdown-border-color: var(--dropdown-border-color);
--#{$prefix}dropdown-link-hover-bg: none;
--#{$prefix}dropdown-link-hover-color: var(--dropdown-link-hover-color);
--#{$prefix}dropdown-border-radius: var(--dropdown-border-radius);
transform: translate(0px, 57px) !important;
border-top: none;
}

View File

@ -0,0 +1,79 @@
//
// Forms.scss
//
:root {
--form-border-color: var(--gray-200);
--form-control-focus-color: var(--gray-900);
--form-control-focus-bg-color: none;
--form-control-focus-border-color: var(--primary);
--form-control-placeholder-color: #666d78;
--form-check-input-border-color:var(--gray-400);
--form-check-input-background-color:var(--primary);
--form-check-input-checked-border-color:var(--primary);
--form-check-input-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='%23fff'/></svg>");
}
[data-dark-mode] {
--form-border-color: var(--gray-800);
--form-control-focus-color: var(--gray-200);
--form-control-focus-bg-color: #000;
--form-control-focus-border-color: var(--primary-300);
--form-control-placeholder-color: #7f8497;
--form-check-input-border-color:var(--gray-700);
--form-check-input-background-color:var(--primary-300);
--form-check-input-checked-border-color:var(--primary-300);
--form-check-input-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='%23181921'/></svg>");
}
//Form
.form-label,
.form-check-label {
font-weight: 700;
font-size: 14px;
}
.form-control {
border: 1px solid var(--form-border-color);
font-size: 14px;
line-height: 22px;
border-radius: 4px;
color: var(--text-default) !important;
background-color: var(--body-bg);
text-align: left;
&:focus {
border-color: var(--primary);
box-shadow: none;
}
&[readonly] {
background-color: var(--white);
}
&:disabled {
background-color: var(--gray-300);
}
&::placeholder{
color: var(--form-control-placeholder-color);
}
}
.form-control:focus {
color: var(--form-control-focus-color);
border-color: var(--form-control-focus-border-color);
background-color: var(--form-control-focus-bg-color);
}
.form-check-input {
border: 1px solid var(--form-check-input-border-color);
background-color: var(--body-bg);
&:focus {
border-color: var(--primary);
box-shadow: none;
}
&.form-check-input:checked {
background-color: var(--form-check-input-background-color);
border-color: var(--form-check-input-checked-border-color);
--bs-form-check-bg-image: var(--form-check-input-checked-bg-image);
}
}

View File

@ -0,0 +1,156 @@
//
// _table.scss
//
:root {
--table-hover-bg: rgba(0, 0, 0, 0.075);
}
[data-dark-mode] {
--table-hover-bg: rgba(255, 255, 255, 0.075);
}
// Default Table
table {
td {
border-top: 1px solid var(--card-border-color);
}
td, th {
border-right: 1px solid var(--card-border-color);
padding: 8px 12px;
}
td:last-child, th:last-child {
border-right: 0;
}
}
// Shortcode Table
.table {
--bs-table-color: var(--text-default);
--bs-table-bg: transparent;
--bs-table-accent-bg: none;
--bs-table-striped-color: var(--text-default);
--bs-table-striped-bg: var(--alert-primary-bg);
--bs-table-hover-color: var(--text-default);
--bs-table-hover-bg: var(--table-hover-bg);
color: var(--text-default);
font-size: 0.875rem;
border-collapse: separate;
border-spacing: 0;
> :not(caption) > * > * {
padding: 1rem 1rem;
border-bottom-width: 0;
}
tbody {
vertical-align: top;
td {
border-top: inherit;
border-bottom-width: 1px;
}
td:first-child {
border-left-width: 1px;
}
td:last-child {
border-right: inherit;
border-right-width: 1px;
}
tr:first-child {
td {
border-top-width: 1px;
}
td:first-child {
border-top-left-radius: 4px;
}
td:last-child {
border-top-right-radius: 4px;
}
}
tr:last-child {
td:first-child {
border-bottom-left-radius: 4px;
}
td:last-child {
border-bottom-right-radius: 4px;
}
}
}
td, th {
border-right: 0;
}
thead, tbody, tfoot, tr, td, th {
border-color: var(--card-border-color);
}
thead tr th {
text-transform: uppercase;
background: none;
}
}
.table-sm,
.table-striped,
.table-borderless,
.table-hover,
.table-striped-columns {
> :not(caption) > * > * {
padding: 0.6rem 0.6rem;
}
}
@media (max-width: 1199px) {
.table-sm,
.table-striped,
.table-borderless,
.table-hover,
.table-striped-columns {
> :not(caption)>*>* {
padding: 0.6rem 0.25rem;
}
}
}
.table-xs {
> :not(caption) > * > * {
padding: 0.25rem 0.25rem;
}
}
.table-borderless {
> :not(caption)>*>* {
border-bottom-width: 0 !important;
}
td:first-child {
border-left-width: 0 !important;
}
td:last-child {
border-right-width: 0 !important;
}
tr:first-child td {
border-top-width: 0 !important;
}
}
.table-striped-columns > :not(caption) > tr > th:nth-child(2n) {
--bs-table-striped-bg: none;
}
// Responsive Table
.table-responsive {
display: block;
width: 100%;
overflow-x: auto;
}

View File

@ -0,0 +1,41 @@
//
// _tabs.scss
//
:root {
--nav-tabs-border-width: none;
--nav-tabs-link-active-bg: none;
--nav-tabs-link-active-color: var(--text-default);
--nav-tabs-border-color: var(--gray-400);
}
[data-dark-mode] {
--nav-tabs-border-color: var(--gray-800);
}
.nav-tabs {
--bs-nav-tabs-border-width: var(--nav-tabs-border-width);
--bs-nav-tabs-link-active-bg: var(--nav-tabs-link-active-bg);
--bs-nav-tabs-link-active-color: var(--nav-tabs-link-active-color);
border-bottom: 1px solid var(--nav-tabs-border-color);
margin-bottom: 0.8rem;
.nav-link {
color: var(--text-muted) !important;
margin-bottom: -1px;
&:hover {
text-decoration: none !important;
}
}
.nav-link.active {
border-bottom: 2px solid var(--content-link-color);
color: var(--content-link-color) !important;
}
}
.tab-content {
margin-bottom: 0.8rem;
}

View File

@ -0,0 +1,48 @@
//
// _tooltip.scss
//
:root {
--tooltip-bg: var(--white);
--tooltip-border-color: var(--content-link-color);
--tooltip-drop-shadow-color: var(--gray-500);
--tooltip-link-color: var(--gray-700);
}
[data-dark-mode] {
--tooltip-bg: var(--dark-alt);
--tooltip-border-color: var(--primary-300);
--tooltip-drop-shadow-color: var(--gray-900);
--tooltip-link-color: var(--gray-500);
}
.tooltip {
--#{$prefix}tooltip-bg: var(--tooltip-bg);
--#{$prefix}tooltip-opacity: 1.0;
--#{$prefix}tooltip-font-size: 0.575rem;
--#{$prefix}tooltip-max-width: 300px;
}
.tooltip-inner {
text-align: left;
border: 2px solid var(--tooltip-border-color);
border-width: 2px 2px 2px 8px;
filter: drop-shadow(4px 4px 5px var(--tooltip-drop-shadow-color));
--#{$prefix}tooltip-border-radius: 4px;
a {
color: var(--tooltip-link-color);
font-size: 0.85rem;
line-height: 1.55;
p {
margin-bottom: 0.2rem;
color: var(--text-muted);
font-weight: 600;
}
strong {
font-size: 0.975rem;
line-height: 2;
color: var(--text-default);
}
}
}

View File

@ -0,0 +1,77 @@
/* nunito-300 - latin */
@font-face {
font-family: 'Nunito';
font-style: normal;
font-weight: 300;
font-display: swap;
src: local(''),
url('/docs/fonts/nunito-v25-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
// url('/docs/fonts/nunito-v25-latin-300.woff') format('woff'), /* Modern Browsers */
}
/* nunito-regular - latin */
@font-face {
font-family: 'Nunito';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local(''),
url('/docs/fonts/nunito-v25-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
// url('/docs/fonts/nunito-v25-latin-regular.woff') format('woff'), /* Modern Browsers */
}
/* nunito-500 - latin */
@font-face {
font-family: 'Nunito';
font-style: normal;
font-weight: 500;
font-display: swap;
src: local(''),
url('/docs/fonts/nunito-v25-latin-500.woff2') format('woff2'), /* Super Modern Browsers */
// url('/docs/fonts/nunito-v25-latin-500.woff') format('woff'), /* Modern Browsers */
}
/* nunito-600 - latin */
@font-face {
font-family: 'Nunito';
font-style: normal;
font-weight: 600;
font-display: swap;
src: local(''),
url('/docs/fonts/nunito-v25-latin-600.woff2') format('woff2'), /* Super Modern Browsers */
// url('/docs/fonts/nunito-v25-latin-600.woff') format('woff'), /* Modern Browsers */
}
/* nunito-700 - latin */
@font-face {
font-family: 'Nunito';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local(''),
url('/docs/fonts/nunito-v25-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
// url('/docs/fonts/nunito-v25-latin-700.woff') format('woff'), /* Modern Browsers */
}
/* source-code-pro-500 - latin */
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 500;
font-display: swap;
src: local(''),
url('/docs/fonts/source-code-pro-v22-latin-500.woff2') format('woff2'), /* Super Modern Browsers */
// url('/docs/fonts/source-code-pro-v22-latin-500.woff') format('woff'), /* Modern Browsers */
}
/* source-code-pro-700 - latin */
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local(''),
url('/docs/fonts/source-code-pro-v22-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
// url('/docs/fonts/source-code-pro-v22-latin-700.woff') format('woff'), /* Modern Browsers */
}

View File

@ -0,0 +1,227 @@
//
// features.scss
//
:root {
--feature-icon-color: var(--primary);
--feature-icon-faint: var(--gray-200);
--feature-link-hover-bg-color: var(--primary);
}
[data-dark-mode] {
--feature-icon-color: var(--primary-300);
--feature-icon-faint: var(--gray-900);
--feature-link-hover-bg-color: var(--gray-900);
}
.features {
.icon {
background: rgba(var(--primary), 0.1);
}
.image {
&:before {
background: linear-gradient(45deg, transparent, rgba(var(--primary), 0.1));
}
}
.read-more,
.color {
color: var(--primary) !important;
}
&.feature-clean {
.icons {
color: var(--primary) !important;
i {
background-color: rgba(var(--primary), 0.1);
}
}
.title {
&:hover {
color: var(--primary-800) !important;
}
}
}
&.feature-full-bg {
.icon-color {
color: var(--feature-icon-color) !important;
}
.icon-faint {
color: var(--feature-icon-faint) !important;
transition: all 0.5s ease;
}
&:hover {
background-color: var(--feature-link-hover-bg-color) !important;
}
}
&.key-feature {
.icon {
background: linear-gradient(45deg, transparent, rgba(var(--primary), 0.15));
color: var(--primary);
}
}
&.course-feature {
.full-img {
color: var(--primary) !important;
}
}
&.explore-feature {
&:hover {
.icons,
.title {
color: var(--primary) !important;
}
}
}
.btn-soft {
background-color: rgba(var(--primary), 0.05) !important;
border: 1px solid rgba(var(--primary), 0.05) !important;
color: var(--primary) !important;
box-shadow: 0 3px 5px 0 rgba(var(--primary), 0.1);
&:hover, &:focus, &:active, &.active, &.focus{
background-color: var(--primary) !important;
border-color: var(--primary) !important;
color: var(--white) !important;
}
}
&:hover {
.image {
&:before {
background: rgba(var(--primary), 0.1);
}
}
}
}
.features {
.image {
&:before {
content: "";
position: absolute;
bottom: 5px;
left: 5px;
width: 64px;
height: 64px;
border-radius: 6px;
transform: rotate(33.75deg);
}
}
&.feature-clean {
background-color: var(--body-bg);
.icons {
i {
height: 65px;
width: 65px;
line-height: 65px;
}
}
}
.ride-image {
transform: rotate(-45deg);
img {
border-radius: 100% 100% 100% 0;
}
}
&.key-feature {
transition: all 0.3s ease;
&:hover {
transform: scale(1.05);
box-shadow: var(--shadow-md) !important;
}
}
&:hover {
.image {
&:before {
animation: spinner-border 5s linear infinite !important;
}
}
}
&.feature-full-bg {
transition: all 0.5s ease;
.big-icon {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0;
right: 0;
opacity: 0.015;
font-size: 180px;
}
&:hover {
box-shadow: var--(shadow-lg);
color: var(--white) !important;
.icon-color i,
.badge,
.para {
color: var(--white) !important;
opacity: 0.5;
}
.content,
.icon-color {
z-index: 2;
}
.big-icon {
opacity: 0.05;
}
.readmore {
color: var(--white) !important;
}
}
}
&.course-feature {
transition: all 0.5s ease;
.full-img {
position: absolute;
bottom: 50%;
transform: translateY(50%);
left: 0;
right: 0;
opacity: 0;
margin: 0 auto;
z-index: -2;
transition: all 0.5s ease;
font-size: 250px;
}
&:hover {
transform: translateY(-10px);
.full-img {
opacity: 0.05;
}
}
}
&.explore-feature {
transition: all 0.5s ease;
.icons {
height: 80px;
width: 80px;
line-height: 80px;
transition: all 0.5s ease;
}
&:hover {
box-shadow: var(--shadow-lg) !important;
}
}
}
.features,
.key-feature {
.title {
font-size: 18px !important;
}
.icon {
height: 45px;
min-width: 45px;
display: flex;
align-items: center;
justify-content: center;
}
}

View File

@ -0,0 +1,330 @@
//
// _helper.scss
//
.fw-medium {
font-weight: var(--fw-medium);
}
.section {
padding: 100px 0;
position: relative;
@media (max-width: 768px) {
padding: 60px 0;
}
}
.bg-overlay {
background-color: var(--overlay);
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
width: 100%;
height: 100%
}
.bg-overlay-white {
background-color: var(--bg-overlay-white);
}
//Title
.title-heading {
line-height: 26px;
.heading {
font-size: 45px !important;
letter-spacing: 1px;
@media (max-width: 768px) {
font-size: 35px !important;
}
}
.para-desc {
font-size: 18px;
}
}
.section-title {
// position: relative;
.title {
letter-spacing: 0.5px;
font-size: 30px !important;
@media (max-width: 768px) {
font-size: 24px !important;
}
}
}
.para-desc {
max-width: 600px;
}
.mt-100 {
margin-top: 100px;
}
//back to top
.back-to-top {
position: fixed;
z-index: 99;
bottom: 30px;
right: 30px;
display: none;
transition: all 0.5s ease;
height: 36px;
width: 36px;
line-height: 0;
padding: 0;
border-radius: 4px;
border: none;
background: var(--primary);
svg {
transition: all 0.5s ease;
}
&:hover {
transform: rotate(45deg);
svg {
transform: rotate(-45deg) !important;
}
}
}
// Opacity
.opacity-05 {
opacity: 0.05;
}
.opacity-1 {
opacity: 0.1;
}
.opacity-2 {
opacity: 0.2;
}
.opacity-3 {
opacity: 0.3;
}
.opacity-4 {
opacity: 0.4;
}
.opacity-5 {
opacity: 0.5;
}
.opacity-6 {
opacity: 0.6;
}
.opacity-7 {
opacity: 0.7;
}
.opacity-075 {
opacity: 0.075;
}
.opacity-8 {
opacity: 0.8;
}
.opacity-9 {
opacity: 0.9;
}
//back-to-home
.back-to-home {
position: fixed;
top: 4%;
right: 2%;
z-index: 1;
}
//Sticky Sidebar
.sticky-bar {
position: sticky;
top: 80px;
}
[class^=uil-],
[class*=" uil-"] {
&:before {
margin: 0;
}
}
.uim-svg {
vertical-align: 0 !important;
}
//Social icons
.social-icon {
li {
a {
color: var(--dark);
border: 1px solid var(--dark);
height: 32px;
width: 32px;
display: inline-flex;
justify-content: center;
align-items: center;
text-align: center;
transition: all 0.4s ease;
overflow: hidden;
position: relative;
.fea-social {
stroke-width: 2;
}
&:hover {
background-color: var(--primary);
border-color: var(--primary) !important;
color: var(--foot-social-color-white) !important;
.fea-social {
fill: var(--primary);
}
}
}
}
&.social {
li {
a {
color: var(--foot-social-color);
border-color: var(--social-border-color);
}
}
}
&.foot-social-icon {
li {
a {
color: var(--foot-social-color);
// border-color: lighten($footer, 5%);
border-color: hsl(var(--footer), 100%,calc(var(--l) + 5%));
}
}
}
}
// Rounded
.rounded {
border-radius: 6px !important;
}
.rounded-top {
border-top-left-radius: 6px !important;
border-top-right-radius: 6px !important;
}
.rounded-left {
border-top-left-radius: 6px !important;
border-bottom-left-radius: 6px !important;
}
.rounded-bottom {
border-bottom-left-radius: 6px !important;
border-bottom-right-radius: 6px !important;
}
.rounded-right {
border-top-right-radius: 6px !important;
border-bottom-right-radius: 6px !important;
}
.rounded-md {
border-radius: 10px !important;
}
.rounded-lg {
border-radius: 30px !important;
}
.bg-white-color {
background: var(--bg-white-color);
}
.d-flex {
.flex-1 {
flex: 1;
}
}
//Google Material Symbol Icons
.material-icons {
font-family: 'Material Symbols Outlined';
font-weight: normal;
font-style: normal;
font-size: 24px;
/* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
overflow: hidden;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}
/* Recommended icon sizes */
span,
i {
&.size-16 {
font-size: 16px !important;
font-variation-settings: 'OPSZ' 16;
}
&.size-20 {
font-size: 20px !important;
font-variation-settings: 'OPSZ' 20;
}
&.size-24 {
font-size: 24px !important;
font-variation-settings: 'OPSZ' 24;
}
&.size-40 {
font-size: 40px !important;
font-variation-settings: 'OPSZ' 40;
}
&.size-48 {
font-size: 48px !important;
font-variation-settings: 'OPSZ' 48;
}
}
// Content Anchors
.anchor {
visibility: hidden;
}
h1:hover a,
h2:hover a,
h3:hover a,
h4:hover a {
visibility: visible;
text-decoration: none;
}

View File

@ -0,0 +1,13 @@
/* Chroma CSS */
.docs-content .main-content code {
color: var(--text-default);
}
.docs-content .main-content pre {
background-color: var(--code-block-bg) !important;
code {
color: #f5fbff;
background: var(--code-block-bg);
}
}

View File

@ -0,0 +1,761 @@
/*! @docsearch/css 3.3.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */
:root {
--docsearch-primary-color: var(--primary);
--docsearch-text-color: #1c1e21;
--docsearch-spacing: 12px;
--docsearch-icon-stroke-width: 1.4;
--docsearch-highlight-color: var(--docsearch-primary-color);
--docsearch-muted-color: #666d78;
--docsearch-container-background: rgba(101, 108, 133, 0.8);
--docsearch-logo-color: #5468ff;
--docsearch-modal-width: 560px;
--docsearch-modal-height: 600px;
--docsearch-modal-background: #f5f6f7;
--docsearch-modal-shadow: inset 1px 1px 0 0 hsla(0, 0%, 100%, 0.5), 0 3px 8px 0 #555a64;
--docsearch-searchbox-height: 56px;
--docsearch-searchbox-background: var(--body-bg);
--docsearch-searchbox-border: #e5e5e5;
--docsearch-searchbox-focus-background: #fff;
--docsearch-searchbox-shadow: inset 0 0 0 2px var(--docsearch-primary-color);
--docsearch-hit-height: 56px;
--docsearch-hit-color: #444950;
--docsearch-hit-active-color: #fff;
--docsearch-hit-background: #fff;
--docsearch-hit-shadow: 0 1px 3px 0 #d4d9e1;
--docsearch-key-gradient: linear-gradient(-225deg, #d5dbe4, #f8f8f8);
--docsearch-key-shadow: inset 0 -2px 0 0 #cdcde6, inset 0 0 1px 1px #fff, 0 1px 2px 1px rgba(30, 35, 90, 0.4);
--docsearch-key-color: #fff;
--docsearch-key-background-color: var(--docsearch-primary-color);
--docsearch-footer-height: 44px;
--docsearch-footer-background: #fff;
--docsearch-footer-shadow: 0 -1px 0 0 #e0e3e8, 0 -3px 6px 0 rgba(69, 98, 155, 0.12)
}
[data-dark-mode] {
--docsearch-text-color: #f5f6f7;
--docsearch-container-background: rgba(9, 10, 17, 0.8);
--docsearch-modal-background: var(--dark);
--docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;
--docsearch-searchbox-background: var(--body-bg);
--docsearch-searchbox-border: var(--gray-800);
--docsearch-searchbox-focus-background: #000;
--docsearch-hit-color: #bec3c9;
--docsearch-hit-shadow: none;
--docsearch-hit-background: #090a11;
--docsearch-key-gradient: linear-gradient(-26.5deg, #565872, #31355b);
--docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgba(3, 4, 9, 0.3);
--docsearch-key-color: var(--primary-200);
--docsearch-key-background-color: hsl(var(--primary-hsl), 0.15);
--docsearch-footer-background: #1e2136;
--docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, 0.5), 0 -4px 8px 0 rgba(0, 0, 0, 0.2);
--docsearch-logo-color: #fff;
--docsearch-muted-color: #7f8497
}
.DocSearch-Button {
align-items: center;
background: none;
border: 1px solid var(--docsearch-searchbox-border);
border-radius: 4px;
color: var(--docsearch-muted-color);
cursor: pointer;
display: flex;
font-weight: 500;
height: 36px;
justify-content: space-between;
margin: 0 0 0 16px;
padding: 0 8px;
user-select: none
}
.DocSearch-Button:active,
.DocSearch-Button:focus,
.DocSearch-Button:hover {
background: var(--docsearch-searchbox-focus-background);
// box-shadow: var(--docsearch-searchbox-shadow);
border: 1px solid var(--docsearch-searchbox-border);
color: var(--docsearch-text-color);
outline: none
}
.DocSearch-Button-Container {
align-items: center;
display: flex
}
.DocSearch-Search-Icon {
stroke-width: 1.6
}
.DocSearch-Button .DocSearch-Search-Icon {
color: var(--docsearch-text-color)
}
.DocSearch-Button-Placeholder {
font-size: 1rem;
padding: 0 12px 0 6px
}
.DocSearch-Button-Keys {
display: flex;
min-width: calc(40px + .8em)
}
.DocSearch-Command-Key {
align-items: center;
background: var(--docsearch-key-background-color);
border-radius: 3px;
// box-shadow: var(--docsearch-key-shadow);
color: var(--docsearch-key-color);
display: flex;
height: 18px;
justify-content: center;
margin-right: .4em;
position: relative;
// padding: 0 0 2px;
border: 0;
top: 1px;
width: 56px
}
.DocSearch-Button-Key {
align-items: center;
background: var(--docsearch-key-background-color);
border-radius: 3px;
// box-shadow: var(--docsearch-key-shadow);
color: var(--docsearch-key-color);
display: flex;
height: 18px;
justify-content: center;
margin-right: .4em;
position: relative;
// padding: 0 0 2px;
border: 0;
top: 1px;
width: 20px;
font-size: 11px;
}
@media (max-width:768px) {
.DocSearch-Button-Keys,
.DocSearch-Button-Placeholder {
display: none
}
}
.DocSearch--active {
overflow: hidden !important
}
.DocSearch-Container,
.DocSearch-Container * {
box-sizing: border-box
}
.DocSearch-Container {
background-color: var(--docsearch-container-background);
height: 100vh;
left: 0;
position: fixed;
top: 0;
width: 100vw;
z-index: 200
}
.DocSearch-Container a {
text-decoration: none
}
.DocSearch-Link {
appearance: none;
background: none;
border: 0;
color: var(--docsearch-highlight-color);
cursor: pointer;
font: inherit;
margin: 0;
padding: 0
}
.DocSearch-Modal {
background: var(--docsearch-modal-background);
border-radius: 6px;
box-shadow: var(--docsearch-modal-shadow);
flex-direction: column;
margin: 65px calc(100vw - 925px) auto auto;
max-width: var(--docsearch-modal-width);
position: relative
}
@media (max-width:1024px) {
.DocSearch-Modal {
margin: 65px calc(100vw - 640px) auto auto;
}
}
.DocSearch-SearchBar {
display: flex;
padding: var(--docsearch-spacing) var(--docsearch-spacing) 0
}
.DocSearch-Form {
align-items: center;
background: var(--docsearch-searchbox-focus-background);
border-radius: 4px;
box-shadow: var(--docsearch-searchbox-shadow);
display: flex;
height: var(--docsearch-searchbox-height);
margin: 0;
padding: 0 var(--docsearch-spacing);
position: relative;
width: 100%
}
.DocSearch-Input {
appearance: none;
background: transparent;
border: 0;
color: var(--docsearch-text-color);
flex: 1;
font: inherit;
font-size: 1.2em;
height: 100%;
outline: none;
padding: 0 0 0 8px;
width: 80%
}
.DocSearch-Input::placeholder {
color: var(--docsearch-muted-color);
opacity: 1
}
.DocSearch-Input::-webkit-search-cancel-button,
.DocSearch-Input::-webkit-search-decoration,
.DocSearch-Input::-webkit-search-results-button,
.DocSearch-Input::-webkit-search-results-decoration {
display: none
}
.DocSearch-LoadingIndicator,
.DocSearch-MagnifierLabel,
.DocSearch-Reset {
margin: 0;
padding: 0
}
.DocSearch-MagnifierLabel,
.DocSearch-Reset {
align-items: center;
color: var(--docsearch-highlight-color);
display: flex;
justify-content: center
}
.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,
.DocSearch-LoadingIndicator {
display: none
}
.DocSearch-Container--Stalled .DocSearch-LoadingIndicator {
align-items: center;
color: var(--docsearch-highlight-color);
display: flex;
justify-content: center
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Reset {
animation: none;
appearance: none;
background: none;
border: 0;
border-radius: 50%;
color: var(--docsearch-icon-color);
cursor: pointer;
right: 0;
stroke-width: var(--docsearch-icon-stroke-width)
}
}
.DocSearch-Reset {
animation: fade-in .1s ease-in forwards;
appearance: none;
background: none;
border: 0;
border-radius: 50%;
color: var(--docsearch-icon-color);
cursor: pointer;
padding: 2px;
right: 0;
stroke-width: var(--docsearch-icon-stroke-width)
}
.DocSearch-Reset[hidden] {
display: none
}
.DocSearch-Reset:focus {
outline: none
}
.DocSearch-Reset:hover {
color: var(--docsearch-highlight-color)
}
.DocSearch-LoadingIndicator svg,
.DocSearch-MagnifierLabel svg {
height: 24px;
width: 24px
}
.DocSearch-Cancel {
display: none
}
.DocSearch-Dropdown {
max-height: calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));
min-height: var(--docsearch-spacing);
overflow-y: auto;
overflow-y: overlay;
padding: 0 var(--docsearch-spacing);
scrollbar-color: var(--docsearch-muted-color) var(--docsearch-modal-background);
scrollbar-width: thin
}
.DocSearch-Dropdown::-webkit-scrollbar {
width: 12px
}
.DocSearch-Dropdown::-webkit-scrollbar-track {
background: transparent
}
.DocSearch-Dropdown::-webkit-scrollbar-thumb {
background-color: var(--docsearch-muted-color);
border: 3px solid var(--docsearch-modal-background);
border-radius: 20px
}
.DocSearch-Dropdown ul {
list-style: none;
margin: 0;
padding: 0
}
.DocSearch-Label {
font-size: .75em;
line-height: 1.6em
}
.DocSearch-Help,
.DocSearch-Label {
color: var(--docsearch-muted-color)
}
.DocSearch-Help {
font-size: .9em;
margin: 0;
user-select: none
}
.DocSearch-Title {
font-size: 1.2em
}
.DocSearch-Logo a {
display: flex
}
.DocSearch-Logo svg {
color: var(--docsearch-logo-color);
margin-left: 8px
}
.DocSearch-Hits:last-of-type {
margin-bottom: 24px
}
.DocSearch-Hits mark {
padding: 0;
background: none;
color: var(--docsearch-highlight-color)
}
.DocSearch-HitsFooter {
color: var(--docsearch-muted-color);
display: flex;
font-size: .85em;
justify-content: center;
margin-bottom: var(--docsearch-spacing);
padding: var(--docsearch-spacing)
}
.DocSearch-HitsFooter a {
border-bottom: 1px solid;
color: inherit
}
.DocSearch-Hit {
border-radius: 4px;
display: flex;
padding-bottom: 4px;
position: relative
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Hit--deleting {
transition: none
}
}
.DocSearch-Hit--deleting {
opacity: 0;
transition: all .25s linear
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Hit--favoriting {
transition: none
}
}
.DocSearch-Hit--favoriting {
transform: scale(0);
transform-origin: top center;
transition: all .25s linear;
transition-delay: .25s
}
.DocSearch-Hit a {
background: var(--docsearch-hit-background);
border-radius: 4px;
box-shadow: var(--docsearch-hit-shadow);
display: block;
padding-left: var(--docsearch-spacing);
width: 100%
}
.DocSearch-Hit-source {
background: var(--docsearch-modal-background);
color: var(--docsearch-highlight-color);
font-size: .85em;
font-weight: 600;
line-height: 32px;
margin: 0 -4px;
padding: 8px 4px 0;
position: sticky;
top: 0;
z-index: 10
}
.DocSearch-Hit-Tree {
color: var(--docsearch-muted-color);
height: var(--docsearch-hit-height);
opacity: .5;
stroke-width: var(--docsearch-icon-stroke-width);
width: 24px
}
.DocSearch-Hit[aria-selected=true] a {
background-color: var(--docsearch-highlight-color)
}
.DocSearch-Hit[aria-selected=true] mark {
text-decoration: underline
}
.DocSearch-Hit-Container {
align-items: center;
color: var(--docsearch-hit-color);
display: flex;
flex-direction: row;
height: var(--docsearch-hit-height);
padding: 0 var(--docsearch-spacing) 0 0
}
.DocSearch-Hit-icon {
height: 20px;
width: 20px
}
.DocSearch-Hit-action,
.DocSearch-Hit-icon {
color: var(--docsearch-muted-color);
stroke-width: var(--docsearch-icon-stroke-width)
}
.DocSearch-Hit-action {
align-items: center;
display: flex;
height: 22px;
width: 22px
}
.DocSearch-Hit-action svg {
display: block;
height: 18px;
width: 18px
}
.DocSearch-Hit-action+.DocSearch-Hit-action {
margin-left: 6px
}
.DocSearch-Hit-action-button {
appearance: none;
background: none;
border: 0;
border-radius: 50%;
color: inherit;
cursor: pointer;
padding: 2px
}
svg.DocSearch-Hit-Select-Icon {
display: none
}
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon {
display: block
}
.DocSearch-Hit-action-button:focus,
.DocSearch-Hit-action-button:hover {
background: rgba(0, 0, 0, .2);
transition: background-color .1s ease-in
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Hit-action-button:focus,
.DocSearch-Hit-action-button:hover {
transition: none
}
}
.DocSearch-Hit-action-button:focus path,
.DocSearch-Hit-action-button:hover path {
fill: #fff
}
.DocSearch-Hit-content-wrapper {
display: flex;
flex: 1 1 auto;
flex-direction: column;
font-weight: 600;
justify-content: center;
line-height: 1.2em;
margin: 0 8px;
overflow-x: hidden;
position: relative;
text-overflow: ellipsis;
white-space: nowrap;
width: 80%
}
.DocSearch-Hit-title {
font-size: .9em
}
.DocSearch-Hit-path {
color: var(--docsearch-muted-color);
font-size: .75em
}
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,
.DocSearch-Hit[aria-selected=true] mark {
color: var(--docsearch-hit-active-color) !important
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Hit-action-button:focus,
.DocSearch-Hit-action-button:hover {
background: rgba(0, 0, 0, .2);
transition: none
}
}
.DocSearch-ErrorScreen,
.DocSearch-NoResults,
.DocSearch-StartScreen {
font-size: .9em;
margin: 0 auto;
padding: 36px 0;
text-align: center;
width: 80%
}
.DocSearch-Screen-Icon {
color: var(--docsearch-muted-color);
padding-bottom: 12px
}
.DocSearch-NoResults-Prefill-List {
display: inline-block;
padding-bottom: 24px;
text-align: left
}
.DocSearch-NoResults-Prefill-List ul {
display: inline-block;
padding: 8px 0 0
}
.DocSearch-NoResults-Prefill-List li {
list-style-position: inside;
list-style-type: "» "
}
.DocSearch-Prefill {
appearance: none;
background: none;
border: 0;
border-radius: 1em;
color: var(--docsearch-highlight-color);
cursor: pointer;
display: inline-block;
font-size: 1em;
font-weight: 700;
padding: 0
}
.DocSearch-Prefill:focus,
.DocSearch-Prefill:hover {
outline: none;
text-decoration: underline
}
.DocSearch-Footer {
align-items: center;
background: var(--docsearch-footer-background);
border-radius: 0 0 8px 8px;
box-shadow: var(--docsearch-footer-shadow);
display: flex;
flex-direction: row-reverse;
flex-shrink: 0;
height: var(--docsearch-footer-height);
justify-content: space-between;
padding: 0 var(--docsearch-spacing);
position: relative;
user-select: none;
width: 100%;
z-index: 300
}
.DocSearch-Commands {
color: var(--docsearch-muted-color);
display: flex;
list-style: none;
margin: 0;
padding: 0
}
.DocSearch-Commands li {
align-items: center;
display: flex
}
.DocSearch-Commands li:not(:last-of-type) {
margin-right: .8em
}
.DocSearch-Commands-Key {
align-items: center;
background: var(--docsearch-key-background-color);
border-radius: 3px;
display: flex;
height: 20px;
justify-content: center;
margin-right: .4em;
color: var(--docsearch-key-color);
border: 0;
width: 30px
}
@media (max-width:768px) {
:root {
--docsearch-spacing: 10px;
--docsearch-footer-height: 40px
}
.DocSearch-Dropdown {
height: calc(100% - 92px);
}
.DocSearch-Container {
height: 100vh;
height: -webkit-fill-available;
height: calc(var(--docsearch-vh, 1vh)*100);
position: absolute
}
.DocSearch-Footer {
border-radius: 0;
bottom: 0;
position: absolute
}
.DocSearch-Hit-content-wrapper {
display: flex;
position: relative;
width: 80%
}
.DocSearch-Modal {
border-radius: 0;
box-shadow: none;
// height: 100vh;
height: -webkit-calc(100% - 72px);
height: calc(100% - 72px);
margin: 72px 0 0 0;
max-width: 100%;
width: 100%
}
.DocSearch-Dropdown {
max-height: calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))
}
.DocSearch-Cancel {
appearance: none;
background: none;
border: 0;
color: var(--docsearch-highlight-color);
cursor: pointer;
display: inline-block;
flex: none;
font: inherit;
font-size: 1em;
font-weight: 500;
margin-left: var(--docsearch-spacing);
outline: none;
overflow: hidden;
padding: 0;
user-select: none;
white-space: nowrap
}
.DocSearch-Commands,
.DocSearch-Hit-Tree {
display: none
}
}
@keyframes fade-in {
0% {
opacity: 0
}
to {
opacity: 1
}
}

View File

@ -0,0 +1,48 @@
/*! @docsearch/css Variables 3.3.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */
:root {
--docsearch-primary-color: #5468ff;
--docsearch-text-color: #1c1e21;
--docsearch-spacing: 12px;
--docsearch-icon-stroke-width: 1.4;
--docsearch-highlight-color: var(--docsearch-primary-color);
--docsearch-muted-color: #969faf;
--docsearch-container-background: rgba(101, 108, 133, 0.8);
--docsearch-logo-color: #5468ff;
--docsearch-modal-width: 560px;
--docsearch-modal-height: 600px;
--docsearch-modal-background: #f5f6f7;
--docsearch-modal-shadow: inset 1px 1px 0 0 hsla(0, 0%, 100%, 0.5), 0 3px 8px 0 #555a64;
--docsearch-searchbox-height: 56px;
--docsearch-searchbox-background: #ebedf0;
--docsearch-searchbox-focus-background: #fff;
--docsearch-searchbox-shadow: inset 0 0 0 2px var(--docsearch-primary-color);
--docsearch-hit-height: 56px;
--docsearch-hit-color: #444950;
--docsearch-hit-active-color: #fff;
--docsearch-hit-background: #fff;
--docsearch-hit-shadow: 0 1px 3px 0 #d4d9e1;
--docsearch-key-gradient: linear-gradient(-225deg, #d5dbe4, #f8f8f8);
--docsearch-key-shadow: inset 0 -2px 0 0 #cdcde6, inset 0 0 1px 1px #fff, 0 1px 2px 1px rgba(30, 35, 90, 0.4);
--docsearch-footer-height: 44px;
--docsearch-footer-background: #fff;
--docsearch-footer-shadow: 0 -1px 0 0 #e0e3e8, 0 -3px 6px 0 rgba(69, 98, 155, 0.12)
}
html[data-theme=dark] {
--docsearch-text-color: #f5f6f7;
--docsearch-container-background: rgba(9, 10, 17, 0.8);
--docsearch-modal-background: #15172a;
--docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;
--docsearch-searchbox-background: #090a11;
--docsearch-searchbox-focus-background: #000;
--docsearch-hit-color: #bec3c9;
--docsearch-hit-shadow: none;
--docsearch-hit-background: #090a11;
--docsearch-key-gradient: linear-gradient(-26.5deg, #565872, #31355b);
--docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgba(3, 4, 9, 0.3);
--docsearch-footer-background: #1e2136;
--docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, 0.5), 0 -4px 8px 0 rgba(0, 0, 0, 0.2);
--docsearch-logo-color: #fff;
--docsearch-muted-color: #7f8497
}

View File

@ -0,0 +1,74 @@
/*! @docsearch/css Button 3.3.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */
.DocSearch-Button {
align-items: center;
background: var(--docsearch-searchbox-background);
border: 0;
border-radius: 40px;
color: var(--docsearch-muted-color);
cursor: pointer;
display: flex;
font-weight: 500;
height: 36px;
justify-content: space-between;
margin: 0 0 0 16px;
padding: 0 8px;
user-select: none
}
.DocSearch-Button:active,
.DocSearch-Button:focus,
.DocSearch-Button:hover {
background: var(--docsearch-searchbox-focus-background);
box-shadow: var(--docsearch-searchbox-shadow);
color: var(--docsearch-text-color);
outline: none
}
.DocSearch-Button-Container {
align-items: center;
display: flex
}
.DocSearch-Search-Icon {
stroke-width: 1.6
}
.DocSearch-Button .DocSearch-Search-Icon {
color: var(--docsearch-text-color)
}
.DocSearch-Button-Placeholder {
font-size: 1rem;
padding: 0 12px 0 6px
}
.DocSearch-Button-Keys {
display: flex;
min-width: calc(40px + .8em)
}
.DocSearch-Button-Key {
align-items: center;
background: var(--docsearch-key-gradient);
border-radius: 3px;
box-shadow: var(--docsearch-key-shadow);
color: var(--docsearch-muted-color);
display: flex;
height: 18px;
justify-content: center;
margin-right: .4em;
position: relative;
padding: 0 0 2px;
border: 0;
top: -1px;
width: 20px
}
@media (max-width:768px) {
.DocSearch-Button-Keys,
.DocSearch-Button-Placeholder {
display: none
}
}

View File

@ -0,0 +1,611 @@
/*! @docsearch/css Modal 3.3.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */
.DocSearch--active {
overflow: hidden !important
}
.DocSearch-Container,
.DocSearch-Container * {
box-sizing: border-box
}
.DocSearch-Container {
background-color: var(--docsearch-container-background);
height: 100vh;
left: 0;
position: fixed;
top: 0;
width: 100vw;
z-index: 200
}
.DocSearch-Container a {
text-decoration: none
}
.DocSearch-Link {
appearance: none;
background: none;
border: 0;
color: var(--docsearch-highlight-color);
cursor: pointer;
font: inherit;
margin: 0;
padding: 0
}
.DocSearch-Modal {
background: var(--docsearch-modal-background);
border-radius: 6px;
box-shadow: var(--docsearch-modal-shadow);
flex-direction: column;
margin: 60px auto auto;
max-width: var(--docsearch-modal-width);
position: relative
}
.DocSearch-SearchBar {
display: flex;
padding: var(--docsearch-spacing) var(--docsearch-spacing) 0
}
.DocSearch-Form {
align-items: center;
background: var(--docsearch-searchbox-focus-background);
border-radius: 4px;
box-shadow: var(--docsearch-searchbox-shadow);
display: flex;
height: var(--docsearch-searchbox-height);
margin: 0;
padding: 0 var(--docsearch-spacing);
position: relative;
width: 100%
}
.DocSearch-Input {
appearance: none;
background: transparent;
border: 0;
color: var(--docsearch-text-color);
flex: 1;
font: inherit;
font-size: 1.2em;
height: 100%;
outline: none;
padding: 0 0 0 8px;
width: 80%
}
.DocSearch-Input::placeholder {
color: var(--docsearch-muted-color);
opacity: 1
}
.DocSearch-Input::-webkit-search-cancel-button,
.DocSearch-Input::-webkit-search-decoration,
.DocSearch-Input::-webkit-search-results-button,
.DocSearch-Input::-webkit-search-results-decoration {
display: none
}
.DocSearch-LoadingIndicator,
.DocSearch-MagnifierLabel,
.DocSearch-Reset {
margin: 0;
padding: 0
}
.DocSearch-MagnifierLabel,
.DocSearch-Reset {
align-items: center;
color: var(--docsearch-highlight-color);
display: flex;
justify-content: center
}
.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,
.DocSearch-LoadingIndicator {
display: none
}
.DocSearch-Container--Stalled .DocSearch-LoadingIndicator {
align-items: center;
color: var(--docsearch-highlight-color);
display: flex;
justify-content: center
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Reset {
animation: none;
appearance: none;
background: none;
border: 0;
border-radius: 50%;
color: var(--docsearch-icon-color);
cursor: pointer;
right: 0;
stroke-width: var(--docsearch-icon-stroke-width)
}
}
.DocSearch-Reset {
animation: fade-in .1s ease-in forwards;
appearance: none;
background: none;
border: 0;
border-radius: 50%;
color: var(--docsearch-icon-color);
cursor: pointer;
padding: 2px;
right: 0;
stroke-width: var(--docsearch-icon-stroke-width)
}
.DocSearch-Reset[hidden] {
display: none
}
.DocSearch-Reset:focus {
outline: none
}
.DocSearch-Reset:hover {
color: var(--docsearch-highlight-color)
}
.DocSearch-LoadingIndicator svg,
.DocSearch-MagnifierLabel svg {
height: 24px;
width: 24px
}
.DocSearch-Cancel {
display: none
}
.DocSearch-Dropdown {
max-height: calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));
min-height: var(--docsearch-spacing);
overflow-y: auto;
overflow-y: overlay;
padding: 0 var(--docsearch-spacing);
scrollbar-color: var(--docsearch-muted-color) var(--docsearch-modal-background);
scrollbar-width: thin
}
.DocSearch-Dropdown::-webkit-scrollbar {
width: 12px
}
.DocSearch-Dropdown::-webkit-scrollbar-track {
background: transparent
}
.DocSearch-Dropdown::-webkit-scrollbar-thumb {
background-color: var(--docsearch-muted-color);
border: 3px solid var(--docsearch-modal-background);
border-radius: 20px
}
.DocSearch-Dropdown ul {
list-style: none;
margin: 0;
padding: 0
}
.DocSearch-Label {
font-size: .75em;
line-height: 1.6em
}
.DocSearch-Help,
.DocSearch-Label {
color: var(--docsearch-muted-color)
}
.DocSearch-Help {
font-size: .9em;
margin: 0;
user-select: none
}
.DocSearch-Title {
font-size: 1.2em
}
.DocSearch-Logo a {
display: flex
}
.DocSearch-Logo svg {
color: var(--docsearch-logo-color);
margin-left: 8px
}
.DocSearch-Hits:last-of-type {
margin-bottom: 24px
}
.DocSearch-Hits mark {
background: none;
color: var(--docsearch-highlight-color)
}
.DocSearch-HitsFooter {
color: var(--docsearch-muted-color);
display: flex;
font-size: .85em;
justify-content: center;
margin-bottom: var(--docsearch-spacing);
padding: var(--docsearch-spacing)
}
.DocSearch-HitsFooter a {
border-bottom: 1px solid;
color: inherit
}
.DocSearch-Hit {
border-radius: 4px;
display: flex;
padding-bottom: 4px;
position: relative
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Hit--deleting {
transition: none
}
}
.DocSearch-Hit--deleting {
opacity: 0;
transition: all .25s linear
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Hit--favoriting {
transition: none
}
}
.DocSearch-Hit--favoriting {
transform: scale(0);
transform-origin: top center;
transition: all .25s linear;
transition-delay: .25s
}
.DocSearch-Hit a {
background: var(--docsearch-hit-background);
border-radius: 4px;
box-shadow: var(--docsearch-hit-shadow);
display: block;
padding-left: var(--docsearch-spacing);
width: 100%
}
.DocSearch-Hit-source {
background: var(--docsearch-modal-background);
color: var(--docsearch-highlight-color);
font-size: .85em;
font-weight: 600;
line-height: 32px;
margin: 0 -4px;
padding: 8px 4px 0;
position: sticky;
top: 0;
z-index: 10
}
.DocSearch-Hit-Tree {
color: var(--docsearch-muted-color);
height: var(--docsearch-hit-height);
opacity: .5;
stroke-width: var(--docsearch-icon-stroke-width);
width: 24px
}
.DocSearch-Hit[aria-selected=true] a {
background-color: var(--docsearch-highlight-color)
}
.DocSearch-Hit[aria-selected=true] mark {
text-decoration: underline
}
.DocSearch-Hit-Container {
align-items: center;
color: var(--docsearch-hit-color);
display: flex;
flex-direction: row;
height: var(--docsearch-hit-height);
padding: 0 var(--docsearch-spacing) 0 0
}
.DocSearch-Hit-icon {
height: 20px;
width: 20px
}
.DocSearch-Hit-action,
.DocSearch-Hit-icon {
color: var(--docsearch-muted-color);
stroke-width: var(--docsearch-icon-stroke-width)
}
.DocSearch-Hit-action {
align-items: center;
display: flex;
height: 22px;
width: 22px
}
.DocSearch-Hit-action svg {
display: block;
height: 18px;
width: 18px
}
.DocSearch-Hit-action+.DocSearch-Hit-action {
margin-left: 6px
}
.DocSearch-Hit-action-button {
appearance: none;
background: none;
border: 0;
border-radius: 50%;
color: inherit;
cursor: pointer;
padding: 2px
}
svg.DocSearch-Hit-Select-Icon {
display: none
}
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon {
display: block
}
.DocSearch-Hit-action-button:focus,
.DocSearch-Hit-action-button:hover {
background: rgba(0, 0, 0, .2);
transition: background-color .1s ease-in
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Hit-action-button:focus,
.DocSearch-Hit-action-button:hover {
transition: none
}
}
.DocSearch-Hit-action-button:focus path,
.DocSearch-Hit-action-button:hover path {
fill: #fff
}
.DocSearch-Hit-content-wrapper {
display: flex;
flex: 1 1 auto;
flex-direction: column;
font-weight: 500;
justify-content: center;
line-height: 1.2em;
margin: 0 8px;
overflow-x: hidden;
position: relative;
text-overflow: ellipsis;
white-space: nowrap;
width: 80%
}
.DocSearch-Hit-title {
font-size: .9em
}
.DocSearch-Hit-path {
color: var(--docsearch-muted-color);
font-size: .75em
}
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,
.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,
.DocSearch-Hit[aria-selected=true] mark {
color: var(--docsearch-hit-active-color) !important
}
@media screen and (prefers-reduced-motion:reduce) {
.DocSearch-Hit-action-button:focus,
.DocSearch-Hit-action-button:hover {
background: rgba(0, 0, 0, .2);
transition: none
}
}
.DocSearch-ErrorScreen,
.DocSearch-NoResults,
.DocSearch-StartScreen {
font-size: .9em;
margin: 0 auto;
padding: 36px 0;
text-align: center;
width: 80%
}
.DocSearch-Screen-Icon {
color: var(--docsearch-muted-color);
padding-bottom: 12px
}
.DocSearch-NoResults-Prefill-List {
display: inline-block;
padding-bottom: 24px;
text-align: left
}
.DocSearch-NoResults-Prefill-List ul {
display: inline-block;
padding: 8px 0 0
}
.DocSearch-NoResults-Prefill-List li {
list-style-position: inside;
list-style-type: "» "
}
.DocSearch-Prefill {
appearance: none;
background: none;
border: 0;
border-radius: 1em;
color: var(--docsearch-highlight-color);
cursor: pointer;
display: inline-block;
font-size: 1em;
font-weight: 700;
padding: 0
}
.DocSearch-Prefill:focus,
.DocSearch-Prefill:hover {
outline: none;
text-decoration: underline
}
.DocSearch-Footer {
align-items: center;
background: var(--docsearch-footer-background);
border-radius: 0 0 8px 8px;
box-shadow: var(--docsearch-footer-shadow);
display: flex;
flex-direction: row-reverse;
flex-shrink: 0;
height: var(--docsearch-footer-height);
justify-content: space-between;
padding: 0 var(--docsearch-spacing);
position: relative;
user-select: none;
width: 100%;
z-index: 300
}
.DocSearch-Commands {
color: var(--docsearch-muted-color);
display: flex;
list-style: none;
margin: 0;
padding: 0
}
.DocSearch-Commands li {
align-items: center;
display: flex
}
.DocSearch-Commands li:not(:last-of-type) {
margin-right: .8em
}
.DocSearch-Commands-Key {
align-items: center;
background: var(--docsearch-key-gradient);
border-radius: 2px;
box-shadow: var(--docsearch-key-shadow);
display: flex;
height: 18px;
justify-content: center;
margin-right: .4em;
padding: 0 0 1px;
color: var(--docsearch-muted-color);
border: 0;
width: 20px
}
@media (max-width:768px) {
:root {
--docsearch-spacing: 10px;
--docsearch-footer-height: 40px
}
.DocSearch-Dropdown {
height: 100%
}
.DocSearch-Container {
height: 100vh;
height: -webkit-fill-available;
height: calc(var(--docsearch-vh, 1vh)*100);
position: absolute
}
.DocSearch-Footer {
border-radius: 0;
bottom: 0;
position: absolute
}
.DocSearch-Hit-content-wrapper {
display: flex;
position: relative;
width: 80%
}
.DocSearch-Modal {
border-radius: 0;
box-shadow: none;
height: 100vh;
height: -webkit-fill-available;
height: calc(var(--docsearch-vh, 1vh)*100);
margin: 0;
max-width: 100%;
width: 100%
}
.DocSearch-Dropdown {
max-height: calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))
}
.DocSearch-Cancel {
appearance: none;
background: none;
border: 0;
color: var(--docsearch-highlight-color);
cursor: pointer;
display: inline-block;
flex: none;
font: inherit;
font-size: 1em;
font-weight: 500;
margin-left: var(--docsearch-spacing);
outline: none;
overflow: hidden;
padding: 0;
user-select: none;
white-space: nowrap
}
.DocSearch-Commands,
.DocSearch-Hit-Tree {
display: none
}
}
@keyframes fade-in {
0% {
opacity: 0
}
to {
opacity: 1
}
}

View File

@ -0,0 +1,143 @@
/* Feedback Widget */
:root {
--emoticon-container-border-color: var(--gray-500);
--emoticon-color: var(--gray-500);
--emoticon-checked-color: var(--primary);
--emoticon-checked--bg-color: var(--primary-100);
}
[data-dark-mode] {
--emoticon-container-border-color: var(--gray-700);
--emoticon-color: var(--gray-600);
--emoticon-checked-color: var(--primary-300);
--emoticon-checked--bg-color: var(--gray-800);
}
#feedback-init {
transition: opacity 0.5s;
}
#feedback-form-pos,
#feedback-form-neg,
#feedback-end,
#feedback-emoji-end,
#feedback-submit-container,
#feedback-emoji-submit-container {
height: 0;
line-height:0;
overflow: hidden;
opacity: 0;
transition: opacity 0.5s;
&.is-visible {
height: auto;
line-height: inherit;
overflow: inherit;
opacity: 1;
}
.form-check {
margin-bottom: 0.525rem;
}
.form-check-label,
.form-check-input {
font-weight: 600;
cursor: pointer;
}
}
#feedback-emoji-end {
padding: 0;
&.is-visible {
padding: 10px 30px;
width: 40vh;
}
}
.feedback-radio-desc {
color: var(--text-muted);
font-size: 14px;
}
.feedback-textarea {
width: 50%;
font-size: 0.875rem;
color: var(--text-default);
background: var(--card-bg);
resize: none;
border: solid 1px;
border-radius: 4px ;
border-color: var(--card-border-color);
@media (max-width:578px) {
width: 100%;
}
}
#feedback-widget-emoticon {
border: 1px solid var(--emoticon-container-border-color);
border-radius: 30px;
padding: 1px 5px;
width: min-content;
}
#feedback-cta {
width: max-content;
}
#text-wrapper {
height: 0;
line-height:0;
overflow: hidden;
opacity: 0;
transition: opacity 0.5s;
&.is-visible {
height: auto;
line-height: inherit;
overflow: inherit;
opacity: 1;
padding: 10px 3px 0px 3px;
display: flex;
flex-direction: column;
gap: 8px;
}
}
.feedback-textarea-emoji {
width: 100%;
font-size: 0.875rem;
color: var(--text-default);
background: var(--card-bg);
resize: none;
border: solid 1px;
border-radius: 4px ;
border-color: var(--card-border-color);
}
.radio-emoji {
>input[type="radio"] {
display: none;
+label {
background: transparent;
color: var(--emoticon-color);
height: 32px;
width: 32px;
border: none;
border-radius: 50%;
cursor: pointer;
transition:background .2s,border-color .2s;
}
}
}
.radio-emoji input[type="radio"]:checked + label {
background: var(--emoticon-checked--bg-color);
color: var(--emoticon-checked-color);
}

View File

@ -0,0 +1,259 @@
/* FlexSearch */
:root {
--flexsearch-container-bg-color: var(--gray-100);
--flexsearch-after-bg-color: var(--primary);
--flexsearch-after-color: var(--white);
--flexsearch-button-hover-bg-color: none;
--flexsearch-key-bg-color: var(--primary);
--flexsearch-key-color: #fff;
--flexsearch-suggestion-bg-color: var(--white);
--flexsearch-suggestion-link-hover-bg-color: #f5f6f7;
--flexsearch-suggestion-title-color: var(--primary);
--flexsearch-suggestion-title-border-color: var(--gray-300);
--flexsearch-suggestion-desc-color: var(--text-default);
}
[data-dark-mode] {
--flexsearch-container-bg-color: var(--dark-secondary);
--flexsearch-after-bg-color: hsl(var(--primary-hsl),0.15);
--flexsearch-after-color: var(--primary-200);
--flexsearch-button-hover-bg-color: var(--black);
--flexsearch-key-bg-color: hsl(var(--primary-hsl), 0.15);
--flexsearch-key-color: var(--primary-200);
--flexsearch-suggestion-bg-color: var(--dark-secondary);
--flexsearch-suggestion-link-hover-bg-color: var(--gray-800);
--flexsearch-suggestion-title-color: var(--primary-200);
--flexsearch-suggestion-title-border-color: var(--gray-700);
--flexsearch-suggestion-desc-color: var(--gray-300);
}
#FlexSearchCollapse {
transition: 0.05s ease;
width: fit-content;
}
.flexsearch-container {
background-color: var(--flexsearch-container-bg-color);
padding: 0.8rem;
.form-control {
border: 2px solid var(--primary);
font-size: 1.2rem;
}
}
@media (min-width: 768px) {
.flexsearch-container {
border-radius: 0 0 4px 0;
}
.flexsearch {
min-width: 500px;
width: 500px;
}
}
.flexsearch-keymap {
padding: 0 0 0.8rem 0.5rem;
list-style: none;
display: flex;
.flexsearch-button-cmd-key {
height: 20px;
width: 30px;
}
li:not(:last-of-type) {
margin-right: 0.8rem;
}
li {
align-items: center;
display: flex;
}
}
@media (max-width: 768px) {
.flexsearch-keymap {
display: none;
}
}
.flexsearch-key-label {
color: var(--form-control-placeholder-color);
font-size: 0.75em;
line-height: 1.6em;
}
.flexsearch-button-keys {
display: flex;
min-width: calc(40px + .8em);
}
.flexsearch-button-cmd-key {
align-items: center;
background: var(--flexsearch-key-bg-color);
border-radius: 3px;
color: var(--flexsearch-key-color);
display: flex;
height: 18px;
justify-content: center;
margin-right: .4em;
position: relative;
border: 0;
width: 56px;
}
.flexsearch-button-key {
align-items: center;
background: var(--flexsearch-key-bg-color);
border-radius: 3px;
color: var(--flexsearch-key-color);
display: flex;
height: 18px;
justify-content: center;
margin-right: .4em;
padding: 0;
position: relative;
border: 0;
width: 20px;
font-size: 11px;
}
#flexsearch-button {
display: flex;
height: 36px;
padding: 0 8px;
margin: 0 0 0 16px;
font-weight: 400;
align-items: center;
justify-content: space-between;
border-radius: 4px;
.flexsearch-button-placeholder {
color: var(--form-control-placeholder-color);
}
}
#flexsearch-button:hover {
background: var(--flexsearch-button-hover-bg-color) !important;
.flexsearch-button-placeholder {
color: var(--text-default);
}
}
@media (min-width: 992px) {
.flexsearch::after {
right: 0.5125rem
}
}
#suggestions {
position: absolute;
background-color: var(--flexsearch-suggestion-bg-color);
left: 0;
max-height: 70vh;
overflow-y: auto;
scrollbar-width: thin;
&::-webkit-scrollbar {
width: 5px;
}
&::-webkit-scrollbar-track {
background: transparent;
}
&::-webkit-scrollbar-thumb {
background-color: rgba(155, 155, 155, 0.5);
border-radius: 2px;
border: transparent;
}
margin-top: 0.5rem;
// width: calc(100vw - 0.3rem);
max-width: calc(100vw - 0.15rem);
z-index: 999
}
@media (min-width: 768px) {
#suggestions {
// right: -2rem
}
}
@media (min-width: 992px) {
#suggestions {
left: 0
}
}
#suggestions a,
.suggestion__no-results {
padding: 0.75rem;
margin: 0 0.5rem
}
#suggestions a {
display: block;
text-decoration: none
}
#suggestions a:focus {
background: var(--flexsearch-suggestion-link-hover-bg-color);
border-radius: 4px;
outline: 0
}
#suggestions div:not(:first-child) {
// border-top: 1px dashed #e9ecef
}
#suggestions div:first-child {
margin-top: 0.5rem
}
#suggestions div:last-child {
margin-bottom: 0.5rem
}
#suggestions a:hover {
background: var(--flexsearch-suggestion-link-hover-bg-color);
border-radius: 4px;
}
#suggestions span {
display: flex;
font-size: 1rem
}
.suggestion__title {
font-weight: 700;
color: var(--flexsearch-suggestion-title-color);
}
.suggestion__description,
.suggestion__no-results {
color: var(--flexsearch-suggestion-desc-color);
}
@media (min-width: 992px) {
#suggestions {
width: 500px;
max-width: 500px
}
#suggestions a {
display: flex
}
.suggestion__title {
width: 9rem;
padding-right: 1rem;
border-right: 1px solid var(--flexsearch-suggestion-title-border-color);
display: inline-block;
text-align: left
}
.suggestion__description {
width: 20.1rem;
padding-left: 1rem
}
}

View File

@ -0,0 +1,12 @@
// Google Material Icon Font via
// https://github.com/marella/material-symbols/tree/main/material-symbols
@font-face {
font-family: 'Material Symbols Outlined';
font-weight: 400 700;
font-display: block;
font-style: normal;
src: local('Material Symbols Outlined'), local('Material Icons'), local('MaterialIcons-Outlined'),
url('../fonts/material-symbols-outlined.woff2') format('woff2'), /* Super Modern Browsers */
// url('../fonts/material-symbols-outlined.woff') format('woff'); /* Modern Browsers */
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,41 @@
/* Mermaid */
.docs-content .main-content pre {
&.mermaid {
background-color: transparent !important;
text-align: center !important;
.messageText {
fill: var(--text-default) !important;
}
.messageLine0,
.messageLine1 {
stroke: var(--text-default) !important;
}
#arrowhead path,
#crosshead path {
fill: var(--text-default) !important;
stroke: var(--text-default) !important;
}
.edgePaths path {
stroke: var(--text-default) !important;
}
.marker {
fill: var(--text-default) !important;
stroke: var(--text-default) !important;
}
.grid .tick {
stroke: var(--text-default) !important;
text {
fill: var(--text-default) !important;
}
}
line {
stroke: var(--text-default) !important;
}
text {
fill: var(--text-default) !important;
}
}
}

View File

@ -0,0 +1,478 @@
/* PrismJS 1.29.0 */
// Fit codeblock container to contents
// .prism-codeblock {
// width: fit-content;
// max-width: 100%;
// }
code {
color: var(--text-default);
}
.docs-content .main-content pre {
background-color: var(--prism-code-bg) !important;
}
code[class*="language-"],
pre[class*="language-"] {
border: none !important;
font-family: $font-family-monospace;
font-size: 0.8rem;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
scrollbar-width: thin;
scrollbar-color: var(--prism-code-scrollbar-thumb-color) var(--prism-code-bg);
&::-webkit-scrollbar {
height: 5px;
background: var(--prism-code-bg);
}
&::-webkit-scrollbar-thumb {
background: var(--prism-code-scrollbar-thumb-color);
}
}
pre[data-line] {
position: relative;
padding: 0 !important;
}
.line-highlight:first-of-type {
margin-top: 0em;
}
.line-highlight:last-of-type {
margin-top: 0em !important;
}
.line-highlight {
position: absolute;
left: 0;
right: 0;
padding: inherit 0;
margin-top: 0em; /* Same as .prisms padding-top */
background: hsla(24, 20%, 50%,.08);
background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%, 0));
pointer-events: none;
line-height: inherit;
white-space: pre;
}
@media print {
.line-highlight {
/*
* This will prevent browsers from replacing the background color with white.
* It's necessary because the element is layered on top of the displayed code.
*/
-webkit-print-color-adjust: exact;
color-adjust: exact;
}
}
.line-highlight:before,
.line-highlight[data-end]:after {
content: attr(data-start);
position: absolute;
top: 0.14em;
left: .6em;
min-width: 1.5em;
padding: 0 .5em;
// background-color: var(--blue-400);
color: hsl(24, 20%, 95%);
font: bold 95%/1.3 sans-serif;
text-align: center;
vertical-align: .3em;
border-radius: 4px;
text-shadow: none;
// box-shadow: 0 1px white;
}
.line-highlight[data-end]:after {
content: attr(data-end);
top: auto;
bottom: .14em;
}
.line-numbers .line-highlight {
margin-top: 0em !important;
}
.line-numbers .line-highlight:before,
.line-numbers .line-highlight:after {
content: none;
}
// .line-numbers .line-highlight:first-of-type,
// .line-numbers .line-highlight:last-of-type {
// margin-top: 0 !important;
// }
pre[id].linkable-line-numbers span.line-numbers-rows {
pointer-events: all;
}
pre[id].linkable-line-numbers span.line-numbers-rows > span:before {
cursor: pointer;
}
pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {
background-color: rgba(128, 128, 128, .2);
}
pre[class*="language-"].line-numbers {
position: relative;
padding-left: 0;
counter-reset: linenumber;
}
pre[class*="language-"].line-numbers > code {
position: relative;
white-space: inherit;
padding: 0.3rem 3.0rem 1.25rem 3rem !important;
}
.line-numbers .line-numbers-rows {
position: absolute;
pointer-events: none;
top: .40em;
font-size: 100%;
left: 0em;
width: 3em; /* works for line-numbers below 1000 lines */
letter-spacing: -1px;
// border-right: 1px solid #999;
border-right: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.line-numbers-rows > span {
display: block;
counter-increment: linenumber;
}
.line-numbers-rows > span:before {
content: counter(linenumber);
color: var(--gray-400);
display: block;
padding-right: 0.8em;
text-align: right;
}
div.code-toolbar {
position: relative;
margin: 16px 0;
padding-top: 1.25rem !important;
background-color: var(--prism-code-bg);
border-radius: 4px;
}
div.prism-codeblock.hl_lines .code-toolbar {
padding-top: 1.25rem !important;
}
div.prism-shortcode.data-line .code-toolbar {
padding-top: 1.25rem !important;
}
div.code-toolbar > .toolbar {
position: absolute;
z-index: 10;
top: .4em;
right: .4em;
transition: opacity 0.3s ease-in-out;
opacity: 0;
}
div.code-toolbar:hover > .toolbar {
opacity: 1;
}
/* Separate line b/c rules are thrown out if selector is invalid.
IE11 and old Edge versions don't support :focus-within. */
div.code-toolbar:focus-within > .toolbar {
opacity: 1;
}
div.code-toolbar > .toolbar > .toolbar-item {
display: inline-block;
}
div.code-toolbar > .toolbar > .toolbar-item > a {
cursor: pointer;
}
div.code-toolbar > .toolbar > .toolbar-item > button {
background: none;
border: 0;
color: inherit;
font: inherit;
line-height: normal;
overflow: visible;
padding: 0;
-webkit-user-select: none; /* for button */
-moz-user-select: none;
-ms-user-select: none;
&.copy-to-clipboard-button {
box-shadow: none;
background: var(--prism-code-bg);
opacity: 0.9;
}
}
// Custom Copy, Copied and Error Icons
[data-copy-state="copy"] span:empty::before {
content: "";
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48' viewBox='0 0 48 48'%3E%3Cpath d='M9 43.95q-1.2 0-2.1-.9-.9-.9-.9-2.1V10.8h3v30.15h23.7v3Zm6-6q-1.2 0-2.1-.9-.9-.9-.9-2.1v-28q0-1.2.9-2.1.9-.9 2.1-.9h22q1.2 0 2.1.9.9.9.9 2.1v28q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h22v-28H15v28Zm0 0v-28 28Z'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48' viewBox='0 0 48 48'%3E%3Cpath d='M9 43.95q-1.2 0-2.1-.9-.9-.9-.9-2.1V10.8h3v30.15h23.7v3Zm6-6q-1.2 0-2.1-.9-.9-.9-.9-2.1v-28q0-1.2.9-2.1.9-.9 2.1-.9h22q1.2 0 2.1.9.9.9.9 2.1v28q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h22v-28H15v28Zm0 0v-28 28Z'/%3E%3C/svg%3E");
-webkit-mask-size: contain;
mask-size: contain;
// background-color: var(--gray-400);
display: block;
height: 24px;
width: 24px;
}
// [data-copy-state="copy"] span:empty:hover::before {
// background-color: var(--white);
// }
[data-copy-state="copy-success"] span:empty::before {
content: "";
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48' viewBox='0 0 48 48'%3E%3Cpath d='M18.9 35.7 7.7 24.5l2.15-2.15 9.05 9.05 19.2-19.2 2.15 2.15Z'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48' viewBox='0 0 48 48'%3E%3Cpath d='M18.9 35.7 7.7 24.5l2.15-2.15 9.05 9.05 19.2-19.2 2.15 2.15Z'/%3E%3C/svg%3E");
-webkit-mask-size: contain;
mask-size: contain;
// background-color: var(--emerald-200);
display: block;
height: 24px;
width: 24px;
}
[data-copy-state="copy-error"] span:empty::before {
content: "";
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48' viewBox='0 0 48 48'%3E%3Cpath d='M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z'/%3E%3C/svg%3E");
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48' viewBox='0 0 48 48'%3E%3Cpath d='M24 34q.7 0 1.175-.475.475-.475.475-1.175 0-.7-.475-1.175Q24.7 30.7 24 30.7q-.7 0-1.175.475-.475.475-.475 1.175 0 .7.475 1.175Q23.3 34 24 34Zm-1.35-7.65h3V13.7h-3ZM24 44q-4.1 0-7.75-1.575-3.65-1.575-6.375-4.3-2.725-2.725-4.3-6.375Q4 28.1 4 23.95q0-4.1 1.575-7.75 1.575-3.65 4.3-6.35 2.725-2.7 6.375-4.275Q19.9 4 24.05 4q4.1 0 7.75 1.575 3.65 1.575 6.35 4.275 2.7 2.7 4.275 6.35Q44 19.85 44 24q0 4.1-1.575 7.75-1.575 3.65-4.275 6.375t-6.35 4.3Q28.15 44 24 44Zm.05-3q7.05 0 12-4.975T41 23.95q0-7.05-4.95-12T24 7q-7.05 0-12.025 4.95Q7 16.9 7 24q0 7.05 4.975 12.025Q16.95 41 24.05 41ZM24 24Z'/%3E%3C/svg%3E");
-webkit-mask-size: contain;
mask-size: contain;
background-color: var(--cardinal-300);
display: block;
height: 24px;
width: 24px;
}
div.code-toolbar > .toolbar > .toolbar-item > a,
div.code-toolbar > .toolbar > .toolbar-item > button,
div.code-toolbar > .toolbar > .toolbar-item > span {
color: #bbb;
font-size: .8em;
padding: 4px;
background: rgba(224, 224, 224, 0.2);
box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
border-radius: 4px;
}
div.code-toolbar > .toolbar > .toolbar-item > a:hover,
div.code-toolbar > .toolbar > .toolbar-item > a:focus,
div.code-toolbar > .toolbar > .toolbar-item > button:hover,
div.code-toolbar > .toolbar > .toolbar-item > button:focus,
div.code-toolbar > .toolbar > .toolbar-item > span:hover,
div.code-toolbar > .toolbar > .toolbar-item > span:focus {
color: inherit;
text-decoration: none;
}
.token.treeview-part .entry-line {
position: relative;
text-indent: -99em;
display: inline-block;
vertical-align: top;
width: 1.2em;
}
.token.treeview-part .entry-line:before,
.token.treeview-part .line-h:after {
content: "";
position: absolute;
top: 0;
left: 50%;
width: 50%;
height: 100%;
}
.token.treeview-part .line-h:before,
.token.treeview-part .line-v:before {
border-left: 1px solid #ccc;
}
.token.treeview-part .line-v-last:before {
height: 50%;
border-left: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
.token.treeview-part .line-h:after {
height: 50%;
border-bottom: 1px solid #ccc;
}
.token.treeview-part .entry-name {
position: relative;
display: inline-block;
vertical-align: top;
}
.token.treeview-part .entry-name.dotfile {
opacity: 0.5;
}
/* @GENERATED-FONT */
@font-face {
font-family: "PrismTreeview";
/**
* This font is generated from the .svg files in the `icons` folder. See the `treeviewIconFont` function in
* `gulpfile.js/index.js` for more information.
*
* Use the following escape sequences to refer to a specific icon:
*
* - \ea01 file
* - \ea02 folder
* - \ea03 image
* - \ea04 audio
* - \ea05 video
* - \ea06 text
* - \ea07 code
* - \ea08 archive
* - \ea09 pdf
* - \ea0a excel
* - \ea0b powerpoint
* - \ea0c word
*/
src: url("data:application/font-woff;base64,d09GRgABAAAAAAgYAAsAAAAAEGAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPwAAAFY1UkH9Y21hcAAAAYQAAAB/AAACCtvO7yxnbHlmAAACBAAAA+MAAAlACm1VqmhlYWQAAAXoAAAAKgAAADZfxj5jaGhlYQAABhQAAAAYAAAAJAFbAMFobXR4AAAGLAAAAA4AAAA0CGQAAGxvY2EAAAY8AAAAHAAAABwM9A9CbWF4cAAABlgAAAAfAAAAIAEgAHZuYW1lAAAGeAAAATcAAAJSfUrk+HBvc3QAAAewAAAAZgAAAIka0DSfeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGRYyjiBgZWBgaGQoRZISkLpUAYOBj0GBiYGVmYGrCAgzTWFweEV4ysehs1ArgDDFgZGIA3CDAB2tQjAAHic7ZHLEcMwCESfLCz/VEoKSEE5parURxMOC4c0Ec283WGFdABgBXrwCAzam4bOK9KWeefM3Hhmjyn3ed+hTRq1pS7Ra/HjYGPniHcXMy4G/zNTP7/KW5HTXArkvdBW3ArN19dCG/NRIN8K5HuB/CiQn4U26VeBfBbML9NEH78AeJyVVc1u20YQ3pn905JcSgr/YsuSDTEg3cR1bFEkYyS1HQcQ2jQF2hot6vYSoECKnnPLA/SWUy9NTr31Bfp+6azsNI0SGiolzu7ODnfn+2Z2lnHG3rxhr9nfLGKbLGesncAYYnUHpsVnMG/uwyzNdFIVd6HI6twp8+R3LpT4TSglLoTHwwJgG2/dFvKrl9yI507/p5CCq4LTxB/PlPjkFaMHnWB/0S9je7RTPS+utnGtom1T2q5pk/e3H0M1S18rsXAL7wgpxQuhAmteGGvNjmcfGXuwnFNOPCXxeOGmnjrBLWNyBeNtVq2Hs03yus1aPS3mzSyNVSfu588iW1Q93x/4fjcHn+5EkS2tMxr4xIRa8ese+4L9uKZnxEqs8+ldyN9atU02a5t5uQ8hZGms1QTKpaKYqnipiNNOAIeIADC0JNEOYY+jtSgFoOchiAjRGFACpUTRje8bwIYWGCDEgENY8MEu9bnCYCdAxftoNg0KiSpUtPaHcanYwzXRu6T4r40b5npal3V7UHWCPJW9niyl1vIHgoujEXZjudBkeWkOeMQBRmbEPhKzij1i52t6/TadL+3q7H0U1eq4E8cG4gIIwQLx8VX7ToPXgPrehVc5QXHR7gMSmwjKfaYAP4KvZV+yn9bE18y2IY37LvtyrSg3i7ZK++B603ndlg/gBJpZRsfpBI6hyiaQ6FjlnThz8lAC3LgBIMnXDOAXxBQ4SIgiEhx2AcGCAwAhwjXRpCQms42bwAUt75BvAwgONzdgOfWEwzk4Ylzj4mz+5YEzzXzWX9aNlk7ot65y5QnBHsNlm6zDTu7sspRqG4V+fgJ1lVBZ07Nm7s5nemo3Lf3PO7iwtnroQ5/YDGwPRUip6fV6L+27p+wCHwSvPs85UnHqId8NAn5IBsKdv95KrL9m31Gsf2a/rluDslk1y1J9GE+LUmmVT/OyOHaFKGnapt2H5XeJTmKd6qYNoVVZOy+pWzr7rMip3ndG/4mQSoUcMbAqG/YNIAdXhkAqTVruXhocSKN0iS4Rwj7vSS4fcF/La07BfeQSuRAcFeW+9igjwPhhYPpGCBCBHhxiKMyFMFT7ziRH7RtfIWdiha+TdW+Rqs7bLHdN2ZJIKl0um0x3op9saYr0REeRdj09pl43pMzz4tjztrY8L4o8bzT+oLY27PR/eFtXs/YY5vtwB5Iqad14eYN0ujveMaGWqkdU3TKbQSC5Uvxaf4fA7SAQ3r2tEfIhd4duld91bwMisjqBw22orthNcroXl7KqO1329HBgAexgoCfGAwiDPoBnriki3lmNojrzvD0tjo6E3vPYP6E2BMIAeJxjYGRgYADiY8t3FsTz23xl4GbYzIAB/v9nWM6wBcjgYGAC8QH+QQhZAAB4nGNgZGBg2MzAACeXMzAyoAJeADPyAh14nGNgAILNpGEA0fgIZQAAAAAAAAA2AHIAvgE+AZgCCAKMAv4DlgPsBEYEoHicY2BkYGDgZchi4GQAASYg5gJCBob/YD4DABTSAZcAeJx9kU1uwjAQhV/4qwpqhdSqi67cTTeVEmBXDgBbhBD7AHYISuLUMSD2PUdP0HNwjp6i676k3qQS9Ujjb968mYUNoI8zPJTHw02Vy9PAFatfbpLuHbfIT47b6MF33KH+6riLF0wc93CHN27wWtdUHvHuuIFbfDhuUv903CKfHbfxgC/HHerfjrtYen3HPTx7ambiIl0YKQ+xPM5ltE9CU9NqxVKaItaZGPqDmj6VmTShlRuxOoniEI2sVUIZnYqJzqxMEi1yo3dybf2ttfk4CJTT/bVOMYNBjAIpFiTJOLCWOGLOHGGPBCE7l32XO0tmw04MjQwCQ7774B//lDmrZkJY3hvOrHBiLuiJMKJqoVgrejQ3CP5Yubt0JwxNJa96Oypr6j621VSOMQKG+uP36eKmHylcb0MAeJxtwdEOgjAMBdBeWEFR/Mdl7bTJtMsygc/nwVfPoYF+QP+tGDAigDFhxgVXLLjhjhUPCtmKTtmLaGN7x6dy/Io5bybqoevRQ3LRObb0sk3HKpn1SFqW6ru26vbpYfcmRCccJhqsAAA=")
format("woff");
}
.token.treeview-part .entry-name:before {
content: "\ea01";
font-family: "PrismTreeview";
font-size: inherit;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 2.5ex;
display: inline-block;
}
.token.treeview-part .entry-name.dir:before {
content: "\ea02";
}
.token.treeview-part .entry-name.ext-bmp:before,
.token.treeview-part .entry-name.ext-eps:before,
.token.treeview-part .entry-name.ext-gif:before,
.token.treeview-part .entry-name.ext-jpe:before,
.token.treeview-part .entry-name.ext-jpg:before,
.token.treeview-part .entry-name.ext-jpeg:before,
.token.treeview-part .entry-name.ext-png:before,
.token.treeview-part .entry-name.ext-svg:before,
.token.treeview-part .entry-name.ext-tiff:before {
content: "\ea03";
}
.token.treeview-part .entry-name.ext-cfg:before,
.token.treeview-part .entry-name.ext-conf:before,
.token.treeview-part .entry-name.ext-config:before,
.token.treeview-part .entry-name.ext-csv:before,
.token.treeview-part .entry-name.ext-ini:before,
.token.treeview-part .entry-name.ext-log:before,
.token.treeview-part .entry-name.ext-md:before,
.token.treeview-part .entry-name.ext-nfo:before,
.token.treeview-part .entry-name.ext-txt:before {
content: "\ea06";
}
.token.treeview-part .entry-name.ext-asp:before,
.token.treeview-part .entry-name.ext-aspx:before,
.token.treeview-part .entry-name.ext-c:before,
.token.treeview-part .entry-name.ext-cc:before,
.token.treeview-part .entry-name.ext-cpp:before,
.token.treeview-part .entry-name.ext-cs:before,
.token.treeview-part .entry-name.ext-css:before,
.token.treeview-part .entry-name.ext-h:before,
.token.treeview-part .entry-name.ext-hh:before,
.token.treeview-part .entry-name.ext-htm:before,
.token.treeview-part .entry-name.ext-html:before,
.token.treeview-part .entry-name.ext-jav:before,
.token.treeview-part .entry-name.ext-java:before,
.token.treeview-part .entry-name.ext-js:before,
.token.treeview-part .entry-name.ext-php:before,
.token.treeview-part .entry-name.ext-rb:before,
.token.treeview-part .entry-name.ext-xml:before {
content: "\ea07";
}
.token.treeview-part .entry-name.ext-7z:before,
.token.treeview-part .entry-name.ext-bz:before,
.token.treeview-part .entry-name.ext-bz2:before,
.token.treeview-part .entry-name.ext-gz:before,
.token.treeview-part .entry-name.ext-rar:before,
.token.treeview-part .entry-name.ext-tar:before,
.token.treeview-part .entry-name.ext-tgz:before,
.token.treeview-part .entry-name.ext-zip:before {
content: "\ea08";
}
.token.treeview-part .entry-name.ext-aac:before,
.token.treeview-part .entry-name.ext-au:before,
.token.treeview-part .entry-name.ext-cda:before,
.token.treeview-part .entry-name.ext-flac:before,
.token.treeview-part .entry-name.ext-mp3:before,
.token.treeview-part .entry-name.ext-oga:before,
.token.treeview-part .entry-name.ext-ogg:before,
.token.treeview-part .entry-name.ext-wav:before,
.token.treeview-part .entry-name.ext-wma:before {
content: "\ea04";
}
.token.treeview-part .entry-name.ext-avi:before,
.token.treeview-part .entry-name.ext-flv:before,
.token.treeview-part .entry-name.ext-mkv:before,
.token.treeview-part .entry-name.ext-mov:before,
.token.treeview-part .entry-name.ext-mp4:before,
.token.treeview-part .entry-name.ext-mpeg:before,
.token.treeview-part .entry-name.ext-mpg:before,
.token.treeview-part .entry-name.ext-ogv:before,
.token.treeview-part .entry-name.ext-webm:before {
content: "\ea05";
}
.token.treeview-part .entry-name.ext-pdf:before {
content: "\ea09";
}
.token.treeview-part .entry-name.ext-xls:before,
.token.treeview-part .entry-name.ext-xlsx:before {
content: "\ea0a";
}
.token.treeview-part .entry-name.ext-doc:before,
.token.treeview-part .entry-name.ext-docm:before,
.token.treeview-part .entry-name.ext-docx:before {
content: "\ea0c";
}
.token.treeview-part .entry-name.ext-pps:before,
.token.treeview-part .entry-name.ext-ppt:before,
.token.treeview-part .entry-name.ext-pptx:before {
content: "\ea0b";
}

View File

@ -0,0 +1,144 @@
/**
* Lotus Docs theme
*
* Adapted from a theme based on:
* https://github.com/chriskempson/tomorrow-theme
*
* @author Colin Wilson <github.com/colinwilson>
* @version 1.0
*/
:root {
--prism-code-bg: #212d63;
--prism-code-scrollbar-thumb-color: var(--gray-400);
}
[data-dark-mode] {
--prism-code-bg: var(--gray-900);
--prism-code-scrollbar-thumb-color: var(--gray-600);
}
code[class*="language-"],
pre[class*="language-"] {
color: #f5fbff !important;
background: var(--prism-code-bg) !important;
}
/* Code blocks */
pre[class*="language-"] {
// padding: 1em;
// margin: .5em 0;
overflow: auto;
border-radius: 0 0 4px 4px;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background: #32325d;
}
/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.line-highlight:before,
.line-highlight[data-end]:after {
background-color: var(--blue-400);
}
[data-copy-state="copy"] span:empty::before {
background-color: var(--gray-400);
}
[data-copy-state="copy"] span:empty:hover::before {
background-color: var(--white);
}
[data-copy-state="copy-success"] span:empty::before {
background-color: var(--emerald-200);
}
.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #999;
}
.token.punctuation {
color: #ccc;
}
.token.tag,
.token.attr-name,
.token.namespace,
.token.deleted {
color: #7fd3ed;
}
.token.function-name {
color: #6196cc;
}
.token.boolean,
.token.function {
color: #fda3f3;
}
.token.number {
color: var(--cardinal-200);
}
.token.property,
.token.class-name,
.token.constant,
.token.symbol {
color: #ffffff;
font-weight: 700;
}
.token.selector,
.token.important,
.token.atrule,
.token.keyword,
.token.builtin {
color: #a4cdfe;
font-weight: 700;
}
.token.string,
.token.char,
.token.attr-value,
.token.regex {
color: #7ec699;
}
.token.variable {
color: var(--yellow-100);
}
.token.operator,
.token.entity,
.token.url {
color: #67cdcc;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
.token.inserted {
color: green;
}

View File

@ -0,0 +1,149 @@
/*
Lucario Theme originally by Raphael Amorim [@raphamorim]
https://github.com/raphamorim/lucario
Ported for PrismJS by Christopher Kapic [@christopher-kapic]
Adapted for Lotus Docs by Colin Wilson
Website: https://colinwilson.uk
Twitter Handle: https://twitter.com/colinwilsonuk
*/
:root {
--prism-code-color: #f8f8f2;
--prism-code-bg: #263E52;
--prism-code-scrollbar-thumb-color: var(--gray-400);
--prism-line-highlight-bg-color: #8c78d2;
--prism-copy-btn-bg-hover-color: var(--white);
}
[data-dark-mode] {
--prism-code-color: #dee2e6;
--prism-code-bg: var(--gray-900);
--prism-code-scrollbar-thumb-color: var(--gray-600);
--prism-line-highlight-bg-color: #8c78d2;
--prism-copy-btn-bg-hover-color: var(--white);
}
code[class*="language-"],
pre[class*="language-"] {
color: var(--prism-code-color);
// text-shadow: 0 1px rgba(0, 0, 0, 0.3);
background: var(--prism-code-bg) !important;
}
/* Code blocks */
pre[class*="language-"] {
// padding: 1em;
// margin: .5em 0;
overflow: auto;
border-radius: 0.3em;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #263E52;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.line-highlight.line-highlight {
background: linear-gradient(to right, hsla(0, 0%, 54%, .1) 70%, hsla(0, 0%, 33%, 0));
}
.line-highlight:before,
.line-highlight[data-end]:after {
background-color: var(--prism-line-highlight-bg-color);
}
[data-copy-state="copy"] span:empty::before {
background-color: var(--gray-400);
}
[data-copy-state="copy"] span:empty:hover::before {
background-color: var(--prism-copy-btn-bg-hover-color);
}
[data-copy-state="copy-success"] span:empty::before {
background-color: var(--emerald-200);
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #5c98cd;
}
.token.punctuation {
color: #f8f8f2;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.constant,
.token.symbol,
.token.deleted {
color: #F05E5D;
}
.token.boolean,
.token.number {
color: #BC94F9;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #FCFCD6;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable {
color: #f8f8f2;
}
.token.atrule,
.token.attr-value,
.token.function,
.token.class-name {
color: #66D8EF;
}
.token.keyword {
color: #6EB26E;
}
.token.regex,
.token.important {
color: #F05E5D;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

View File

@ -0,0 +1,173 @@
/* PrismJS 1.29.0
https://prismjs.com/download.html#themes=prism-solarizedlight&languages=markup+css+clike+javascript */
/*
Solarized Color Schemes originally by Ethan Schoonover
http://ethanschoonover.com/solarized
Ported for PrismJS by Hector Matos
Website: https://krakendev.io
Twitter Handle: https://twitter.com/allonsykraken
Adapted for Lotus Docs by Colin Wilson
Website: https://colinwilson.uk
Twitter Handle: https://twitter.com/colinwilsonuk
*/
/*
SOLARIZED HEX
--------- -------
base03 #002b36
base02 #073642
base01 #586e75
base00 #657b83
base0 #839496
base1 #93a1a1
base2 #eee8d5
base3 #fdf6e3
yellow #b58900
orange #cb4b16
red #dc322f
magenta #d33682
violet #6c71c4
blue #268bd2
cyan #2aa198
green #859900
*/
:root {
--prism-code-color: #657b83;
--prism-code-bg: #fdf6e3;
--prism-code-scrollbar-thumb-color: var(--gray-400);
--prism-line-highlight-bg-color: #e9967a;
--prism-copy-btn-bg-hover-color: var(--gray-700);
}
[data-dark-mode] {
--prism-code-color: #dee2e6;
--prism-code-bg: var(--gray-900);
--prism-code-scrollbar-thumb-color: var(--gray-600);
--prism-line-highlight-bg-color: var(--gray-600);
--prism-copy-btn-bg-hover-color: var(--white);
}
code[class*="language-"],
pre[class*="language-"] {
color: var(--prism-code-color); /* base00 */
background: var(--prism-code-bg) !important;
}
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
background: #073642; /* base02 */
}
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
background: #073642; /* base02 */
}
/* Code blocks */
pre[class*="language-"] {
// padding: 1em;
// margin: .5em 0;
overflow: auto;
border-radius: 0 0 4px 4px;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background-color: #fdf6e3; /* base3 */
}
/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.line-highlight:before,
.line-highlight[data-end]:after {
background-color: var(--prism-line-highlight-bg-color);
}
[data-copy-state="copy"] span:empty::before {
background-color: var(--gray-500);
}
[data-copy-state="copy"] span:empty:hover::before {
background-color: var(--prism-copy-btn-bg-hover-color);
}
[data-copy-state="copy-success"] span:empty::before {
background-color: var(--emerald-400);
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #93a1a1; /* base1 */
}
.token.punctuation {
color: #586e75; /* base01 */
}
.token.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #268bd2; /* blue */
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.url,
.token.inserted {
color: #2aa198; /* cyan */
}
.token.entity {
color: #657b83; /* base00 */
background: #eee8d5; /* base2 */
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #859900; /* green */
}
.token.function,
.token.class-name {
color: #b58900; /* yellow */
}
.token.regex,
.token.important,
.token.variable {
color: #cb4b16; /* orange */
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

View File

@ -0,0 +1,209 @@
/* PrismJS 1.29.0
https://prismjs.com/download.html#themes=prism-twilight&languages=markup+css+clike+javascript */
/*
prism.js Twilight theme
Based (more or less) on the Twilight theme originally of Textmate fame.
@author Remy Bach
Adapted for Lotus Docs by Colin Wilson
Website: https://colinwilson.uk
Twitter Handle: https://twitter.com/colinwilsonuk
*/
:root {
--prism-code-color: var(--white);
--prism-code-bg: #141414;
--prism-code-scrollbar-thumb-color: var(--gray-400);
// --prism-line-highlight-bg-color: hsl(215, 15%, 59%); /* #8794A6 */
--prism-line-highlight-bg-color: var(--gray-600);
--prism-copy-btn-bg-hover-color: var(--white);
}
[data-dark-mode] {
--prism-code-color: #dee2e6;
--prism-code-bg: var(--gray-900);
--prism-code-scrollbar-thumb-color: var(--gray-600);
--prism-line-highlight-bg-color: var(--gray-600);
--prism-copy-btn-bg-hover-color: var(--white);
}
code[class*="language-"],
pre[class*="language-"] {
color: var(--prism-code-color);
background: var(--prism-code-bg) !important;
}
pre[class*="language-"],
:not(pre)>code[class*="language-"] {
background: hsl(0, 0%, 8%);
/* #141414 */
}
/* Code blocks */
pre[class*="language-"] {
// padding: 1em;
// margin: .5em 0;
// border: .3em solid hsl(0, 0%, 33%); /* #282A2B */
// box-shadow: 1px 1px .5em black inset;
overflow: auto;
border-radius: 0 0 4px 4px;
}
pre[class*="language-"]::-moz-selection {
/* Firefox */
background: hsl(200, 4%, 16%);
/* #282A2B */
}
pre[class*="language-"]::selection {
/* Safari */
background: hsl(200, 4%, 16%);
/* #282A2B */
}
/* Text Selection colour */
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: hsla(0, 0%, 93%, 0.15);
/* #EDEDED */
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: hsla(0, 0%, 93%, 0.15);
/* #EDEDED */
}
/* Inline code */
:not(pre)>code[class*="language-"] {
// border: .13em solid hsl(0, 0%, 33%); /* #545454 */
// box-shadow: 1px 1px .3em -.1em black inset;
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.line-highlight.line-highlight {
background: linear-gradient(to right, hsla(0, 0%, 33%, .1) 70%, hsla(0, 0%, 33%, 0));
/* #545454 */
border-bottom: 1px dashed hsl(0, 0%, 33%);
/* #545454 */
border-top: 1px dashed hsl(0, 0%, 33%);
/* #545454 */
z-index: 0;
}
.line-highlight:before,
.line-highlight[data-end]:after {
background-color: var(--prism-line-highlight-bg-color);
}
[data-copy-state="copy"] span:empty::before {
background-color: var(--gray-500);
}
[data-copy-state="copy"] span:empty:hover::before {
background-color: var(--prism-copy-btn-bg-hover-color);
}
[data-copy-state="copy-success"] span:empty::before {
background-color: var(--emerald-200);
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: hsl(0, 0%, 47%);
/* #777777 */
}
.token.punctuation {
opacity: .7;
}
.token.namespace {
opacity: .7;
}
.token.tag,
.token.boolean,
.token.number,
.token.deleted {
color: hsl(14, 58%, 55%);
/* #CF6A4C */
}
.token.keyword,
.token.property,
.token.selector,
.token.constant,
.token.symbol,
.token.builtin {
color: hsl(53, 89%, 79%);
/* #F9EE98 */
}
.token.attr-name,
.token.attr-value,
.token.string,
.token.char,
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable,
.token.inserted {
color: hsl(76, 21%, 52%);
/* #8F9D6A */
}
.token.atrule {
color: hsl(218, 22%, 55%);
/* #7587A6 */
}
.token.function,
.token.class-name {
color: var(--prism-code-color);
}
.token.regex,
.token.important {
color: hsl(42, 75%, 65%);
/* #E9C062 */
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
/* Markup */
.language-markup .token.tag,
.language-markup .token.attr-name,
.language-markup .token.punctuation {
color: hsl(33, 33%, 52%);
/* #AC885B */
}
/* Make the tokens sit above the line highlight so the colours don't look faded. */
.token {
position: relative;
z-index: 1;
}

View File

@ -0,0 +1,276 @@
// Docs main content
//
// _content.scss
//
:root {
--content-icon-color: var(--primary);
--content-icon-bg: var(--sidebar-icon-bg);
--content-icon-border: var(--sidebar-icon-bg);
--content-link-color: var(--primary);
--ordered-list-bg: var(--gray-300);
--ordered-list-color: var(--gray-800);
--blockquote-border-color: var(--gray-300);
--code-block-bg: #212d63;
--inline-code-bg: var(--gray-100);
--inline-code-border: 1px solid var(--gray-400);
}
[data-dark-mode] {
--content-icon-color: var(--primary-200);
--content-icon-bg: hsl(var(--primary-hsl), 0.15);
--content-icon-border: var(--primary-800);
--content-link-color: var(--primary-300);
--ordered-list-bg: var(--gray-700);
--ordered-list-color: var(--gray-200);
--blockquote-border-color: var(--primary-200);
--code-block-bg: var(--gray-900);
--inline-code-bg: var(--gray-800);
--inline-code-border: 1px solid var(--gray-600);
}
.docs-content {
order: 1;
}
// Links
.docs-content .main-content a {
font-weight: 600;
color: var(--content-link-color);
&:hover {
text-decoration: underline 2px var(--primary-200);
text-underline-offset: 2.5px !important;
transition: 0s !important;
}
// &.anchor i {
// transform: rotate(-45deg);
// }
code {
color: var(--content-link-color);
}
}
.docs-content .main-content {
#edit-this-page a,
#list-item a {
&:hover {
text-decoration: none !important;
}
}
}
.docs-content .main-content li {
color: var(--text-default);
}
.docs-content .main-content h1,
.docs-content .main-content h2,
.docs-content .main-content h3,
.docs-content .main-content h4,
.docs-content .main-content h5 {
font-weight: 700;
color: var(--body-color);
}
.docs-content .content-title {
font-weight: 700;
align-self: center;
}
i {
&.title-icon {
width: 44px;
height: 44px;
color: var(--content-icon-color);
background-color: var(--content-icon-bg);
display: inline-flex !important;
align-self: center;
align-items: center;
justify-content: center;
font-size: 24px;
// border: solid 1px var(--content-icon-border);
border-radius: 5px;
@media (max-width: 768px) {
align-self: auto;
}
}
}
.docs-content p {
&.lead {
color: var(--text-muted);
font-weight: 400;
}
}
@media (max-width: 1199px) {
.docs-content {
padding-left: calc(var(--bs-gutter-x) * 1.05);
padding-right: calc(var(--bs-gutter-x) * 1.05);
h2 {
margin-bottom: 1rem;
}
p {
&.lead {
font-size: 1rem;
}
}
}
}
// Images
.docs-content .main-content {
img,
svg {
max-width: 100%;
height: auto;
}
// External link icon
a svg {
vertical-align: middle;
padding-bottom: 0.25rem;
margin-left: 3px;
}
}
// Unordered List Styling
.docs-content .main-content ul {
padding-left: 0;
> li {
position: relative;
padding-left: 32px;
// margin-bottom: 5px;
}
> li::before {
content: "";
position: absolute;
width: 6px;
height: 6px;
left: 8px;
top: 10px;
border-radius: 30%;
background: var(--gray-500);
}
}
// Ordered List Styling
.docs-content .main-content ol {
counter-reset: listitem;
> li {
counter-increment: listitem;
position: relative;
padding-left: 32px;
}
> li::before {
content: counter(listitem);
background: var(--ordered-list-bg);
color: var(--ordered-list-color);
font-size: 12px;
font-weight: 500;
line-height: 10px;
text-align: center;
padding: 5px 0;
width: 20px;
height: 20px;
border-radius: 5px;
position: absolute;
left: 0;
top: 3px;
}
}
// Universal List Styling
.docs-content .main-content ol,
.docs-content .main-content ul {
list-style: none;
line-height: 26px;
}
// Blockquote
.docs-content .main-content blockquote {
margin-bottom: 1rem;
font-size: 1.25rem;
border-left: 3px solid var(--blockquote-border-color);
padding-left: 1rem;
}
// Code
.docs-content .main-content div.highlight {
margin: 16px 0;
padding: $code-block-padding-top;
background: var(--code-block-bg);
border-radius: 4px;
pre {
padding: 0;
}
}
.docs-content .main-content code {
font-size: inherit;
// color: var(--text-default);
font-weight: 400;
padding: 1px 2px;
background: var(--inline-code-bg);
border: var(--inline-code-border);
border-radius: 4px;
}
.docs-content .main-content pre {
margin: 0;
// background-color: var(--code-block-bg) !important;
border-radius: 4px;
padding: $code-block-padding-top;
code {
// color: #f5fbff;
font-size: 0.8rem;
display: block;
// background: var(--code-block-bg);
border: none;
overflow-x: auto;
line-height: 1.5;
padding: 0 2.5rem 1.25rem 2.5rem;
tab-size: 4;
scrollbar-width: thin;
//scrollbar-color: transparent transparent;
}
}
// bold code
.docs-content .main-content strong {
code {
font-weight: 700;
}
}
// Chroma Highlighter CSS
.docs-content .main-content td pre {
code {
overflow-x: unset !important;
}
}
.docs-content .main-content .alert ul {
font-size: var(--font-size-sm);
}
// <figcaption>
.docs-content figcaption {
font-size: small;
}

View File

@ -0,0 +1,39 @@
//
// doc-nav.scss
//
:root {
--doc-nav-title-link-color: var(--primary);
}
[data-dark-mode] {
--doc-nav-title-link-color: var(--primary-300);
}
#doc-nav {
.card-title {
color: var(--doc-nav-title-link-color);
}
.card-text {
color: var(--text-muted);
}
}
@media (max-width: 425px) {
.doc-next {
order: 2;
}
.doc-prev {
order: 1;
}
}
.doc-hr {
border-top: 1px solid var(--gray-500);
margin-top: 2rem;
margin-bottom: 0px;
padding-top: 1rem;
}

View File

@ -0,0 +1,32 @@
//
// _footer.scss
//
footer {
position: relative;
color: var(--text-muted);
background: var(--body-bg);
height: 58px;
.text-foot {
color: var(--gray-500);
}
.footer-head {
font-size: 18px !important;
letter-spacing: 1px;
font-weight: 500;
}
a {
color: var(--content-link-color);
}
a:hover {
color: var(--content-link-color);
text-decoration: underline 1.5px var(--primary-200);
text-underline-offset: 3px !important;
transition: 0s !important;
}
}
.footnote-backref {
font-size: 1.1rem;
vertical-align: middle;
margin-left: 0.25rem;
}

View File

@ -0,0 +1,44 @@
html {
scroll-padding-top: 80px;
background-color: var(--body-bg);
}
body {
font-family: $font-family-secondary;
overflow-x: hidden !important;
font-size: $font-size-base;
color: var(--body-color);
background-color: var(--body-bg);
}
@media (max-width: 1199px) {
html {
scroll-padding-top: 120px;
}
body {
font-size: 0.9rem;
}
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
font-family: $font-family-base;
line-height: 1.4;
font-weight: 600;
}
::selection {
background: var(--primary);
color: var(--white);
opacity: 0.9;
}
a {
text-decoration: none;
transition: all 0.5s ease;
color: var(--primary);
&:hover {
color: var(--primary-800);
}
}
p {
line-height: 1.6;
}
img {
height: auto;
}

View File

@ -0,0 +1,443 @@
//
// sidebar.scss
//
.page-wrapper {
height: 100vh;
.sidebar-wrapper {
// box-shadow: $shadow;
// border-right: 1px solid var(--sidebar-border-color);
transition: all 0.3s ease;
width: 300px;
height: 100%;
max-height: 100%;
position: fixed;
top: 0;
left: -300px;
z-index: 999;
@media (min-width: 1025px) {
z-index: 1000;
}
@media (max-width: 1024px) {
left: 0;
}
@media (max-width: 425px) {
width: 260px;
}
ul {
list-style-type: none;
padding: 0;
margin: 0;
}
a {
text-decoration: none;
}
.sidebar-content {
background: var(--sidebar-bg);
max-height: calc(100% - 30px);
height: calc(100% - 30px);
overflow: scroll;
overflow-x: hidden;
overflow-y: overlay;
position: relative;
&.desktop {
overflow-y: hidden;
}
border-right: 1px solid var(--sidebar-border-color);
scrollbar-width: thin;
scrollbar-color: var(--sidebar-bg) var(--sidebar-bg);
// &::-webkit-scrollbar {
// display: none;
// }
}
.sidebar-content:hover {
scrollbar-color: var(--sidebar-scrollbar-thumb-color) var(--sidebar-bg);
}
.sidebar-content::-webkit-scrollbar {
width: 5px;
height: 8px;
}
.sidebar-content::-webkit-scrollbar-track {
background: var(--sidebar-bg);
display: none;
}
.sidebar-content:hover::-webkit-scrollbar-thumb {
background: var(--sidebar-scrollbar-thumb-color);
}
.sidebar-brand {
background: var(--sidebar-bg);
padding: 10px 20px;
border-bottom: 1px solid var(--sidebar-border-color);
display: flex;
align-items: center;
height: 72px;
> a {
text-transform: uppercase;
font-weight: bold;
flex-grow: 1;
transition: all 0.3s ease;
&:focus {
outline: none;
}
svg {
height: 26px;
}
}
#close-sidebar {
cursor: pointer;
font-size: 24px;
transition: all 0.3s ease;
}
}
.sidebar-header {
padding: 20px;
overflow: hidden;
}
.sidebar-menu {
padding: 16px 0 16px 10px;
.header-menu {
span {
font-weight: bold;
font-size: 14px;
padding: 15px 20px 5px 20px;
display: inline-block;
}
}
li {
a,button {
display: inline-block;
color: var(--sidebar-text-color);
width: 100%;
text-decoration: none;
position: relative;
padding: 4px 35px 5px 10px;
margin: 4px 0 4px 0;
border: none;
letter-spacing: normal;
transition: all 0.3s ease;
display: flex;
align-items: center;
text-align: left;
@media (max-width: 1024px) {
padding: 6px 24px 6px 24px;
}
@media screen and (max-width: 425px) {
padding: 6px 26px 6px 12px;
}
&:hover > i::before {
display: inline-block;
}
&:focus {
outline: none;
}
i {
min-width: 36px;
height: 36px;
background-color: var(--sidebar-icon-bg);
display: inline-flex !important;
align-items: center;
justify-content: center;
font-size: 20px;
text-align: center;
border-radius: 4px;
transition: all 0.3s ease;
}
&.sidebar-nested-link {
align-items: normal;
}
}
a:hover,
&.sidebar-dropdown button:hover {
background-color: var(--sidebar-dropdown-hover-bg);
border-radius: 4px 0 0 4px;
margin: 4px 0 4px 0;
}
&:hover,
&.active {
i {
background-color: var(--sidebar-menu-active-bg);
}
}
&.no-icon {
> a:before {
// content: "\e931" !important;
content: none !important;
}
> button {
margin: 1px 0 1px 0;
&:hover {
margin: 1px 0 1px 0;
}
}
}
}
.sidebar-root-link {
font-size: 1rem;
}
.sidebar-dropdown {
&.no-icon {
> button:after {
top: inherit !important;
}
}
> button:after {
content: "\e5cc" !important;
color: var(--sidebar-text-color);
font-family: 'Material Symbols Outlined';
font-weight: 500;
font-size: 22px;
position: absolute;
right: 15px;
top: 7px;
transition: all 0.3s ease;
}
&.nested {
&.no-icon {
> button:after {
top: inherit !important;
}
> button:before {
// content: "\e5da" !important;
content: none !important;
}
}
button {
font-size: 14px;
&:before {
content: var(--sidebar-directory-icon);
color: var(--sidebar-text-color);
font-family: 'Material Symbols Outlined';
margin-right: 4px;
font-size: 14px;
transition: all 0.3s ease;
}
&:after {
top: inherit;
}
}
}
&.active {
> button:after {
transform: rotate(90deg);
right: 17px;
}
}
// &:hover,
&.current {
> button:after {
color: var(--sidebar-primary);
}
}
.sidebar-submenu {
display: none;
ul {
padding: 3px 0;
li {
padding-left: 15px;
font-size: 14px;
a {
font-weight: 400;
&:before {
content: var(--sidebar-file-icon);
color: var(--sidebar-text-color);
font-family: 'Material Symbols Outlined';
margin-right: 4px;
font-size: 14px;
transition: all 0.3s ease;
}
.badge,
.label {
float: right;
margin-top: 0px;
}
}
&.no-icon {
padding-left: 10px;
}
}
}
}
}
ul {
li {
a {
span {
&.label,
&.badge {
float: right;
margin-top: 8px;
margin-left: 5px;
}
}
}
}
}
}
.sidebar-header,
.sidebar-menu {
// border-top: 1px solid var(--sidebar-border-color);
// border-right: 1px solid var(--sidebar-border-color);
}
.sidebar-header .user-info .user-role,
.sidebar-header .user-info .user-status,
.sidebar-brand > a,
.sidebar-menu li a {
color: var(--sidebar-text-color);
font-weight: 600;
}
// .sidebar-menu li:hover > a,
.sidebar-menu li.current > a,
.sidebar-menu li:active > a,
.sidebar-menu li:active > a:before,
// .sidebar-menu li:hover > a:before,
.sidebar-menu li.current > a:before,
.sidebar-menu li.current > button:before,
// .sidebar-menu .sidebar-dropdown.active > a,
.sidebar-header .user-info,
.sidebar-brand > a:hover {
color: var(--sidebar-primary) !important;
}
.sidebar-menu li.current > a {
font-weight: 600 !important;
background-color: var(--sidebar-menu-active-bg);
border-right: 3px solid var(--primary);
border-radius: 4px 0 0 4px;
margin: 4px 0 4px 0;
}
// .sidebar-menu li:hover > button,
.sidebar-menu .sidebar-dropdown.current > button {
color: var(--sidebar-primary) !important;
}
.sidebar-brand {
.sidebar-colored {
display: none;
}
.logo-dark-mode {
display: none;
}
.logo-light-mode {
display: inline-block;
}
}
}
.page-content {
display: inline-block;
width: 100%;
padding-left: 0px;
// overflow-x: hidden;
transition: all 0.3s ease;
.top-header {
position: fixed;
right: 0;
top: 0;
z-index: 999;
max-height: 70px;
left: 0px;
transition: all 0.3s;
.header-bar {
background: var(--top-header-bg);
backdrop-filter: saturate(180%) blur(5px);
height: 72px;
// box-shadow: $shadow;
border-bottom: 1px solid var(--sidebar-border-color);
position: relative;
justify-content: space-between;
align-items: center;
padding: 24px;
@media (max-width: 425px) {
padding: 24px 12px;
}
.logo-icon {
display: none;
@media (max-width: 1024px) {
display: block;
}
.small {
display: none;
@media (max-width: 767px) {
display: block;
}
svg {
height: 22px;
}
}
.big {
display: none;
.logo-dark-mode {
display: none;
}
.logo-light-mode {
display: inline-block;
}
@media (min-width: 768px) and (max-width: 1024px) {
display: block;
}
}
}
}
}
.layout-spacing {
padding: 94px 14px 24px !important;
min-height: calc(100vh - 66px) !important;
position: relative;
@media (max-width: 425px) {
padding: 84px 0 24px !important;
}
}
}
&.toggled {
@media screen and (min-width: 1025px) {
.page-content {
padding-left: 300px;
}
}
.top-header {
left: 300px;
@media (max-width: 1024px) {
left: 0;
}
}
.sidebar-wrapper {
left: 0px;
@media (max-width: 1024px) {
left: -300px;
}
}
}
}
.sidebar-footer {
position: absolute;
background: var(--sidebar-bg);
width: 100%;
bottom: 0;
left: 0;
right: 0;
padding: 9px 24px 9px 20px !important;
border-right: 1px solid var(--sidebar-border-color);
height: 60px;
@media(max-width: 425px) {
padding: 9px 12px !important;
}
}

View File

@ -0,0 +1,164 @@
//
// toc-layouts.scss
//
:root {
--toc-link-hover-bg-color: var(--gray-300);
--toc-mobile-btn-bg-color: var(--gray-100);
--toc-mobile-menu-bg-color: var(--white);
--toc-mobile-link-hover-color: var(--primary);
}
[data-dark-mode] {
--toc-link-hover-bg-color: var(--gray-700);
--toc-mobile-btn-bg-color: var(--gray-900);
--toc-mobile-menu-bg-color: var(--body-bg);
--toc-mobile-link-hover-color: var(--primary-300);
}
.docs-toc-mobile {
position: sticky;
// top: 71px; // important (must be set)
top: 85px; // important (must be set)
padding-left: calc(var(--bs-gutter-x) * 1.05);
padding-right: calc(var(--bs-gutter-x) * 1.05);
z-index: 20;
// &.toc-pinned {
// padding: 0;
// .dropdown-toggle {
// border-left: 0;
// border-right: 0;
// border-top: 0;
// border-radius: 0;
// }
// }
a {
color: var(--text-default);
}
a:hover {
color: var(--toc-mobile-link-hover-color);
}
.dropdown-toggle {
margin-bottom: 16px;
background: var(--toc-mobile-btn-bg-color);
color: var(--text-default);
padding: 4px;
border: 1px solid var(--alert-border-color);
border-radius: 4px;
width: calc(100% + 2px);
white-space: normal;
}
.dropdown-menu {
transform: translateY(-16.5px) !important;
background: var(--toc-mobile-menu-bg-color);
inset: -1px auto none (var(--bs-gutter-x)) !important;
border: 1px solid var(--alert-border-color);
border-top: none;
border-radius: 0 0 4px 4px;
width: calc(100% - (var(--bs-gutter-x)*2));
max-height: 40vh;
overflow-y: auto;
scrollbar-width: thin;
li {
list-style: none;
padding: 0 0 4px 0;
ul {
padding-left: 1rem;
}
}
}
}
.docs-toc {
position: -webkit-sticky;
position: sticky;
top: 6rem;
height: calc(100vh - 11.1rem);
overflow-y: auto;
order: 2;
scrollbar-width: thin;
scrollbar-color: var(--simplebar-color) rgba(var(--bs-light-rgb), var(--bs-bg-opacity));
// visually-hidden
@media (max-width: 1199px) {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
}
.docs-toc::-webkit-scrollbar {
width: 4px;
height: 18px;
}
.docs-toc::-webkit-scrollbar-track {
background: transparent;
}
.docs-toc::-webkit-scrollbar-thumb {
background-color: var(--simplebar-color);
border-radius: 4px;
border: transparent;
}
#TableOfContents ul,
#toc ul {
padding-left: 0;
margin-bottom: 0;
list-style: none;
li {
padding-bottom: 5px;
ul {
li {
border-top: none;
padding-left: 1rem;
margin-top: 0.125rem;
padding-top: 0.125rem;
padding-bottom: 0;
}
}
}
}
#TableOfContents a,
#toc a {
display: block;
color: var(--text-default);
padding: 0 10px 0 10px;
padding-block: 0px 0.05rem;
margin: 0 0 0 -10px;
border-radius: 4px;
width: fit-content;
font-size: 15px;
letter-spacing: 0.02em;
transition: all 0.1s;
-webkit-transition: all 0.1s;
&:hover {
background-color: var(--toc-link-hover-bg-color);
transition: all 0.1s;
-webkit-transition: all 0.2s;
}
}
#toc a.active {
color: var(--white);
background-color: var(--primary);
// font-weight: 600;
opacity: 0.9;
}

View File

@ -0,0 +1,2 @@
// Katex
@import "custom/plugins/katex/katex";

View File

@ -0,0 +1,74 @@
/* Template Name: Lotus Docs
Author: Colin Wilson
E-mail: colin@aigis.uk
Created: October 2022
Version: 1.2.0
File Description: Main CSS file for Lotus Docs
*/
// Custom Font Variables
$font-family-secondary: {{ .Site.Params.secondary_font | default "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Ubuntu'" }};
$font-family-sans-serif: {{ .Site.Params.sans_serif_font | default "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Ubuntu'" }};
$font-family-monospace: {{ .Site.Params.mono_font | default "SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace" }};
// Code Padding Variables
$code-block-padding-top: {{ if eq .Site.Params.docs.prism true -}}0{{ else }}1.25rem 0 0 0{{ end }};
// Icon Fonts
@import "custom/plugins/icons/google-material";
// Core files
@import "../../scss/bootstrap/functions";
@import "../../scss/bootstrap/variables";
@import {{ printf "'%s%s'" "custom/colors/" (.Site.Params.docs.themeColor | default "blue") }}; // current theme color
@import "../../scss/bootstrap/mixins";
@import "../../scss/bootstrap/bootstrap";
@import "variables";
{{ if and (.Site.Params.docsearch.appID) (.Site.Params.docsearch.apiKey) -}}
@import "custom/plugins/docsearch/style";
{{ end }}
// Structure
@import "custom/structure/general";
@import "custom/structure/content";
@import "custom/structure/sidebar";
@import "custom/structure/doc-nav";
@import "custom/structure/toc";
@import "custom/structure/footer";
// Components
@import "custom/components/buttons";
@import "custom/components/breadcrumb";
@import "custom/components/badge";
@import "custom/components/backgrounds";
@import "custom/components/dropdown";
@import "custom/components/alerts";
@import "custom/components/card";
@import "custom/components/forms";
@import "custom/components/table";
@import "custom/components/tabs";
@import "custom/components/tooltip";
// Pages
@import "custom/pages/features";
@import "custom/pages/helper";
// Plugins
// Prism / Chroma
{{- if eq .Site.Params.docs.prism true }}
@import {{ printf "'%s%s'" "custom/plugins/prism/themes/" (.Site.Params.docs.prismTheme | default "lotusdocs") }}; // current prism theme
@import "custom/plugins/prism/prism";
{{- else }}
@import "custom/plugins/chroma/default";
{{- end -}}
// FlexSearch
{{ if or (not (isset .Site.Params.flexsearch "enabled")) (eq .Site.Params.flexsearch.enabled true) -}}@import "custom/plugins/flexsearch/flexsearch";{{ end }}
// Feedback Widget
{{ if .Site.Params.feedback.enabled | default false -}}@import "custom/plugins/feedback/feedback";{{ end}}
// Mermaid
@import "custom/plugins/mermaid/mermaid";

BIN
themes/lotusdocs/assets/images/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M620-520q25 0 42.5-17.5T680-580q0-25-17.5-42.5T620-640q-25 0-42.5 17.5T560-580q0 25 17.5 42.5T620-520Zm-280 0q25 0 42.5-17.5T400-580q0-25-17.5-42.5T340-640q-25 0-42.5 17.5T280-580q0 25 17.5 42.5T340-520Zm140 100q-68 0-123.5 38.5T276-280h66q22-37 58.5-58.5T480-360q43 0 79.5 21.5T618-280h66q-25-63-80.5-101.5T480-420Zm0 340q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Z" fill="currentColor"/></svg>

After

Width:  |  Height:  |  Size: 727 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M620-520q25 0 42.5-17.5T680-580q0-25-17.5-42.5T620-640q-25 0-42.5 17.5T560-580q0 25 17.5 42.5T620-520Zm-280 0q25 0 42.5-17.5T400-580q0-25-17.5-42.5T340-640q-25 0-42.5 17.5T280-580q0 25 17.5 42.5T340-520Zm140 260q68 0 123.5-38.5T684-400h-66q-22 37-58.5 58.5T480-320q-43 0-79.5-21.5T342-400h-66q25 63 80.5 101.5T480-260Zm0 180q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Z" fill="currentColor"/></svg>

After

Width:  |  Height:  |  Size: 729 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M480-420q-68 0-123.5 38.5T276-280h408q-25-63-80.5-101.5T480-420Zm-168-60 44-42 42 42 42-42-42-42 42-44-42-42-42 42-44-42-42 42 42 44-42 42 42 42Zm250 0 42-42 44 42 42-42-42-42 42-44-42-42-44 42-42-42-42 42 42 44-42 42 42 42ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Z" fill="currentColor"/></svg>

After

Width:  |  Height:  |  Size: 636 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M480-260q68 0 123.5-38.5T684-400H276q25 63 80.5 101.5T480-260ZM312-520l44-42 42 42 42-42-84-86-86 86 42 42Zm250 0 42-42 44 42 42-42-86-86-84 86 42 42ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Z" fill="currentColor"/></svg>

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 250 250"><path d="m143,39.5c-18,0-18,18-18,18,0,0,0-18-18-18H22c-2.76,0-5,2.24-5,5v143c0,2.76,2.24,5,5,5h76c7.2,0,8.64,11.52,8.93,16.13.07,1.05.95,1.87,2,1.87h32.14c1.06,0,1.94-.82,2-1.87.29-4.61,1.73-16.13,8.93-16.13h76c2.76,0,5-2.24,5-5V44.5c0-2.76-2.24-5-5-5h-85Zm63,123.5c0,1.38-1.12,2.5-2.5,2.5h-60.5c-18,0-18,18-18,18,0,0,0-18-18-18h-60.5c-1.38,0-2.5-1.12-2.5-2.5v-94c0-1.38,1.12-2.5,2.5-2.5h51.5c7.2,0,8.64,11.52,8.93,16.13.07,1.05.95,1.87,2,1.87h32.14c1.06,0,1.94-.82,2-1.87.29-4.61,1.73-16.13,8.93-16.13h51.5c1.38,0,2.5,1.12,2.5,2.5v94Z" style="fill:#06f;"/></svg>

After

Width:  |  Height:  |  Size: 677 B

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 250 250"><path d="m143,39.5c-18,0-18,18-18,18,0,0,0-18-18-18H22c-2.76,0-5,2.24-5,5v143c0,2.76,2.24,5,5,5h76c7.2,0,8.64,11.52,8.93,16.13.07,1.05.95,1.87,2,1.87h32.14c1.06,0,1.94-.82,2-1.87.29-4.61,1.73-16.13,8.93-16.13h76c2.76,0,5-2.24,5-5V44.5c0-2.76-2.24-5-5-5h-85Zm63,123.5c0,1.38-1.12,2.5-2.5,2.5h-60.5c-18,0-18,18-18,18,0,0,0-18-18-18h-60.5c-1.38,0-2.5-1.12-2.5-2.5v-94c0-1.38,1.12-2.5,2.5-2.5h51.5c7.2,0,8.64,11.52,8.93,16.13.07,1.05.95,1.87,2,1.87h32.14c1.06,0,1.94-.82,2-1.87.29-4.61,1.73-16.13,8.93-16.13h51.5c1.38,0,2.5,1.12,2.5,2.5v94Z" style="fill:#06f;"/></svg>

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -0,0 +1 @@
<svg width="20px" height="20px" viewBox="0 -1.5 27 27" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="m.865 0c-.003 0-.007 0-.011 0-.468 0-.848.376-.854.843v.001.01c0 .048.004.095.012.141l-.001-.005 3.63 22.041c.096.55.567.964 1.136.97h17.415.009c.425 0 .778-.308.847-.714l.001-.005 3.638-22.281c.007-.041.011-.088.011-.137 0-.423-.308-.775-.712-.843l-.005-.001c-.039-.007-.084-.011-.129-.011-.007 0-.013 0-.02 0h.001zm15.287 15.926h-5.562l-1.502-7.858h8.411z"/></svg>

After

Width:  |  Height:  |  Size: 485 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><title>Bluesky</title><path d="M5.54 3.31c2.61 1.96 5.43 5.94 6.46 8.08 1.03-2.14 3.84-6.11 6.46-8.08 1.89-1.42 4.94-2.51 4.94.97 0 .7-.4 5.85-.63 6.69-.81 2.91-3.78 3.65-6.42 3.2 4.61.78 5.78 3.38 3.25 5.98-4.81 4.94-6.92-1.24-7.45-2.82-.1-.29-.15-.43-.15-.31 0-.12-.05.02-.15.31-.54 1.58-2.64 7.76-7.45 2.82-2.53-2.6-1.36-5.2 3.25-5.98-2.64.45-5.6-.29-6.42-3.2C1 10.13.6 4.98.6 4.28.6.8 3.66 1.9 5.54 3.31z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="2"/></svg>

After

Width:  |  Height:  |  Size: 575 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>GitHub</title><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>

After

Width:  |  Height:  |  Size: 517 B

View File

@ -0,0 +1,3 @@
<svg width="20px" height="20px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="currentColor">
<path d="M16 0.396c-8.839 0-16 7.167-16 16 0 7.073 4.584 13.068 10.937 15.183 0.803 0.151 1.093-0.344 1.093-0.772 0-0.38-0.009-1.385-0.015-2.719-4.453 0.964-5.391-2.151-5.391-2.151-0.729-1.844-1.781-2.339-1.781-2.339-1.448-0.989 0.115-0.968 0.115-0.968 1.604 0.109 2.448 1.645 2.448 1.645 1.427 2.448 3.744 1.74 4.661 1.328 0.14-1.031 0.557-1.74 1.011-2.135-3.552-0.401-7.287-1.776-7.287-7.907 0-1.751 0.62-3.177 1.645-4.297-0.177-0.401-0.719-2.031 0.141-4.235 0 0 1.339-0.427 4.4 1.641 1.281-0.355 2.641-0.532 4-0.541 1.36 0.009 2.719 0.187 4 0.541 3.043-2.068 4.381-1.641 4.381-1.641 0.859 2.204 0.317 3.833 0.161 4.235 1.015 1.12 1.635 2.547 1.635 4.297 0 6.145-3.74 7.5-7.296 7.891 0.556 0.479 1.077 1.464 1.077 2.959 0 2.14-0.020 3.864-0.020 4.385 0 0.416 0.28 0.916 1.104 0.755 6.4-2.093 10.979-8.093 10.979-15.156 0-8.833-7.161-16-16-16z"/>
</svg>

After

Width:  |  Height:  |  Size: 965 B

View File

@ -0,0 +1 @@
<svg width="20px" height="20px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-gitlab"><path d="M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z"></path></svg>

After

Width:  |  Height:  |  Size: 494 B

Some files were not shown because too many files have changed in this diff Show More