From dcf5e64456841221a8d310fd1a5bee42404ba93c Mon Sep 17 00:00:00 2001 From: Anton Berezin Date: Tue, 12 Nov 2024 20:30:05 +0100 Subject: [PATCH] feat: reworked ToC according to new design (#3841) * feat: implemented new button states * feat: reworked ToC appearance * fix: moved images to assets * fix: fix toc interactivity * fix: fixed problem with hover on touch screens * fix: open toc no mobile * fix scripts loading in safari * fix: fixed overlap of dropdown with toc on desktop * fix: fixed closing toc on mobile * fix: versions dropdown position * fix: version selector position --- .../nav-icons/abstract-class-kotlin.svg | 0 .../_assets}/nav-icons/abstract-class.svg | 0 .../_assets}/nav-icons/annotation-kotlin.svg | 0 .../ui-kit/_assets}/nav-icons/annotation.svg | 0 .../_assets}/nav-icons/class-kotlin.svg | 0 .../main/ui-kit/_assets}/nav-icons/class.svg | 0 .../ui-kit/_assets}/nav-icons/enum-kotlin.svg | 0 .../main/ui-kit/_assets}/nav-icons/enum.svg | 0 .../_assets}/nav-icons/exception-class.svg | 0 .../ui-kit/_assets}/nav-icons/field-value.svg | 0 .../_assets}/nav-icons/field-variable.svg | 0 .../ui-kit/_assets}/nav-icons/function.svg | 0 .../_assets}/nav-icons/interface-kotlin.svg | 0 .../ui-kit/_assets}/nav-icons/interface.svg | 0 .../main/ui-kit/_assets}/nav-icons/object.svg | 0 .../_assets}/nav-icons/typealias-kotlin.svg | 0 .../src/main/ui-kit/_tokens/colors.scss | 3 +- .../src/main/ui-kit/button/styles.scss | 8 +- .../src/main/ui-kit/dropdown/index.ts | 16 +- .../src/main/ui-kit/dropdown/styles.scss | 45 +- .../src/main/ui-kit/global.scss | 2 +- .../src/main/ui-kit/icon/styles.scss | 6 + .../src/main/ui-kit/index.ts | 2 + .../main/ui-kit/library-version/styles.scss | 6 + .../src/main/ui-kit/navbar-button/index.ts | 30 + .../src/main/ui-kit/navbar-button/styles.scss | 10 +- .../src/main/ui-kit/platform-tag/styles.scss | 11 +- .../src/main/ui-kit/toc-tree/index.ts | 4 + .../src/main/ui-kit/toc-tree/styles.scss | 290 +++++++++ .../base/renderers/html/NavigationPage.kt | 32 +- .../base/renderers/html/htmlPreprocessors.kt | 47 +- .../DefaultTemplateModelFactory.kt | 2 +- .../resources/dokka/images/arrow_down.svg | 3 - .../main/resources/dokka/images/burger.svg | 5 - .../main/resources/dokka/images/homepage.svg | 3 - .../resources/dokka/images/theme-toggle.svg | 3 - .../dokka/scripts/navigation-loader.js | 32 +- .../dokka/scripts/platform-content-handler.js | 16 - .../src/main/resources/dokka/styles/style.css | 229 +------ .../main/resources/dokka/templates/base.ftl | 18 +- .../dokka/templates/includes/header.ftl | 4 +- .../ui-kit/assets/abstract-class-kotlin.svg | 26 + .../dokka/ui-kit/assets/abstract-class.svg | 22 + .../dokka/ui-kit/assets/annotation-kotlin.svg | 13 + .../dokka/ui-kit/assets/annotation.svg | 9 + .../dokka/ui-kit/assets/class-kotlin.svg | 13 + .../resources/dokka/ui-kit/assets/class.svg | 9 + .../dokka/ui-kit/assets/enum-kotlin.svg | 13 + .../resources/dokka/ui-kit/assets/enum.svg | 9 + .../dokka/ui-kit/assets/exception-class.svg | 9 + .../dokka/ui-kit/assets/field-value.svg | 10 + .../dokka/ui-kit/assets/field-variable.svg | 10 + .../dokka/ui-kit/assets/function.svg | 9 + .../dokka/ui-kit/assets/interface-kotlin.svg | 13 + .../dokka/ui-kit/assets/interface.svg | 9 + .../resources/dokka/ui-kit/assets/object.svg | 13 + .../dokka/ui-kit/assets/typealias-kotlin.svg | 13 + .../main/resources/dokka/ui-kit/ui-kit.css | 577 +++++++++++++++++- .../resources/dokka/ui-kit/ui-kit.min.css | 29 +- .../main/resources/dokka/ui-kit/ui-kit.min.js | 3 +- .../versioning/VersionsNavigationCreator.kt | 2 +- .../resources/dokka/styles/multimodule.css | 6 +- 62 files changed, 1268 insertions(+), 376 deletions(-) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/abstract-class-kotlin.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/abstract-class.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/annotation-kotlin.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/annotation.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/class-kotlin.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/class.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/enum-kotlin.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/enum.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/exception-class.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/field-value.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/field-variable.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/function.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/interface-kotlin.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/interface.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/object.svg (100%) rename dokka-subprojects/{plugin-base/src/main/resources/dokka/images => plugin-base-frontend/src/main/ui-kit/_assets}/nav-icons/typealias-kotlin.svg (100%) create mode 100644 dokka-subprojects/plugin-base-frontend/src/main/ui-kit/toc-tree/index.ts create mode 100644 dokka-subprojects/plugin-base-frontend/src/main/ui-kit/toc-tree/styles.scss delete mode 100755 dokka-subprojects/plugin-base/src/main/resources/dokka/images/arrow_down.svg delete mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/images/burger.svg delete mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/images/homepage.svg delete mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/images/theme-toggle.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/abstract-class-kotlin.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/abstract-class.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/annotation-kotlin.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/annotation.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/class-kotlin.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/class.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/enum-kotlin.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/enum.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/exception-class.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/field-value.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/field-variable.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/function.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/interface-kotlin.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/interface.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/object.svg create mode 100644 dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/typealias-kotlin.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/abstract-class-kotlin.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/abstract-class-kotlin.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/abstract-class.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/abstract-class.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/abstract-class.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/abstract-class.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/annotation-kotlin.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/annotation-kotlin.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/annotation.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/annotation.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/annotation.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/annotation.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/class-kotlin.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/class-kotlin.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/class-kotlin.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/class-kotlin.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/class.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/class.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/class.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/class.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/enum-kotlin.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/enum-kotlin.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/enum.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/enum.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/enum.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/enum.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/exception-class.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/exception-class.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/exception-class.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/exception-class.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/field-value.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/field-value.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/field-value.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/field-value.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/field-variable.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/field-variable.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/field-variable.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/field-variable.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/function.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/function.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/function.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/function.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/interface-kotlin.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/interface-kotlin.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/interface.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/interface.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/interface.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/interface.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/object.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/object.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/object.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/object.svg diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/typealias-kotlin.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/typealias-kotlin.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/nav-icons/typealias-kotlin.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/nav-icons/typealias-kotlin.svg diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_tokens/colors.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_tokens/colors.scss index 21bfb46dac..9528eca734 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_tokens/colors.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_tokens/colors.scss @@ -5,7 +5,7 @@ :root { // Interface --color-key-blue: rgb(48, 127, 255); //#307FFF; - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -21,6 +21,7 @@ // Generic monochrome --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/button/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/button/styles.scss index d965af0794..f62a05de47 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/button/styles.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/button/styles.scss @@ -29,8 +29,10 @@ padding: var(--size-s2); } - &:hover { - background-color: var(--color-b08); + @media (hover: hover) { + &:hover { + background-color: var(--color-b08); + } } &:active { @@ -70,6 +72,8 @@ &_dropdown { padding: var(--size-s2); + font: var(--font-text-s); + &::after { display: block; diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/dropdown/index.ts b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/dropdown/index.ts index 7bd7b2e860..920c389f8d 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/dropdown/index.ts +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/dropdown/index.ts @@ -14,13 +14,13 @@ function initDropdowns(): void { const dropdowns = document.querySelectorAll(DROPDOWN); dropdowns.forEach((dropdown: Element) => { dropdown.querySelectorAll(DROPDOWN_TOGGLE)?.forEach((button: Element) => { - button.addEventListener('click', (event) => onToggleDropdown(event, dropdown)); + button.addEventListener('click', () => onToggleDropdown(dropdown)); }); addKeyboardNavigation(dropdown as HTMLElement); }); } -function onToggleDropdown(_: Event, dropdown: Element): void { +export function onToggleDropdown(dropdown: Element): void { const buttons = dropdown.querySelectorAll(DROPDOWN_TOGGLE); buttons?.forEach(toggleDropdownButton); const list = dropdown.querySelector(DROPDOWN_LIST); @@ -40,10 +40,14 @@ function toggleDropdownList(list: Element | null): void { function handleOutsideClick(event: MouseEvent): void { const target = event.target as HTMLElement; if (!hasAncestorWithClass(target, 'dropdown') || target.className === 'dropdown--overlay') { - const dropdowns = document.querySelectorAll('.button_dropdown'); + const dropdowns = document.querySelectorAll(DROPDOWN); dropdowns.forEach((dropdown) => { - dropdown.classList.remove('button_dropdown_active'); - dropdown.parentNode?.querySelector('.dropdown--list')?.classList.remove('dropdown--list_expanded'); + dropdown.querySelectorAll(DROPDOWN_TOGGLE)?.forEach((button: Element) => { + button.classList.remove('button_dropdown_active'); + }); + dropdown.querySelectorAll(DROPDOWN_LIST)?.forEach((list: Element) => { + list.classList.remove('dropdown--list_expanded'); + }); }); } } @@ -52,7 +56,7 @@ function addKeyboardNavigation(dropdown: HTMLElement): void { new FocusTrap(dropdown); dropdown.addEventListener('keydown', function (event) { if (event.key === 'Escape') { - onToggleDropdown(event, dropdown); + onToggleDropdown(dropdown); (dropdown.querySelector(DROPDOWN_TOGGLE) as HTMLElement)?.focus(); } }); diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/dropdown/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/dropdown/styles.scss index ac0de9aaad..eee110b55e 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/dropdown/styles.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/dropdown/styles.scss @@ -21,6 +21,8 @@ overflow-y: auto; + width: fit-content; + min-width: 272px; max-width: 360px; max-height: 400px; @@ -48,9 +50,48 @@ max-width: unset; } + &_positioned_right { + right: 0; + } + + &_positioned_left { + left: 0; + + @media (width < $breakpoint-desktop-min) { + left: unset; + } + } + &_expanded { display: block; } + + &_toc-list { + @media (width >= $breakpoint-desktop-min) { + position: relative; + + top: 0; + + display: block; + + min-width: unset; + max-width: unset; + + max-height: unset; + + padding: 0; + + border: none; + + background-color: transparent; + + box-shadow: none; + } + + @media (width >= $breakpoint-tablet-min) and (width < $breakpoint-desktop-min) { + width: 408px; + } + } } &--option { @@ -113,7 +154,7 @@ &--overlay { position: absolute; - z-index: 1; + z-index: 4; top: 0; right: 0; @@ -147,6 +188,8 @@ align-items: center; justify-content: space-between; + height: 52px; + padding-left: var(--size-s3); color: var(--color-w70); diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/global.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/global.scss index dc69761eb4..e1bda2f9a6 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/global.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/global.scss @@ -5,7 +5,7 @@ :root { --color-background: var(--color-background-page); - --focus-outline: 4px solid var(--color-key-blue-05); + --focus-outline: 4px solid var(--color-key-blue-50); } .theme-dark { diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/icon/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/icon/styles.scss index bbea7f41a0..d9ff9034ad 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/icon/styles.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/icon/styles.scss @@ -21,6 +21,12 @@ .theme-dark & { filter: none; } + + @media (width < $breakpoint-desktop-min) { + .theme-dark_mobile & { + filter: none; + } + } } .ui-kit-icon_arrow-down { diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/index.ts b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/index.ts index 3e29e37867..964e369955 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/index.ts +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/index.ts @@ -13,6 +13,7 @@ import * as navbarButton from './navbar-button/index'; import * as platformTag from './platform-tag/index'; import * as platformTags from './platform-tags/index'; import * as tabs from './tabs/index'; +import * as tocTree from './toc-tree/index'; import './helpers.scss'; import './global.scss'; @@ -29,4 +30,5 @@ export { platformTag, platformTags, tabs, + tocTree, }; diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/library-version/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/library-version/styles.scss index 7e641639db..f33fe7c954 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/library-version/styles.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/library-version/styles.scss @@ -4,6 +4,10 @@ @import '../_tokens/index'; .library-version { + box-sizing: border-box; + + padding-top: 1px; + color: var(--color-text-dt); font: var(--font-text-s); @@ -14,6 +18,8 @@ height: 52px; + padding-left: 12px; + background-color: var(--color-text); } } diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/navbar-button/index.ts b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/navbar-button/index.ts index ba170bf3d6..cb0426b7c4 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/navbar-button/index.ts +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/navbar-button/index.ts @@ -2,3 +2,33 @@ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ import './styles.scss'; +import { onToggleDropdown } from '../dropdown'; + +function initTocToggle() { + const tocToggle = document.getElementById('toc-toggle'); + const tocDropdown = document.getElementById('toc-dropdown'); + if (!tocToggle || !tocDropdown) { + console.warn('Dokka: toc toggle or dropdown is not found'); + return; + } + tocToggle.addEventListener('click', (event) => { + event.stopPropagation(); + onToggleDropdown(tocDropdown); + }); +} + +export function toggleTocDropdown(): void { + const tocDropdown = document.getElementById('toc-dropdown'); + if (!tocDropdown) { + console.warn('Dokka: toc dropdown is not found'); + return; + } + onToggleDropdown(tocDropdown); +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +(window as any).toggleTocDropdown = toggleTocDropdown; + +document.addEventListener('DOMContentLoaded', () => { + initTocToggle(); +}); diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/navbar-button/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/navbar-button/styles.scss index 49c2b6293c..78a43d94ce 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/navbar-button/styles.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/navbar-button/styles.scss @@ -50,7 +50,13 @@ line-height: 0; will-change: background-color; - &:hover { + @media (hover: hover) { + &:hover { + background-color: var(--color-b08); + } + } + + &:active { background-color: var(--color-w10); } @@ -76,7 +82,7 @@ background-image: url('../_assets/homepage.svg'); } -.navigation-controls--btn_menu { +.navigation-controls--btn_toc { margin-left: auto; background-image: url('../_assets/burger.svg'); diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/platform-tag/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/platform-tag/styles.scss index 6dce4ee8bd..a4e9b1fb0e 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/platform-tag/styles.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/platform-tag/styles.scss @@ -8,7 +8,7 @@ padding: 10px 12px; - letter-spacing: -0.03em; + cursor: pointer; text-transform: capitalize; @@ -70,7 +70,14 @@ button.platform-tag { --platform-tag-color: #9585f9; } -.filter-section .platform-tag[data-active]:hover { +@media (hover: hover) { + .filter-section .platform-tag[data-active]:hover { + color: #fff; + background-color: rgba(186, 186, 187, 0.7); + } +} + +.filter-section .platform-tag[data-active]:active { color: #fff; background-color: rgba(186, 186, 187, 0.7); } diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/toc-tree/index.ts b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/toc-tree/index.ts new file mode 100644 index 0000000000..ba170bf3d6 --- /dev/null +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/toc-tree/index.ts @@ -0,0 +1,4 @@ +/* + * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ +import './styles.scss'; diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/toc-tree/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/toc-tree/styles.scss new file mode 100644 index 0000000000..01e9c8122d --- /dev/null +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/toc-tree/styles.scss @@ -0,0 +1,290 @@ +/*! + * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ +@import '../_tokens/index'; + +:root { + --toc-hover-color: var(--color-b08); + --toc-font: 400 13px/24px var(--font-family-default); + --toc-color: var(--color-text); +} + +.theme-dark { + --toc-hover-color: var(--color-w08); + --toc-color: var(--color-text-dt); +} + +@media (width < $breakpoint-desktop-min) { + .theme-dark_mobile { + --toc-color: var(--color-text-dt); + --toc-hover-color: var(--color-w08); + } +} + +.toc { + &--part { + box-sizing: border-box; + + color: var(--toc-color); + + font: var(--toc-font); + } + + &--row { + position: relative; + + display: flex; + align-items: center; + + box-sizing: border-box; + min-height: 40px; + + user-select: none; /* there's a weird bug with text selection */ + } + + &--button { + position: absolute; + + display: inline-flex; + align-items: center; + flex-shrink: 0; + justify-content: flex-end; + + min-width: 40px; + height: 100%; + + padding: 0 8px 0 0; + + cursor: pointer; + transition: var(--hover-transition); + + border: none; + background-color: inherit; + will-change: background-color; + + &::after { + width: 24px; + height: 24px; + + content: ' '; + + transform: rotate(0deg); + + background-image: url('../_assets/arrow-down.svg'); + + background-repeat: no-repeat; + background-size: 24px 24px; + + font-size: 0; + line-height: 0; + filter: invert(1); + + .toc--part_hidden & { + transform: rotate(-90deg); + } + + .theme-dark & { + filter: invert(0); + } + + @media (width < $breakpoint-desktop-min) { + .theme-dark_mobile & { + filter: invert(0); + } + } + } + + @media (hover: hover) { + &:hover { + background-color: var(--toc-hover-color); + } + } + + &:active { + background-color: var(--toc-hover-color); + } + + &:focus-visible { + outline: var(--focus-outline); + outline-offset: -4px; + } + } + + &--link { + box-sizing: border-box; + + width: 100%; + height: calc(100% - 16px); + min-height: 40px; + + padding: 8px 0; + + color: inherit; + + &:hover { + background-color: var(--toc-hover-color); + } + + &:focus-visible { + outline: var(--focus-outline); + outline-offset: -4px; + } + } + + @for $i from 0 through 10 { + &--part[data-nesting-level='#{$i}'] { + $indent-width: calc(var(--size-m1) * $i); + + .toc--row > .toc--link:first-child { + padding-left: calc(40px + #{$indent-width}); + } + + .toc--button + .toc--link { + margin-left: calc(40px + #{$indent-width}); + } + + .toc--button { + width: calc(40px + #{$indent-width}); + } + } + } + + .filtered > a, + .filtered > &--button { + display: none; + } + + #nav-submenu { + padding-left: 24px; + } + + &--part_hidden > &--part { + display: none; + } + + &--row &--link-grid { + display: grid; + grid-template-columns: 16px auto; /* first is the icon, then name */ + grid-gap: 6px; + + align-items: center; + } + + &--icon { + width: 16px; + height: 16px; + } + + &--icon.class::before { + content: url('../_assets/nav-icons/class.svg'); + } + + &--icon.class-kt::before { + content: url('../_assets/nav-icons/class-kotlin.svg'); + } + + &--icon.function::before { + content: url('../_assets/nav-icons/function.svg'); + } + + &--icon.enum-class::before { + content: url('../_assets/nav-icons/enum.svg'); + } + + &--icon.enum-class-kt::before { + content: url('../_assets/nav-icons/enum-kotlin.svg'); + } + + &--icon.annotation-class::before { + content: url('../_assets/nav-icons/annotation.svg'); + } + + &--icon.annotation-class-kt::before { + content: url('../_assets/nav-icons/annotation-kotlin.svg'); + } + + &--icon.abstract-class::before { + content: url('../_assets/nav-icons/abstract-class.svg'); + } + + &--icon.abstract-class-kt::before { + content: url('../_assets/nav-icons/abstract-class-kotlin.svg'); + } + + &--icon.exception-class::before { + content: url('../_assets/nav-icons/exception-class.svg'); + } + + &--icon.interface::before { + content: url('../_assets/nav-icons/interface.svg'); + } + + &--icon.interface-kt::before { + content: url('../_assets/nav-icons/interface-kotlin.svg'); + } + + &--icon.object::before { + content: url('../_assets/nav-icons/object.svg'); + } + + &--icon.typealias-kt::before { + content: url('../_assets/nav-icons/typealias-kotlin.svg'); + } + + &--icon.val::before { + content: url('../_assets/nav-icons/field-value.svg'); + } + + &--icon.var::before { + content: url('../_assets/nav-icons/field-variable.svg'); + } +} + +.toc--part[data-active] > .toc--row { + & .toc--link, + & .toc--button { + color: var(--color-text-dt); + background-color: var(--color-key-blue); + + &:hover { + background-color: #578af7; + } + + &::after { + filter: invert(0); + } + } +} + +.sidebar { + overflow: auto; + + box-sizing: border-box; + width: var(--sidebar-width); + + border-right: 1px solid rgba(39, 40, 44, 0.2); + + @media (width < $breakpoint-desktop-min) { + width: 0; + + border: none; + } + + @media (width >= $breakpoint-desktop-min) { + position: relative; + z-index: 1; + } +} + +.theme-dark .sidebar { + border-right-color: lighten(rgb(50, 50, 55), 15%); // color-background-nav-dt +} + +.no-js .sidebar { + display: none; +} + +.sidebar--inner { + padding-top: 12px; + padding-bottom: 12px; +} diff --git a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/NavigationPage.kt b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/NavigationPage.kt index 0c0ebba316..0c8e5ef92e 100644 --- a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/NavigationPage.kt +++ b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/NavigationPage.kt @@ -6,8 +6,6 @@ package org.jetbrains.dokka.base.renderers.html import kotlinx.html.* import kotlinx.html.stream.createHTML -import org.jetbrains.dokka.base.renderers.html.NavigationNodeIcon.CLASS -import org.jetbrains.dokka.base.renderers.html.NavigationNodeIcon.CLASS_KT import org.jetbrains.dokka.base.renderers.pageId import org.jetbrains.dokka.base.templating.AddToNavigationCommand import org.jetbrains.dokka.links.DRI @@ -42,27 +40,33 @@ public class NavigationPage( } } - private fun TagConsumer.visit(node: NavigationNode, navId: String, renderer: HtmlRenderer): R = + private fun TagConsumer.visit( + node: NavigationNode, + navId: String, + renderer: HtmlRenderer, + level: Int = 0 + ): R = with(renderer) { - div("sideMenuPart") { + div("toc--part") { id = navId attributes["pageId"] = "${moduleName}::${node.pageId}" - div("overview") { + attributes["data-nesting-level"] = level.toString() + div("toc--row") { if (node.children.isNotEmpty()) { - span("navButton") { - onClick = """document.getElementById("$navId").classList.toggle("hidden");""" - span("navButtonContent") + button(classes = "toc--button") { + onClick = """document.getElementById("$navId").classList.toggle("toc--part_hidden");""" } } buildLink(node.dri, node.sourceSets.toList()) { + this@buildLink.attributes["class"] = "toc--link" val withIcon = node.icon != null if (withIcon) { - // in case link text is so long that it needs to have word breaks, + // in case a link text is so long that it needs to have word breaks, // and it stretches to two or more lines, make sure the icon // is always on the left in the grid and is not wrapped with text - span("nav-link-grid") { - span("nav-link-child ${node.icon?.style()}") - span("nav-link-child") { + span("toc--link-grid") { + span(node.icon?.style()) + span { nodeText(node) } } @@ -71,7 +75,7 @@ public class NavigationPage( } } } - node.children.withIndex().forEach { (n, p) -> visit(p, "$navId-$n", renderer) } + node.children.withIndex().forEach { (n, p) -> visit(p, "$navId-$n", renderer, level + 1) } } } @@ -119,7 +123,7 @@ public enum class NavigationNodeIcon( VAL("val"), VAR("var"); - internal fun style(): String = "nav-icon $cssClass" + internal fun style(): String = "toc--icon $cssClass" } public fun NavigationPage.transform(block: (NavigationNode) -> NavigationNode): NavigationPage = diff --git a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/htmlPreprocessors.kt b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/htmlPreprocessors.kt index 35e2de35a8..80807de60a 100644 --- a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/htmlPreprocessors.kt +++ b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/htmlPreprocessors.kt @@ -105,46 +105,39 @@ public class StylesInstaller(private val dokkaContext: DokkaContext) : PageTrans public object AssetsInstaller : PageTransformer { private val imagesPages = listOf( // ui-kit assets + "ui-kit/assets/abstract-class-kotlin.svg", + "ui-kit/assets/abstract-class.svg", + "ui-kit/assets/annotation-kotlin.svg", + "ui-kit/assets/annotation.svg", "ui-kit/assets/arrow-down.svg", "ui-kit/assets/burger.svg", - "ui-kit/assets/homepage.svg", "ui-kit/assets/checkbox-off.svg", "ui-kit/assets/checkbox-on.svg", + "ui-kit/assets/class-kotlin.svg", + "ui-kit/assets/class.svg", "ui-kit/assets/cross.svg", + "ui-kit/assets/enum-kotlin.svg", + "ui-kit/assets/enum.svg", + "ui-kit/assets/exception-class.svg", + "ui-kit/assets/field-value.svg", + "ui-kit/assets/field-variable.svg", "ui-kit/assets/filter.svg", + "ui-kit/assets/function.svg", "ui-kit/assets/homepage.svg", - "ui-kit/assets/theme-toggle.svg", + "ui-kit/assets/interface-kotlin.svg", + "ui-kit/assets/interface.svg", + "ui-kit/assets/object.svg", "ui-kit/assets/placeholder.svg", + "ui-kit/assets/theme-toggle.svg", + "ui-kit/assets/typealias-kotlin.svg", // images - "images/arrow_down.svg", - "images/logo-icon.svg", - "images/go-to-top-icon.svg", - "images/footer-go-to-link.svg", "images/anchor-copy-button.svg", "images/copy-icon.svg", "images/copy-successful-icon.svg", - "images/theme-toggle.svg", - "images/burger.svg", - "images/homepage.svg", - - // navigation icons - "images/nav-icons/abstract-class.svg", - "images/nav-icons/abstract-class-kotlin.svg", - "images/nav-icons/annotation.svg", - "images/nav-icons/annotation-kotlin.svg", - "images/nav-icons/class.svg", - "images/nav-icons/class-kotlin.svg", - "images/nav-icons/enum.svg", - "images/nav-icons/enum-kotlin.svg", - "images/nav-icons/exception-class.svg", - "images/nav-icons/field-value.svg", - "images/nav-icons/field-variable.svg", - "images/nav-icons/function.svg", - "images/nav-icons/interface.svg", - "images/nav-icons/interface-kotlin.svg", - "images/nav-icons/object.svg", - "images/nav-icons/typealias-kotlin.svg", + "images/footer-go-to-link.svg", + "images/go-to-top-icon.svg", + "images/logo-icon.svg", ) override fun invoke(input: RootPageNode): RootPageNode = input.modified( diff --git a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory.kt b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory.kt index f0b8de7d8f..f2cb71d76c 100644 --- a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory.kt +++ b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/innerTemplating/DefaultTemplateModelFactory.kt @@ -119,7 +119,7 @@ public class DefaultTemplateModelFactory( type = ScriptType.textJavaScript, src = if (resource.isAbsolute) resource else "$pathToRoot$resource" ) { - if (resource == "scripts/main.js" || resource.endsWith("_deferred.js")) + if (resource == "scripts/main.js" || resource == "ui-kit/ui-kit.min.js" || resource.endsWith("_deferred.js")) defer = true else async = true diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/arrow_down.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/images/arrow_down.svg deleted file mode 100755 index 2478845270..0000000000 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/arrow_down.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/burger.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/images/burger.svg deleted file mode 100644 index 40f73c5369..0000000000 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/burger.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/homepage.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/images/homepage.svg deleted file mode 100644 index e3c83b1ce3..0000000000 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/homepage.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/theme-toggle.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/images/theme-toggle.svg deleted file mode 100644 index fcc900f389..0000000000 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/theme-toggle.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/navigation-loader.js b/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/navigation-loader.js index 57adc1e222..99c7d6926a 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/navigation-loader.js +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/navigation-loader.js @@ -8,13 +8,13 @@ displayNavigationFromPage = () => { navigationPageText.then(data => { document.getElementById("sideMenu").innerHTML = data; }).then(() => { - document.querySelectorAll(".overview > a").forEach(link => { + document.querySelectorAll(".toc--row > a").forEach(link => { link.setAttribute("href", pathToRoot + link.getAttribute("href")); }) }).then(() => { - document.querySelectorAll(".sideMenuPart").forEach(nav => { - if (!nav.classList.contains("hidden")) - nav.classList.add("hidden") + document.querySelectorAll(".toc--part").forEach(nav => { + if (!nav.classList.contains("toc--part_hidden")) + nav.classList.add("toc--part_hidden") }) }).then(() => { revealNavigationForCurrentPage() @@ -33,14 +33,14 @@ displayNavigationFromPage = () => { revealNavigationForCurrentPage = () => { let pageId = document.getElementById("content").attributes["pageIds"].value.toString(); - let parts = document.querySelectorAll(".sideMenuPart"); + let parts = document.querySelectorAll(".toc--part"); let found = 0; do { parts.forEach(part => { if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) { found = 1; - if (part.classList.contains("hidden")) { - part.classList.remove("hidden"); + if (part.classList.contains("toc--part_hidden")) { + part.classList.remove("toc--part_hidden"); part.setAttribute('data-active', ""); } revealParents(part) @@ -50,25 +50,25 @@ revealNavigationForCurrentPage = () => { } while (pageId.indexOf("/") !== -1 && found === 0) }; revealParents = (part) => { - if (part.classList.contains("sideMenuPart")) { - if (part.classList.contains("hidden")) - part.classList.remove("hidden"); + if (part.classList.contains("toc--part")) { + if (part.classList.contains("toc--part_hidden")) + part.classList.remove("toc--part_hidden"); revealParents(part.parentNode) } }; scrollNavigationToSelectedElement = () => { - let selectedElement = document.querySelector('div.sideMenuPart[data-active]') + let selectedElement = document.querySelector('div.toc--part[data-active]') if (selectedElement == null) { // nothing selected, probably just the main page opened return } - let hasIcon = selectedElement.querySelectorAll(":scope > div.overview span.nav-icon").length > 0 + let hasIcon = selectedElement.querySelectorAll(":scope > div.toc--row span.toc--icon").length > 0 - // for instance enums also have children and are expandable, but are not package/module elements + // for an instance enums also have children and are expandable but are not package/module elements let isPackageElement = selectedElement.children.length > 1 && !hasIcon if (isPackageElement) { - // if package is selected or linked, it makes sense to align it to top + // if a package is selected or linked, it makes sense to align it to top // so that you can see all the members it contains selectedElement.scrollIntoView(true) } else { @@ -84,9 +84,9 @@ scrollNavigationToSelectedElement = () => { /* This is a work-around for safari being IE of our times. - It doesn't fire a DOMContentLoaded, presumabely because eventListener is added after it wants to do it + It doesn't fire a DOMContentLoaded, presumably because eventListener is added after it wants to do it */ -if (document.readyState == 'loading') { +if (document.readyState === 'loading') { window.addEventListener('DOMContentLoaded', () => { displayNavigationFromPage() }) diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/platform-content-handler.js b/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/platform-content-handler.js index c9c86f6507..0ed0d38938 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/platform-content-handler.js +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/platform-content-handler.js @@ -54,7 +54,6 @@ window.addEventListener('load', () => { } initTabs() // initTabs comes from ui-kit/tabs handleAnchor() - initHidingLeftNavigation() topNavbarOffset = document.getElementById('navigation-wrapper') darkModeSwitch() }) @@ -115,21 +114,6 @@ const samplesAreEnabled = () => { } } - -const initHidingLeftNavigation = () => { - document.getElementById("menu-toggle").onclick = function (event) { - //Events need to be prevented from bubbling since they will trigger next handler - event.preventDefault(); - event.stopPropagation(); - event.stopImmediatePropagation(); - document.getElementById("leftColumn").classList.toggle("open"); - } - - document.getElementById("main").onclick = () => { - document.getElementById("leftColumn").classList.remove("open"); - } -} - // Hash change is needed in order to allow for linking inside the same page with anchors // If this is not present user is forced to refresh the site in order to use an anchor window.onhashchange = handleAnchor diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/style.css b/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/style.css index 8732c3fe7f..c64fa37161 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/style.css +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/style.css @@ -257,7 +257,7 @@ td:first-child { min-height: 0; /* full height exclude header */ } -#container > .sidebar, #container > #main { +#container > #main { overflow: auto; } @@ -267,55 +267,6 @@ td:first-child { flex: 1 1 0; /* full width, but no affects for sidebar */ } -.sidebar { - display: flex; - flex-direction: column; - box-sizing: border-box; - border-right: 1px solid var(--border-color); - width: var(--sidebar-width); -} - -.no-js .sidebar { - display: none; -} - -@media (max-width: 759px) { - #container { - position: relative; - } - - .sidebar { - position: absolute; - top: 0; - bottom: 0; - box-sizing: border-box; - background: var(--background-color); - margin-left: calc(-1 * var(--sidebar-width)); - transition: margin .2s ease-out; - z-index: 4; - } - - .sidebar.open { - margin-left: 0; - } - - .sidebar.open ~ #main .navigation-controls--search { - display: none; - } - - .sidebar.open ~ #main .menu-toggle { - margin-left: var(--sidebar-width); - } -} - -.sidebar--inner { - font-size: 12px; - font-weight: 400; - line-height: 16px; - padding-top: 22px; - padding-bottom: 16px; -} - /* /--- Layout styles --- */ /* --- Main Content styles --- */ @@ -444,16 +395,6 @@ code.paragraph { display: block; } -.overview > .navButton { - position: absolute; - align-items: center; - display: flex; - justify-content: flex-end; - padding: 2px 2px 2px 0; - margin-right: 5px; - cursor: pointer; -} - .strikethrough { text-decoration: line-through; } @@ -597,166 +538,6 @@ code:not(.block) { word-break: break-word; } -.sideMenuPart > .overview { - display: flex; - align-items: center; - position: relative; - user-select: none; /* there's a weird bug with text selection */ - padding: 8px 0; -} - -.sideMenuPart a { - display: block; - align-items: center; - color: var(--default-font-color); - overflow: hidden; - padding-left: 23px; -} - -.sideMenuPart a:hover { - text-decoration: none; - color: var(--default-font-color); -} - -.sideMenuPart > .overview:before { - box-sizing: border-box; - content: ''; - top: 0; - width: var(--sidebar-width); - right: 0; - bottom: 0; - position: absolute; - z-index: -1; -} - -.overview:hover:before { - background-color: var(--navigation-highlight-color); -} - -#nav-submenu { - padding-left: 24px; -} - -.sideMenuPart { - padding-left: 12px; - box-sizing: border-box; -} - -.sideMenuPart.hidden > .overview .navButtonContent::before { - transform: rotate(0deg); -} - -.sideMenuPart > .overview .navButtonContent::before { - content: ''; - - -webkit-mask: url("../images/arrow_down.svg") no-repeat 50% 50%; - mask: url("../images/arrow_down.svg") no-repeat 50% 50%; - -webkit-mask-size: cover; - mask-size: cover; - background-color: var(--default-font-color); - - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - transform: rotate(90deg); - width: 16px; - height: 16px; -} - -.sideMenuPart[data-active] > .overview .navButtonContent::before { - background-color: var(--default-white); -} - -.sideMenuPart.hidden > .navButton .navButtonContent::after { - content: '\02192'; -} - -.sideMenuPart.hidden > .sideMenuPart { - display: none; -} - -.overview .nav-link-grid { - display: grid; - grid-template-columns: 16px auto; /* first is the icon, then name */ - grid-gap: 6px; - align-items: center; -} - -.nav-icon { - width: 16px; - height: 16px; -} - -.nav-icon.class::before { - content: url("../images/nav-icons/class.svg"); -} - -.nav-icon.class-kt::before { - content: url("../images/nav-icons/class-kotlin.svg"); -} - -.nav-icon.function::before { - content: url("../images/nav-icons/function.svg"); -} - -.nav-icon.enum-class::before { - content: url("../images/nav-icons/enum.svg"); -} - -.nav-icon.enum-class-kt::before { - content: url("../images/nav-icons/enum-kotlin.svg"); -} - -.nav-icon.annotation-class::before { - content: url("../images/nav-icons/annotation.svg"); -} - -.nav-icon.annotation-class-kt::before { - content: url("../images/nav-icons/annotation-kotlin.svg"); -} - -.nav-icon.abstract-class::before { - content: url("../images/nav-icons/abstract-class.svg"); -} - -.nav-icon.abstract-class-kt::before { - content: url("../images/nav-icons/abstract-class-kotlin.svg"); -} - -.nav-icon.exception-class::before { - content: url("../images/nav-icons/exception-class.svg"); -} - -.nav-icon.interface::before { - content: url("../images/nav-icons/interface.svg"); -} - -.nav-icon.interface-kt::before { - content: url("../images/nav-icons/interface-kotlin.svg"); -} - -.nav-icon.object::before { - content: url("../images/nav-icons/object.svg"); -} - -.nav-icon.typealias-kt::before { - content: url("../images/nav-icons/typealias-kotlin.svg"); -} - -.nav-icon.val::before { - content: url("../images/nav-icons/field-value.svg"); -} - -.nav-icon.var::before { - content: url("../images/nav-icons/field-variable.svg"); -} - -.filtered > a, .filtered > .navButton { - display: none; -} - - .brief { white-space: pre-wrap; overflow: hidden; @@ -988,14 +769,6 @@ Just in case of possible performance degradation it excluding tabs with briefs o padding: 8px; } -.sideMenuPart[data-active] > .overview:before { - background: var(--sidemenu-section-active-color); -} - -.sideMenuPart[data-active] > .overview > a { - color: var(--default-white); -} - .table { display: flex; flex-direction: column; diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/templates/base.ftl b/dokka-subprojects/plugin-base/src/main/resources/dokka/templates/base.ftl index 0311f9f891..96cde79a3c 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/templates/base.ftl +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/templates/base.ftl @@ -32,7 +32,23 @@ <@header.display/>
<@content/> diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/templates/includes/header.ftl b/dokka-subprojects/plugin-base/src/main/resources/dokka/templates/includes/header.ftl index 9d2c500554..5a96fb8e46 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/templates/includes/header.ftl +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/templates/includes/header.ftl @@ -8,8 +8,8 @@ -
diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/abstract-class-kotlin.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/abstract-class-kotlin.svg new file mode 100644 index 0000000000..97b7723a02 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/abstract-class-kotlin.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/abstract-class.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/abstract-class.svg new file mode 100644 index 0000000000..ead94b8bba --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/abstract-class.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/annotation-kotlin.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/annotation-kotlin.svg new file mode 100644 index 0000000000..b74824201f --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/annotation-kotlin.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/annotation.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/annotation.svg new file mode 100644 index 0000000000..76c2f4bb90 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/annotation.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/class-kotlin.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/class-kotlin.svg new file mode 100644 index 0000000000..dc23120aa2 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/class-kotlin.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/class.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/class.svg new file mode 100644 index 0000000000..2447cf78e1 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/class.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/enum-kotlin.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/enum-kotlin.svg new file mode 100644 index 0000000000..207a0ef3b4 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/enum-kotlin.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/enum.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/enum.svg new file mode 100644 index 0000000000..2deba5f114 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/enum.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/exception-class.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/exception-class.svg new file mode 100644 index 0000000000..1bb4f88e91 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/exception-class.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/field-value.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/field-value.svg new file mode 100644 index 0000000000..3aa75be3ed --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/field-value.svg @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/field-variable.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/field-variable.svg new file mode 100644 index 0000000000..7a8af50945 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/field-variable.svg @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/function.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/function.svg new file mode 100644 index 0000000000..e56a417532 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/function.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/interface-kotlin.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/interface-kotlin.svg new file mode 100644 index 0000000000..e5273f0506 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/interface-kotlin.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/interface.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/interface.svg new file mode 100644 index 0000000000..0637028747 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/interface.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/object.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/object.svg new file mode 100644 index 0000000000..5f960b7425 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/object.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/typealias-kotlin.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/typealias-kotlin.svg new file mode 100644 index 0000000000..73a08851e0 --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/typealias-kotlin.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.css b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.css index 28ccb2f912..a784320264 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.css +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.css @@ -16,7 +16,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -28,6 +28,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -108,10 +109,11 @@ padding: var(--size-s2); } -.button:hover { - background-color: var(--color-b08); +@media (hover: hover) { + .button:hover { + background-color: var(--color-b08); + } } - .button:active { background-color: var(--color-key-blue); } @@ -147,6 +149,7 @@ .button_dropdown { padding: var(--size-s2); + font: var(--font-text-s); } .button_dropdown::after { @@ -196,7 +199,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -208,6 +211,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -318,7 +322,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -330,6 +334,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -407,6 +412,7 @@ right: 0; display: none; overflow-y: auto; + width: fit-content; min-width: 272px; max-width: 360px; max-height: 400px; @@ -432,10 +438,42 @@ max-width: unset; } } +.dropdown--list_positioned_right { + right: 0; +} + +.dropdown--list_positioned_left { + left: 0; +} + +@media (width < 900px) { + .dropdown--list_positioned_left { + left: unset; + } +} .dropdown--list_expanded { display: block; } +@media (width >= 900px) { + .dropdown--list_toc-list { + position: relative; + top: 0; + display: block; + min-width: unset; + max-width: unset; + max-height: unset; + padding: 0; + border: none; + background-color: rgba(0, 0, 0, 0); + box-shadow: none; + } +} +@media (width >= 440px) and (width < 900px) { + .dropdown--list_toc-list { + width: 408px; + } +} .dropdown--option { position: relative; display: block; @@ -486,7 +524,7 @@ .dropdown--overlay { position: absolute; - z-index: 1; + z-index: 4; top: 0; right: 0; bottom: 0; @@ -514,6 +552,7 @@ display: flex; align-items: center; justify-content: space-between; + height: 52px; padding-left: var(--size-s3); color: var(--color-w70); border-bottom: 1px solid #56565f; @@ -543,7 +582,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -555,6 +594,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -685,7 +725,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -697,6 +737,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -775,6 +816,11 @@ filter: none; } +@media (width < 900px) { + .theme-dark_mobile .ui-kit-icon { + filter: none; + } +} .ui-kit-icon_arrow-down { background-image: url(assets/arrow-down.svg); } @@ -804,7 +850,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -816,6 +862,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -927,7 +974,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -939,6 +986,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -1001,6 +1049,8 @@ } .library-version { + box-sizing: border-box; + padding-top: 1px; color: var(--color-text-dt); font: var(--font-text-s); } @@ -1010,6 +1060,7 @@ display: flex; align-items: center; height: 52px; + padding-left: 12px; background-color: var(--color-text); } } @@ -1031,7 +1082,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -1043,6 +1094,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -1151,7 +1203,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -1163,6 +1215,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -1265,7 +1318,12 @@ will-change: background-color; } -.navigation-controls--btn:hover { +@media (hover: hover) { + .navigation-controls--btn:hover { + background-color: var(--color-b08); + } +} +.navigation-controls--btn:active { background-color: var(--color-w10); } @@ -1291,7 +1349,7 @@ background-image: url(assets/homepage.svg); } -.navigation-controls--btn_menu { +.navigation-controls--btn_toc { margin-left: auto; background-image: url(assets/burger.svg); } @@ -1313,7 +1371,7 @@ */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -1325,6 +1383,7 @@ --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -1389,7 +1448,7 @@ .platform-tag { --platform-tag-color: #bababb; padding: 10px 12px; - letter-spacing: -0.03em; + cursor: pointer; text-transform: capitalize; border: 0 none; border-radius: var(--size-s1); @@ -1438,7 +1497,13 @@ button.platform-tag:focus-visible { --platform-tag-color: #9585f9; } -.filter-section .platform-tag[data-active]:hover { +@media (hover: hover) { + .filter-section .platform-tag[data-active]:hover { + color: #fff; + background-color: rgba(186, 186, 187, 0.7); + } +} +.filter-section .platform-tag[data-active]:active { color: #fff; background-color: rgba(186, 186, 187, 0.7); } @@ -1478,7 +1543,7 @@ button.platform-tag:focus-visible { */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -1490,6 +1555,7 @@ button.platform-tag:focus-visible { --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -1575,7 +1641,7 @@ button.platform-tag:focus-visible { */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -1587,6 +1653,7 @@ button.platform-tag:focus-visible { --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -1730,6 +1797,468 @@ button.platform-tag:focus-visible { .main-content[data-page-type=package] .tabs-section-body h2 { display: none; } +/*! + * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ /*! +* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +*/ /*! +* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +*/ +:root { + --breakpoint-desktop-min: 900px; + --breakpoint-tablet-max: 899px; + --breakpoint-tablet-min: 440px; + --breakpoint-mobile-max: 439px; + --breakpoint-mobile-min: 360px; +} /*! +* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +*/ +:root { + --color-key-blue: rgb(48, 127, 255); + --color-key-blue-50: rgb(48, 127, 255, 0.5); + --color-background-nav: rgb(39, 40, 44); + --color-background-nav-dt: rgb(50, 50, 55); + --color-background-page: rgb(255, 255, 255); + --color-background-page-dt: rgb(38, 38, 40); + --color-background-footer: rgb(235, 235, 235); + --color-background-footer-dt: rgb(50, 50, 55); + --color-text: rgb(0, 0, 0); + --color-text-dt: rgba(255, 255, 255, 0.96); + --color-text-light: rgba(0, 0, 0, 0.7); + --color-text-light-dt: rgba(255, 255, 255, 0.7); + --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); + --color-w10: rgba(255, 255, 255, 0.1); + --color-w16: rgba(255, 255, 255, 0.16); + --color-w50: rgba(255, 255, 255, 0.5); + --color-w70: rgba(255, 255, 255, 0.7); + --color-w80: rgba(255, 255, 255, 0.8); + --color-w100: rgba(255, 255, 255, 1); + --color-b05: rgba(0, 0, 0, 0.05); + --color-b08: rgba(0, 0, 0, 0.08); + --color-b20: rgba(0, 0, 0, 0.2); + --color-b50: rgba(0, 0, 0, 0.5); + --color-b70: rgba(0, 0, 0, 0.7); + --color-cd-punctuation: rgb(153, 153, 153); + --color-cd-keyword: rgb(0, 51, 179); + --color-cd-keyword-alternative: rgba(204, 120, 50); + --color-cd-builtin: rgb(6, 125, 23); + --color-cd-builtin-alternative: rgb(231, 191, 106); + --color-cd-function: rgb(0, 98, 122); + --color-cd-function-alternative: rgb(255, 198, 109); + --color-cd-operator: rgb(154, 110, 58); + --color-cd-operator-alternative: rgb(169, 183, 198); + --color-cd-body: rgb(0, 0, 0); + --color-cd-body-alternative: rgb(169, 183, 198); + --color-generic: rgb(83, 157, 243); + --color-jvm: rgb(77, 187, 95); + --color-js: rgb(255, 199, 0); + --color-wasm: rgb(255, 255, 255); +} /*! +* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +*/ +:root { + --size-s1: 4px; + --size-s2: 8px; + --size-s3: 16px; + --size-m1: 24px; + --size-m2: 32px; + --size-m3: 48px; + --size-l1: 64px; + --size-l2: 72px; + --size-ta1: 40px; + --size-ta2: 52px; +} /*! +* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +*/ +:root { + --font-family-default: JetBrains Sans, Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Droid Sans, Helvetica Neue, Arial, sans-serif; + --font-family-mono: JetBrains Mono, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; + --font-h1: 600 44px/44px var(--font-family-default); + --font-h2: 600 32px/32px var(--font-family-default); + --font-h3: 600 24px/24px var(--font-family-default); + --font-h4: 600 16px/24px var(--font-family-default); + --font-text-m: 400 16px/24px var(--font-family-default); + --font-text-s: 400 14px/20px var(--font-family-default); + --font-code: 400 16px/24px var(--font-family-mono); +} /*! +* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. +*/ +:root { + --hover-transition: background-color 200ms ease-in-out; + --rotate-transition: transform 200ms ease-in-out; +} + +:root { + --toc-hover-color: var(--color-b08); + --toc-font: 400 13px/24px var(--font-family-default); + --toc-color: var(--color-text); +} + +.theme-dark { + --toc-hover-color: var(--color-w08); + --toc-color: var(--color-text-dt); +} + +@media (width < 900px) { + .theme-dark_mobile { + --toc-color: var(--color-text-dt); + --toc-hover-color: var(--color-w08); + } +} +.toc--part { + box-sizing: border-box; + color: var(--toc-color); + font: var(--toc-font); +} + +.toc--row { + position: relative; + display: flex; + align-items: center; + box-sizing: border-box; + min-height: 40px; + user-select: none; +} + +.toc--button { + position: absolute; + display: inline-flex; + align-items: center; + flex-shrink: 0; + justify-content: flex-end; + min-width: 40px; + height: 100%; + padding: 0 8px 0 0; + cursor: pointer; + transition: var(--hover-transition); + border: none; + background-color: inherit; + will-change: background-color; +} + +.toc--button::after { + width: 24px; + height: 24px; + content: " "; + transform: rotate(0deg); + background-image: url(assets/arrow-down.svg); + background-repeat: no-repeat; + background-size: 24px 24px; + font-size: 0; + line-height: 0; + filter: invert(1); +} + +.toc--part_hidden .toc--button::after { + transform: rotate(-90deg); +} + +.theme-dark .toc--button::after { + filter: invert(0); +} + +@media (width < 900px) { + .theme-dark_mobile .toc--button::after { + filter: invert(0); + } +} +@media (hover: hover) { + .toc--button:hover { + background-color: var(--toc-hover-color); + } +} +.toc--button:active { + background-color: var(--toc-hover-color); +} + +.toc--button:focus-visible { + outline: var(--focus-outline); + outline-offset: -4px; +} + +.toc--link { + box-sizing: border-box; + width: 100%; + height: calc(100% - 16px); + min-height: 40px; + padding: 8px 0; + color: inherit; +} + +.toc--link:hover { + background-color: var(--toc-hover-color); +} + +.toc--link:focus-visible { + outline: var(--focus-outline); + outline-offset: -4px; +} + +.toc--part[data-nesting-level="0"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 0); +} + +.toc--part[data-nesting-level="0"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 0); +} + +.toc--part[data-nesting-level="0"] .toc--button { + width: calc(40px + var(--size-m1) * 0); +} + +.toc--part[data-nesting-level="1"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 1); +} + +.toc--part[data-nesting-level="1"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 1); +} + +.toc--part[data-nesting-level="1"] .toc--button { + width: calc(40px + var(--size-m1) * 1); +} + +.toc--part[data-nesting-level="2"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 2); +} + +.toc--part[data-nesting-level="2"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 2); +} + +.toc--part[data-nesting-level="2"] .toc--button { + width: calc(40px + var(--size-m1) * 2); +} + +.toc--part[data-nesting-level="3"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 3); +} + +.toc--part[data-nesting-level="3"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 3); +} + +.toc--part[data-nesting-level="3"] .toc--button { + width: calc(40px + var(--size-m1) * 3); +} + +.toc--part[data-nesting-level="4"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 4); +} + +.toc--part[data-nesting-level="4"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 4); +} + +.toc--part[data-nesting-level="4"] .toc--button { + width: calc(40px + var(--size-m1) * 4); +} + +.toc--part[data-nesting-level="5"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 5); +} + +.toc--part[data-nesting-level="5"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 5); +} + +.toc--part[data-nesting-level="5"] .toc--button { + width: calc(40px + var(--size-m1) * 5); +} + +.toc--part[data-nesting-level="6"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 6); +} + +.toc--part[data-nesting-level="6"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 6); +} + +.toc--part[data-nesting-level="6"] .toc--button { + width: calc(40px + var(--size-m1) * 6); +} + +.toc--part[data-nesting-level="7"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 7); +} + +.toc--part[data-nesting-level="7"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 7); +} + +.toc--part[data-nesting-level="7"] .toc--button { + width: calc(40px + var(--size-m1) * 7); +} + +.toc--part[data-nesting-level="8"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 8); +} + +.toc--part[data-nesting-level="8"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 8); +} + +.toc--part[data-nesting-level="8"] .toc--button { + width: calc(40px + var(--size-m1) * 8); +} + +.toc--part[data-nesting-level="9"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 9); +} + +.toc--part[data-nesting-level="9"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 9); +} + +.toc--part[data-nesting-level="9"] .toc--button { + width: calc(40px + var(--size-m1) * 9); +} + +.toc--part[data-nesting-level="10"] .toc--row > .toc--link:first-child { + padding-left: calc(40px + var(--size-m1) * 10); +} + +.toc--part[data-nesting-level="10"] .toc--button + .toc--link { + margin-left: calc(40px + var(--size-m1) * 10); +} + +.toc--part[data-nesting-level="10"] .toc--button { + width: calc(40px + var(--size-m1) * 10); +} + +.toc .filtered > a, .filtered > .toc--button { + display: none; +} + +.toc #nav-submenu { + padding-left: 24px; +} + +.toc--part_hidden > .toc--part { + display: none; +} + +.toc--row .toc--link-grid { + display: grid; + grid-template-columns: 16px auto; + grid-gap: 6px; + align-items: center; +} + +.toc--icon { + width: 16px; + height: 16px; +} + +.toc--icon.class::before { + content: url(assets/class.svg); +} + +.toc--icon.class-kt::before { + content: url(assets/class-kotlin.svg); +} + +.toc--icon.function::before { + content: url(assets/function.svg); +} + +.toc--icon.enum-class::before { + content: url(assets/enum.svg); +} + +.toc--icon.enum-class-kt::before { + content: url(assets/enum-kotlin.svg); +} + +.toc--icon.annotation-class::before { + content: url(assets/annotation.svg); +} + +.toc--icon.annotation-class-kt::before { + content: url(assets/annotation-kotlin.svg); +} + +.toc--icon.abstract-class::before { + content: url(assets/abstract-class.svg); +} + +.toc--icon.abstract-class-kt::before { + content: url(assets/abstract-class-kotlin.svg); +} + +.toc--icon.exception-class::before { + content: url(assets/exception-class.svg); +} + +.toc--icon.interface::before { + content: url(assets/interface.svg); +} + +.toc--icon.interface-kt::before { + content: url(assets/interface-kotlin.svg); +} + +.toc--icon.object::before { + content: url(assets/object.svg); +} + +.toc--icon.typealias-kt::before { + content: url(assets/typealias-kotlin.svg); +} + +.toc--icon.val::before { + content: url(assets/field-value.svg); +} + +.toc--icon.var::before { + content: url(assets/field-variable.svg); +} + +.toc--part[data-active] > .toc--row .toc--link, .toc--part[data-active] > .toc--row .toc--button { + color: var(--color-text-dt); + background-color: var(--color-key-blue); +} + +.toc--part[data-active] > .toc--row .toc--link:hover, .toc--part[data-active] > .toc--row .toc--button:hover { + background-color: #578af7; +} + +.toc--part[data-active] > .toc--row .toc--link::after, .toc--part[data-active] > .toc--row .toc--button::after { + filter: invert(0); +} + +.sidebar { + overflow: auto; + box-sizing: border-box; + width: var(--sidebar-width); + border-right: 1px solid rgba(39, 40, 44, 0.2); +} + +@media (width < 900px) { + .sidebar { + width: 0; + border: none; + } +} +@media (width >= 900px) { + .sidebar { + position: relative; + z-index: 1; + } +} +.theme-dark .sidebar { + border-right-color: #56565f; +} + +.no-js .sidebar { + display: none; +} + +.sidebar--inner { + padding-top: 12px; + padding-bottom: 12px; +} /*! * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ /*! @@ -1748,7 +2277,7 @@ button.platform-tag:focus-visible { */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -1760,6 +2289,7 @@ button.platform-tag:focus-visible { --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -1849,7 +2379,7 @@ button.platform-tag:focus-visible { */ :root { --color-key-blue: rgb(48, 127, 255); - --color-key-blue-05: rgb(48, 127, 255, 0.5); + --color-key-blue-50: rgb(48, 127, 255, 0.5); --color-background-nav: rgb(39, 40, 44); --color-background-nav-dt: rgb(50, 50, 55); --color-background-page: rgb(255, 255, 255); @@ -1861,6 +2391,7 @@ button.platform-tag:focus-visible { --color-text-light: rgba(0, 0, 0, 0.7); --color-text-light-dt: rgba(255, 255, 255, 0.7); --color-w05: rgba(255, 255, 255, 0.05); + --color-w08: rgba(255, 255, 255, 0.08); --color-w10: rgba(255, 255, 255, 0.1); --color-w16: rgba(255, 255, 255, 0.16); --color-w50: rgba(255, 255, 255, 0.5); @@ -1924,7 +2455,7 @@ button.platform-tag:focus-visible { :root { --color-background: var(--color-background-page); - --focus-outline: 4px solid var(--color-key-blue-05); + --focus-outline: 4px solid var(--color-key-blue-50); } .theme-dark { diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.min.css b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.min.css index 5478b6a5ec..1afa4696d9 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.min.css +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.min.css @@ -1,14 +1,15 @@ -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.button{align-items:center;background-color:transparent;border:none;border-radius:4px;border-radius:var(--size-s1);color:#000;color:var(--color-text);cursor:pointer;display:flex;height:40px;justify-content:center;letter-spacing:.045em;padding:8px 12px;padding:var(--size-s2) 12px}.button[\:has\(\:first-child\)]{gap:8px;gap:var(--size-s2);padding:8px;padding:var(--size-s2)}.button:has(:first-child){gap:8px;gap:var(--size-s2);padding:8px;padding:var(--size-s2)}.button:hover{background-color:rgba(0,0,0,.08);background-color:var(--color-b08)}.button:active{background-color:#307fff;background-color:var(--color-key-blue)}.button:disabled{cursor:not-allowed;opacity:.5}.button.focus-visible{outline:var(--focus-outline)}.button:focus-visible{outline:var(--focus-outline)}.theme-dark .button{color:hsla(0,0%,100%,.96);color:var(--color-text-dt)}.theme-dark .button:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}.button_background{background-color:#fff;background-color:var(--color-w100)}.theme-dark .button_background{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}.theme-dark .button_background:hover{background-color:hsla(0,0%,100%,.05);background-color:var(--color-w05)}.button_dropdown{padding:8px;padding:var(--size-s2)}.button_dropdown:after{background-image:url(assets/arrow-down.svg);background-repeat:no-repeat;content:"";display:block;filter:invert(1);height:24px;height:var(--size-m1);transform:rotate(0);width:24px;width:var(--size-m1);will-change:transform}.theme-dark .button_dropdown:after{filter:none}.button_dropdown_active{background-color:#307fff;background-color:var(--color-key-blue);color:hsla(0,0%,100%,.96);color:var(--color-text-dt)}.button_dropdown_active:hover,.theme-dark .button_dropdown_active:hover{background-color:#639fff}.button_dropdown_active:after{filter:invert(0);transform:rotate(-180deg)} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.checkbox{cursor:pointer;display:inline-block;position:relative}.checkbox--input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;visibility:hidden}.checkbox--icon{background-image:url(assets/checkbox-off.svg);height:24px;height:var(--size-m1);margin-left:-32px;margin-left:calc(var(--size-m2)*-1);position:absolute;width:24px;width:var(--size-m1)}.checkbox--input:checked+.checkbox--icon{background-image:url(assets/checkbox-on.svg)}.checkbox--input:disabled+.checkbox--icon{opacity:.2}.checkbox--input.focus-visible{outline:var(--focus-outline)}.checkbox--input:focus-visible{outline:var(--focus-outline)} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.dropdown{position:relative}@media(max-width:899px){.dropdown{position:static}}.dropdown--list{background-color:#323237;background-color:var(--color-background-nav-dt);border:1px solid #56565f;box-shadow:0 2px 8px 0 rgba(0,0,0,.251);display:none;max-height:400px;max-width:360px;min-width:272px;overflow-y:auto;padding:12px 0;position:absolute;right:0;top:44px;z-index:10}@media(max-width:899px){.dropdown--list{border:none;height:100vh;max-height:none;padding:0;right:0;top:0}}@media(max-width:439px){.dropdown--list{max-width:none;width:100vw}}.dropdown--list_expanded{display:block}.dropdown--option{background-color:#323237;background-color:var(--color-background-nav-dt);border:none;color:var(--color-text-nav-dt);cursor:pointer;display:block;font:400 16px/24px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-text-m);letter-spacing:-.03em;list-style-type:none;padding:8px 16px;padding:var(--size-s2) var(--size-s3);position:relative;text-transform:capitalize}.dropdown--option:hover{background-color:#4a4a52}.dropdown--option.focus-visible{outline:var(--focus-outline);z-index:1}.dropdown--option:focus-visible{outline:var(--focus-outline);z-index:1}.dropdown--option:visited{color:var(--color-text-nav-dt)}.dropdown--option_active{background-color:#307fff;background-color:var(--color-key-blue)}.dropdown--option_active:hover{background-color:#639fff}.dropdown--option_link{color:var(--color-text-nav-dt);text-decoration:none}.dropdown--option_link.focus-visible{outline:var(--focus-outline)}.dropdown--option_link:focus-visible{outline:var(--focus-outline)}.dropdown--option .checkbox{pointer-events:none}.dropdown--overlay{background-color:hsla(0,0%,54%,.5);bottom:0;content:"";display:none;height:100vh;left:0;position:absolute;right:0;top:0;width:100vw;z-index:1}.dropdown--list_expanded+.dropdown--overlay{display:block}@media(min-width:900px){.dropdown--list_expanded+.dropdown--overlay{display:none}}.dropdown--header{align-items:center;background-color:#323237;background-color:var(--color-background-nav-dt);border-bottom:1px solid #56565f;color:hsla(0,0%,100%,.7);color:var(--color-w70);display:flex;justify-content:space-between;padding-left:16px;padding-left:var(--size-s3);position:sticky;top:0;z-index:2}@media(min-width:900px){.dropdown--header{display:none}} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.filter-section{align-items:center;display:flex;flex-wrap:wrap;gap:2px;justify-content:flex-end;margin-right:12px;max-height:40px;z-index:1}.filter-section_loading{overflow:hidden}@media(min-width:900px){.filter-section--dropdown{display:none}}.filter-section--dropdown-toggle_as-filters{background-image:url(assets/filter.svg);background-position:50% 50%;background-repeat:no-repeat;min-width:40px}.filter-section--dropdown-toggle_as-filters:after{display:none}@media(max-width:899px){.filter-section{margin-right:0;max-height:none}.filter-section>:not(.dropdown){display:none}.filter-section--dropdown-toggle{background-image:url(assets/filter.svg);background-position:50% 50%;background-repeat:no-repeat}.filter-section--dropdown-toggle:after{display:none}}.no-js .filter-section{display:none} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.ui-kit-icon{background-color:transparent;background-position:50% 50%;background-repeat:no-repeat;background-size:24px 24px;filter:invert(1);font-size:0;height:24px;height:var(--size-m1);line-height:0;width:24px;width:var(--size-m1);will-change:background-color}.theme-dark .ui-kit-icon{filter:none}.ui-kit-icon_arrow-down{background-image:url(assets/arrow-down.svg)}.ui-kit-icon_placeholder{background-image:url(assets/placeholder.svg)}.ui-kit-icon_cross{background-image:url(assets/cross.svg)} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out;--dokka-logo-height:28px;--dokka-logo-width:28px}.library-name--link{align-items:center;color:hsla(0,0%,100%,.96);color:var(--color-text-dt);display:flex;font:600 16px/24px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-h4);margin-right:8px;margin-right:var(--size-s2);white-space:nowrap}.library-name--link.focus-visible{outline:var(--focus-outline)}.library-name--link:focus-visible{outline:var(--focus-outline)}@media(max-width:899px){.library-name--link{height:52px;margin-left:12px}}.library-name--link:before{background:var(--dokka-logo-image-url) center no-repeat;background-size:28px 28px;background-size:var(--dokka-logo-height) var(--dokka-logo-width);content:"";height:28px;height:var(--dokka-logo-width);margin-right:8px;margin-right:var(--size-s2);width:28px;width:var(--dokka-logo-height)} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.library-version{color:hsla(0,0%,100%,.96);color:var(--color-text-dt);font:400 14px/20px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-text-s)}@media(max-width:899px){.library-version{align-items:center;background-color:#000;background-color:var(--color-text);display:flex;height:52px}} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.navigation{align-items:center;background-color:#27282c;background-color:var(--color-background-nav);box-sizing:border-box;color:hsla(0,0%,100%,.96);color:var(--color-text-dt);display:flex;flex-wrap:nowrap;justify-content:flex-start;padding:12px 24px;padding:12px var(--size-m1);z-index:4}@media(max-width:899px){.navigation{flex-wrap:wrap;height:auto;padding:0}}.theme-dark .navigation{background-color:#323237;background-color:var(--color-background-nav-dt)}@media(max-width:899px){.navigation .button{height:52px;min-width:52px}} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.navigation-controls{align-items:center;display:flex;gap:4px;gap:var(--size-s1);margin-left:auto}@media(max-width:899px){.navigation-controls{background-color:#000;background-color:var(--color-text);flex-grow:1;gap:0;justify-content:flex-end}}.no-js .navigation-controls{display:none}.navigation-controls--btn{align-items:center;background-color:inherit;background-position:50% 50%;background-repeat:no-repeat;background-size:24px 24px;border:none;border-radius:4px;border-radius:var(--size-s1);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:0;height:40px;justify-content:center;line-height:0;padding:0;transition:background-color .2s ease-in-out;transition:var(--hover-transition);width:40px;will-change:background-color;z-index:0}.navigation-controls--btn:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}.navigation-controls--btn.focus-visible{outline:var(--focus-outline)}.navigation-controls--btn:focus-visible{outline:var(--focus-outline)}@media(max-width:899px){.navigation-controls--btn{height:52px;width:52px}}.navigation-controls--break{flex-basis:100%}.navigation-controls--btn_theme{background-image:url(assets/theme-toggle.svg)}.navigation-controls--btn_homepage{background-image:url(assets/homepage.svg)}.navigation-controls--btn_menu{background-image:url(assets/burger.svg);margin-left:auto} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.platform-tag{--platform-tag-color:#bababb;border:0;border-radius:4px;border-radius:var(--size-s1);font:400 14px/20px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-text-s);letter-spacing:-.03em;padding:10px 12px;text-transform:capitalize}button.platform-tag{cursor:pointer}button.platform-tag.focus-visible{outline:var(--focus-outline)}button.platform-tag:focus-visible{outline:var(--focus-outline)}.platform-selector-option{padding-left:44px}.platform-selector-option.js-like,.platform-selector-option.jvm-like,.platform-selector-option.wasm-like,.platform-tag.js-like,.platform-tag.jvm-like,.platform-tag.wasm-like{text-transform:uppercase}.platform-tags .platform-tag{align-items:center;display:flex}.filter-section .platform-tag[data-active]{background-color:var(--platform-tag-color);color:#19191c}.filter-section .platform-tag.jvm-like[data-active],.platform-tags .platform-tag.jvm-like{--platform-tag-color:#4dbb5f}.filter-section .platform-tag.js-like[data-active],.platform-tags .platform-tag.js-like{--platform-tag-color:#ffc700}.filter-section .platform-tag.native-like[data-active],.platform-tags .platform-tag.native-like{--platform-tag-color:#e082f3}.filter-section .platform-tag.wasm-like[data-active],.platform-tags .platform-tag.wasm-like{--platform-tag-color:#9585f9}.filter-section .platform-tag[data-active]:hover{background-color:hsla(240,1%,73%,.7);color:#fff}.filter-section .platform-tag:not([data-active]){background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10);color:hsla(0,0%,100%,.5);color:var(--color-w50);text-decoration:line-through}.platform-tags .platform-tag:before{background:var(--platform-tag-color);border-radius:50%;content:"";display:inline-block;font-size:13px;height:8px;line-height:1.6;margin:0 4px 0 8px;width:8px} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.platform-tags{display:flex;flex-wrap:wrap;margin-bottom:-8px;margin-left:-4px} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.platform-hinted>.platform-bookmarks-row,.tabs-section{margin-left:-8px;margin-right:-8px}.platform-hinted>.platform-bookmarks-row>.platform-bookmark,.section-tab{background-color:transparent;border:0;border-bottom:1px solid var(--inactive-tab-border-color);color:var(--inactive-section-color);cursor:pointer;font-size:var(--default-font-size);margin:0 8px;outline:none;padding:11px 3px}.platform-hinted>.platform-bookmarks-row{margin-bottom:16px;margin-bottom:var(--size-s3)}.no-js .platform-bookmarks-row+.sourceset-dependent-content{margin-top:8px;margin-top:var(--size-s2)}.no-js .platform-bookmarks-row+.sourceset-dependent-content:last-of-type{margin-top:0}.section-tab:hover{border-bottom:2px solid var(--default-font-color);color:var(--default-font-color)}.section-tab[data-active=""]{border-bottom:2px solid var(--active-tab-border-color);color:var(--active-section-color)}.tabs-section-body>div{margin-top:12px}.tabs-section-body .with-platform-tabs{padding-bottom:12px;padding-top:12px}.platform-hinted{display:block;flex:auto}.platform-hinted>.platform-bookmarks-row>.platform-bookmark{align-self:flex-start;background:inherit;flex:none;min-width:64px;min-width:var(--size-l1);order:5}.platform-hinted>.platform-bookmarks-row>.platform-bookmark:hover{border-bottom:2px solid var(--default-font-color);color:var(--default-font-color)}.platform-hinted>.platform-bookmarks-row>.platform-bookmark[data-active=""]{border-bottom:2px solid var(--active-tab-border-color);color:var(--active-section-color)}.js .platform-hinted>.content:not([data-active]),.js .tabs-section-body [data-togglable]:not([data-active]),.main-content[data-page-type=package] .tabs-section-body h2,.no-js .platform-bookmarks-row,.no-js .tabs-section{display:none} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}@media(max-width:899px){.ui-kit_desktop-only{display:none}}@media(min-width:900px){.ui-kit_mobile-only{display:none}} -:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-05:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out;--color-background:var(--color-background-page);--focus-outline:4px solid var(--color-key-blue-05)}.theme-dark{--color-background:var(--color-background-page-dt)}body,table{background-color:#fff;background-color:var(--color-background)} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.button{align-items:center;background-color:transparent;border:none;border-radius:4px;border-radius:var(--size-s1);color:#000;color:var(--color-text);cursor:pointer;display:flex;height:40px;justify-content:center;letter-spacing:.045em;padding:8px 12px;padding:var(--size-s2) 12px}.button[\:has\(\:first-child\)]{gap:8px;gap:var(--size-s2);padding:8px;padding:var(--size-s2)}.button:has(:first-child){gap:8px;gap:var(--size-s2);padding:8px;padding:var(--size-s2)}@media(hover:hover){.button:hover{background-color:rgba(0,0,0,.08);background-color:var(--color-b08)}}.button:active{background-color:#307fff;background-color:var(--color-key-blue)}.button:disabled{cursor:not-allowed;opacity:.5}.button.focus-visible{outline:var(--focus-outline)}.button:focus-visible{outline:var(--focus-outline)}.theme-dark .button{color:hsla(0,0%,100%,.96);color:var(--color-text-dt)}.theme-dark .button:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}.button_background{background-color:#fff;background-color:var(--color-w100)}.theme-dark .button_background{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}.theme-dark .button_background:hover{background-color:hsla(0,0%,100%,.05);background-color:var(--color-w05)}.button_dropdown{font:400 14px/20px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-text-s);padding:8px;padding:var(--size-s2)}.button_dropdown:after{background-image:url(assets/arrow-down.svg);background-repeat:no-repeat;content:"";display:block;filter:invert(1);height:24px;height:var(--size-m1);transform:rotate(0);width:24px;width:var(--size-m1);will-change:transform}.theme-dark .button_dropdown:after{filter:none}.button_dropdown_active{background-color:#307fff;background-color:var(--color-key-blue);color:hsla(0,0%,100%,.96);color:var(--color-text-dt)}.button_dropdown_active:hover,.theme-dark .button_dropdown_active:hover{background-color:#639fff}.button_dropdown_active:after{filter:invert(0);transform:rotate(-180deg)} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.checkbox{cursor:pointer;display:inline-block;position:relative}.checkbox--input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;visibility:hidden}.checkbox--icon{background-image:url(assets/checkbox-off.svg);height:24px;height:var(--size-m1);margin-left:-32px;margin-left:calc(var(--size-m2)*-1);position:absolute;width:24px;width:var(--size-m1)}.checkbox--input:checked+.checkbox--icon{background-image:url(assets/checkbox-on.svg)}.checkbox--input:disabled+.checkbox--icon{opacity:.2}.checkbox--input.focus-visible{outline:var(--focus-outline)}.checkbox--input:focus-visible{outline:var(--focus-outline)} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.dropdown{position:relative}@media(max-width:899px){.dropdown{position:static}}.dropdown--list{background-color:#323237;background-color:var(--color-background-nav-dt);border:1px solid #56565f;box-shadow:0 2px 8px 0 rgba(0,0,0,.251);display:none;max-height:400px;max-width:360px;min-width:272px;overflow-y:auto;padding:12px 0;position:absolute;right:0;top:44px;width:-moz-fit-content;width:fit-content;z-index:10}@media(max-width:899px){.dropdown--list{border:none;height:100vh;max-height:none;padding:0;right:0;top:0}}@media(max-width:439px){.dropdown--list{max-width:none;width:100vw}}.dropdown--list_positioned_right{right:0}.dropdown--list_positioned_left{left:0}@media(max-width:899px){.dropdown--list_positioned_left{left:auto}}.dropdown--list_expanded{display:block}@media(min-width:900px){.dropdown--list_toc-list{background-color:transparent;border:none;box-shadow:none;display:block;max-height:none;max-width:none;min-width:0;min-width:auto;padding:0;position:relative;top:0}}@media(min-width:440px)and (max-width:899px){.dropdown--list_toc-list{width:408px}}.dropdown--option{background-color:#323237;background-color:var(--color-background-nav-dt);border:none;color:var(--color-text-nav-dt);cursor:pointer;display:block;font:400 16px/24px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-text-m);letter-spacing:-.03em;list-style-type:none;padding:8px 16px;padding:var(--size-s2) var(--size-s3);position:relative;text-transform:capitalize}.dropdown--option:hover{background-color:#4a4a52}.dropdown--option.focus-visible{outline:var(--focus-outline);z-index:1}.dropdown--option:focus-visible{outline:var(--focus-outline);z-index:1}.dropdown--option:visited{color:var(--color-text-nav-dt)}.dropdown--option_active{background-color:#307fff;background-color:var(--color-key-blue)}.dropdown--option_active:hover{background-color:#639fff}.dropdown--option_link{color:var(--color-text-nav-dt);text-decoration:none}.dropdown--option_link.focus-visible{outline:var(--focus-outline)}.dropdown--option_link:focus-visible{outline:var(--focus-outline)}.dropdown--option .checkbox{pointer-events:none}.dropdown--overlay{background-color:hsla(0,0%,54%,.5);bottom:0;content:"";display:none;height:100vh;left:0;position:absolute;right:0;top:0;width:100vw;z-index:4}.dropdown--list_expanded+.dropdown--overlay{display:block}@media(min-width:900px){.dropdown--list_expanded+.dropdown--overlay{display:none}}.dropdown--header{align-items:center;background-color:#323237;background-color:var(--color-background-nav-dt);border-bottom:1px solid #56565f;color:hsla(0,0%,100%,.7);color:var(--color-w70);display:flex;height:52px;justify-content:space-between;padding-left:16px;padding-left:var(--size-s3);position:sticky;top:0;z-index:2}@media(min-width:900px){.dropdown--header{display:none}} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.filter-section{align-items:center;display:flex;flex-wrap:wrap;gap:2px;justify-content:flex-end;margin-right:12px;max-height:40px;z-index:1}.filter-section_loading{overflow:hidden}@media(min-width:900px){.filter-section--dropdown{display:none}}.filter-section--dropdown-toggle_as-filters{background-image:url(assets/filter.svg);background-position:50% 50%;background-repeat:no-repeat;min-width:40px}.filter-section--dropdown-toggle_as-filters:after{display:none}@media(max-width:899px){.filter-section{margin-right:0;max-height:none}.filter-section>:not(.dropdown){display:none}.filter-section--dropdown-toggle{background-image:url(assets/filter.svg);background-position:50% 50%;background-repeat:no-repeat}.filter-section--dropdown-toggle:after{display:none}}.no-js .filter-section{display:none} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.ui-kit-icon{background-color:transparent;background-position:50% 50%;background-repeat:no-repeat;background-size:24px 24px;filter:invert(1);font-size:0;height:24px;height:var(--size-m1);line-height:0;width:24px;width:var(--size-m1);will-change:background-color}.theme-dark .ui-kit-icon{filter:none}@media(max-width:899px){.theme-dark_mobile .ui-kit-icon{filter:none}}.ui-kit-icon_arrow-down{background-image:url(assets/arrow-down.svg)}.ui-kit-icon_placeholder{background-image:url(assets/placeholder.svg)}.ui-kit-icon_cross{background-image:url(assets/cross.svg)} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out;--dokka-logo-height:28px;--dokka-logo-width:28px}.library-name--link{align-items:center;color:hsla(0,0%,100%,.96);color:var(--color-text-dt);display:flex;font:600 16px/24px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-h4);margin-right:8px;margin-right:var(--size-s2);white-space:nowrap}.library-name--link.focus-visible{outline:var(--focus-outline)}.library-name--link:focus-visible{outline:var(--focus-outline)}@media(max-width:899px){.library-name--link{height:52px;margin-left:12px}}.library-name--link:before{background:var(--dokka-logo-image-url) center no-repeat;background-size:28px 28px;background-size:var(--dokka-logo-height) var(--dokka-logo-width);content:"";height:28px;height:var(--dokka-logo-width);margin-right:8px;margin-right:var(--size-s2);width:28px;width:var(--dokka-logo-height)} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.library-version{box-sizing:border-box;color:hsla(0,0%,100%,.96);color:var(--color-text-dt);font:400 14px/20px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-text-s);padding-top:1px}@media(max-width:899px){.library-version{align-items:center;background-color:#000;background-color:var(--color-text);display:flex;height:52px;padding-left:12px}} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.navigation{align-items:center;background-color:#27282c;background-color:var(--color-background-nav);box-sizing:border-box;color:hsla(0,0%,100%,.96);color:var(--color-text-dt);display:flex;flex-wrap:nowrap;justify-content:flex-start;padding:12px 24px;padding:12px var(--size-m1);z-index:4}@media(max-width:899px){.navigation{flex-wrap:wrap;height:auto;padding:0}}.theme-dark .navigation{background-color:#323237;background-color:var(--color-background-nav-dt)}@media(max-width:899px){.navigation .button{height:52px;min-width:52px}} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.navigation-controls{align-items:center;display:flex;gap:4px;gap:var(--size-s1);margin-left:auto}@media(max-width:899px){.navigation-controls{background-color:#000;background-color:var(--color-text);flex-grow:1;gap:0;justify-content:flex-end}}.no-js .navigation-controls{display:none}.navigation-controls--btn{align-items:center;background-color:inherit;background-position:50% 50%;background-repeat:no-repeat;background-size:24px 24px;border:none;border-radius:4px;border-radius:var(--size-s1);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:0;height:40px;justify-content:center;line-height:0;padding:0;transition:background-color .2s ease-in-out;transition:var(--hover-transition);width:40px;will-change:background-color;z-index:0}@media(hover:hover){.navigation-controls--btn:hover{background-color:rgba(0,0,0,.08);background-color:var(--color-b08)}}.navigation-controls--btn:active{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}.navigation-controls--btn.focus-visible{outline:var(--focus-outline)}.navigation-controls--btn:focus-visible{outline:var(--focus-outline)}@media(max-width:899px){.navigation-controls--btn{height:52px;width:52px}}.navigation-controls--break{flex-basis:100%}.navigation-controls--btn_theme{background-image:url(assets/theme-toggle.svg)}.navigation-controls--btn_homepage{background-image:url(assets/homepage.svg)}.navigation-controls--btn_toc{background-image:url(assets/burger.svg);margin-left:auto} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.platform-tag{--platform-tag-color:#bababb;border:0;border-radius:4px;border-radius:var(--size-s1);font:400 14px/20px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--font-text-s);padding:10px 12px;text-transform:capitalize}.platform-tag,button.platform-tag{cursor:pointer}button.platform-tag.focus-visible{outline:var(--focus-outline)}button.platform-tag:focus-visible{outline:var(--focus-outline)}.platform-selector-option{padding-left:44px}.platform-selector-option.js-like,.platform-selector-option.jvm-like,.platform-selector-option.wasm-like,.platform-tag.js-like,.platform-tag.jvm-like,.platform-tag.wasm-like{text-transform:uppercase}.platform-tags .platform-tag{align-items:center;display:flex}.filter-section .platform-tag[data-active]{background-color:var(--platform-tag-color);color:#19191c}.filter-section .platform-tag.jvm-like[data-active],.platform-tags .platform-tag.jvm-like{--platform-tag-color:#4dbb5f}.filter-section .platform-tag.js-like[data-active],.platform-tags .platform-tag.js-like{--platform-tag-color:#ffc700}.filter-section .platform-tag.native-like[data-active],.platform-tags .platform-tag.native-like{--platform-tag-color:#e082f3}.filter-section .platform-tag.wasm-like[data-active],.platform-tags .platform-tag.wasm-like{--platform-tag-color:#9585f9}@media(hover:hover){.filter-section .platform-tag[data-active]:hover{background-color:hsla(240,1%,73%,.7);color:#fff}}.filter-section .platform-tag[data-active]:active{background-color:hsla(240,1%,73%,.7);color:#fff}.filter-section .platform-tag:not([data-active]){background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10);color:hsla(0,0%,100%,.5);color:var(--color-w50);text-decoration:line-through}.platform-tags .platform-tag:before{background:var(--platform-tag-color);border-radius:50%;content:"";display:inline-block;font-size:13px;height:8px;line-height:1.6;margin:0 4px 0 8px;width:8px} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.platform-tags{display:flex;flex-wrap:wrap;margin-bottom:-8px;margin-left:-4px} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}.platform-hinted>.platform-bookmarks-row,.tabs-section{margin-left:-8px;margin-right:-8px}.platform-hinted>.platform-bookmarks-row>.platform-bookmark,.section-tab{background-color:transparent;border:0;border-bottom:1px solid var(--inactive-tab-border-color);color:var(--inactive-section-color);cursor:pointer;font-size:var(--default-font-size);margin:0 8px;outline:none;padding:11px 3px}.platform-hinted>.platform-bookmarks-row{margin-bottom:16px;margin-bottom:var(--size-s3)}.no-js .platform-bookmarks-row+.sourceset-dependent-content{margin-top:8px;margin-top:var(--size-s2)}.no-js .platform-bookmarks-row+.sourceset-dependent-content:last-of-type{margin-top:0}.section-tab:hover{border-bottom:2px solid var(--default-font-color);color:var(--default-font-color)}.section-tab[data-active=""]{border-bottom:2px solid var(--active-tab-border-color);color:var(--active-section-color)}.tabs-section-body>div{margin-top:12px}.tabs-section-body .with-platform-tabs{padding-bottom:12px;padding-top:12px}.platform-hinted{display:block;flex:auto}.platform-hinted>.platform-bookmarks-row>.platform-bookmark{align-self:flex-start;background:inherit;flex:none;min-width:64px;min-width:var(--size-l1);order:5}.platform-hinted>.platform-bookmarks-row>.platform-bookmark:hover{border-bottom:2px solid var(--default-font-color);color:var(--default-font-color)}.platform-hinted>.platform-bookmarks-row>.platform-bookmark[data-active=""]{border-bottom:2px solid var(--active-tab-border-color);color:var(--active-section-color)}.js .platform-hinted>.content:not([data-active]),.js .tabs-section-body [data-togglable]:not([data-active]),.main-content[data-page-type=package] .tabs-section-body h2,.no-js .platform-bookmarks-row,.no-js .tabs-section{display:none} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out;--toc-hover-color:var(--color-b08);--toc-font:400 13px/24px var(--font-family-default);--toc-color:var(--color-text)}.theme-dark{--toc-hover-color:var(--color-w08);--toc-color:var(--color-text-dt)}@media(max-width:899px){.theme-dark_mobile{--toc-color:var(--color-text-dt);--toc-hover-color:var(--color-w08)}}.toc--part{color:#000;color:var(--toc-color);font:400 13px/24px JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Oxygen,Droid Sans,Helvetica Neue,Arial;font:var(--toc-font)}.toc--part,.toc--row{box-sizing:border-box}.toc--row{align-items:center;display:flex;min-height:40px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toc--button{align-items:center;background-color:inherit;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;height:100%;justify-content:flex-end;min-width:40px;padding:0 8px 0 0;position:absolute;transition:background-color .2s ease-in-out;transition:var(--hover-transition);will-change:background-color}.toc--button:after{background-image:url(assets/arrow-down.svg);background-repeat:no-repeat;background-size:24px 24px;content:" ";filter:invert(1);font-size:0;height:24px;line-height:0;transform:rotate(0deg);width:24px}.toc--part_hidden .toc--button:after{transform:rotate(-90deg)}.theme-dark .toc--button:after{filter:invert(0)}@media(max-width:899px){.theme-dark_mobile .toc--button:after{filter:invert(0)}}@media(hover:hover){.toc--button:hover{background-color:rgba(0,0,0,.08);background-color:var(--toc-hover-color)}}.toc--button:active{background-color:rgba(0,0,0,.08);background-color:var(--toc-hover-color)}.toc--button.focus-visible{outline:var(--focus-outline);outline-offset:-4px}.toc--button:focus-visible{outline:var(--focus-outline);outline-offset:-4px}.toc--link{box-sizing:border-box;color:inherit;height:calc(100% - 16px);min-height:40px;padding:8px 0;width:100%}.toc--link:hover{background-color:rgba(0,0,0,.08);background-color:var(--toc-hover-color)}.toc--link.focus-visible{outline:var(--focus-outline);outline-offset:-4px}.toc--link:focus-visible{outline:var(--focus-outline);outline-offset:-4px}.toc--part[data-nesting-level="0"] .toc--row>.toc--link:first-child{padding-left:40px;padding-left:calc(40px + var(--size-m1)*0)}.toc--part[data-nesting-level="0"] .toc--button+.toc--link{margin-left:40px;margin-left:calc(40px + var(--size-m1)*0)}.toc--part[data-nesting-level="0"] .toc--button{width:40px;width:calc(40px + var(--size-m1)*0)}.toc--part[data-nesting-level="1"] .toc--row>.toc--link:first-child{padding-left:64px;padding-left:calc(40px + var(--size-m1)*1)}.toc--part[data-nesting-level="1"] .toc--button+.toc--link{margin-left:64px;margin-left:calc(40px + var(--size-m1)*1)}.toc--part[data-nesting-level="1"] .toc--button{width:64px;width:calc(40px + var(--size-m1)*1)}.toc--part[data-nesting-level="2"] .toc--row>.toc--link:first-child{padding-left:88px;padding-left:calc(40px + var(--size-m1)*2)}.toc--part[data-nesting-level="2"] .toc--button+.toc--link{margin-left:88px;margin-left:calc(40px + var(--size-m1)*2)}.toc--part[data-nesting-level="2"] .toc--button{width:88px;width:calc(40px + var(--size-m1)*2)}.toc--part[data-nesting-level="3"] .toc--row>.toc--link:first-child{padding-left:112px;padding-left:calc(40px + var(--size-m1)*3)}.toc--part[data-nesting-level="3"] .toc--button+.toc--link{margin-left:112px;margin-left:calc(40px + var(--size-m1)*3)}.toc--part[data-nesting-level="3"] .toc--button{width:112px;width:calc(40px + var(--size-m1)*3)}.toc--part[data-nesting-level="4"] .toc--row>.toc--link:first-child{padding-left:136px;padding-left:calc(40px + var(--size-m1)*4)}.toc--part[data-nesting-level="4"] .toc--button+.toc--link{margin-left:136px;margin-left:calc(40px + var(--size-m1)*4)}.toc--part[data-nesting-level="4"] .toc--button{width:136px;width:calc(40px + var(--size-m1)*4)}.toc--part[data-nesting-level="5"] .toc--row>.toc--link:first-child{padding-left:160px;padding-left:calc(40px + var(--size-m1)*5)}.toc--part[data-nesting-level="5"] .toc--button+.toc--link{margin-left:160px;margin-left:calc(40px + var(--size-m1)*5)}.toc--part[data-nesting-level="5"] .toc--button{width:160px;width:calc(40px + var(--size-m1)*5)}.toc--part[data-nesting-level="6"] .toc--row>.toc--link:first-child{padding-left:184px;padding-left:calc(40px + var(--size-m1)*6)}.toc--part[data-nesting-level="6"] .toc--button+.toc--link{margin-left:184px;margin-left:calc(40px + var(--size-m1)*6)}.toc--part[data-nesting-level="6"] .toc--button{width:184px;width:calc(40px + var(--size-m1)*6)}.toc--part[data-nesting-level="7"] .toc--row>.toc--link:first-child{padding-left:208px;padding-left:calc(40px + var(--size-m1)*7)}.toc--part[data-nesting-level="7"] .toc--button+.toc--link{margin-left:208px;margin-left:calc(40px + var(--size-m1)*7)}.toc--part[data-nesting-level="7"] .toc--button{width:208px;width:calc(40px + var(--size-m1)*7)}.toc--part[data-nesting-level="8"] .toc--row>.toc--link:first-child{padding-left:232px;padding-left:calc(40px + var(--size-m1)*8)}.toc--part[data-nesting-level="8"] .toc--button+.toc--link{margin-left:232px;margin-left:calc(40px + var(--size-m1)*8)}.toc--part[data-nesting-level="8"] .toc--button{width:232px;width:calc(40px + var(--size-m1)*8)}.toc--part[data-nesting-level="9"] .toc--row>.toc--link:first-child{padding-left:256px;padding-left:calc(40px + var(--size-m1)*9)}.toc--part[data-nesting-level="9"] .toc--button+.toc--link{margin-left:256px;margin-left:calc(40px + var(--size-m1)*9)}.toc--part[data-nesting-level="9"] .toc--button{width:256px;width:calc(40px + var(--size-m1)*9)}.toc--part[data-nesting-level="10"] .toc--row>.toc--link:first-child{padding-left:280px;padding-left:calc(40px + var(--size-m1)*10)}.toc--part[data-nesting-level="10"] .toc--button+.toc--link{margin-left:280px;margin-left:calc(40px + var(--size-m1)*10)}.toc--part[data-nesting-level="10"] .toc--button{width:280px;width:calc(40px + var(--size-m1)*10)}.filtered>.toc--button,.toc .filtered>a{display:none}.toc #nav-submenu{padding-left:24px}.toc--part_hidden>.toc--part{display:none}.toc--row .toc--link-grid{display:grid;grid-template-columns:16px auto;grid-gap:6px;align-items:center}.toc--icon{height:16px;width:16px}.toc--icon.class:before{content:url(assets/class.svg)}.toc--icon.class-kt:before{content:url(assets/class-kotlin.svg)}.toc--icon.function:before{content:url(assets/function.svg)}.toc--icon.enum-class:before{content:url(assets/enum.svg)}.toc--icon.enum-class-kt:before{content:url(assets/enum-kotlin.svg)}.toc--icon.annotation-class:before{content:url(assets/annotation.svg)}.toc--icon.annotation-class-kt:before{content:url(assets/annotation-kotlin.svg)}.toc--icon.abstract-class:before{content:url(assets/abstract-class.svg)}.toc--icon.abstract-class-kt:before{content:url(assets/abstract-class-kotlin.svg)}.toc--icon.exception-class:before{content:url(assets/exception-class.svg)}.toc--icon.interface:before{content:url(assets/interface.svg)}.toc--icon.interface-kt:before{content:url(assets/interface-kotlin.svg)}.toc--icon.object:before{content:url(assets/object.svg)}.toc--icon.typealias-kt:before{content:url(assets/typealias-kotlin.svg)}.toc--icon.val:before{content:url(assets/field-value.svg)}.toc--icon.var:before{content:url(assets/field-variable.svg)}.toc--part[data-active]>.toc--row .toc--button,.toc--part[data-active]>.toc--row .toc--link{background-color:#307fff;background-color:var(--color-key-blue);color:hsla(0,0%,100%,.96);color:var(--color-text-dt)}.toc--part[data-active]>.toc--row .toc--button:hover,.toc--part[data-active]>.toc--row .toc--link:hover{background-color:#578af7}.toc--part[data-active]>.toc--row .toc--button:after,.toc--part[data-active]>.toc--row .toc--link:after{filter:invert(0)}.sidebar{border-right:1px solid rgba(39,40,44,.2);box-sizing:border-box;overflow:auto;width:var(--sidebar-width)}@media(max-width:899px){.sidebar{border:none;width:0}}@media(min-width:900px){.sidebar{position:relative;z-index:1}}.theme-dark .sidebar{border-right-color:#56565f}.no-js .sidebar{display:none}.sidebar--inner{padding-bottom:12px;padding-top:12px} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out}@media(max-width:899px){.ui-kit_desktop-only{display:none}}@media(min-width:900px){.ui-kit_mobile-only{display:none}} +:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out;--color-background:var(--color-background-page);--focus-outline:4px solid var(--color-key-blue-50)}.theme-dark{--color-background:var(--color-background-page-dt)}body,table{background-color:#fff;background-color:var(--color-background)} diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.min.js b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.min.js index b257834525..a3224fd0e6 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.min.js +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/ui-kit.min.js @@ -1 +1,2 @@ -(()=>{"use strict";function t(e,n){return!(!e||!e.classList.contains(n))||!!e.parentElement&&t(e.parentElement,n)}function e(){return window.innerWidth<440?"mobile":window.innerWidth>=440&&window.innerWidth<900?"tablet":"desktop"}var n=function(){function t(t){this.trapElement=t,this.handleKeyDown=this.handleKeyDown.bind(this),this.trapElement.addEventListener("keydown",this.handleKeyDown)}return t.prototype.handleKeyDown=function(t){var e=Array.from(this.trapElement.querySelectorAll('[role="option"]')).filter((function(t){return"none"!==t.style.display&&-1!==t.tabIndex}));if(["Tab","ArrowDown","ArrowUp"].includes(t.key)&&0!==e.length){var n=e[0],o=e[e.length-1];if("ArrowUp"===t.key)if(document.activeElement===n)o.focus();else{var r=e.indexOf(document.activeElement);e[r-1].focus()}"ArrowDown"===t.key&&(document.activeElement===o?n.focus():(r=e.indexOf(document.activeElement),e[r+1].focus())),"Tab"===t.key&&(t.shiftKey?document.activeElement===n&&(o.focus(),t.preventDefault()):document.activeElement===o&&(n.focus(),t.preventDefault()))}},t.prototype.destroy=function(){this.trapElement.removeEventListener("keydown",this.handleKeyDown)},t}(),o='[data-role="dropdown-toggle"]',r='[data-role="dropdown-listbox"]';function i(t,e){var n,i=e.querySelectorAll(o);null==i||i.forEach(l),null==(n=e.querySelector(r))||n.classList.toggle("dropdown--list_expanded")}function l(t){t.classList.contains("button_dropdown")&&t.classList.toggle("button_dropdown_active")}function a(e){var n=e.target;t(n,"dropdown")&&"dropdown--overlay"!==n.className||document.querySelectorAll(".button_dropdown").forEach((function(t){var e,n;t.classList.remove("button_dropdown_active"),null===(n=null===(e=t.parentNode)||void 0===e?void 0:e.querySelector(".dropdown--list"))||void 0===n||n.classList.remove("dropdown--list_expanded")}))}function c(t){t.tag.removeAttribute("style"),t.option.setAttribute("style","display: none")}function d(t){t.tag.setAttribute("style","display: none"),t.option.removeAttribute("style")}function u(t){var e,n=null===(e=t.querySelector(".checkbox--input"))||void 0===e?void 0:e.getAttribute("data-filter"),o=filteringContext.activeFilters.findIndex((function(t){return t===n}));-1===o?filteringContext.activeFilters.push(n):filteringContext.activeFilters.splice(o,1),refreshFiltering(),refreshSourcesetsCache()}document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll('[data-role="dropdown"]').forEach((function(t){var e;null===(e=t.querySelectorAll(o))||void 0===e||e.forEach((function(e){e.addEventListener("click",(function(e){return i(0,t)}))})),function(t){new n(t),t.addEventListener("keydown",(function(e){var n;"Escape"===e.key&&(i(0,t),null===(n=t.querySelector(o))||void 0===n||n.focus())}))}(t)})),document.addEventListener("click",a)})),document.addEventListener("DOMContentLoaded",(function(){var t=document.getElementById("navigation-wrapper"),n=document.getElementById("library-version"),o=document.getElementById("filter-section"),r=document.querySelector("#filter-section + .navigation-controls--btn"),i=document.getElementById("filter-section-dropdown");if(t&&n&&o&&r&&i){var l=null==o?void 0:o.querySelectorAll(".dropdown--option"),a=null==o?void 0:o.querySelectorAll(".platform-selector");if(a&&l)if(a.length===l.length){var s=Array.from({length:a.length}).map((function(t,e){return{tag:a[e],option:l[e]}})),f=s.map((function(t){return t.tag.getBoundingClientRect().width})),v=e(),g=new ResizeObserver((function(){var n=e();v!==n&&(s.forEach(c),f=function(t){return t.map((function(t){return t.tag.getBoundingClientRect().width}))}(s)),v=n,y(),g.unobserve(t)})),m=function(){g.observe(t)};y(),m(),l.forEach((function(t){t.addEventListener("click",(function(t){u(t.target)})),t.addEventListener("keydown",(function(t){var e=t.key;"Enter"!==e&&" "!==e||u(t.target)}))})),window.addEventListener("resize",m)}else console.warn("Dokka: filter section items are not equal");else console.warn("Dokka: filter section items are not found")}else console.warn("Dokka: filter section is not found");function y(){var e,l;if(t&&i){if(t.getBoundingClientRect().width<900)return s.forEach(d),void i.removeAttribute("style");var a=(n&&r?r.getBoundingClientRect().left-n.getBoundingClientRect().right:0)-44-10,u=0;i.removeAttribute("style");var v=!1;s.forEach((function(t,e){(u+=f[e]+4)=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},f=function(){var t=!1;try{var e="__testLocalStorageKey__";localStorage.setItem(e,e),localStorage.removeItem(e),t=!0}catch(t){console.error("Local storage is not available",t)}return{getItem:function(e){return t?localStorage.getItem(e):null},setItem:function(e,n){t&&localStorage.setItem(e,n)}}}();function v(t){var e,n=null===(e=t.getAttribute("data-togglable"))||void 0===e?void 0:e.split(",");!function(){var e,n,o,r;try{for(var i=s(document.getElementsByClassName("tabs-section")),l=i.next();!l.done;l=i.next()){var a=l.value;try{for(var c=(o=void 0,s(a.children)),d=c.next();!d.done;d=c.next()){var u=d.value;u.getAttribute("data-togglable")===t.getAttribute("data-togglable")?u.setAttribute("data-active",""):u.removeAttribute("data-active")}}catch(t){o={error:t}}finally{try{d&&!d.done&&(r=c.return)&&r.call(c)}finally{if(o)throw o.error}}}}catch(t){e={error:t}}finally{try{l&&!l.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}}(),document.querySelectorAll(".tabs-section-body *[data-togglable]").forEach((function(t){var e=t.getAttribute("data-togglable");n&&e&&n.includes(e)?t.setAttribute("data-active",""):t.classList.contains("sourceset-dependent-content")||t.removeAttribute("data-active")}))}window.initTabs=function(){var t=document.querySelector(".main-content"),e="active-tab-"+(t?t.getAttribute("data-page-type"):null);document.querySelectorAll("div[tabs-section]").forEach((function(t){!function(t){var e=t.querySelector("button[data-active]");e&&v(e)}(t),t.addEventListener("click",(function(t){var n=t.target,o=n?n.getAttribute("data-togglable"):null;o&&(f.setItem(e,JSON.stringify(o)),v(n))}))}));var n=f.getItem(e);if(n){var o=document.querySelector('div[tabs-section] > button[data-togglable="'+JSON.parse(n)+'"]');o&&v(o)}},window.toggleSections=v})(); \ No newline at end of file +/*! For license information please see ui-kit.min.js.LICENSE.txt */ +(()=>{var e,r,t={352:e=>{"use strict";e.exports=i;var r=/(?:(?:\u001b\[)|\u009b)(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\u001b[A-M]/,t={reset:["fff","000"],black:"000",red:"ff0000",green:"209805",yellow:"e8bf03",blue:"0000ff",magenta:"ff00ff",cyan:"00ffee",lightgrey:"f0f0f0",darkgrey:"888"},o={30:"black",31:"red",32:"green",33:"yellow",34:"blue",35:"magenta",36:"cyan",37:"lightgrey"},n={1:"font-weight:bold",2:"opacity:0.5",3:"",4:"",8:"display:none",9:""},a={23:"",24:"",29:""};function i(e){if(!r.test(e))return e;var t=[],o=e.replace(/\033\[(\d+)m/g,(function(e,r){var o=n[r];if(o)return~t.indexOf(r)?(t.pop(),""):(t.push(r),"<"===o[0]?o:'');var i=a[r];return i?(t.pop(),i):""})),i=t.length;return i>0&&(o+=Array(i+1).join("")),o}function c(e){for(var r in n[0]="font-weight:normal;opacity:1;color:#"+e.reset[0]+";background:#"+e.reset[1],n[7]="color:#"+e.reset[1]+";background:#"+e.reset[0],n[90]="color:#"+e.darkgrey,o){var t=e[o[r]]||"000";n[r]="color:#"+t,r=parseInt(r),n[(r+10).toString()]="background:#"+t}}[0,21,22,27,28,39,49].forEach((function(e){a[e]=""})),i.setColors=function(e){if("object"!=typeof e)throw new Error("`colors` parameter must be an Object.");var r={};for(var o in t){var n=e.hasOwnProperty(o)?e[o]:null;if(n){if("reset"===o){if("string"==typeof n&&(n=[n]),!Array.isArray(n)||0===n.length||n.some((function(e){return"string"!=typeof e})))throw new Error("The value of `"+o+"` property must be an Array and each item could only be a hex string, e.g.: FF0000");var a=t[o];n[0]||(n[0]=a[0]),1!==n.length&&n[1]||(n=[n[0]]).push(a[1]),n=n.slice(0,2)}else if("string"!=typeof n)throw new Error("The value of `"+o+"` property must be a hex string, e.g.: FF0000");r[o]=n}else r[o]=t[o]}c(r)},i.reset=function(){c(t)},i.tags={},Object.defineProperty?(Object.defineProperty(i.tags,"open",{get:function(){return n}}),Object.defineProperty(i.tags,"close",{get:function(){return a}})):(i.tags.open=n,i.tags.close=a),i.reset()},7:e=>{"use strict";var r,t="object"==typeof Reflect?Reflect:null,o=t&&"function"==typeof t.apply?t.apply:function(e,r,t){return Function.prototype.apply.call(e,r,t)};r=t&&"function"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var n=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,r){return new Promise((function(t,o){function n(t){e.removeListener(r,a),o(t)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",n),t([].slice.call(arguments))}m(e,r,a,{once:!0}),"error"!==r&&function(e,r){"function"==typeof e.on&&m(e,"error",r,{once:!0})}(e,n)}))},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var i=10;function c(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function s(e,r,t,o){var n,a,i,s;if(c(t),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",r,t.listener?t.listener:t),a=e._events),i=a[r]),void 0===i)i=a[r]=t,++e._eventsCount;else if("function"==typeof i?i=a[r]=o?[t,i]:[i,t]:o?i.unshift(t):i.push(t),(n=l(e))>0&&i.length>n&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(r)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=r,u.count=i.length,s=u,console&&console.warn&&console.warn(s)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,r,t){var o={fired:!1,wrapFn:void 0,target:e,type:r,listener:t},n=u.bind(o);return n.listener=t,o.wrapFn=n,n}function p(e,r,t){var o=e._events;if(void 0===o)return[];var n=o[r];return void 0===n?[]:"function"==typeof n?t?[n.listener||n]:[n]:t?function(e){for(var r=new Array(e.length),t=0;t0&&(i=r[0]),i instanceof Error)throw i;var c=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw c.context=i,c}var l=a[e];if(void 0===l)return!1;if("function"==typeof l)o(l,this,r);else{var s=l.length,u=g(l,s);for(t=0;t=0;a--)if(t[a]===r||t[a].listener===r){i=t[a].listener,n=a;break}if(n<0)return this;0===n?t.shift():function(e,r){for(;r+1=0;o--)this.removeListener(e,r[o]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,r){return"function"==typeof e.listenerCount?e.listenerCount(r):f.call(e,r)},a.prototype.listenerCount=f,a.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},376:function(e,r,t){"use strict";var o=this&&this.__assign||function(){return o=Object.assign||function(e){for(var r,t=1,o=arguments.length;t'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/g},u={mode:"specialChars",level:"all",numeric:"decimal"};r.encode=function(e,r){var t=void 0===r?u:r,o=t.mode,n=void 0===o?"specialChars":o,a=t.numeric,d=void 0===a?"decimal":a,p=t.level;if(!e)return"";var f=s[n],g=c[void 0===p?"all":p].characters,m="hexadecimal"===d;return l(e,f,(function(e){var r=g[e];if(!r){var t=e.length>1?i.getCodePoint(e,0):e.charCodeAt(0);r=(m?"&#x"+t.toString(16):"&#"+t)+";"}return r}))};var d={scope:"body",level:"all"},p=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g,f=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g,g={xml:{strict:p,attribute:f,body:n.bodyRegExps.xml},html4:{strict:p,attribute:f,body:n.bodyRegExps.html4},html5:{strict:p,attribute:f,body:n.bodyRegExps.html5}},m=o(o({},g),{all:g.html5}),h=String.fromCharCode,v=h(65533),b={level:"all"};function y(e,r,t,o){var n=e,c=e[e.length-1];if(t&&"="===c)n=e;else if(o&&";"!==c)n=e;else{var l=r[e];if(l)n=l;else if("&"===e[0]&&"#"===e[1]){var s=e[2],u="x"==s||"X"==s?parseInt(e.substr(3),16):parseInt(e.substr(2));n=u>=1114111?v:u>65535?i.fromCodePoint(u):h(a.numericUnicodeMap[u]||u)}}return n}r.decodeEntity=function(e,r){var t=(void 0===r?b:r).level;return e?y(e,c[void 0===t?"all":t].entities,!1,!1):""},r.decode=function(e,r){var t=void 0===r?d:r,o=t.level,n=void 0===o?"all":o,a=t.scope,i=void 0===a?"xml"===n?"strict":"body":a;if(!e)return"";var s=m[n][i],u=c[n].entities,p="attribute"===i,f="strict"===i;return l(e,s,(function(e){return y(e,u,p,f)}))}},340:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.bodyRegExps={xml:/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html4:/∉|&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g,html5:/·|℗|⋇|⪧|⩺|⋗|⦕|⩼|⪆|⥸|⋗|⋛|⪌|≷|≳|⪦|⩹|⋖|⋋|⋉|⥶|⩻|⦖|◃|⊴|◂|∉|⋹̸|⋵̸|∉|⋷|⋶|∌|∌|⋾|⋽|∥|⊠|⨱|⨰|&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g},r.namedReferences={xml:{entities:{"<":"<",">":">",""":'"',"'":"'","&":"&"},characters:{"<":"<",">":">",'"':""","'":"'","&":"&"}},html4:{entities:{"'":"'"," ":" "," ":" ","¡":"¡","¡":"¡","¢":"¢","¢":"¢","£":"£","£":"£","¤":"¤","¤":"¤","¥":"¥","¥":"¥","¦":"¦","¦":"¦","§":"§","§":"§","¨":"¨","¨":"¨","©":"©","©":"©","ª":"ª","ª":"ª","«":"«","«":"«","¬":"¬","¬":"¬","­":"­","­":"­","®":"®","®":"®","¯":"¯","¯":"¯","°":"°","°":"°","±":"±","±":"±","²":"²","²":"²","³":"³","³":"³","´":"´","´":"´","µ":"µ","µ":"µ","¶":"¶","¶":"¶","·":"·","·":"·","¸":"¸","¸":"¸","¹":"¹","¹":"¹","º":"º","º":"º","»":"»","»":"»","¼":"¼","¼":"¼","½":"½","½":"½","¾":"¾","¾":"¾","¿":"¿","¿":"¿","À":"À","À":"À","Á":"Á","Á":"Á","Â":"Â","Â":"Â","Ã":"Ã","Ã":"Ã","Ä":"Ä","Ä":"Ä","Å":"Å","Å":"Å","Æ":"Æ","Æ":"Æ","Ç":"Ç","Ç":"Ç","È":"È","È":"È","É":"É","É":"É","Ê":"Ê","Ê":"Ê","Ë":"Ë","Ë":"Ë","Ì":"Ì","Ì":"Ì","Í":"Í","Í":"Í","Î":"Î","Î":"Î","Ï":"Ï","Ï":"Ï","Ð":"Ð","Ð":"Ð","Ñ":"Ñ","Ñ":"Ñ","Ò":"Ò","Ò":"Ò","Ó":"Ó","Ó":"Ó","Ô":"Ô","Ô":"Ô","Õ":"Õ","Õ":"Õ","Ö":"Ö","Ö":"Ö","×":"×","×":"×","Ø":"Ø","Ø":"Ø","Ù":"Ù","Ù":"Ù","Ú":"Ú","Ú":"Ú","Û":"Û","Û":"Û","Ü":"Ü","Ü":"Ü","Ý":"Ý","Ý":"Ý","Þ":"Þ","Þ":"Þ","ß":"ß","ß":"ß","à":"à","à":"à","á":"á","á":"á","â":"â","â":"â","ã":"ã","ã":"ã","ä":"ä","ä":"ä","å":"å","å":"å","æ":"æ","æ":"æ","ç":"ç","ç":"ç","è":"è","è":"è","é":"é","é":"é","ê":"ê","ê":"ê","ë":"ë","ë":"ë","ì":"ì","ì":"ì","í":"í","í":"í","î":"î","î":"î","ï":"ï","ï":"ï","ð":"ð","ð":"ð","ñ":"ñ","ñ":"ñ","ò":"ò","ò":"ò","ó":"ó","ó":"ó","ô":"ô","ô":"ô","õ":"õ","õ":"õ","ö":"ö","ö":"ö","÷":"÷","÷":"÷","ø":"ø","ø":"ø","ù":"ù","ù":"ù","ú":"ú","ú":"ú","û":"û","û":"û","ü":"ü","ü":"ü","ý":"ý","ý":"ý","þ":"þ","þ":"þ","ÿ":"ÿ","ÿ":"ÿ",""":'"',""":'"',"&":"&","&":"&","<":"<","<":"<",">":">",">":">","Œ":"Œ","œ":"œ","Š":"Š","š":"š","Ÿ":"Ÿ","ˆ":"ˆ","˜":"˜"," ":" "," ":" "," ":" ","‌":"‌","‍":"‍","‎":"‎","‏":"‏","–":"–","—":"—","‘":"‘","’":"’","‚":"‚","“":"“","”":"”","„":"„","†":"†","‡":"‡","‰":"‰","‹":"‹","›":"›","€":"€","ƒ":"ƒ","Α":"Α","Β":"Β","Γ":"Γ","Δ":"Δ","Ε":"Ε","Ζ":"Ζ","Η":"Η","Θ":"Θ","Ι":"Ι","Κ":"Κ","Λ":"Λ","Μ":"Μ","Ν":"Ν","Ξ":"Ξ","Ο":"Ο","Π":"Π","Ρ":"Ρ","Σ":"Σ","Τ":"Τ","Υ":"Υ","Φ":"Φ","Χ":"Χ","Ψ":"Ψ","Ω":"Ω","α":"α","β":"β","γ":"γ","δ":"δ","ε":"ε","ζ":"ζ","η":"η","θ":"θ","ι":"ι","κ":"κ","λ":"λ","μ":"μ","ν":"ν","ξ":"ξ","ο":"ο","π":"π","ρ":"ρ","ς":"ς","σ":"σ","τ":"τ","υ":"υ","φ":"φ","χ":"χ","ψ":"ψ","ω":"ω","ϑ":"ϑ","ϒ":"ϒ","ϖ":"ϖ","•":"•","…":"…","′":"′","″":"″","‾":"‾","⁄":"⁄","℘":"℘","ℑ":"ℑ","ℜ":"ℜ","™":"™","ℵ":"ℵ","←":"←","↑":"↑","→":"→","↓":"↓","↔":"↔","↵":"↵","⇐":"⇐","⇑":"⇑","⇒":"⇒","⇓":"⇓","⇔":"⇔","∀":"∀","∂":"∂","∃":"∃","∅":"∅","∇":"∇","∈":"∈","∉":"∉","∋":"∋","∏":"∏","∑":"∑","−":"−","∗":"∗","√":"√","∝":"∝","∞":"∞","∠":"∠","∧":"∧","∨":"∨","∩":"∩","∪":"∪","∫":"∫","∴":"∴","∼":"∼","≅":"≅","≈":"≈","≠":"≠","≡":"≡","≤":"≤","≥":"≥","⊂":"⊂","⊃":"⊃","⊄":"⊄","⊆":"⊆","⊇":"⊇","⊕":"⊕","⊗":"⊗","⊥":"⊥","⋅":"⋅","⌈":"⌈","⌉":"⌉","⌊":"⌊","⌋":"⌋","⟨":"〈","⟩":"〉","◊":"◊","♠":"♠","♣":"♣","♥":"♥","♦":"♦"},characters:{"'":"'"," ":" ","¡":"¡","¢":"¢","£":"£","¤":"¤","¥":"¥","¦":"¦","§":"§","¨":"¨","©":"©",ª:"ª","«":"«","¬":"¬","­":"­","®":"®","¯":"¯","°":"°","±":"±","²":"²","³":"³","´":"´",µ:"µ","¶":"¶","·":"·","¸":"¸","¹":"¹",º:"º","»":"»","¼":"¼","½":"½","¾":"¾","¿":"¿",À:"À",Á:"Á",Â:"Â",Ã:"Ã",Ä:"Ä",Å:"Å",Æ:"Æ",Ç:"Ç",È:"È",É:"É",Ê:"Ê",Ë:"Ë",Ì:"Ì",Í:"Í",Î:"Î",Ï:"Ï",Ð:"Ð",Ñ:"Ñ",Ò:"Ò",Ó:"Ó",Ô:"Ô",Õ:"Õ",Ö:"Ö","×":"×",Ø:"Ø",Ù:"Ù",Ú:"Ú",Û:"Û",Ü:"Ü",Ý:"Ý",Þ:"Þ",ß:"ß",à:"à",á:"á",â:"â",ã:"ã",ä:"ä",å:"å",æ:"æ",ç:"ç",è:"è",é:"é",ê:"ê",ë:"ë",ì:"ì",í:"í",î:"î",ï:"ï",ð:"ð",ñ:"ñ",ò:"ò",ó:"ó",ô:"ô",õ:"õ",ö:"ö","÷":"÷",ø:"ø",ù:"ù",ú:"ú",û:"û",ü:"ü",ý:"ý",þ:"þ",ÿ:"ÿ",'"':""","&":"&","<":"<",">":">",Œ:"Œ",œ:"œ",Š:"Š",š:"š",Ÿ:"Ÿ",ˆ:"ˆ","˜":"˜"," ":" "," ":" "," ":" ","‌":"‌","‍":"‍","‎":"‎","‏":"‏","–":"–","—":"—","‘":"‘","’":"’","‚":"‚","“":"“","”":"”","„":"„","†":"†","‡":"‡","‰":"‰","‹":"‹","›":"›","€":"€",ƒ:"ƒ",Α:"Α",Β:"Β",Γ:"Γ",Δ:"Δ",Ε:"Ε",Ζ:"Ζ",Η:"Η",Θ:"Θ",Ι:"Ι",Κ:"Κ",Λ:"Λ",Μ:"Μ",Ν:"Ν",Ξ:"Ξ",Ο:"Ο",Π:"Π",Ρ:"Ρ",Σ:"Σ",Τ:"Τ",Υ:"Υ",Φ:"Φ",Χ:"Χ",Ψ:"Ψ",Ω:"Ω",α:"α",β:"β",γ:"γ",δ:"δ",ε:"ε",ζ:"ζ",η:"η",θ:"θ",ι:"ι",κ:"κ",λ:"λ",μ:"μ",ν:"ν",ξ:"ξ",ο:"ο",π:"π",ρ:"ρ",ς:"ς",σ:"σ",τ:"τ",υ:"υ",φ:"φ",χ:"χ",ψ:"ψ",ω:"ω",ϑ:"ϑ",ϒ:"ϒ",ϖ:"ϖ","•":"•","…":"…","′":"′","″":"″","‾":"‾","⁄":"⁄",℘:"℘",ℑ:"ℑ",ℜ:"ℜ","™":"™",ℵ:"ℵ","←":"←","↑":"↑","→":"→","↓":"↓","↔":"↔","↵":"↵","⇐":"⇐","⇑":"⇑","⇒":"⇒","⇓":"⇓","⇔":"⇔","∀":"∀","∂":"∂","∃":"∃","∅":"∅","∇":"∇","∈":"∈","∉":"∉","∋":"∋","∏":"∏","∑":"∑","−":"−","∗":"∗","√":"√","∝":"∝","∞":"∞","∠":"∠","∧":"∧","∨":"∨","∩":"∩","∪":"∪","∫":"∫","∴":"∴","∼":"∼","≅":"≅","≈":"≈","≠":"≠","≡":"≡","≤":"≤","≥":"≥","⊂":"⊂","⊃":"⊃","⊄":"⊄","⊆":"⊆","⊇":"⊇","⊕":"⊕","⊗":"⊗","⊥":"⊥","⋅":"⋅","⌈":"⌈","⌉":"⌉","⌊":"⌊","⌋":"⌋","〈":"⟨","〉":"⟩","◊":"◊","♠":"♠","♣":"♣","♥":"♥","♦":"♦"}},html5:{entities:{"Æ":"Æ","Æ":"Æ","&":"&","&":"&","Á":"Á","Á":"Á","Ă":"Ă","Â":"Â","Â":"Â","А":"А","𝔄":"𝔄","À":"À","À":"À","Α":"Α","Ā":"Ā","⩓":"⩓","Ą":"Ą","𝔸":"𝔸","⁡":"⁡","Å":"Å","Å":"Å","𝒜":"𝒜","≔":"≔","Ã":"Ã","Ã":"Ã","Ä":"Ä","Ä":"Ä","∖":"∖","⫧":"⫧","⌆":"⌆","Б":"Б","∵":"∵","ℬ":"ℬ","Β":"Β","𝔅":"𝔅","𝔹":"𝔹","˘":"˘","ℬ":"ℬ","≎":"≎","Ч":"Ч","©":"©","©":"©","Ć":"Ć","⋒":"⋒","ⅅ":"ⅅ","ℭ":"ℭ","Č":"Č","Ç":"Ç","Ç":"Ç","Ĉ":"Ĉ","∰":"∰","Ċ":"Ċ","¸":"¸","·":"·","ℭ":"ℭ","Χ":"Χ","⊙":"⊙","⊖":"⊖","⊕":"⊕","⊗":"⊗","∲":"∲","”":"”","’":"’","∷":"∷","⩴":"⩴","≡":"≡","∯":"∯","∮":"∮","ℂ":"ℂ","∐":"∐","∳":"∳","⨯":"⨯","𝒞":"𝒞","⋓":"⋓","≍":"≍","ⅅ":"ⅅ","⤑":"⤑","Ђ":"Ђ","Ѕ":"Ѕ","Џ":"Џ","‡":"‡","↡":"↡","⫤":"⫤","Ď":"Ď","Д":"Д","∇":"∇","Δ":"Δ","𝔇":"𝔇","´":"´","˙":"˙","˝":"˝","`":"`","˜":"˜","⋄":"⋄","ⅆ":"ⅆ","𝔻":"𝔻","¨":"¨","⃜":"⃜","≐":"≐","∯":"∯","¨":"¨","⇓":"⇓","⇐":"⇐","⇔":"⇔","⫤":"⫤","⟸":"⟸","⟺":"⟺","⟹":"⟹","⇒":"⇒","⊨":"⊨","⇑":"⇑","⇕":"⇕","∥":"∥","↓":"↓","⤓":"⤓","⇵":"⇵","̑":"̑","⥐":"⥐","⥞":"⥞","↽":"↽","⥖":"⥖","⥟":"⥟","⇁":"⇁","⥗":"⥗","⊤":"⊤","↧":"↧","⇓":"⇓","𝒟":"𝒟","Đ":"Đ","Ŋ":"Ŋ","Ð":"Ð","Ð":"Ð","É":"É","É":"É","Ě":"Ě","Ê":"Ê","Ê":"Ê","Э":"Э","Ė":"Ė","𝔈":"𝔈","È":"È","È":"È","∈":"∈","Ē":"Ē","◻":"◻","▫":"▫","Ę":"Ę","𝔼":"𝔼","Ε":"Ε","⩵":"⩵","≂":"≂","⇌":"⇌","ℰ":"ℰ","⩳":"⩳","Η":"Η","Ë":"Ë","Ë":"Ë","∃":"∃","ⅇ":"ⅇ","Ф":"Ф","𝔉":"𝔉","◼":"◼","▪":"▪","𝔽":"𝔽","∀":"∀","ℱ":"ℱ","ℱ":"ℱ","Ѓ":"Ѓ",">":">",">":">","Γ":"Γ","Ϝ":"Ϝ","Ğ":"Ğ","Ģ":"Ģ","Ĝ":"Ĝ","Г":"Г","Ġ":"Ġ","𝔊":"𝔊","⋙":"⋙","𝔾":"𝔾","≥":"≥","⋛":"⋛","≧":"≧","⪢":"⪢","≷":"≷","⩾":"⩾","≳":"≳","𝒢":"𝒢","≫":"≫","Ъ":"Ъ","ˇ":"ˇ","^":"^","Ĥ":"Ĥ","ℌ":"ℌ","ℋ":"ℋ","ℍ":"ℍ","─":"─","ℋ":"ℋ","Ħ":"Ħ","≎":"≎","≏":"≏","Е":"Е","IJ":"IJ","Ё":"Ё","Í":"Í","Í":"Í","Î":"Î","Î":"Î","И":"И","İ":"İ","ℑ":"ℑ","Ì":"Ì","Ì":"Ì","ℑ":"ℑ","Ī":"Ī","ⅈ":"ⅈ","⇒":"⇒","∬":"∬","∫":"∫","⋂":"⋂","⁣":"⁣","⁢":"⁢","Į":"Į","𝕀":"𝕀","Ι":"Ι","ℐ":"ℐ","Ĩ":"Ĩ","І":"І","Ï":"Ï","Ï":"Ï","Ĵ":"Ĵ","Й":"Й","𝔍":"𝔍","𝕁":"𝕁","𝒥":"𝒥","Ј":"Ј","Є":"Є","Х":"Х","Ќ":"Ќ","Κ":"Κ","Ķ":"Ķ","К":"К","𝔎":"𝔎","𝕂":"𝕂","𝒦":"𝒦","Љ":"Љ","<":"<","<":"<","Ĺ":"Ĺ","Λ":"Λ","⟪":"⟪","ℒ":"ℒ","↞":"↞","Ľ":"Ľ","Ļ":"Ļ","Л":"Л","⟨":"⟨","←":"←","⇤":"⇤","⇆":"⇆","⌈":"⌈","⟦":"⟦","⥡":"⥡","⇃":"⇃","⥙":"⥙","⌊":"⌊","↔":"↔","⥎":"⥎","⊣":"⊣","↤":"↤","⥚":"⥚","⊲":"⊲","⧏":"⧏","⊴":"⊴","⥑":"⥑","⥠":"⥠","↿":"↿","⥘":"⥘","↼":"↼","⥒":"⥒","⇐":"⇐","⇔":"⇔","⋚":"⋚","≦":"≦","≶":"≶","⪡":"⪡","⩽":"⩽","≲":"≲","𝔏":"𝔏","⋘":"⋘","⇚":"⇚","Ŀ":"Ŀ","⟵":"⟵","⟷":"⟷","⟶":"⟶","⟸":"⟸","⟺":"⟺","⟹":"⟹","𝕃":"𝕃","↙":"↙","↘":"↘","ℒ":"ℒ","↰":"↰","Ł":"Ł","≪":"≪","⤅":"⤅","М":"М"," ":" ","ℳ":"ℳ","𝔐":"𝔐","∓":"∓","𝕄":"𝕄","ℳ":"ℳ","Μ":"Μ","Њ":"Њ","Ń":"Ń","Ň":"Ň","Ņ":"Ņ","Н":"Н","​":"​","​":"​","​":"​","​":"​","≫":"≫","≪":"≪"," ":"\n","𝔑":"𝔑","⁠":"⁠"," ":" ","ℕ":"ℕ","⫬":"⫬","≢":"≢","≭":"≭","∦":"∦","∉":"∉","≠":"≠","≂̸":"≂̸","∄":"∄","≯":"≯","≱":"≱","≧̸":"≧̸","≫̸":"≫̸","≹":"≹","⩾̸":"⩾̸","≵":"≵","≎̸":"≎̸","≏̸":"≏̸","⋪":"⋪","⧏̸":"⧏̸","⋬":"⋬","≮":"≮","≰":"≰","≸":"≸","≪̸":"≪̸","⩽̸":"⩽̸","≴":"≴","⪢̸":"⪢̸","⪡̸":"⪡̸","⊀":"⊀","⪯̸":"⪯̸","⋠":"⋠","∌":"∌","⋫":"⋫","⧐̸":"⧐̸","⋭":"⋭","⊏̸":"⊏̸","⋢":"⋢","⊐̸":"⊐̸","⋣":"⋣","⊂⃒":"⊂⃒","⊈":"⊈","⊁":"⊁","⪰̸":"⪰̸","⋡":"⋡","≿̸":"≿̸","⊃⃒":"⊃⃒","⊉":"⊉","≁":"≁","≄":"≄","≇":"≇","≉":"≉","∤":"∤","𝒩":"𝒩","Ñ":"Ñ","Ñ":"Ñ","Ν":"Ν","Œ":"Œ","Ó":"Ó","Ó":"Ó","Ô":"Ô","Ô":"Ô","О":"О","Ő":"Ő","𝔒":"𝔒","Ò":"Ò","Ò":"Ò","Ō":"Ō","Ω":"Ω","Ο":"Ο","𝕆":"𝕆","“":"“","‘":"‘","⩔":"⩔","𝒪":"𝒪","Ø":"Ø","Ø":"Ø","Õ":"Õ","Õ":"Õ","⨷":"⨷","Ö":"Ö","Ö":"Ö","‾":"‾","⏞":"⏞","⎴":"⎴","⏜":"⏜","∂":"∂","П":"П","𝔓":"𝔓","Φ":"Φ","Π":"Π","±":"±","ℌ":"ℌ","ℙ":"ℙ","⪻":"⪻","≺":"≺","⪯":"⪯","≼":"≼","≾":"≾","″":"″","∏":"∏","∷":"∷","∝":"∝","𝒫":"𝒫","Ψ":"Ψ",""":'"',""":'"',"𝔔":"𝔔","ℚ":"ℚ","𝒬":"𝒬","⤐":"⤐","®":"®","®":"®","Ŕ":"Ŕ","⟫":"⟫","↠":"↠","⤖":"⤖","Ř":"Ř","Ŗ":"Ŗ","Р":"Р","ℜ":"ℜ","∋":"∋","⇋":"⇋","⥯":"⥯","ℜ":"ℜ","Ρ":"Ρ","⟩":"⟩","→":"→","⇥":"⇥","⇄":"⇄","⌉":"⌉","⟧":"⟧","⥝":"⥝","⇂":"⇂","⥕":"⥕","⌋":"⌋","⊢":"⊢","↦":"↦","⥛":"⥛","⊳":"⊳","⧐":"⧐","⊵":"⊵","⥏":"⥏","⥜":"⥜","↾":"↾","⥔":"⥔","⇀":"⇀","⥓":"⥓","⇒":"⇒","ℝ":"ℝ","⥰":"⥰","⇛":"⇛","ℛ":"ℛ","↱":"↱","⧴":"⧴","Щ":"Щ","Ш":"Ш","Ь":"Ь","Ś":"Ś","⪼":"⪼","Š":"Š","Ş":"Ş","Ŝ":"Ŝ","С":"С","𝔖":"𝔖","↓":"↓","←":"←","→":"→","↑":"↑","Σ":"Σ","∘":"∘","𝕊":"𝕊","√":"√","□":"□","⊓":"⊓","⊏":"⊏","⊑":"⊑","⊐":"⊐","⊒":"⊒","⊔":"⊔","𝒮":"𝒮","⋆":"⋆","⋐":"⋐","⋐":"⋐","⊆":"⊆","≻":"≻","⪰":"⪰","≽":"≽","≿":"≿","∋":"∋","∑":"∑","⋑":"⋑","⊃":"⊃","⊇":"⊇","⋑":"⋑","Þ":"Þ","Þ":"Þ","™":"™","Ћ":"Ћ","Ц":"Ц"," ":"\t","Τ":"Τ","Ť":"Ť","Ţ":"Ţ","Т":"Т","𝔗":"𝔗","∴":"∴","Θ":"Θ","  ":"  "," ":" ","∼":"∼","≃":"≃","≅":"≅","≈":"≈","𝕋":"𝕋","⃛":"⃛","𝒯":"𝒯","Ŧ":"Ŧ","Ú":"Ú","Ú":"Ú","↟":"↟","⥉":"⥉","Ў":"Ў","Ŭ":"Ŭ","Û":"Û","Û":"Û","У":"У","Ű":"Ű","𝔘":"𝔘","Ù":"Ù","Ù":"Ù","Ū":"Ū","_":"_","⏟":"⏟","⎵":"⎵","⏝":"⏝","⋃":"⋃","⊎":"⊎","Ų":"Ų","𝕌":"𝕌","↑":"↑","⤒":"⤒","⇅":"⇅","↕":"↕","⥮":"⥮","⊥":"⊥","↥":"↥","⇑":"⇑","⇕":"⇕","↖":"↖","↗":"↗","ϒ":"ϒ","Υ":"Υ","Ů":"Ů","𝒰":"𝒰","Ũ":"Ũ","Ü":"Ü","Ü":"Ü","⊫":"⊫","⫫":"⫫","В":"В","⊩":"⊩","⫦":"⫦","⋁":"⋁","‖":"‖","‖":"‖","∣":"∣","|":"|","❘":"❘","≀":"≀"," ":" ","𝔙":"𝔙","𝕍":"𝕍","𝒱":"𝒱","⊪":"⊪","Ŵ":"Ŵ","⋀":"⋀","𝔚":"𝔚","𝕎":"𝕎","𝒲":"𝒲","𝔛":"𝔛","Ξ":"Ξ","𝕏":"𝕏","𝒳":"𝒳","Я":"Я","Ї":"Ї","Ю":"Ю","Ý":"Ý","Ý":"Ý","Ŷ":"Ŷ","Ы":"Ы","𝔜":"𝔜","𝕐":"𝕐","𝒴":"𝒴","Ÿ":"Ÿ","Ж":"Ж","Ź":"Ź","Ž":"Ž","З":"З","Ż":"Ż","​":"​","Ζ":"Ζ","ℨ":"ℨ","ℤ":"ℤ","𝒵":"𝒵","á":"á","á":"á","ă":"ă","∾":"∾","∾̳":"∾̳","∿":"∿","â":"â","â":"â","´":"´","´":"´","а":"а","æ":"æ","æ":"æ","⁡":"⁡","𝔞":"𝔞","à":"à","à":"à","ℵ":"ℵ","ℵ":"ℵ","α":"α","ā":"ā","⨿":"⨿","&":"&","&":"&","∧":"∧","⩕":"⩕","⩜":"⩜","⩘":"⩘","⩚":"⩚","∠":"∠","⦤":"⦤","∠":"∠","∡":"∡","⦨":"⦨","⦩":"⦩","⦪":"⦪","⦫":"⦫","⦬":"⦬","⦭":"⦭","⦮":"⦮","⦯":"⦯","∟":"∟","⊾":"⊾","⦝":"⦝","∢":"∢","Å":"Å","⍼":"⍼","ą":"ą","𝕒":"𝕒","≈":"≈","⩰":"⩰","⩯":"⩯","≊":"≊","≋":"≋","'":"'","≈":"≈","≊":"≊","å":"å","å":"å","𝒶":"𝒶","*":"*","≈":"≈","≍":"≍","ã":"ã","ã":"ã","ä":"ä","ä":"ä","∳":"∳","⨑":"⨑","⫭":"⫭","≌":"≌","϶":"϶","‵":"‵","∽":"∽","⋍":"⋍","⊽":"⊽","⌅":"⌅","⌅":"⌅","⎵":"⎵","⎶":"⎶","≌":"≌","б":"б","„":"„","∵":"∵","∵":"∵","⦰":"⦰","϶":"϶","ℬ":"ℬ","β":"β","ℶ":"ℶ","≬":"≬","𝔟":"𝔟","⋂":"⋂","◯":"◯","⋃":"⋃","⨀":"⨀","⨁":"⨁","⨂":"⨂","⨆":"⨆","★":"★","▽":"▽","△":"△","⨄":"⨄","⋁":"⋁","⋀":"⋀","⤍":"⤍","⧫":"⧫","▪":"▪","▴":"▴","▾":"▾","◂":"◂","▸":"▸","␣":"␣","▒":"▒","░":"░","▓":"▓","█":"█","=⃥":"=⃥","≡⃥":"≡⃥","⌐":"⌐","𝕓":"𝕓","⊥":"⊥","⊥":"⊥","⋈":"⋈","╗":"╗","╔":"╔","╖":"╖","╓":"╓","═":"═","╦":"╦","╩":"╩","╤":"╤","╧":"╧","╝":"╝","╚":"╚","╜":"╜","╙":"╙","║":"║","╬":"╬","╣":"╣","╠":"╠","╫":"╫","╢":"╢","╟":"╟","⧉":"⧉","╕":"╕","╒":"╒","┐":"┐","┌":"┌","─":"─","╥":"╥","╨":"╨","┬":"┬","┴":"┴","⊟":"⊟","⊞":"⊞","⊠":"⊠","╛":"╛","╘":"╘","┘":"┘","└":"└","│":"│","╪":"╪","╡":"╡","╞":"╞","┼":"┼","┤":"┤","├":"├","‵":"‵","˘":"˘","¦":"¦","¦":"¦","𝒷":"𝒷","⁏":"⁏","∽":"∽","⋍":"⋍","\":"\\","⧅":"⧅","⟈":"⟈","•":"•","•":"•","≎":"≎","⪮":"⪮","≏":"≏","≏":"≏","ć":"ć","∩":"∩","⩄":"⩄","⩉":"⩉","⩋":"⩋","⩇":"⩇","⩀":"⩀","∩︀":"∩︀","⁁":"⁁","ˇ":"ˇ","⩍":"⩍","č":"č","ç":"ç","ç":"ç","ĉ":"ĉ","⩌":"⩌","⩐":"⩐","ċ":"ċ","¸":"¸","¸":"¸","⦲":"⦲","¢":"¢","¢":"¢","·":"·","𝔠":"𝔠","ч":"ч","✓":"✓","✓":"✓","χ":"χ","○":"○","⧃":"⧃","ˆ":"ˆ","≗":"≗","↺":"↺","↻":"↻","®":"®","Ⓢ":"Ⓢ","⊛":"⊛","⊚":"⊚","⊝":"⊝","≗":"≗","⨐":"⨐","⫯":"⫯","⧂":"⧂","♣":"♣","♣":"♣",":":":","≔":"≔","≔":"≔",",":",","@":"@","∁":"∁","∘":"∘","∁":"∁","ℂ":"ℂ","≅":"≅","⩭":"⩭","∮":"∮","𝕔":"𝕔","∐":"∐","©":"©","©":"©","℗":"℗","↵":"↵","✗":"✗","𝒸":"𝒸","⫏":"⫏","⫑":"⫑","⫐":"⫐","⫒":"⫒","⋯":"⋯","⤸":"⤸","⤵":"⤵","⋞":"⋞","⋟":"⋟","↶":"↶","⤽":"⤽","∪":"∪","⩈":"⩈","⩆":"⩆","⩊":"⩊","⊍":"⊍","⩅":"⩅","∪︀":"∪︀","↷":"↷","⤼":"⤼","⋞":"⋞","⋟":"⋟","⋎":"⋎","⋏":"⋏","¤":"¤","¤":"¤","↶":"↶","↷":"↷","⋎":"⋎","⋏":"⋏","∲":"∲","∱":"∱","⌭":"⌭","⇓":"⇓","⥥":"⥥","†":"†","ℸ":"ℸ","↓":"↓","‐":"‐","⊣":"⊣","⤏":"⤏","˝":"˝","ď":"ď","д":"д","ⅆ":"ⅆ","‡":"‡","⇊":"⇊","⩷":"⩷","°":"°","°":"°","δ":"δ","⦱":"⦱","⥿":"⥿","𝔡":"𝔡","⇃":"⇃","⇂":"⇂","⋄":"⋄","⋄":"⋄","♦":"♦","♦":"♦","¨":"¨","ϝ":"ϝ","⋲":"⋲","÷":"÷","÷":"÷","÷":"÷","⋇":"⋇","⋇":"⋇","ђ":"ђ","⌞":"⌞","⌍":"⌍","$":"$","𝕕":"𝕕","˙":"˙","≐":"≐","≑":"≑","∸":"∸","∔":"∔","⊡":"⊡","⌆":"⌆","↓":"↓","⇊":"⇊","⇃":"⇃","⇂":"⇂","⤐":"⤐","⌟":"⌟","⌌":"⌌","𝒹":"𝒹","ѕ":"ѕ","⧶":"⧶","đ":"đ","⋱":"⋱","▿":"▿","▾":"▾","⇵":"⇵","⥯":"⥯","⦦":"⦦","џ":"џ","⟿":"⟿","⩷":"⩷","≑":"≑","é":"é","é":"é","⩮":"⩮","ě":"ě","≖":"≖","ê":"ê","ê":"ê","≕":"≕","э":"э","ė":"ė","ⅇ":"ⅇ","≒":"≒","𝔢":"𝔢","⪚":"⪚","è":"è","è":"è","⪖":"⪖","⪘":"⪘","⪙":"⪙","⏧":"⏧","ℓ":"ℓ","⪕":"⪕","⪗":"⪗","ē":"ē","∅":"∅","∅":"∅","∅":"∅"," ":" "," ":" "," ":" ","ŋ":"ŋ"," ":" ","ę":"ę","𝕖":"𝕖","⋕":"⋕","⧣":"⧣","⩱":"⩱","ε":"ε","ε":"ε","ϵ":"ϵ","≖":"≖","≕":"≕","≂":"≂","⪖":"⪖","⪕":"⪕","=":"=","≟":"≟","≡":"≡","⩸":"⩸","⧥":"⧥","≓":"≓","⥱":"⥱","ℯ":"ℯ","≐":"≐","≂":"≂","η":"η","ð":"ð","ð":"ð","ë":"ë","ë":"ë","€":"€","!":"!","∃":"∃","ℰ":"ℰ","ⅇ":"ⅇ","≒":"≒","ф":"ф","♀":"♀","ffi":"ffi","ff":"ff","ffl":"ffl","𝔣":"𝔣","fi":"fi","fj":"fj","♭":"♭","fl":"fl","▱":"▱","ƒ":"ƒ","𝕗":"𝕗","∀":"∀","⋔":"⋔","⫙":"⫙","⨍":"⨍","½":"½","½":"½","⅓":"⅓","¼":"¼","¼":"¼","⅕":"⅕","⅙":"⅙","⅛":"⅛","⅔":"⅔","⅖":"⅖","¾":"¾","¾":"¾","⅗":"⅗","⅜":"⅜","⅘":"⅘","⅚":"⅚","⅝":"⅝","⅞":"⅞","⁄":"⁄","⌢":"⌢","𝒻":"𝒻","≧":"≧","⪌":"⪌","ǵ":"ǵ","γ":"γ","ϝ":"ϝ","⪆":"⪆","ğ":"ğ","ĝ":"ĝ","г":"г","ġ":"ġ","≥":"≥","⋛":"⋛","≥":"≥","≧":"≧","⩾":"⩾","⩾":"⩾","⪩":"⪩","⪀":"⪀","⪂":"⪂","⪄":"⪄","⋛︀":"⋛︀","⪔":"⪔","𝔤":"𝔤","≫":"≫","⋙":"⋙","ℷ":"ℷ","ѓ":"ѓ","≷":"≷","⪒":"⪒","⪥":"⪥","⪤":"⪤","≩":"≩","⪊":"⪊","⪊":"⪊","⪈":"⪈","⪈":"⪈","≩":"≩","⋧":"⋧","𝕘":"𝕘","`":"`","ℊ":"ℊ","≳":"≳","⪎":"⪎","⪐":"⪐",">":">",">":">","⪧":"⪧","⩺":"⩺","⋗":"⋗","⦕":"⦕","⩼":"⩼","⪆":"⪆","⥸":"⥸","⋗":"⋗","⋛":"⋛","⪌":"⪌","≷":"≷","≳":"≳","≩︀":"≩︀","≩︀":"≩︀","⇔":"⇔"," ":" ","½":"½","ℋ":"ℋ","ъ":"ъ","↔":"↔","⥈":"⥈","↭":"↭","ℏ":"ℏ","ĥ":"ĥ","♥":"♥","♥":"♥","…":"…","⊹":"⊹","𝔥":"𝔥","⤥":"⤥","⤦":"⤦","⇿":"⇿","∻":"∻","↩":"↩","↪":"↪","𝕙":"𝕙","―":"―","𝒽":"𝒽","ℏ":"ℏ","ħ":"ħ","⁃":"⁃","‐":"‐","í":"í","í":"í","⁣":"⁣","î":"î","î":"î","и":"и","е":"е","¡":"¡","¡":"¡","⇔":"⇔","𝔦":"𝔦","ì":"ì","ì":"ì","ⅈ":"ⅈ","⨌":"⨌","∭":"∭","⧜":"⧜","℩":"℩","ij":"ij","ī":"ī","ℑ":"ℑ","ℐ":"ℐ","ℑ":"ℑ","ı":"ı","⊷":"⊷","Ƶ":"Ƶ","∈":"∈","℅":"℅","∞":"∞","⧝":"⧝","ı":"ı","∫":"∫","⊺":"⊺","ℤ":"ℤ","⊺":"⊺","⨗":"⨗","⨼":"⨼","ё":"ё","į":"į","𝕚":"𝕚","ι":"ι","⨼":"⨼","¿":"¿","¿":"¿","𝒾":"𝒾","∈":"∈","⋹":"⋹","⋵":"⋵","⋴":"⋴","⋳":"⋳","∈":"∈","⁢":"⁢","ĩ":"ĩ","і":"і","ï":"ï","ï":"ï","ĵ":"ĵ","й":"й","𝔧":"𝔧","ȷ":"ȷ","𝕛":"𝕛","𝒿":"𝒿","ј":"ј","є":"є","κ":"κ","ϰ":"ϰ","ķ":"ķ","к":"к","𝔨":"𝔨","ĸ":"ĸ","х":"х","ќ":"ќ","𝕜":"𝕜","𝓀":"𝓀","⇚":"⇚","⇐":"⇐","⤛":"⤛","⤎":"⤎","≦":"≦","⪋":"⪋","⥢":"⥢","ĺ":"ĺ","⦴":"⦴","ℒ":"ℒ","λ":"λ","⟨":"⟨","⦑":"⦑","⟨":"⟨","⪅":"⪅","«":"«","«":"«","←":"←","⇤":"⇤","⤟":"⤟","⤝":"⤝","↩":"↩","↫":"↫","⤹":"⤹","⥳":"⥳","↢":"↢","⪫":"⪫","⤙":"⤙","⪭":"⪭","⪭︀":"⪭︀","⤌":"⤌","❲":"❲","{":"{","[":"[","⦋":"⦋","⦏":"⦏","⦍":"⦍","ľ":"ľ","ļ":"ļ","⌈":"⌈","{":"{","л":"л","⤶":"⤶","“":"“","„":"„","⥧":"⥧","⥋":"⥋","↲":"↲","≤":"≤","←":"←","↢":"↢","↽":"↽","↼":"↼","⇇":"⇇","↔":"↔","⇆":"⇆","⇋":"⇋","↭":"↭","⋋":"⋋","⋚":"⋚","≤":"≤","≦":"≦","⩽":"⩽","⩽":"⩽","⪨":"⪨","⩿":"⩿","⪁":"⪁","⪃":"⪃","⋚︀":"⋚︀","⪓":"⪓","⪅":"⪅","⋖":"⋖","⋚":"⋚","⪋":"⪋","≶":"≶","≲":"≲","⥼":"⥼","⌊":"⌊","𝔩":"𝔩","≶":"≶","⪑":"⪑","↽":"↽","↼":"↼","⥪":"⥪","▄":"▄","љ":"љ","≪":"≪","⇇":"⇇","⌞":"⌞","⥫":"⥫","◺":"◺","ŀ":"ŀ","⎰":"⎰","⎰":"⎰","≨":"≨","⪉":"⪉","⪉":"⪉","⪇":"⪇","⪇":"⪇","≨":"≨","⋦":"⋦","⟬":"⟬","⇽":"⇽","⟦":"⟦","⟵":"⟵","⟷":"⟷","⟼":"⟼","⟶":"⟶","↫":"↫","↬":"↬","⦅":"⦅","𝕝":"𝕝","⨭":"⨭","⨴":"⨴","∗":"∗","_":"_","◊":"◊","◊":"◊","⧫":"⧫","(":"(","⦓":"⦓","⇆":"⇆","⌟":"⌟","⇋":"⇋","⥭":"⥭","‎":"‎","⊿":"⊿","‹":"‹","𝓁":"𝓁","↰":"↰","≲":"≲","⪍":"⪍","⪏":"⪏","[":"[","‘":"‘","‚":"‚","ł":"ł","<":"<","<":"<","⪦":"⪦","⩹":"⩹","⋖":"⋖","⋋":"⋋","⋉":"⋉","⥶":"⥶","⩻":"⩻","⦖":"⦖","◃":"◃","⊴":"⊴","◂":"◂","⥊":"⥊","⥦":"⥦","≨︀":"≨︀","≨︀":"≨︀","∺":"∺","¯":"¯","¯":"¯","♂":"♂","✠":"✠","✠":"✠","↦":"↦","↦":"↦","↧":"↧","↤":"↤","↥":"↥","▮":"▮","⨩":"⨩","м":"м","—":"—","∡":"∡","𝔪":"𝔪","℧":"℧","µ":"µ","µ":"µ","∣":"∣","*":"*","⫰":"⫰","·":"·","·":"·","−":"−","⊟":"⊟","∸":"∸","⨪":"⨪","⫛":"⫛","…":"…","∓":"∓","⊧":"⊧","𝕞":"𝕞","∓":"∓","𝓂":"𝓂","∾":"∾","μ":"μ","⊸":"⊸","⊸":"⊸","⋙̸":"⋙̸","≫⃒":"≫⃒","≫̸":"≫̸","⇍":"⇍","⇎":"⇎","⋘̸":"⋘̸","≪⃒":"≪⃒","≪̸":"≪̸","⇏":"⇏","⊯":"⊯","⊮":"⊮","∇":"∇","ń":"ń","∠⃒":"∠⃒","≉":"≉","⩰̸":"⩰̸","≋̸":"≋̸","ʼn":"ʼn","≉":"≉","♮":"♮","♮":"♮","ℕ":"ℕ"," ":" "," ":" ","≎̸":"≎̸","≏̸":"≏̸","⩃":"⩃","ň":"ň","ņ":"ņ","≇":"≇","⩭̸":"⩭̸","⩂":"⩂","н":"н","–":"–","≠":"≠","⇗":"⇗","⤤":"⤤","↗":"↗","↗":"↗","≐̸":"≐̸","≢":"≢","⤨":"⤨","≂̸":"≂̸","∄":"∄","∄":"∄","𝔫":"𝔫","≧̸":"≧̸","≱":"≱","≱":"≱","≧̸":"≧̸","⩾̸":"⩾̸","⩾̸":"⩾̸","≵":"≵","≯":"≯","≯":"≯","⇎":"⇎","↮":"↮","⫲":"⫲","∋":"∋","⋼":"⋼","⋺":"⋺","∋":"∋","њ":"њ","⇍":"⇍","≦̸":"≦̸","↚":"↚","‥":"‥","≰":"≰","↚":"↚","↮":"↮","≰":"≰","≦̸":"≦̸","⩽̸":"⩽̸","⩽̸":"⩽̸","≮":"≮","≴":"≴","≮":"≮","⋪":"⋪","⋬":"⋬","∤":"∤","𝕟":"𝕟","¬":"¬","¬":"¬","∉":"∉","⋹̸":"⋹̸","⋵̸":"⋵̸","∉":"∉","⋷":"⋷","⋶":"⋶","∌":"∌","∌":"∌","⋾":"⋾","⋽":"⋽","∦":"∦","∦":"∦","⫽⃥":"⫽⃥","∂̸":"∂̸","⨔":"⨔","⊀":"⊀","⋠":"⋠","⪯̸":"⪯̸","⊀":"⊀","⪯̸":"⪯̸","⇏":"⇏","↛":"↛","⤳̸":"⤳̸","↝̸":"↝̸","↛":"↛","⋫":"⋫","⋭":"⋭","⊁":"⊁","⋡":"⋡","⪰̸":"⪰̸","𝓃":"𝓃","∤":"∤","∦":"∦","≁":"≁","≄":"≄","≄":"≄","∤":"∤","∦":"∦","⋢":"⋢","⋣":"⋣","⊄":"⊄","⫅̸":"⫅̸","⊈":"⊈","⊂⃒":"⊂⃒","⊈":"⊈","⫅̸":"⫅̸","⊁":"⊁","⪰̸":"⪰̸","⊅":"⊅","⫆̸":"⫆̸","⊉":"⊉","⊃⃒":"⊃⃒","⊉":"⊉","⫆̸":"⫆̸","≹":"≹","ñ":"ñ","ñ":"ñ","≸":"≸","⋪":"⋪","⋬":"⋬","⋫":"⋫","⋭":"⋭","ν":"ν","#":"#","№":"№"," ":" ","⊭":"⊭","⤄":"⤄","≍⃒":"≍⃒","⊬":"⊬","≥⃒":"≥⃒",">⃒":">⃒","⧞":"⧞","⤂":"⤂","≤⃒":"≤⃒","<⃒":"<⃒","⊴⃒":"⊴⃒","⤃":"⤃","⊵⃒":"⊵⃒","∼⃒":"∼⃒","⇖":"⇖","⤣":"⤣","↖":"↖","↖":"↖","⤧":"⤧","Ⓢ":"Ⓢ","ó":"ó","ó":"ó","⊛":"⊛","⊚":"⊚","ô":"ô","ô":"ô","о":"о","⊝":"⊝","ő":"ő","⨸":"⨸","⊙":"⊙","⦼":"⦼","œ":"œ","⦿":"⦿","𝔬":"𝔬","˛":"˛","ò":"ò","ò":"ò","⧁":"⧁","⦵":"⦵","Ω":"Ω","∮":"∮","↺":"↺","⦾":"⦾","⦻":"⦻","‾":"‾","⧀":"⧀","ō":"ō","ω":"ω","ο":"ο","⦶":"⦶","⊖":"⊖","𝕠":"𝕠","⦷":"⦷","⦹":"⦹","⊕":"⊕","∨":"∨","↻":"↻","⩝":"⩝","ℴ":"ℴ","ℴ":"ℴ","ª":"ª","ª":"ª","º":"º","º":"º","⊶":"⊶","⩖":"⩖","⩗":"⩗","⩛":"⩛","ℴ":"ℴ","ø":"ø","ø":"ø","⊘":"⊘","õ":"õ","õ":"õ","⊗":"⊗","⨶":"⨶","ö":"ö","ö":"ö","⌽":"⌽","∥":"∥","¶":"¶","¶":"¶","∥":"∥","⫳":"⫳","⫽":"⫽","∂":"∂","п":"п","%":"%",".":".","‰":"‰","⊥":"⊥","‱":"‱","𝔭":"𝔭","φ":"φ","ϕ":"ϕ","ℳ":"ℳ","☎":"☎","π":"π","⋔":"⋔","ϖ":"ϖ","ℏ":"ℏ","ℎ":"ℎ","ℏ":"ℏ","+":"+","⨣":"⨣","⊞":"⊞","⨢":"⨢","∔":"∔","⨥":"⨥","⩲":"⩲","±":"±","±":"±","⨦":"⨦","⨧":"⨧","±":"±","⨕":"⨕","𝕡":"𝕡","£":"£","£":"£","≺":"≺","⪳":"⪳","⪷":"⪷","≼":"≼","⪯":"⪯","≺":"≺","⪷":"⪷","≼":"≼","⪯":"⪯","⪹":"⪹","⪵":"⪵","⋨":"⋨","≾":"≾","′":"′","ℙ":"ℙ","⪵":"⪵","⪹":"⪹","⋨":"⋨","∏":"∏","⌮":"⌮","⌒":"⌒","⌓":"⌓","∝":"∝","∝":"∝","≾":"≾","⊰":"⊰","𝓅":"𝓅","ψ":"ψ"," ":" ","𝔮":"𝔮","⨌":"⨌","𝕢":"𝕢","⁗":"⁗","𝓆":"𝓆","ℍ":"ℍ","⨖":"⨖","?":"?","≟":"≟",""":'"',""":'"',"⇛":"⇛","⇒":"⇒","⤜":"⤜","⤏":"⤏","⥤":"⥤","∽̱":"∽̱","ŕ":"ŕ","√":"√","⦳":"⦳","⟩":"⟩","⦒":"⦒","⦥":"⦥","⟩":"⟩","»":"»","»":"»","→":"→","⥵":"⥵","⇥":"⇥","⤠":"⤠","⤳":"⤳","⤞":"⤞","↪":"↪","↬":"↬","⥅":"⥅","⥴":"⥴","↣":"↣","↝":"↝","⤚":"⤚","∶":"∶","ℚ":"ℚ","⤍":"⤍","❳":"❳","}":"}","]":"]","⦌":"⦌","⦎":"⦎","⦐":"⦐","ř":"ř","ŗ":"ŗ","⌉":"⌉","}":"}","р":"р","⤷":"⤷","⥩":"⥩","”":"”","”":"”","↳":"↳","ℜ":"ℜ","ℛ":"ℛ","ℜ":"ℜ","ℝ":"ℝ","▭":"▭","®":"®","®":"®","⥽":"⥽","⌋":"⌋","𝔯":"𝔯","⇁":"⇁","⇀":"⇀","⥬":"⥬","ρ":"ρ","ϱ":"ϱ","→":"→","↣":"↣","⇁":"⇁","⇀":"⇀","⇄":"⇄","⇌":"⇌","⇉":"⇉","↝":"↝","⋌":"⋌","˚":"˚","≓":"≓","⇄":"⇄","⇌":"⇌","‏":"‏","⎱":"⎱","⎱":"⎱","⫮":"⫮","⟭":"⟭","⇾":"⇾","⟧":"⟧","⦆":"⦆","𝕣":"𝕣","⨮":"⨮","⨵":"⨵",")":")","⦔":"⦔","⨒":"⨒","⇉":"⇉","›":"›","𝓇":"𝓇","↱":"↱","]":"]","’":"’","’":"’","⋌":"⋌","⋊":"⋊","▹":"▹","⊵":"⊵","▸":"▸","⧎":"⧎","⥨":"⥨","℞":"℞","ś":"ś","‚":"‚","≻":"≻","⪴":"⪴","⪸":"⪸","š":"š","≽":"≽","⪰":"⪰","ş":"ş","ŝ":"ŝ","⪶":"⪶","⪺":"⪺","⋩":"⋩","⨓":"⨓","≿":"≿","с":"с","⋅":"⋅","⊡":"⊡","⩦":"⩦","⇘":"⇘","⤥":"⤥","↘":"↘","↘":"↘","§":"§","§":"§",";":";","⤩":"⤩","∖":"∖","∖":"∖","✶":"✶","𝔰":"𝔰","⌢":"⌢","♯":"♯","щ":"щ","ш":"ш","∣":"∣","∥":"∥","­":"­","­":"­","σ":"σ","ς":"ς","ς":"ς","∼":"∼","⩪":"⩪","≃":"≃","≃":"≃","⪞":"⪞","⪠":"⪠","⪝":"⪝","⪟":"⪟","≆":"≆","⨤":"⨤","⥲":"⥲","←":"←","∖":"∖","⨳":"⨳","⧤":"⧤","∣":"∣","⌣":"⌣","⪪":"⪪","⪬":"⪬","⪬︀":"⪬︀","ь":"ь","/":"/","⧄":"⧄","⌿":"⌿","𝕤":"𝕤","♠":"♠","♠":"♠","∥":"∥","⊓":"⊓","⊓︀":"⊓︀","⊔":"⊔","⊔︀":"⊔︀","⊏":"⊏","⊑":"⊑","⊏":"⊏","⊑":"⊑","⊐":"⊐","⊒":"⊒","⊐":"⊐","⊒":"⊒","□":"□","□":"□","▪":"▪","▪":"▪","→":"→","𝓈":"𝓈","∖":"∖","⌣":"⌣","⋆":"⋆","☆":"☆","★":"★","ϵ":"ϵ","ϕ":"ϕ","¯":"¯","⊂":"⊂","⫅":"⫅","⪽":"⪽","⊆":"⊆","⫃":"⫃","⫁":"⫁","⫋":"⫋","⊊":"⊊","⪿":"⪿","⥹":"⥹","⊂":"⊂","⊆":"⊆","⫅":"⫅","⊊":"⊊","⫋":"⫋","⫇":"⫇","⫕":"⫕","⫓":"⫓","≻":"≻","⪸":"⪸","≽":"≽","⪰":"⪰","⪺":"⪺","⪶":"⪶","⋩":"⋩","≿":"≿","∑":"∑","♪":"♪","¹":"¹","¹":"¹","²":"²","²":"²","³":"³","³":"³","⊃":"⊃","⫆":"⫆","⪾":"⪾","⫘":"⫘","⊇":"⊇","⫄":"⫄","⟉":"⟉","⫗":"⫗","⥻":"⥻","⫂":"⫂","⫌":"⫌","⊋":"⊋","⫀":"⫀","⊃":"⊃","⊇":"⊇","⫆":"⫆","⊋":"⊋","⫌":"⫌","⫈":"⫈","⫔":"⫔","⫖":"⫖","⇙":"⇙","⤦":"⤦","↙":"↙","↙":"↙","⤪":"⤪","ß":"ß","ß":"ß","⌖":"⌖","τ":"τ","⎴":"⎴","ť":"ť","ţ":"ţ","т":"т","⃛":"⃛","⌕":"⌕","𝔱":"𝔱","∴":"∴","∴":"∴","θ":"θ","ϑ":"ϑ","ϑ":"ϑ","≈":"≈","∼":"∼"," ":" ","≈":"≈","∼":"∼","þ":"þ","þ":"þ","˜":"˜","×":"×","×":"×","⊠":"⊠","⨱":"⨱","⨰":"⨰","∭":"∭","⤨":"⤨","⊤":"⊤","⌶":"⌶","⫱":"⫱","𝕥":"𝕥","⫚":"⫚","⤩":"⤩","‴":"‴","™":"™","▵":"▵","▿":"▿","◃":"◃","⊴":"⊴","≜":"≜","▹":"▹","⊵":"⊵","◬":"◬","≜":"≜","⨺":"⨺","⨹":"⨹","⧍":"⧍","⨻":"⨻","⏢":"⏢","𝓉":"𝓉","ц":"ц","ћ":"ћ","ŧ":"ŧ","≬":"≬","↞":"↞","↠":"↠","⇑":"⇑","⥣":"⥣","ú":"ú","ú":"ú","↑":"↑","ў":"ў","ŭ":"ŭ","û":"û","û":"û","у":"у","⇅":"⇅","ű":"ű","⥮":"⥮","⥾":"⥾","𝔲":"𝔲","ù":"ù","ù":"ù","↿":"↿","↾":"↾","▀":"▀","⌜":"⌜","⌜":"⌜","⌏":"⌏","◸":"◸","ū":"ū","¨":"¨","¨":"¨","ų":"ų","𝕦":"𝕦","↑":"↑","↕":"↕","↿":"↿","↾":"↾","⊎":"⊎","υ":"υ","ϒ":"ϒ","υ":"υ","⇈":"⇈","⌝":"⌝","⌝":"⌝","⌎":"⌎","ů":"ů","◹":"◹","𝓊":"𝓊","⋰":"⋰","ũ":"ũ","▵":"▵","▴":"▴","⇈":"⇈","ü":"ü","ü":"ü","⦧":"⦧","⇕":"⇕","⫨":"⫨","⫩":"⫩","⊨":"⊨","⦜":"⦜","ϵ":"ϵ","ϰ":"ϰ","∅":"∅","ϕ":"ϕ","ϖ":"ϖ","∝":"∝","↕":"↕","ϱ":"ϱ","ς":"ς","⊊︀":"⊊︀","⫋︀":"⫋︀","⊋︀":"⊋︀","⫌︀":"⫌︀","ϑ":"ϑ","⊲":"⊲","⊳":"⊳","в":"в","⊢":"⊢","∨":"∨","⊻":"⊻","≚":"≚","⋮":"⋮","|":"|","|":"|","𝔳":"𝔳","⊲":"⊲","⊂⃒":"⊂⃒","⊃⃒":"⊃⃒","𝕧":"𝕧","∝":"∝","⊳":"⊳","𝓋":"𝓋","⫋︀":"⫋︀","⊊︀":"⊊︀","⫌︀":"⫌︀","⊋︀":"⊋︀","⦚":"⦚","ŵ":"ŵ","⩟":"⩟","∧":"∧","≙":"≙","℘":"℘","𝔴":"𝔴","𝕨":"𝕨","℘":"℘","≀":"≀","≀":"≀","𝓌":"𝓌","⋂":"⋂","◯":"◯","⋃":"⋃","▽":"▽","𝔵":"𝔵","⟺":"⟺","⟷":"⟷","ξ":"ξ","⟸":"⟸","⟵":"⟵","⟼":"⟼","⋻":"⋻","⨀":"⨀","𝕩":"𝕩","⨁":"⨁","⨂":"⨂","⟹":"⟹","⟶":"⟶","𝓍":"𝓍","⨆":"⨆","⨄":"⨄","△":"△","⋁":"⋁","⋀":"⋀","ý":"ý","ý":"ý","я":"я","ŷ":"ŷ","ы":"ы","¥":"¥","¥":"¥","𝔶":"𝔶","ї":"ї","𝕪":"𝕪","𝓎":"𝓎","ю":"ю","ÿ":"ÿ","ÿ":"ÿ","ź":"ź","ž":"ž","з":"з","ż":"ż","ℨ":"ℨ","ζ":"ζ","𝔷":"𝔷","ж":"ж","⇝":"⇝","𝕫":"𝕫","𝓏":"𝓏","‍":"‍","‌":"‌"},characters:{Æ:"Æ","&":"&",Á:"Á",Ă:"Ă",Â:"Â",А:"А",𝔄:"𝔄",À:"À",Α:"Α",Ā:"Ā","⩓":"⩓",Ą:"Ą",𝔸:"𝔸","⁡":"⁡",Å:"Å",𝒜:"𝒜","≔":"≔",Ã:"Ã",Ä:"Ä","∖":"∖","⫧":"⫧","⌆":"⌆",Б:"Б","∵":"∵",ℬ:"ℬ",Β:"Β",𝔅:"𝔅",𝔹:"𝔹","˘":"˘","≎":"≎",Ч:"Ч","©":"©",Ć:"Ć","⋒":"⋒",ⅅ:"ⅅ",ℭ:"ℭ",Č:"Č",Ç:"Ç",Ĉ:"Ĉ","∰":"∰",Ċ:"Ċ","¸":"¸","·":"·",Χ:"Χ","⊙":"⊙","⊖":"⊖","⊕":"⊕","⊗":"⊗","∲":"∲","”":"”","’":"’","∷":"∷","⩴":"⩴","≡":"≡","∯":"∯","∮":"∮",ℂ:"ℂ","∐":"∐","∳":"∳","⨯":"⨯",𝒞:"𝒞","⋓":"⋓","≍":"≍","⤑":"⤑",Ђ:"Ђ",Ѕ:"Ѕ",Џ:"Џ","‡":"‡","↡":"↡","⫤":"⫤",Ď:"Ď",Д:"Д","∇":"∇",Δ:"Δ",𝔇:"𝔇","´":"´","˙":"˙","˝":"˝","`":"`","˜":"˜","⋄":"⋄",ⅆ:"ⅆ",𝔻:"𝔻","¨":"¨","⃜":"⃜","≐":"≐","⇓":"⇓","⇐":"⇐","⇔":"⇔","⟸":"⟸","⟺":"⟺","⟹":"⟹","⇒":"⇒","⊨":"⊨","⇑":"⇑","⇕":"⇕","∥":"∥","↓":"↓","⤓":"⤓","⇵":"⇵","̑":"̑","⥐":"⥐","⥞":"⥞","↽":"↽","⥖":"⥖","⥟":"⥟","⇁":"⇁","⥗":"⥗","⊤":"⊤","↧":"↧",𝒟:"𝒟",Đ:"Đ",Ŋ:"Ŋ",Ð:"Ð",É:"É",Ě:"Ě",Ê:"Ê",Э:"Э",Ė:"Ė",𝔈:"𝔈",È:"È","∈":"∈",Ē:"Ē","◻":"◻","▫":"▫",Ę:"Ę",𝔼:"𝔼",Ε:"Ε","⩵":"⩵","≂":"≂","⇌":"⇌",ℰ:"ℰ","⩳":"⩳",Η:"Η",Ë:"Ë","∃":"∃",ⅇ:"ⅇ",Ф:"Ф",𝔉:"𝔉","◼":"◼","▪":"▪",𝔽:"𝔽","∀":"∀",ℱ:"ℱ",Ѓ:"Ѓ",">":">",Γ:"Γ",Ϝ:"Ϝ",Ğ:"Ğ",Ģ:"Ģ",Ĝ:"Ĝ",Г:"Г",Ġ:"Ġ",𝔊:"𝔊","⋙":"⋙",𝔾:"𝔾","≥":"≥","⋛":"⋛","≧":"≧","⪢":"⪢","≷":"≷","⩾":"⩾","≳":"≳",𝒢:"𝒢","≫":"≫",Ъ:"Ъ",ˇ:"ˇ","^":"^",Ĥ:"Ĥ",ℌ:"ℌ",ℋ:"ℋ",ℍ:"ℍ","─":"─",Ħ:"Ħ","≏":"≏",Е:"Е",IJ:"IJ",Ё:"Ё",Í:"Í",Î:"Î",И:"И",İ:"İ",ℑ:"ℑ",Ì:"Ì",Ī:"Ī",ⅈ:"ⅈ","∬":"∬","∫":"∫","⋂":"⋂","⁣":"⁣","⁢":"⁢",Į:"Į",𝕀:"𝕀",Ι:"Ι",ℐ:"ℐ",Ĩ:"Ĩ",І:"І",Ï:"Ï",Ĵ:"Ĵ",Й:"Й",𝔍:"𝔍",𝕁:"𝕁",𝒥:"𝒥",Ј:"Ј",Є:"Є",Х:"Х",Ќ:"Ќ",Κ:"Κ",Ķ:"Ķ",К:"К",𝔎:"𝔎",𝕂:"𝕂",𝒦:"𝒦",Љ:"Љ","<":"<",Ĺ:"Ĺ",Λ:"Λ","⟪":"⟪",ℒ:"ℒ","↞":"↞",Ľ:"Ľ",Ļ:"Ļ",Л:"Л","⟨":"⟨","←":"←","⇤":"⇤","⇆":"⇆","⌈":"⌈","⟦":"⟦","⥡":"⥡","⇃":"⇃","⥙":"⥙","⌊":"⌊","↔":"↔","⥎":"⥎","⊣":"⊣","↤":"↤","⥚":"⥚","⊲":"⊲","⧏":"⧏","⊴":"⊴","⥑":"⥑","⥠":"⥠","↿":"↿","⥘":"⥘","↼":"↼","⥒":"⥒","⋚":"⋚","≦":"≦","≶":"≶","⪡":"⪡","⩽":"⩽","≲":"≲",𝔏:"𝔏","⋘":"⋘","⇚":"⇚",Ŀ:"Ŀ","⟵":"⟵","⟷":"⟷","⟶":"⟶",𝕃:"𝕃","↙":"↙","↘":"↘","↰":"↰",Ł:"Ł","≪":"≪","⤅":"⤅",М:"М"," ":" ",ℳ:"ℳ",𝔐:"𝔐","∓":"∓",𝕄:"𝕄",Μ:"Μ",Њ:"Њ",Ń:"Ń",Ň:"Ň",Ņ:"Ņ",Н:"Н","​":"​","\n":" ",𝔑:"𝔑","⁠":"⁠"," ":" ",ℕ:"ℕ","⫬":"⫬","≢":"≢","≭":"≭","∦":"∦","∉":"∉","≠":"≠","≂̸":"≂̸","∄":"∄","≯":"≯","≱":"≱","≧̸":"≧̸","≫̸":"≫̸","≹":"≹","⩾̸":"⩾̸","≵":"≵","≎̸":"≎̸","≏̸":"≏̸","⋪":"⋪","⧏̸":"⧏̸","⋬":"⋬","≮":"≮","≰":"≰","≸":"≸","≪̸":"≪̸","⩽̸":"⩽̸","≴":"≴","⪢̸":"⪢̸","⪡̸":"⪡̸","⊀":"⊀","⪯̸":"⪯̸","⋠":"⋠","∌":"∌","⋫":"⋫","⧐̸":"⧐̸","⋭":"⋭","⊏̸":"⊏̸","⋢":"⋢","⊐̸":"⊐̸","⋣":"⋣","⊂⃒":"⊂⃒","⊈":"⊈","⊁":"⊁","⪰̸":"⪰̸","⋡":"⋡","≿̸":"≿̸","⊃⃒":"⊃⃒","⊉":"⊉","≁":"≁","≄":"≄","≇":"≇","≉":"≉","∤":"∤",𝒩:"𝒩",Ñ:"Ñ",Ν:"Ν",Œ:"Œ",Ó:"Ó",Ô:"Ô",О:"О",Ő:"Ő",𝔒:"𝔒",Ò:"Ò",Ō:"Ō",Ω:"Ω",Ο:"Ο",𝕆:"𝕆","“":"“","‘":"‘","⩔":"⩔",𝒪:"𝒪",Ø:"Ø",Õ:"Õ","⨷":"⨷",Ö:"Ö","‾":"‾","⏞":"⏞","⎴":"⎴","⏜":"⏜","∂":"∂",П:"П",𝔓:"𝔓",Φ:"Φ",Π:"Π","±":"±",ℙ:"ℙ","⪻":"⪻","≺":"≺","⪯":"⪯","≼":"≼","≾":"≾","″":"″","∏":"∏","∝":"∝",𝒫:"𝒫",Ψ:"Ψ",'"':""",𝔔:"𝔔",ℚ:"ℚ",𝒬:"𝒬","⤐":"⤐","®":"®",Ŕ:"Ŕ","⟫":"⟫","↠":"↠","⤖":"⤖",Ř:"Ř",Ŗ:"Ŗ",Р:"Р",ℜ:"ℜ","∋":"∋","⇋":"⇋","⥯":"⥯",Ρ:"Ρ","⟩":"⟩","→":"→","⇥":"⇥","⇄":"⇄","⌉":"⌉","⟧":"⟧","⥝":"⥝","⇂":"⇂","⥕":"⥕","⌋":"⌋","⊢":"⊢","↦":"↦","⥛":"⥛","⊳":"⊳","⧐":"⧐","⊵":"⊵","⥏":"⥏","⥜":"⥜","↾":"↾","⥔":"⥔","⇀":"⇀","⥓":"⥓",ℝ:"ℝ","⥰":"⥰","⇛":"⇛",ℛ:"ℛ","↱":"↱","⧴":"⧴",Щ:"Щ",Ш:"Ш",Ь:"Ь",Ś:"Ś","⪼":"⪼",Š:"Š",Ş:"Ş",Ŝ:"Ŝ",С:"С",𝔖:"𝔖","↑":"↑",Σ:"Σ","∘":"∘",𝕊:"𝕊","√":"√","□":"□","⊓":"⊓","⊏":"⊏","⊑":"⊑","⊐":"⊐","⊒":"⊒","⊔":"⊔",𝒮:"𝒮","⋆":"⋆","⋐":"⋐","⊆":"⊆","≻":"≻","⪰":"⪰","≽":"≽","≿":"≿","∑":"∑","⋑":"⋑","⊃":"⊃","⊇":"⊇",Þ:"Þ","™":"™",Ћ:"Ћ",Ц:"Ц","\t":" ",Τ:"Τ",Ť:"Ť",Ţ:"Ţ",Т:"Т",𝔗:"𝔗","∴":"∴",Θ:"Θ","  ":"  "," ":" ","∼":"∼","≃":"≃","≅":"≅","≈":"≈",𝕋:"𝕋","⃛":"⃛",𝒯:"𝒯",Ŧ:"Ŧ",Ú:"Ú","↟":"↟","⥉":"⥉",Ў:"Ў",Ŭ:"Ŭ",Û:"Û",У:"У",Ű:"Ű",𝔘:"𝔘",Ù:"Ù",Ū:"Ū",_:"_","⏟":"⏟","⎵":"⎵","⏝":"⏝","⋃":"⋃","⊎":"⊎",Ų:"Ų",𝕌:"𝕌","⤒":"⤒","⇅":"⇅","↕":"↕","⥮":"⥮","⊥":"⊥","↥":"↥","↖":"↖","↗":"↗",ϒ:"ϒ",Υ:"Υ",Ů:"Ů",𝒰:"𝒰",Ũ:"Ũ",Ü:"Ü","⊫":"⊫","⫫":"⫫",В:"В","⊩":"⊩","⫦":"⫦","⋁":"⋁","‖":"‖","∣":"∣","|":"|","❘":"❘","≀":"≀"," ":" ",𝔙:"𝔙",𝕍:"𝕍",𝒱:"𝒱","⊪":"⊪",Ŵ:"Ŵ","⋀":"⋀",𝔚:"𝔚",𝕎:"𝕎",𝒲:"𝒲",𝔛:"𝔛",Ξ:"Ξ",𝕏:"𝕏",𝒳:"𝒳",Я:"Я",Ї:"Ї",Ю:"Ю",Ý:"Ý",Ŷ:"Ŷ",Ы:"Ы",𝔜:"𝔜",𝕐:"𝕐",𝒴:"𝒴",Ÿ:"Ÿ",Ж:"Ж",Ź:"Ź",Ž:"Ž",З:"З",Ż:"Ż",Ζ:"Ζ",ℨ:"ℨ",ℤ:"ℤ",𝒵:"𝒵",á:"á",ă:"ă","∾":"∾","∾̳":"∾̳","∿":"∿",â:"â",а:"а",æ:"æ",𝔞:"𝔞",à:"à",ℵ:"ℵ",α:"α",ā:"ā","⨿":"⨿","∧":"∧","⩕":"⩕","⩜":"⩜","⩘":"⩘","⩚":"⩚","∠":"∠","⦤":"⦤","∡":"∡","⦨":"⦨","⦩":"⦩","⦪":"⦪","⦫":"⦫","⦬":"⦬","⦭":"⦭","⦮":"⦮","⦯":"⦯","∟":"∟","⊾":"⊾","⦝":"⦝","∢":"∢","⍼":"⍼",ą:"ą",𝕒:"𝕒","⩰":"⩰","⩯":"⩯","≊":"≊","≋":"≋","'":"'",å:"å",𝒶:"𝒶","*":"*",ã:"ã",ä:"ä","⨑":"⨑","⫭":"⫭","≌":"≌","϶":"϶","‵":"‵","∽":"∽","⋍":"⋍","⊽":"⊽","⌅":"⌅","⎶":"⎶",б:"б","„":"„","⦰":"⦰",β:"β",ℶ:"ℶ","≬":"≬",𝔟:"𝔟","◯":"◯","⨀":"⨀","⨁":"⨁","⨂":"⨂","⨆":"⨆","★":"★","▽":"▽","△":"△","⨄":"⨄","⤍":"⤍","⧫":"⧫","▴":"▴","▾":"▾","◂":"◂","▸":"▸","␣":"␣","▒":"▒","░":"░","▓":"▓","█":"█","=⃥":"=⃥","≡⃥":"≡⃥","⌐":"⌐",𝕓:"𝕓","⋈":"⋈","╗":"╗","╔":"╔","╖":"╖","╓":"╓","═":"═","╦":"╦","╩":"╩","╤":"╤","╧":"╧","╝":"╝","╚":"╚","╜":"╜","╙":"╙","║":"║","╬":"╬","╣":"╣","╠":"╠","╫":"╫","╢":"╢","╟":"╟","⧉":"⧉","╕":"╕","╒":"╒","┐":"┐","┌":"┌","╥":"╥","╨":"╨","┬":"┬","┴":"┴","⊟":"⊟","⊞":"⊞","⊠":"⊠","╛":"╛","╘":"╘","┘":"┘","└":"└","│":"│","╪":"╪","╡":"╡","╞":"╞","┼":"┼","┤":"┤","├":"├","¦":"¦",𝒷:"𝒷","⁏":"⁏","\\":"\","⧅":"⧅","⟈":"⟈","•":"•","⪮":"⪮",ć:"ć","∩":"∩","⩄":"⩄","⩉":"⩉","⩋":"⩋","⩇":"⩇","⩀":"⩀","∩︀":"∩︀","⁁":"⁁","⩍":"⩍",č:"č",ç:"ç",ĉ:"ĉ","⩌":"⩌","⩐":"⩐",ċ:"ċ","⦲":"⦲","¢":"¢",𝔠:"𝔠",ч:"ч","✓":"✓",χ:"χ","○":"○","⧃":"⧃",ˆ:"ˆ","≗":"≗","↺":"↺","↻":"↻","Ⓢ":"Ⓢ","⊛":"⊛","⊚":"⊚","⊝":"⊝","⨐":"⨐","⫯":"⫯","⧂":"⧂","♣":"♣",":":":",",":",","@":"@","∁":"∁","⩭":"⩭",𝕔:"𝕔","℗":"℗","↵":"↵","✗":"✗",𝒸:"𝒸","⫏":"⫏","⫑":"⫑","⫐":"⫐","⫒":"⫒","⋯":"⋯","⤸":"⤸","⤵":"⤵","⋞":"⋞","⋟":"⋟","↶":"↶","⤽":"⤽","∪":"∪","⩈":"⩈","⩆":"⩆","⩊":"⩊","⊍":"⊍","⩅":"⩅","∪︀":"∪︀","↷":"↷","⤼":"⤼","⋎":"⋎","⋏":"⋏","¤":"¤","∱":"∱","⌭":"⌭","⥥":"⥥","†":"†",ℸ:"ℸ","‐":"‐","⤏":"⤏",ď:"ď",д:"д","⇊":"⇊","⩷":"⩷","°":"°",δ:"δ","⦱":"⦱","⥿":"⥿",𝔡:"𝔡","♦":"♦",ϝ:"ϝ","⋲":"⋲","÷":"÷","⋇":"⋇",ђ:"ђ","⌞":"⌞","⌍":"⌍",$:"$",𝕕:"𝕕","≑":"≑","∸":"∸","∔":"∔","⊡":"⊡","⌟":"⌟","⌌":"⌌",𝒹:"𝒹",ѕ:"ѕ","⧶":"⧶",đ:"đ","⋱":"⋱","▿":"▿","⦦":"⦦",џ:"џ","⟿":"⟿",é:"é","⩮":"⩮",ě:"ě","≖":"≖",ê:"ê","≕":"≕",э:"э",ė:"ė","≒":"≒",𝔢:"𝔢","⪚":"⪚",è:"è","⪖":"⪖","⪘":"⪘","⪙":"⪙","⏧":"⏧",ℓ:"ℓ","⪕":"⪕","⪗":"⪗",ē:"ē","∅":"∅"," ":" "," ":" "," ":" ",ŋ:"ŋ"," ":" ",ę:"ę",𝕖:"𝕖","⋕":"⋕","⧣":"⧣","⩱":"⩱",ε:"ε",ϵ:"ϵ","=":"=","≟":"≟","⩸":"⩸","⧥":"⧥","≓":"≓","⥱":"⥱",ℯ:"ℯ",η:"η",ð:"ð",ë:"ë","€":"€","!":"!",ф:"ф","♀":"♀",ffi:"ffi",ff:"ff",ffl:"ffl",𝔣:"𝔣",fi:"fi",fj:"fj","♭":"♭",fl:"fl","▱":"▱",ƒ:"ƒ",𝕗:"𝕗","⋔":"⋔","⫙":"⫙","⨍":"⨍","½":"½","⅓":"⅓","¼":"¼","⅕":"⅕","⅙":"⅙","⅛":"⅛","⅔":"⅔","⅖":"⅖","¾":"¾","⅗":"⅗","⅜":"⅜","⅘":"⅘","⅚":"⅚","⅝":"⅝","⅞":"⅞","⁄":"⁄","⌢":"⌢",𝒻:"𝒻","⪌":"⪌",ǵ:"ǵ",γ:"γ","⪆":"⪆",ğ:"ğ",ĝ:"ĝ",г:"г",ġ:"ġ","⪩":"⪩","⪀":"⪀","⪂":"⪂","⪄":"⪄","⋛︀":"⋛︀","⪔":"⪔",𝔤:"𝔤",ℷ:"ℷ",ѓ:"ѓ","⪒":"⪒","⪥":"⪥","⪤":"⪤","≩":"≩","⪊":"⪊","⪈":"⪈","⋧":"⋧",𝕘:"𝕘",ℊ:"ℊ","⪎":"⪎","⪐":"⪐","⪧":"⪧","⩺":"⩺","⋗":"⋗","⦕":"⦕","⩼":"⩼","⥸":"⥸","≩︀":"≩︀",ъ:"ъ","⥈":"⥈","↭":"↭",ℏ:"ℏ",ĥ:"ĥ","♥":"♥","…":"…","⊹":"⊹",𝔥:"𝔥","⤥":"⤥","⤦":"⤦","⇿":"⇿","∻":"∻","↩":"↩","↪":"↪",𝕙:"𝕙","―":"―",𝒽:"𝒽",ħ:"ħ","⁃":"⁃",í:"í",î:"î",и:"и",е:"е","¡":"¡",𝔦:"𝔦",ì:"ì","⨌":"⨌","∭":"∭","⧜":"⧜","℩":"℩",ij:"ij",ī:"ī",ı:"ı","⊷":"⊷",Ƶ:"Ƶ","℅":"℅","∞":"∞","⧝":"⧝","⊺":"⊺","⨗":"⨗","⨼":"⨼",ё:"ё",į:"į",𝕚:"𝕚",ι:"ι","¿":"¿",𝒾:"𝒾","⋹":"⋹","⋵":"⋵","⋴":"⋴","⋳":"⋳",ĩ:"ĩ",і:"і",ï:"ï",ĵ:"ĵ",й:"й",𝔧:"𝔧",ȷ:"ȷ",𝕛:"𝕛",𝒿:"𝒿",ј:"ј",є:"є",κ:"κ",ϰ:"ϰ",ķ:"ķ",к:"к",𝔨:"𝔨",ĸ:"ĸ",х:"х",ќ:"ќ",𝕜:"𝕜",𝓀:"𝓀","⤛":"⤛","⤎":"⤎","⪋":"⪋","⥢":"⥢",ĺ:"ĺ","⦴":"⦴",λ:"λ","⦑":"⦑","⪅":"⪅","«":"«","⤟":"⤟","⤝":"⤝","↫":"↫","⤹":"⤹","⥳":"⥳","↢":"↢","⪫":"⪫","⤙":"⤙","⪭":"⪭","⪭︀":"⪭︀","⤌":"⤌","❲":"❲","{":"{","[":"[","⦋":"⦋","⦏":"⦏","⦍":"⦍",ľ:"ľ",ļ:"ļ",л:"л","⤶":"⤶","⥧":"⥧","⥋":"⥋","↲":"↲","≤":"≤","⇇":"⇇","⋋":"⋋","⪨":"⪨","⩿":"⩿","⪁":"⪁","⪃":"⪃","⋚︀":"⋚︀","⪓":"⪓","⋖":"⋖","⥼":"⥼",𝔩:"𝔩","⪑":"⪑","⥪":"⥪","▄":"▄",љ:"љ","⥫":"⥫","◺":"◺",ŀ:"ŀ","⎰":"⎰","≨":"≨","⪉":"⪉","⪇":"⪇","⋦":"⋦","⟬":"⟬","⇽":"⇽","⟼":"⟼","↬":"↬","⦅":"⦅",𝕝:"𝕝","⨭":"⨭","⨴":"⨴","∗":"∗","◊":"◊","(":"(","⦓":"⦓","⥭":"⥭","‎":"‎","⊿":"⊿","‹":"‹",𝓁:"𝓁","⪍":"⪍","⪏":"⪏","‚":"‚",ł:"ł","⪦":"⪦","⩹":"⩹","⋉":"⋉","⥶":"⥶","⩻":"⩻","⦖":"⦖","◃":"◃","⥊":"⥊","⥦":"⥦","≨︀":"≨︀","∺":"∺","¯":"¯","♂":"♂","✠":"✠","▮":"▮","⨩":"⨩",м:"м","—":"—",𝔪:"𝔪","℧":"℧",µ:"µ","⫰":"⫰","−":"−","⨪":"⨪","⫛":"⫛","⊧":"⊧",𝕞:"𝕞",𝓂:"𝓂",μ:"μ","⊸":"⊸","⋙̸":"⋙̸","≫⃒":"≫⃒","⇍":"⇍","⇎":"⇎","⋘̸":"⋘̸","≪⃒":"≪⃒","⇏":"⇏","⊯":"⊯","⊮":"⊮",ń:"ń","∠⃒":"∠⃒","⩰̸":"⩰̸","≋̸":"≋̸",ʼn:"ʼn","♮":"♮","⩃":"⩃",ň:"ň",ņ:"ņ","⩭̸":"⩭̸","⩂":"⩂",н:"н","–":"–","⇗":"⇗","⤤":"⤤","≐̸":"≐̸","⤨":"⤨",𝔫:"𝔫","↮":"↮","⫲":"⫲","⋼":"⋼","⋺":"⋺",њ:"њ","≦̸":"≦̸","↚":"↚","‥":"‥",𝕟:"𝕟","¬":"¬","⋹̸":"⋹̸","⋵̸":"⋵̸","⋷":"⋷","⋶":"⋶","⋾":"⋾","⋽":"⋽","⫽⃥":"⫽⃥","∂̸":"∂̸","⨔":"⨔","↛":"↛","⤳̸":"⤳̸","↝̸":"↝̸",𝓃:"𝓃","⊄":"⊄","⫅̸":"⫅̸","⊅":"⊅","⫆̸":"⫆̸",ñ:"ñ",ν:"ν","#":"#","№":"№"," ":" ","⊭":"⊭","⤄":"⤄","≍⃒":"≍⃒","⊬":"⊬","≥⃒":"≥⃒",">⃒":">⃒","⧞":"⧞","⤂":"⤂","≤⃒":"≤⃒","<⃒":"<⃒","⊴⃒":"⊴⃒","⤃":"⤃","⊵⃒":"⊵⃒","∼⃒":"∼⃒","⇖":"⇖","⤣":"⤣","⤧":"⤧",ó:"ó",ô:"ô",о:"о",ő:"ő","⨸":"⨸","⦼":"⦼",œ:"œ","⦿":"⦿",𝔬:"𝔬","˛":"˛",ò:"ò","⧁":"⧁","⦵":"⦵","⦾":"⦾","⦻":"⦻","⧀":"⧀",ō:"ō",ω:"ω",ο:"ο","⦶":"⦶",𝕠:"𝕠","⦷":"⦷","⦹":"⦹","∨":"∨","⩝":"⩝",ℴ:"ℴ",ª:"ª",º:"º","⊶":"⊶","⩖":"⩖","⩗":"⩗","⩛":"⩛",ø:"ø","⊘":"⊘",õ:"õ","⨶":"⨶",ö:"ö","⌽":"⌽","¶":"¶","⫳":"⫳","⫽":"⫽",п:"п","%":"%",".":".","‰":"‰","‱":"‱",𝔭:"𝔭",φ:"φ",ϕ:"ϕ","☎":"☎",π:"π",ϖ:"ϖ",ℎ:"ℎ","+":"+","⨣":"⨣","⨢":"⨢","⨥":"⨥","⩲":"⩲","⨦":"⨦","⨧":"⨧","⨕":"⨕",𝕡:"𝕡","£":"£","⪳":"⪳","⪷":"⪷","⪹":"⪹","⪵":"⪵","⋨":"⋨","′":"′","⌮":"⌮","⌒":"⌒","⌓":"⌓","⊰":"⊰",𝓅:"𝓅",ψ:"ψ"," ":" ",𝔮:"𝔮",𝕢:"𝕢","⁗":"⁗",𝓆:"𝓆","⨖":"⨖","?":"?","⤜":"⤜","⥤":"⥤","∽̱":"∽̱",ŕ:"ŕ","⦳":"⦳","⦒":"⦒","⦥":"⦥","»":"»","⥵":"⥵","⤠":"⤠","⤳":"⤳","⤞":"⤞","⥅":"⥅","⥴":"⥴","↣":"↣","↝":"↝","⤚":"⤚","∶":"∶","❳":"❳","}":"}","]":"]","⦌":"⦌","⦎":"⦎","⦐":"⦐",ř:"ř",ŗ:"ŗ",р:"р","⤷":"⤷","⥩":"⥩","↳":"↳","▭":"▭","⥽":"⥽",𝔯:"𝔯","⥬":"⥬",ρ:"ρ",ϱ:"ϱ","⇉":"⇉","⋌":"⋌","˚":"˚","‏":"‏","⎱":"⎱","⫮":"⫮","⟭":"⟭","⇾":"⇾","⦆":"⦆",𝕣:"𝕣","⨮":"⨮","⨵":"⨵",")":")","⦔":"⦔","⨒":"⨒","›":"›",𝓇:"𝓇","⋊":"⋊","▹":"▹","⧎":"⧎","⥨":"⥨","℞":"℞",ś:"ś","⪴":"⪴","⪸":"⪸",š:"š",ş:"ş",ŝ:"ŝ","⪶":"⪶","⪺":"⪺","⋩":"⋩","⨓":"⨓",с:"с","⋅":"⋅","⩦":"⩦","⇘":"⇘","§":"§",";":";","⤩":"⤩","✶":"✶",𝔰:"𝔰","♯":"♯",щ:"щ",ш:"ш","­":"­",σ:"σ",ς:"ς","⩪":"⩪","⪞":"⪞","⪠":"⪠","⪝":"⪝","⪟":"⪟","≆":"≆","⨤":"⨤","⥲":"⥲","⨳":"⨳","⧤":"⧤","⌣":"⌣","⪪":"⪪","⪬":"⪬","⪬︀":"⪬︀",ь:"ь","/":"/","⧄":"⧄","⌿":"⌿",𝕤:"𝕤","♠":"♠","⊓︀":"⊓︀","⊔︀":"⊔︀",𝓈:"𝓈","☆":"☆","⊂":"⊂","⫅":"⫅","⪽":"⪽","⫃":"⫃","⫁":"⫁","⫋":"⫋","⊊":"⊊","⪿":"⪿","⥹":"⥹","⫇":"⫇","⫕":"⫕","⫓":"⫓","♪":"♪","¹":"¹","²":"²","³":"³","⫆":"⫆","⪾":"⪾","⫘":"⫘","⫄":"⫄","⟉":"⟉","⫗":"⫗","⥻":"⥻","⫂":"⫂","⫌":"⫌","⊋":"⊋","⫀":"⫀","⫈":"⫈","⫔":"⫔","⫖":"⫖","⇙":"⇙","⤪":"⤪",ß:"ß","⌖":"⌖",τ:"τ",ť:"ť",ţ:"ţ",т:"т","⌕":"⌕",𝔱:"𝔱",θ:"θ",ϑ:"ϑ",þ:"þ","×":"×","⨱":"⨱","⨰":"⨰","⌶":"⌶","⫱":"⫱",𝕥:"𝕥","⫚":"⫚","‴":"‴","▵":"▵","≜":"≜","◬":"◬","⨺":"⨺","⨹":"⨹","⧍":"⧍","⨻":"⨻","⏢":"⏢",𝓉:"𝓉",ц:"ц",ћ:"ћ",ŧ:"ŧ","⥣":"⥣",ú:"ú",ў:"ў",ŭ:"ŭ",û:"û",у:"у",ű:"ű","⥾":"⥾",𝔲:"𝔲",ù:"ù","▀":"▀","⌜":"⌜","⌏":"⌏","◸":"◸",ū:"ū",ų:"ų",𝕦:"𝕦",υ:"υ","⇈":"⇈","⌝":"⌝","⌎":"⌎",ů:"ů","◹":"◹",𝓊:"𝓊","⋰":"⋰",ũ:"ũ",ü:"ü","⦧":"⦧","⫨":"⫨","⫩":"⫩","⦜":"⦜","⊊︀":"⊊︀","⫋︀":"⫋︀","⊋︀":"⊋︀","⫌︀":"⫌︀",в:"в","⊻":"⊻","≚":"≚","⋮":"⋮",𝔳:"𝔳",𝕧:"𝕧",𝓋:"𝓋","⦚":"⦚",ŵ:"ŵ","⩟":"⩟","≙":"≙",℘:"℘",𝔴:"𝔴",𝕨:"𝕨",𝓌:"𝓌",𝔵:"𝔵",ξ:"ξ","⋻":"⋻",𝕩:"𝕩",𝓍:"𝓍",ý:"ý",я:"я",ŷ:"ŷ",ы:"ы","¥":"¥",𝔶:"𝔶",ї:"ї",𝕪:"𝕪",𝓎:"𝓎",ю:"ю",ÿ:"ÿ",ź:"ź",ž:"ž",з:"з",ż:"ż",ζ:"ζ",𝔷:"𝔷",ж:"ж","⇝":"⇝",𝕫:"𝕫",𝓏:"𝓏","‍":"‍","‌":"‌"}}}},762:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.numericUnicodeMap={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376}},826:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.fromCodePoint=String.fromCodePoint||function(e){return String.fromCharCode(Math.floor((e-65536)/1024)+55296,(e-65536)%1024+56320)},r.getCodePoint=String.prototype.codePointAt?function(e,r){return e.codePointAt(r)}:function(e,r){return 1024*(e.charCodeAt(r)-55296)+e.charCodeAt(r+1)-56320+65536},r.highSurrogateFrom=55296,r.highSurrogateTo=56319},140:(e,r,t)=>{"use strict";var o=t(918),n=Object.create(null),a="undefined"==typeof document,i=Array.prototype.forEach;function c(){}function l(e,r){if(!r){if(!e.href)return;r=e.href.split("?")[0]}if(u(r)&&!1!==e.isLoaded&&r&&r.indexOf(".css")>-1){e.visited=!0;var t=e.cloneNode();t.isLoaded=!1,t.addEventListener("load",(function(){t.isLoaded||(t.isLoaded=!0,e.parentNode.removeChild(e))})),t.addEventListener("error",(function(){t.isLoaded||(t.isLoaded=!0,e.parentNode.removeChild(e))})),t.href="".concat(r,"?").concat(Date.now()),e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t)}}function s(){var e=document.querySelectorAll("link");i.call(e,(function(e){!0!==e.visited&&l(e)}))}function u(e){return!!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(e)}e.exports=function(e,r){if(a)return console.log("no window.document found, will not HMR CSS"),c;var t,d,p=function(e){var r=n[e];if(!r){if(document.currentScript)r=document.currentScript.src;else{var t=document.getElementsByTagName("script"),a=t[t.length-1];a&&(r=a.src)}n[e]=r}return function(e){if(!r)return null;var t=r.split(/([^\\/]+)\.js$/),n=t&&t[1];return n&&e?e.split(",").map((function(e){var t=new RegExp("".concat(n,"\\.js$"),"g");return o(r.replace(t,"".concat(e.replace(/{fileName}/g,n),".css")))})):[r.replace(".js",".css")]}}(e);return t=function(){var e=p(r.filename),t=function(e){if(!e)return!1;var r=document.querySelectorAll("link"),t=!1;return i.call(r,(function(r){if(r.href){var n=function(e,r){var t;return e=o(e),r.some((function(o){e.indexOf(r)>-1&&(t=o)})),t}(r.href,e);u(n)&&!0!==r.visited&&n&&(l(r,n),t=!0)}})),t}(e);if(r.locals)return console.log("[HMR] Detected local css modules. Reload all css"),void s();t?console.log("[HMR] css reload %s",e.join(" ")):(console.log("[HMR] Reload all css"),s())},d=0,function(){var e=this,r=arguments;clearTimeout(d),d=setTimeout((function(){return t.apply(e,r)}),50)}}},918:e=>{"use strict";e.exports=function(e){if(e=e.trim(),/^data:/i.test(e))return e;var r=-1!==e.indexOf("//")?e.split("//")[0]+"//":"",t=e.replace(new RegExp(r,"i"),"").split("/"),o=t[0].toLowerCase().replace(/\.$/,"");return t[0]="",r+o+t.reduce((function(e,r){switch(r){case"..":e.pop();break;case".":break;default:e.push(r)}return e}),[]).join("/")}},33:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},894:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},338:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},265:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},277:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},787:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},574:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},878:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},495:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},134:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},843:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},483:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},676:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},313:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},710:(e,r,t)=>{"use strict";var o,n;o=void 0,n=t(140)(e.id,{}),e.hot.data&&e.hot.data.value&&e.hot.data.value!==o?e.hot.invalidate():e.hot.accept(),e.hot.dispose((function(e){e.value=o,n()}))},777:(e,r,t)=>{"use strict";function o(e,r){return!(!e||!e.classList.contains(r))||!!e.parentElement&&o(e.parentElement,r)}t(33),t(894),t(338);function n(){return window.innerWidth<440?"mobile":window.innerWidth>=440&&window.innerWidth<900?"tablet":"desktop"}var a=function(){function e(e){this.trapElement=e,this.handleKeyDown=this.handleKeyDown.bind(this),this.trapElement.addEventListener("keydown",this.handleKeyDown)}return e.prototype.handleKeyDown=function(e){var r=Array.from(this.trapElement.querySelectorAll('[role="option"]')).filter((function(e){return"none"!==e.style.display&&-1!==e.tabIndex}));if(["Tab","ArrowDown","ArrowUp"].includes(e.key)&&0!==r.length){var t=r[0],o=r[r.length-1];if("ArrowUp"===e.key)if(document.activeElement===t)o.focus();else{var n=r.indexOf(document.activeElement);r[n-1].focus()}"ArrowDown"===e.key&&(document.activeElement===o?t.focus():(n=r.indexOf(document.activeElement),r[n+1].focus())),"Tab"===e.key&&(e.shiftKey?document.activeElement===t&&(o.focus(),e.preventDefault()):document.activeElement===o&&(t.focus(),e.preventDefault()))}},e.prototype.destroy=function(){this.trapElement.removeEventListener("keydown",this.handleKeyDown)},e}(),i='[data-role="dropdown"]',c='[data-role="dropdown-toggle"]',l='[data-role="dropdown-listbox"]';function s(e){var r,t=e.querySelectorAll(c);null==t||t.forEach(u),null==(r=e.querySelector(l))||r.classList.toggle("dropdown--list_expanded")}function u(e){e.classList.contains("button_dropdown")&&e.classList.toggle("button_dropdown_active")}function d(e){var r=e.target;o(r,"dropdown")&&"dropdown--overlay"!==r.className||document.querySelectorAll(i).forEach((function(e){var r,t;null===(r=e.querySelectorAll(c))||void 0===r||r.forEach((function(e){e.classList.remove("button_dropdown_active")})),null===(t=e.querySelectorAll(l))||void 0===t||t.forEach((function(e){e.classList.remove("dropdown--list_expanded")}))}))}function p(e){e.tag.removeAttribute("style"),e.option.setAttribute("style","display: none")}function f(e){e.tag.setAttribute("style","display: none"),e.option.removeAttribute("style")}function g(e){var r,t=null===(r=e.querySelector(".checkbox--input"))||void 0===r?void 0:r.getAttribute("data-filter"),o=filteringContext.activeFilters.findIndex((function(e){return e===t}));-1===o?filteringContext.activeFilters.push(t):filteringContext.activeFilters.splice(o,1),refreshFiltering(),refreshSourcesetsCache()}document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll(i).forEach((function(e){var r;null===(r=e.querySelectorAll(c))||void 0===r||r.forEach((function(r){r.addEventListener("click",(function(){return s(e)}))})),function(e){new a(e),e.addEventListener("keydown",(function(r){var t;"Escape"===r.key&&(s(e),null===(t=e.querySelector(c))||void 0===t||t.focus())}))}(e)})),document.addEventListener("click",d)})),t(265),document.addEventListener("DOMContentLoaded",(function(){var e=document.getElementById("navigation-wrapper"),r=document.getElementById("library-version"),t=document.getElementById("filter-section"),o=document.querySelector("#filter-section + .navigation-controls--btn"),a=document.getElementById("filter-section-dropdown");if(e&&r&&t&&o&&a){var i=null==t?void 0:t.querySelectorAll(".dropdown--option"),c=null==t?void 0:t.querySelectorAll(".platform-selector");if(c&&i)if(c.length===i.length){var l=Array.from({length:c.length}).map((function(e,r){return{tag:c[r],option:i[r]}})),s=l.map((function(e){return e.tag.getBoundingClientRect().width})),u=n(),d=new ResizeObserver((function(){var r=n();u!==r&&(l.forEach(p),s=function(e){return e.map((function(e){return e.tag.getBoundingClientRect().width}))}(l)),u=r,h(),d.unobserve(e)})),m=function(){d.observe(e)};h(),m(),i.forEach((function(e){e.addEventListener("click",(function(e){g(e.target)})),e.addEventListener("keydown",(function(e){var r=e.key;"Enter"!==r&&" "!==r||g(e.target)}))})),window.addEventListener("resize",m)}else console.warn("Dokka: filter section items are not equal");else console.warn("Dokka: filter section items are not found")}else console.warn("Dokka: filter section is not found");function h(){var n,i;if(e&&a){if(e.getBoundingClientRect().width<900)return l.forEach(f),void a.removeAttribute("style");var c=(r&&o?o.getBoundingClientRect().left-r.getBoundingClientRect().right:0)-44-10,u=0;a.removeAttribute("style");var d=!1;l.forEach((function(e,r){(u+=s[r]+4)=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},h=function(){var e=!1;try{var r="__testLocalStorageKey__";localStorage.setItem(r,r),localStorage.removeItem(r),e=!0}catch(e){console.error("Local storage is not available",e)}return{getItem:function(r){return e?localStorage.getItem(r):null},setItem:function(r,t){e&&localStorage.setItem(r,t)}}}();function v(e){var r,t=null===(r=e.getAttribute("data-togglable"))||void 0===r?void 0:r.split(",");!function(){var r,t,o,n;try{for(var a=m(document.getElementsByClassName("tabs-section")),i=a.next();!i.done;i=a.next()){var c=i.value;try{for(var l=(o=void 0,m(c.children)),s=l.next();!s.done;s=l.next()){var u=s.value;u.getAttribute("data-togglable")===e.getAttribute("data-togglable")?u.setAttribute("data-active",""):u.removeAttribute("data-active")}}catch(e){o={error:e}}finally{try{s&&!s.done&&(n=l.return)&&n.call(l)}finally{if(o)throw o.error}}}}catch(e){r={error:e}}finally{try{i&&!i.done&&(t=a.return)&&t.call(a)}finally{if(r)throw r.error}}}(),document.querySelectorAll(".tabs-section-body *[data-togglable]").forEach((function(e){var r=e.getAttribute("data-togglable");t&&r&&t.includes(r)?e.setAttribute("data-active",""):e.classList.contains("sourceset-dependent-content")||e.removeAttribute("data-active")}))}window.initTabs=function(){var e=document.querySelector(".main-content"),r="active-tab-"+(e?e.getAttribute("data-page-type"):null);document.querySelectorAll("div[tabs-section]").forEach((function(e){!function(e){var r=e.querySelector("button[data-active]");r&&v(r)}(e),e.addEventListener("click",(function(e){var t=e.target,o=t?t.getAttribute("data-togglable"):null;o&&(h.setItem(r,JSON.stringify(o)),v(t))}))}));var t=h.getItem(r);if(t){var o=document.querySelector('div[tabs-section] > button[data-togglable="'+JSON.parse(t)+'"]');o&&v(o)}},window.toggleSections=v,t(710),t(787),t(277)},927:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>i});var o=t(984);function n(e,r){for(var t=0;t{"use strict";var o=t(922),n=t.n(o),a=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|"),"g");const i=function(e){if("string"!=typeof e)throw new TypeError("Expected a `string`, got `".concat(typeof e,"`"));return e.replace(a,"")};var c=t(927),l=t(984),s=t(927),u=void 0!==s?void 0!==s.default?s.default:s:c.default,d=0,p=10,f=null,g=function(e,r,t){(f=new u(e)).onOpen((function(){d=0,void 0!==t&&(p=t)})),f.onClose((function(){if(0===d&&r.close(),f=null,d=0)){var i=self.location.search.toLowerCase(),c=-1===i.indexOf("webpack-dev-server-hot=false"),s=-1===i.indexOf("webpack-dev-server-live-reload=false");if(t&&c)l.Rm.info("App hot update..."),N().emit("webpackHotUpdate",r.currentHash),"undefined"!=typeof self&&self.window&&self.postMessage("webpackHotUpdate".concat(r.currentHash),"*");else if(o&&s)var u=self,d=self.setInterval((function(){("about:"!==u.location.protocol||(u=u.parent).parent===u)&&function(e,r){clearInterval(r),l.Rm.info("App updated. Reloading..."),e.location.reload()}(u,d)}))}}};function P(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}var F=function(e){"object"==typeof e&&["warnings","errors","runtimeErrors"].forEach((function(r){if("string"==typeof e[r]){var t=decodeURIComponent(e[r]),o=new Function("message","var callback = ".concat(t,"\n return callback(message)"));e[r]=o}}))},H={isUnloading:!1,currentHash:t.h()},B={hot:!1,liveReload:!1,progress:!1,overlay:!1},_=function(e){var r={};if("string"==typeof e&&""!==e)for(var t=e.slice(1).split("&"),o=0;o0)return r[r.length-1].getAttribute("src");throw new Error("[webpack-dev-server] Failed to get current script source.")}();try{a=new URL(i,self.location.href)}catch(e){}a&&((r=a).fromCurrentScript=!0)}return r}("?protocol=ws%3A&hostname=0.0.0.0&port=8001&pathname=%2Fws&logging=info&overlay=true&reconnect=10&hot=true&live-reload=true"),M={"Hot Module Replacement":!1,"Live Reloading":!1,Progress:!1,Overlay:!1};if("true"===_.hot&&(B.hot=!0,M["Hot Module Replacement"]=!0),"true"===_["live-reload"]&&(B.liveReload=!0,M["Live Reloading"]=!0),"true"===_.progress&&(B.progress=!0,M.Progress=!0),_.overlay){try{B.overlay=JSON.parse(_.overlay)}catch(e){l.Rm.error("Error parsing overlay options from resource query:",e)}"object"==typeof B.overlay&&(B.overlay=function(e){for(var r=1;r{!function(){"use strict";var e={"./client-src/modules/logger/tapable.js":function(e,r,t){function o(){return{call:function(){}}}t.r(r),t.d(r,{SyncBailHook:function(){return o}})},"./node_modules/webpack/lib/logging/Logger.js":function(e,r){function t(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if(void 0!==("undefined"!=typeof Symbol?Symbol:function(e){return e})&&null!=e[("undefined"!=typeof Symbol?Symbol:function(e){return e}).iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,r){if(e){if("string"==typeof e)return o(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,r):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=new Array(r);t1?r-1:0),o=1;o1e9?(t[0]+=o[0]+1,t[1]=t[1]-1e9+o[1]):(t[0]+=o[0],t[1]+=o[1])),this[s].set(e,t)}},{key:"timeAggregateEnd",value:function(e){if(void 0!==this[s]){var r=this[s].get(e);void 0!==r&&(this[s].delete(e),this[c](i.time,[e].concat(t(r))))}}}],r&&n(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r}();r.Logger=u},"./node_modules/webpack/lib/logging/createConsoleLogger.js":function(e,r,t){function o(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if(void 0!==("undefined"!=typeof Symbol?Symbol:function(e){return e})&&null!=e[("undefined"!=typeof Symbol?Symbol:function(e){return e}).iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,r){if(e){if("string"==typeof e)return n(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,r):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=new Array(r);t0&&"string"==typeof t[0]?["[".concat(e,"] ").concat(t[0])].concat(o(t.slice(1))):["[".concat(e,"]")].concat(o(t)):[]},i=u.some((function(r){return r(e)}));switch(r){case a.debug:if(!i)return;"function"==typeof s.debug?s.debug.apply(s,o(n())):s.log.apply(s,o(n()));break;case a.log:if(!i&&d>c.log)return;s.log.apply(s,o(n()));break;case a.info:if(!i&&d>c.info)return;s.info.apply(s,o(n()));break;case a.warn:if(!i&&d>c.warn)return;s.warn.apply(s,o(n()));break;case a.error:if(!i&&d>c.error)return;s.error.apply(s,o(n()));break;case a.trace:if(!i)return;s.trace();break;case a.groupCollapsed:if(!i&&d>c.log)return;if(!i&&d>c.verbose){"function"==typeof s.groupCollapsed?s.groupCollapsed.apply(s,o(n())):s.log.apply(s,o(n()));break}case a.group:if(!i&&d>c.log)return;"function"==typeof s.group?s.group.apply(s,o(n())):s.log.apply(s,o(n()));break;case a.groupEnd:if(!i&&d>c.log)return;"function"==typeof s.groupEnd&&s.groupEnd();break;case a.time:if(!i&&d>c.log)return;var l=1e3*t[1]+t[2]/1e6,p="[".concat(e,"] ").concat(t[0],": ").concat(l," ms");"function"==typeof s.logTime?s.logTime(p):s.log(p);break;case a.profile:"function"==typeof s.profile&&s.profile.apply(s,o(n()));break;case a.profileEnd:"function"==typeof s.profileEnd&&s.profileEnd.apply(s,o(n()));break;case a.clear:if(!i&&d>c.log)return;"function"==typeof s.clear&&s.clear();break;case a.status:if(!i&&d>c.info)return;"function"==typeof s.status?0===t.length?s.status():s.status.apply(s,o(n())):0!==t.length&&s.info.apply(s,o(n()));break;default:throw new Error("Unexpected LogType ".concat(r))}}}},"./node_modules/webpack/lib/logging/runtime.js":function(e,r,t){function o(){return o=Object.assign?Object.assign.bind():function(e){for(var r=1;r{"use strict";t.d(r,{Bk:()=>c,He:()=>a,Rm:()=>i});var o=t(491),n=t.n(o);function a(e){n().configureDefaultLogger({level:e})}a("info");var i=n().getLogger("webpack-dev-server"),c=function(e){var r=Object.keys(e);if(e&&0!==r.length){for(var t="Server started:",o=0;o{var o,n=function(){return o.indexOf(t.h())>=0},a=t(922),i=function r(){e.hot.check(!0).then((function(e){if(!e)return a("warning","[HMR] Cannot find update. "+("undefined"!=typeof window?"Need to do a full reload!":"Please reload manually!")),a("warning","[HMR] (Probably because of restarting the webpack-dev-server)"),void("undefined"!=typeof window&&window.location.reload());n()||r(),t(617)(e,e),n()&&a("info","[HMR] App is up to date.")})).catch((function(r){var t=e.hot.status();["abort","fail"].indexOf(t)>=0?(a("warning","[HMR] Cannot apply update. "+("undefined"!=typeof window?"Need to do a full reload!":"Please reload manually!")),a("warning","[HMR] "+a.formatError(r)),"undefined"!=typeof window&&window.location.reload()):a("warning","[HMR] Update failed: "+a.formatError(r))}))};t(982).on("webpackHotUpdate",(function(r){o=r,n()||"idle"!==e.hot.status()||(a("info","[HMR] Checking for updates on the server..."),i())})),a("info","[HMR] Waiting for update signal from WDS...")},982:(e,r,t)=>{var o=t(7);e.exports=new o},617:(e,r,t)=>{e.exports=function(e,r){var o=e.filter((function(e){return r&&r.indexOf(e)<0})),n=t(922);o.length>0&&(n("warning","[HMR] The following modules couldn't be hot updated: (They would need a full reload!)"),o.forEach((function(e){n("warning","[HMR] - "+e)}))),r&&0!==r.length?(n("info","[HMR] Updated modules:"),r.forEach((function(e){if("string"==typeof e&&-1!==e.indexOf("!")){var r=e.split("!");n.groupCollapsed("info","[HMR] - "+r.pop()),n("info","[HMR] - "+e),n.groupEnd("info")}else n("info","[HMR] - "+e)})),r.every((function(e){return"number"==typeof e}))&&n("info",'[HMR] Consider using the optimization.moduleIds: "named" for module names.')):n("info","[HMR] Nothing hot updated.")}},922:e=>{var r="info";function t(){}function o(e){return"info"===r&&"info"===e||["info","warning"].indexOf(r)>=0&&"warning"===e||["info","warning","error"].indexOf(r)>=0&&"error"===e}function n(e){return function(r,t){o(r)&&e(t)}}e.exports=function(e,r){o(e)&&("info"===e?console.log(r):"warning"===e?console.warn(r):"error"===e&&console.error(r))};var a=console.group||t,i=console.groupCollapsed||t,c=console.groupEnd||t;e.exports.group=n(a),e.exports.groupCollapsed=n(i),e.exports.groupEnd=n(c),e.exports.setLogLevel=function(e){r=e},e.exports.formatError=function(e){var r=e.message,t=e.stack;return t?t.indexOf(r)<0?r+"\n"+t:t:r}}},o={};function n(e){var r=o[e];if(void 0!==r)return r.exports;var a=o[e]={id:e,exports:{}},i={id:e,module:a,factory:t[e],require:n};return n.i.forEach((function(e){e(i)})),a=i.module,i.factory.call(a.exports,a,a.exports,i.require),a.exports}n.m=t,n.c=o,n.i=[],n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.hu=e=>e+"."+n.h()+".hot-update.js",n.miniCssF=e=>{},n.hmrF=()=>"entry."+n.h()+".hot-update.json",n.h=()=>"a002cb0c8023b615b0b1",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="search:",n.l=(t,o,a,i)=>{if(e[t])e[t].push(o);else{var c,l;if(void 0!==a)for(var s=document.getElementsByTagName("script"),u=0;u{c.onerror=c.onload=null,clearTimeout(f);var n=e[t];if(delete e[t],c.parentNode&&c.parentNode.removeChild(c),n&&n.forEach((e=>e(o))),r)return r(o)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=p.bind(null,c.onerror),c.onload=p.bind(null,c.onload),l&&document.head.appendChild(c)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e,r,t,o={},a=n.c,i=[],c=[],l="idle",s=0,u=[];function d(e){l=e;for(var r=[],t=0;t0)return d("abort").then((function(){throw n[0]}));var a=d("dispose");o.forEach((function(e){e.dispose&&e.dispose()}));var i,c=d("apply"),l=function(e){i||(i=e)},s=[];return o.forEach((function(e){if(e.apply){var r=e.apply(l);if(r)for(var t=0;t=0&&b._disposeHandlers.splice(r,1)},invalidate:function(){switch(this._selfInvalidated=!0,l){case"idle":r=[],Object.keys(n.hmrI).forEach((function(e){n.hmrI[e](m,r)})),d("ready");break;case"ready":Object.keys(n.hmrI).forEach((function(e){n.hmrI[e](m,r)}));break;case"prepare":case"check":case"dispose":case"apply":(t=t||[]).push(m)}},check:f,apply:g,status:function(e){if(!e)return l;c.push(e)},addStatusHandler:function(e){c.push(e)},removeStatusHandler:function(e){var r=c.indexOf(e);r>=0&&c.splice(r,1)},data:o[m]},e=void 0,b),y.parents=i,y.children=[],i=[],u.require=w})),n.hmrC={},n.hmrI={}})(),(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var r=n.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{if("undefined"!=typeof document){var e=[],r=[],t=t=>({dispose:()=>{for(var r=0;r{for(var e=0;e{l.push(t),o.forEach((t=>{var o=n.miniCssF(t),a=n.p+o,i=((e,r)=>{for(var t=document.getElementsByTagName("link"),o=0;o{var l=((e,r,t,o,a)=>{var i=document.createElement("link");return i.rel="stylesheet",i.type="text/css",n.nc&&(i.nonce=n.nc),i.onerror=i.onload=t=>{if(i.onerror=i.onload=null,"load"===t.type)o();else{var n=t&&t.type,c=t&&t.target&&t.target.href||r,l=new Error("Loading CSS chunk "+e+" failed.\n("+n+": "+c+")");l.name="ChunkLoadError",l.code="CSS_CHUNK_LOAD_FAILED",l.type=n,l.request=c,i.parentNode&&i.parentNode.removeChild(i),a(l)}},i.href=r,t?t.parentNode.insertBefore(i,t.nextSibling):document.head.appendChild(i),i})(t,a,i,(()=>{l.as="style",l.rel="preload",o()}),c);e.push(i),r.push(l)})))}))}}})(),(()=>{var e,r,t,o,a,i=n.hmrS_jsonp=n.hmrS_jsonp||{201:0},c={};function l(r,t){return e=t,new Promise(((e,t)=>{c[r]=e;var o=n.p+n.hu(r),a=new Error;n.l(o,(e=>{if(c[r]){c[r]=void 0;var o=e&&("load"===e.type?"missing":e.type),n=e&&e.target&&e.target.src;a.message="Loading hot update chunk "+r+" failed.\n("+o+": "+n+")",a.name="ChunkLoadError",a.type=o,a.request=n,t(a)}}))}))}function s(e){function c(e){for(var r=[e],t={},o=r.map((function(e){return{chain:[e],id:e}}));o.length>0;){var a=o.pop(),i=a.id,c=a.chain,s=n.c[i];if(s&&(!s.hot._selfAccepted||s.hot._selfInvalidated)){if(s.hot._selfDeclined)return{type:"self-declined",chain:c,moduleId:i};if(s.hot._main)return{type:"unaccepted",chain:c,moduleId:i};for(var u=0;u ")),g.type){case"self-declined":e.onDeclined&&e.onDeclined(g),e.ignoreDeclined||(h=new Error("Aborted because of self decline: "+g.moduleId+y));break;case"declined":e.onDeclined&&e.onDeclined(g),e.ignoreDeclined||(h=new Error("Aborted because of declined dependency: "+g.moduleId+" in "+g.parentId+y));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(g),e.ignoreUnaccepted||(h=new Error("Aborted because "+f+" is not accepted"+y));break;case"accepted":e.onAccepted&&e.onAccepted(g),v=!0;break;case"disposed":e.onDisposed&&e.onDisposed(g),b=!0;break;default:throw new Error("Unexception type "+g.type)}if(h)return{error:h};if(v)for(f in d[f]=m,l(u,g.outdatedModules),g.outdatedDependencies)n.o(g.outdatedDependencies,f)&&(s[f]||(s[f]=[]),l(s[f],g.outdatedDependencies[f]));b&&(l(u,[g.moduleId]),d[f]=p)}t=void 0;for(var w,E=[],q=0;q0;){var a=t.pop(),c=n.c[a];if(c){var l={},d=c.hot._disposeHandlers;for(q=0;q=0&&p.parents.splice(e,1)}}}for(var f in s)if(n.o(s,f)&&(c=n.c[f]))for(w=s[f],q=0;q=0&&c.children.splice(e,1)},apply:function(r){for(var t in d)n.o(d,t)&&(n.m[t]=d[t]);for(var o=0;o{for(var l in o)n.o(o,l)&&(t[l]=o[l],e&&e.push(l));i&&a.push(i),c[r]&&(c[r](),c[r]=void 0)},n.hmrI.jsonp=function(e,r){t||(t={},a=[],o=[],r.push(s)),n.o(t,e)||(t[e]=n.m[e])},n.hmrC.jsonp=function(e,c,u,d,p,f){p.push(s),r={},o=c,t=u.reduce((function(e,r){return e[r]=!1,e}),{}),a=[],e.forEach((function(e){n.o(i,e)&&void 0!==i[e]?(d.push(l(e,f)),r[e]=!0):r[e]=!1})),n.f&&(n.f.jsonpHmr=function(e,t){r&&n.o(r,e)&&!r[e]&&(t.push(l(e)),r[e]=!0)})},n.hmrM=()=>{if("undefined"==typeof fetch)throw new Error("No browser support: need fetch API");return fetch(n.p+n.hmrF()).then((e=>{if(404!==e.status){if(!e.ok)throw new Error("Failed to fetch update manifest "+e.statusText);return e.json()}}))}})(),n(877),n(943),n(777)})(); \ No newline at end of file diff --git a/dokka-subprojects/plugin-versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersionsNavigationCreator.kt b/dokka-subprojects/plugin-versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersionsNavigationCreator.kt index fd3079d001..9e223899d0 100644 --- a/dokka-subprojects/plugin-versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersionsNavigationCreator.kt +++ b/dokka-subprojects/plugin-versioning/src/main/kotlin/org/jetbrains/dokka/versioning/VersionsNavigationCreator.kt @@ -68,7 +68,7 @@ public class HtmlVersionsNavigationCreator( attributes["aria-label"] = "Select version" activeVersion?.key?.let { text(it) } } - ul(classes = "dropdown--list") { + ul(classes = "dropdown--list dropdown--list_positioned_left") { attributes["role"] = "listbox" attributes["data-role"] = "dropdown-listbox" attributes["aria-label"] = "Versions" diff --git a/dokka-subprojects/plugin-versioning/src/main/resources/dokka/styles/multimodule.css b/dokka-subprojects/plugin-versioning/src/main/resources/dokka/styles/multimodule.css index 5b2f8a9b95..6f96df6a90 100644 --- a/dokka-subprojects/plugin-versioning/src/main/resources/dokka/styles/multimodule.css +++ b/dokka-subprojects/plugin-versioning/src/main/resources/dokka/styles/multimodule.css @@ -3,20 +3,20 @@ */ .versions-dropdown { - margin-left: var(--size-s2); white-space: nowrap; } @media (width < 900px) { .versions-dropdown { height: 52px; + margin-left: -8px; } } @media (width >= 900px) { .versions-dropdown .dropdown--list { - min-width: 50px; - top: 40px; + min-width: 60px; + top: 44px; } }