diff --git a/dokka-integration-tests/gradle/projects/ui-showcase/jvm/src/main/kotlin/org/jetbrains/dokka/uitest/markdown/MarkdownCode.kt b/dokka-integration-tests/gradle/projects/ui-showcase/jvm/src/main/kotlin/org/jetbrains/dokka/uitest/markdown/MarkdownCode.kt index 28639c1eff..8a3106eb4a 100644 --- a/dokka-integration-tests/gradle/projects/ui-showcase/jvm/src/main/kotlin/org/jetbrains/dokka/uitest/markdown/MarkdownCode.kt +++ b/dokka-integration-tests/gradle/projects/ui-showcase/jvm/src/main/kotlin/org/jetbrains/dokka/uitest/markdown/MarkdownCode.kt @@ -1,31 +1,90 @@ package org.jetbrains.dokka.uitest.markdown /** + * Contains examples of Markdown code showcasing Kotlin syntax highlighting. * - * Contains examples of Markdown code. - * - * Here's a code block: + * Here's a code block with various Kotlin features to test syntax highlighting: * * ``` - * class MyUIClass { - * val scope = MainScope() // the scope of MyUIClass, uses Dispatchers.Main + * // Single-line comment token + * /* Multi-line comment token */ + * /** Documentation comment token */ + * + * // Package declaration to test namespace token + * package com.example.highlighting + * + * // Imports to test namespace tokens + * import kotlin.random.Random + * import kotlin.collections.List + * + * // Type alias to test symbol token + * typealias Handler = (T) -> Unit + * typealias AsyncOperation = suspend () -> Unit + * + * // Sealed interface to test class-name and keyword tokens + * sealed interface State { + * object Loading : State + * data class Success(val data: String) : State + * data class Error(val message: String) : State + * } + * + * // Class with various token types + * class SyntaxDemo { + * // Properties to test property and symbol tokens + * private val number: Int = 42 // number token + * protected var text: String = "Hello" // string token + * internal const val PI = 3.14159 // number token * - * fun destroy() { // destroys an instance of MyUIClass - * scope.cancel() // cancels all coroutines launched in this scope - * // ... do the rest of cleanup here ... - * } + * protected var url: String = "https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/min.html" * - * /* - * * Note: if this instance is destroyed or any of the launched coroutines - * * in this method throws an exception, then all nested coroutines are cancelled. - * */ - * fun showSomeData() = scope.launch { // launched in the main thread - * // ... here we can use suspending functions or coroutine builders with other dispatchers - * draw(data) // draw in the main thread + * var pattern = Regex("""\b\d{3}-\d{3}-\d{4}\b""") + * + * // Companion with property tokens + * companion object { + * const val DEBUG = true // boolean token + * const val CHAR_SAMPLE = 'A' // char token + * @JvmField val EMPTY = "" // string token + * } + * + * // Function to test various tokens + * fun calculate(x: Double): Double { + * val multiplier = 2.5 // number token + * val enabled: Boolean = false // boolean token + * + * // Operators test + * val result = when { + * x <= 0 -> x * multiplier + * x >= 100 -> x / multiplier + * else -> x + multiplier + * } + * + * // Built-in types and functions test + * val numbers: List = listOf(1, 2, 3) + * val filtered = numbers + * .filter { it > 0 } // lambda and operator tokens + * .map { it.toString() } // function token + * .joinToString(separator = ", ") + * + * // String template and escape sequence tokens + * println("Result: $result\nFiltered: $filtered") + * + * return result + * } + * + * // Extension function with operator and symbol tokens + * infix fun Int.power(exponent: Int): Int { + * require(exponent >= 0) { "Exponent must be non-negative" } + * return when (exponent) { + * 0 -> 1 + * 1 -> this + * else -> this * (this power (exponent - 1)) + * } * } * } * ``` * - * Here's inline code: `this` and `that` and `fun foo()` and `class Omg : MyInterface` + * Here's inline code with various token types: + * `val x: Int = 0`, `fun interface EventHandler`, `object : Runnable`, + * `class Sample`, `@Deprecated fun old()`, `var name: String?` */ class MarkdownCode {} diff --git a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt index f44dc4451e..fb20f8b59b 100644 --- a/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt +++ b/dokka-subprojects/core/src/main/kotlin/org/jetbrains/dokka/pages/ContentNodes.kt @@ -393,7 +393,7 @@ public enum class TokenStyle : Style { public enum class TextStyle : Style { Bold, Italic, Strong, Strikethrough, Paragraph, Block, Span, Monospace, Indented, Cover, UnderCoverText, BreakableAfter, Breakable, InlineComment, Quotation, - FloatingRight, Var, Underlined + SourceLink, Var, Underlined } public enum class ContentStyle : Style { diff --git a/dokka-subprojects/plugin-base-frontend/package-lock.json b/dokka-subprojects/plugin-base-frontend/package-lock.json index 011ea6cc75..c3ed51fb8f 100644 --- a/dokka-subprojects/plugin-base-frontend/package-lock.json +++ b/dokka-subprojects/plugin-base-frontend/package-lock.json @@ -10,6 +10,8 @@ "dependencies": { "@babel/core": "^7.16.0", "@babel/preset-env": "^7.24.5", + "@fontsource/inter": "^5.1.1", + "@fontsource/jetbrains-mono": "^5.1.2", "@jetbrains/babel-preset-jetbrains": "^2.3.1", "@jetbrains/logos": "1.4.27", "@jetbrains/ring-ui": "^5.1.28", @@ -3087,6 +3089,16 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@fontsource/inter": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.1.1.tgz", + "integrity": "sha512-weN3E+rq0Xb3Z93VHJ+Rc7WOQX9ETJPTAJ+gDcaMHtjft67L58sfS65rAjC5tZUXQ2FdZ/V1/sSzCwZ6v05kJw==" + }, + "node_modules/@fontsource/jetbrains-mono": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.1.2.tgz", + "integrity": "sha512-muYZK6W3NTrKpKTjoF2dkrtMjXLlPZhniLiLjMmfegRibl2L6jUJh9gB6UcbcZs3zHdIYTmzMkXNbNoI2kXX3Q==" + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", diff --git a/dokka-subprojects/plugin-base-frontend/package.json b/dokka-subprojects/plugin-base-frontend/package.json index ae6de54077..3bb649ecd7 100644 --- a/dokka-subprojects/plugin-base-frontend/package.json +++ b/dokka-subprojects/plugin-base-frontend/package.json @@ -34,6 +34,8 @@ "dependencies": { "@babel/core": "^7.16.0", "@babel/preset-env": "^7.24.5", + "@fontsource/inter": "^5.1.1", + "@fontsource/jetbrains-mono": "^5.1.2", "@jetbrains/babel-preset-jetbrains": "^2.3.1", "@jetbrains/logos": "1.4.27", "@jetbrains/ring-ui": "^5.1.28", diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/images/copy-icon.svg b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/copy-icon.svg similarity index 100% rename from dokka-subprojects/plugin-base/src/main/resources/dokka/images/copy-icon.svg rename to dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_assets/copy-icon.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 13552bdf7d..f589959175 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 @@ -12,7 +12,6 @@ --color-background-page-dt: rgb(38, 38, 40); --color-background-footer: rgb(235, 235, 235); --color-background-footer-dt: rgb(50, 50, 55); - --color-background-code: rgba(230, 230, 230, 1); //#E6E6E6 // Text colors (headings, paragraphs, labels) --color-text: rgb(0, 0, 0); @@ -36,21 +35,16 @@ --color-b70: rgba(0, 0, 0, 0.7); // Code area colors - --color-cd-punctuation: rgb(153, 153, 153); // #999999; - --color-cd-keyword: rgb(0, 51, 179); // #0033B3; - --color-cd-keyword-alternative: rgba(204, 120, 50); // #CC7832; - --color-cd-builtin: rgb(6, 125, 23); // #067D17; - --color-cd-builtin-alternative: rgb(231, 191, 106); // #E8BF6A; - --color-cd-function: rgb(0, 98, 122); // #00627A; - --color-cd-function-alternative: rgb(255, 198, 109); // #FFC66D; - --color-cd-operator: rgb(154, 110, 58); // #9A6E3A; - --color-cd-operator-alternative: rgb(169, 183, 198); // #A9B7C6; - --color-cd-body: rgb(0, 0, 0); // #000000; - --color-cd-body-alternative: rgb(169, 183, 198); // #A9B7C6; + --color-background-inline-code: var(--color-b08); + --color-background-code-block: rgba(25, 25, 28, 0.05); // Targets and source sets --color-generic: rgb(83, 157, 243); --color-jvm: rgb(77, 187, 95); --color-js: rgb(255, 199, 0); --color-wasm: rgb(255, 255, 255); + + // Copy icon colors + --copy-icon-color: var(--color-b50); + --copy-icon-hover-color: var(--color-b70); } diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_tokens/typography.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_tokens/typography.scss index 5fc2ec13c2..cce22577e8 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_tokens/typography.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/_tokens/typography.scss @@ -3,7 +3,7 @@ */ :root { - --font-family-default: JetBrains Sans, Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, + --font-family-default: 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); @@ -12,5 +12,5 @@ --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); + --font-code: 400 15.5px/24px var(--font-family-mono); } diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/code-block/index.ts b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/code-block/index.ts new file mode 100644 index 0000000000..c1cfa6ce40 --- /dev/null +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/code-block/index.ts @@ -0,0 +1,64 @@ +/* + * Copyright 2014-2025 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ +import './styles.scss'; + +// helps with some corner cases where starts working already, +// but the signature is not yet long enough to be wrapped + +const CODE_BLOCK_PADDING = 16 * 2; + +const symbolsObserver = new ResizeObserver((entries) => entries.forEach(wrapSymbolParameters)); + +function initHandlers() { + document.querySelectorAll('div.symbol').forEach((symbol) => symbolsObserver.observe(symbol)); +} + +if (document.readyState === 'loading') { + window.addEventListener('DOMContentLoaded', initHandlers); +} else { + initHandlers(); +} + +function createNbspIndent() { + const indent = document.createElement('span'); + indent.append(document.createTextNode('\u00A0\u00A0\u00A0\u00A0')); + indent.classList.add('nbsp-indent'); + return indent; +} + +function wrapSymbolParameters(entry: ResizeObserverEntry) { + const symbol = entry.target; + const symbolBlockWidth = entry.borderBoxSize && entry.borderBoxSize[0] && entry.borderBoxSize[0].inlineSize; + const sourceButtonWidth = symbol.querySelector('[data-element-type="source-link"]')?.getBoundingClientRect().width || 0; + + // Even though the script is marked as `defer` and we wait for `DOMContentLoaded` event, + // or if this block is a part of hidden tab, it can happen that `symbolBlockWidth` is 0, + // indicating that something hasn't been loaded. + // In this case, observer will be triggered onсe again when it will be ready. + if (symbolBlockWidth > 0) { + const node = symbol.querySelector('.parameters'); + + if (node) { + // if window resize happened and observer was triggered, reset previously wrapped + // parameters as they might not need wrapping anymore, and check again + node.classList.remove('wrapped'); + node.querySelectorAll('.parameter .nbsp-indent').forEach((indent) => indent.remove()); + + const innerTextWidth = Array.from(symbol.children) + .filter((it) => !it.classList.contains('block')) // blocks are usually on their own (like annotations), so ignore it + .map((it) => it.getBoundingClientRect().width) + .reduce((a, b) => a + b, 0); + + // if signature text takes up more than a single line, wrap params for readability + if (innerTextWidth > symbolBlockWidth - CODE_BLOCK_PADDING - sourceButtonWidth) { + node.classList.add('wrapped'); + node.querySelectorAll('.parameter').forEach((param) => { + // has to be a physical indent so that it can be copied. styles like + // paddings and `::before { content: " " }` do not work for that + param.prepend(createNbspIndent()); + }); + } + } + } +} diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/code-block/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/code-block/styles.scss new file mode 100644 index 0000000000..7d4fed448b --- /dev/null +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/code-block/styles.scss @@ -0,0 +1,76 @@ +/*! + * Copyright 2014-2025 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ +@import '../_tokens/index'; + +/** +http://localhost:8001/jvm/org.jetbrains.dokka.uitest.markdown/-markdown-code/index.html + */ +.symbol:not(.token, .wrapped), code.block { + display: block; + box-sizing: border-box; + position: relative; + padding: 12px 16px; + border-radius: var(--size-s1); + background-color: var(--color-background-code-block); + font: var(--font-code); + white-space: pre-wrap; + overflow: scroll; +} + +code.block { + overflow-x: auto; + max-width: 100%; +} + +.source-link-wrapper::after { + display: block; + content: ''; + clear: both; + height: 0; +} + +@media screen and (width <= 759px) { + .source-link-wrapper { + margin-top: 8px; + display: block; + } +} + +.source-link { + float: right; +} + +/** +http://localhost:8001/jvm/org.jetbrains.dokka.uitest.types/-simple-deprecated-kotlin-class/index.html + */ + +.sample-container, div.CodeMirror { + position: relative; + display: flex; + flex-direction: column; +} + +.sample-container span.copy-icon { + display: none; + + &::before { + width: 24px; + height: 24px; + display: inline-block; + content: ''; + /* masks are required if you want to change color of the icon dynamically instead of using those provided with the SVG */ + mask: url("../_assets/copy-icon.svg") no-repeat 50% 50%; + -webkit-mask-size: cover; + mask-size: cover; + background-color: var(--copy-icon-color); + } + + &:hover::before { + background-color: var(--copy-icon-hover-color); + } +} + +.js .sample-container:hover span.copy-icon { + display: inline-block; +} 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 5b6fbc8f97..143cedfb72 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 @@ -15,6 +15,8 @@ --color-background: var(--color-background-page-dt); --text-color: var(--color-text-dt); --text-outline: var(--color-w16); + --color-background-inline-code: var(--color-w10); + --color-background-code-block: var(--color-w05); } body { 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 82e3be2f1f..bef9e9f718 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 @@ -19,10 +19,16 @@ import * as tocTree from './toc-tree/index'; import * as link from './link/index'; import * as breadcrumbs from './breadcrumbs/index'; import * as inlineCode from './inline-code/index'; +import * as codeBlock from './code-block/index'; import { removeBackwardCompatibilityStyles } from './utils'; import './helpers.scss'; import './global.scss'; +import '@fontsource/inter/latin-400.css'; +import '@fontsource/inter/latin-600.css'; +import '@fontsource/jetbrains-mono/latin-400.css'; +import '@fontsource/jetbrains-mono/latin-600.css'; + export { button, checkbox, @@ -42,6 +48,7 @@ export { link, breadcrumbs, inlineCode, + codeBlock, }; document.addEventListener('DOMContentLoaded', () => { diff --git a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/inline-code/styles.scss b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/inline-code/styles.scss index dc598a627c..95d8ea8436 100644 --- a/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/inline-code/styles.scss +++ b/dokka-subprojects/plugin-base-frontend/src/main/ui-kit/inline-code/styles.scss @@ -6,12 +6,8 @@ code:not(.block) { font: var(--font-code); - background: var(--color-background-code); + background: var(--color-background-inline-code); display: inline-block; padding: 0 4px; border-radius: 2px; } - -.theme-dark code:not(.block) { - color: var(--color-text); -} \ No newline at end of file diff --git a/dokka-subprojects/plugin-base-frontend/webpack.config-ui-kit.js b/dokka-subprojects/plugin-base-frontend/webpack.config-ui-kit.js index d54cfe57ae..555fbea060 100644 --- a/dokka-subprojects/plugin-base-frontend/webpack.config-ui-kit.js +++ b/dokka-subprojects/plugin-base-frontend/webpack.config-ui-kit.js @@ -43,6 +43,34 @@ module.exports = (env, args) => { }, module: { rules: [ + { + test: /\.css$/, + use: [ + MiniCssExtractPlugin.loader, + 'css-loader', + isMinify + ? { + loader: 'postcss-loader', + options: { + postcssOptions: { + plugins: [ + [ + 'cssnano', + ], + ], + }, + }, + } + : null, + ].filter(Boolean), + }, + { + test: /\.(woff|woff2|eot|ttf|otf)$/i, + type: 'asset/resource', + generator: { + filename: 'fonts/[name][ext]' + } + }, { test: /\.scss$/, use: [ diff --git a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/HtmlRenderer.kt b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/HtmlRenderer.kt index ad66c04047..5c2e746c51 100644 --- a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/HtmlRenderer.kt +++ b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/renderers/html/HtmlRenderer.kt @@ -219,7 +219,12 @@ public open class HtmlRenderer( childrenCallback() } node.hasStyle(TextStyle.Quotation) -> blockQuote(additionalClasses) { childrenCallback() } - node.hasStyle(TextStyle.FloatingRight) -> span("clearfix") { span("floating-right") { childrenCallback() } } + node.hasStyle(TextStyle.SourceLink) -> span("source-link-wrapper") { + span("source-link") { + attributes["data-element-type"] = "source-link" + childrenCallback() + } + } node.hasStyle(TextStyle.Strikethrough) -> strike { childrenCallback() } node.isAnchorable -> buildAnchor( node.anchor!!, 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 53f1594b8e..d51833c2c8 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 @@ -61,13 +61,7 @@ public class ScriptsInstaller(private val dokkaContext: DokkaContext) : PageTran "scripts/platform-content-handler.js", "scripts/main.js", "scripts/prism.js", - "ui-kit/ui-kit.min.js", - - // It's important for this script to be deferred because it has logic that makes decisions based on - // rendered elements (for instance taking their clientWidth), and if not all styles are loaded/applied - // at the time of inspecting them, it will give incorrect results and might lead to visual bugs. - // should be easy to test if you open any page in incognito or by reloading it (Ctrl+Shift+R) - "scripts/symbol-parameters-wrapper_deferred.js", + "ui-kit/ui-kit.min.js" ) override fun invoke(input: RootPageNode): RootPageNode = @@ -87,7 +81,6 @@ public class StylesInstaller(private val dokkaContext: DokkaContext) : PageTrans "styles/main.css", "styles/prism.css", "styles/logo-styles.css", - "styles/font-jb-sans-auto.css", "ui-kit/ui-kit.min.css" ) @@ -131,12 +124,24 @@ public object AssetsInstaller : PageTransformer { "ui-kit/assets/placeholder.svg", "ui-kit/assets/theme-toggle.svg", "ui-kit/assets/typealias-kotlin.svg", + "ui-kit/assets/copy-icon.svg", // images "images/anchor-copy-button.svg", - "images/copy-icon.svg", "images/copy-successful-icon.svg", "images/logo-icon.svg", + + // fonts + "ui-kit/fonts/inter-latin-400-italic.woff", + "ui-kit/fonts/inter-latin-400-italic.woff2", + "ui-kit/fonts/inter-latin-400-normal.woff", + "ui-kit/fonts/inter-latin-400-normal.woff2", + "ui-kit/fonts/inter-latin-600-normal.woff", + "ui-kit/fonts/inter-latin-600-normal.woff2", + "ui-kit/fonts/jetbrains-mono-latin-400-normal.woff", + "ui-kit/fonts/jetbrains-mono-latin-400-normal.woff2", + "ui-kit/fonts/jetbrains-mono-latin-600-normal.woff", + "ui-kit/fonts/jetbrains-mono-latin-600-normal.woff2" ) override fun invoke(input: RootPageNode): RootPageNode = input.modified( diff --git a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/transformers/pages/sourcelinks/SourceLinksTransformer.kt b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/transformers/pages/sourcelinks/SourceLinksTransformer.kt index 411541bdfc..9b665448a7 100644 --- a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/transformers/pages/sourcelinks/SourceLinksTransformer.kt +++ b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/transformers/pages/sourcelinks/SourceLinksTransformer.kt @@ -114,7 +114,7 @@ public class SourceLinksTransformer( dri, setOf(sourceSet), ContentKind.Source, - setOf(TextStyle.FloatingRight) + setOf(TextStyle.SourceLink) ) { text("(") link("source", link) diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/symbol-parameters-wrapper_deferred.js b/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/symbol-parameters-wrapper_deferred.js deleted file mode 100644 index 31fbc2d1af..0000000000 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/scripts/symbol-parameters-wrapper_deferred.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -// helps with some corner cases where starts working already, -// but the signature is not yet long enough to be wrapped -(function() { - const leftPaddingPx = 60; - - function createNbspIndent() { - let indent = document.createElement("span"); - indent.append(document.createTextNode("\u00A0\u00A0\u00A0\u00A0")); - indent.classList.add("nbsp-indent"); - return indent; - } - - function wrapSymbolParameters(entry) { - const symbol = entry.target; - const symbolBlockWidth = entry.borderBoxSize && entry.borderBoxSize[0] && entry.borderBoxSize[0].inlineSize; - - // Even though the script is marked as `defer` and we wait for `DOMContentLoaded` event, - // or if this block is a part of hidden tab, it can happen that `symbolBlockWidth` is 0, - // indicating that something hasn't been loaded. - // In this case, observer will be triggered onсe again when it will be ready. - if (symbolBlockWidth > 0) { - const node = symbol.querySelector(".parameters"); - - if (node) { - // if window resize happened and observer was triggered, reset previously wrapped - // parameters as they might not need wrapping anymore, and check again - node.classList.remove("wrapped"); - node.querySelectorAll(".parameter .nbsp-indent") - .forEach(indent => indent.remove()); - - const innerTextWidth = Array.from(symbol.children) - .filter(it => !it.classList.contains("block")) // blocks are usually on their own (like annotations), so ignore it - .map(it => it.getBoundingClientRect().width) - .reduce((a, b) => a + b, 0); - - // if signature text takes up more than a single line, wrap params for readability - if (innerTextWidth > (symbolBlockWidth - leftPaddingPx)) { - node.classList.add("wrapped"); - node.querySelectorAll(".parameter").forEach(param => { - // has to be a physical indent so that it can be copied. styles like - // paddings and `::before { content: " " }` do not work for that - param.prepend(createNbspIndent()); - }); - } - } - } - } - - const symbolsObserver = new ResizeObserver(entries => entries.forEach(wrapSymbolParameters)); - - function initHandlers() { - document.querySelectorAll("div.symbol").forEach(symbol => symbolsObserver.observe(symbol)); - } - - if (document.readyState === 'loading') window.addEventListener('DOMContentLoaded', initHandlers); - else initHandlers(); - - // ToDo: Add `unobserve` if dokka will be SPA-like: - // https://github.com/w3c/csswg-drafts/issues/5155 -})(); diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/font-jb-sans-auto.css b/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/font-jb-sans-auto.css deleted file mode 100644 index 18d25d3b85..0000000000 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/font-jb-sans-auto.css +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -/* Light weight */ -@font-face { - font-family: 'JetBrains Sans'; - src: url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Light.woff2') format('woff2'), url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Light.woff') format('woff'); - font-weight: 300; - font-style: normal; - font-display: swap; -} -/* Regular weight */ -@font-face { - font-family: 'JetBrains Sans'; - src: url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Regular.woff2') format('woff2'), url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-Regular.woff') format('woff'); - font-weight: 400; - font-style: normal; - font-display: swap; -} -/* SemiBold weight */ -@font-face { - font-family: 'JetBrains Sans'; - src: url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-SemiBold.woff2') format('woff2'), url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans-SemiBold.woff') format('woff'); - font-weight: 600; - font-style: normal; - font-display: swap; -} - -@supports (font-variation-settings: normal) { - @font-face { - font-family: 'JetBrains Sans'; - src: url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans.woff2') format('woff2 supports variations'), - url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans.woff2') format('woff2-variations'), - url('https://resources.jetbrains.com/storage/jetbrains-sans/JetBrainsSans.woff') format('woff-variations'); - font-weight: 100 900; - font-style: normal; - font-display: swap; - } -} diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/prism.css b/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/prism.css index 4287f6d123..31de1dcbac 100644 --- a/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/prism.css +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/styles/prism.css @@ -21,19 +21,20 @@ code .token { * @author Lea Verou */ +:root.theme-dark { + --color-cd-builtin: var(--color-cd-builtin-alternative); + --color-cd-keyword: var(--color-cd-keyword-alternative); + --color-cd-function: var(--color-cd-function-alternative); + --color-cd-operator: var(--color-cd-operator-alternative); + --color-cd-number: var(--color-cd-number-alternative); +} + .token.comment, .token.prolog, .token.doctype, -.token.cdata { - color: #8c8c8c; -} - +.token.cdata, .token.punctuation { - color: #999; -} - -.token.namespace { - opacity: 0.7; + color: var(--color-cd-punctuation); } .token.property, @@ -43,7 +44,7 @@ code .token { .token.constant, .token.symbol, .token.deleted { - color: #871094; + color: var(--color-cd-number); } .token.selector, @@ -52,7 +53,7 @@ code .token { .token.char, .token.builtin, .token.inserted { - color: #067d17; + color: var(--color-cd-builtin); } .token.operator, @@ -60,36 +61,32 @@ code .token { .token.url, .language-css .token.string, .style .token.string { - color: #9a6e3a; - /* This background color was intended by the author of this theme. */ - background: hsla(0, 0%, 100%, 0.5); + color: var(--color-cd-operator); + background: none; } .token.atrule, .token.attr-value, -.token.keyword { - font-size: inherit; /* to override .keyword */ - color: #0033b3; +.token.keyword, +.token.interpolation-punctuation { + color: var(--color-cd-keyword); } .token.function { - color: #00627a; -} - -.token.class-name { - color: #000000; + color: var(--color-cd-function); } .token.regex, .token.important, .token.variable { - color: #871094; + color: var(--color-cd-number); } .token.important, .token.bold { font-weight: bold; } + .token.italic { font-style: italic; } @@ -98,115 +95,6 @@ code .token { cursor: help; } -.token.operator { - background: none; -} - -/* - * DARK THEME - */ -:root.theme-dark .token.comment, -:root.theme-dark .token.prolog, -:root.theme-dark .token.cdata { - color: #808080; -} - -:root.theme-dark .token.delimiter, -:root.theme-dark .token.boolean, -:root.theme-dark .token.keyword, -:root.theme-dark .token.selector, -:root.theme-dark .token.important, -:root.theme-dark .token.atrule { - color: #cc7832; -} - -:root.theme-dark .token.operator, -:root.theme-dark .token.punctuation, -:root.theme-dark .token.attr-name { - color: #a9b7c6; -} - -:root.theme-dark .token.tag, -:root.theme-dark .token.tag .punctuation, -:root.theme-dark .token.doctype, -:root.theme-dark .token.builtin { - color: #e8bf6a; -} - -:root.theme-dark .token.entity, -:root.theme-dark .token.number, -:root.theme-dark .token.symbol { - color: #6897bb; -} - -:root.theme-dark .token.property, -:root.theme-dark .token.constant, -:root.theme-dark .token.variable { - color: #9876aa; -} - -:root.theme-dark .token.string, -:root.theme-dark .token.char { - color: #6a8759; -} - -:root.theme-dark .token.attr-value, -:root.theme-dark .token.attr-value .punctuation { - color: #a5c261; -} - -:root.theme-dark .token.attr-value .punctuation:first-child { - color: #a9b7c6; -} - -:root.theme-dark .token.url { - text-decoration: underline; - - color: #287bde; - background: transparent; -} - -:root.theme-dark .token.function { - color: #ffc66d; -} - -:root.theme-dark .token.regex { - background: #364135; -} - -:root.theme-dark .token.deleted { - background: #484a4a; -} - -:root.theme-dark .token.inserted { - background: #294436; -} - -:root.theme-dark .token.class-name { - color: #a9b7c6; -} - -:root.theme-dark .token.function { - color: #ffc66d; -} - -:root.theme-darkcode .language-css .token.property, -:root.theme-darkcode .language-css, -:root.theme-dark .token.property + .token.punctuation { - color: #a9b7c6; -} - -code.language-css .token.id { - color: #ffc66d; -} - -:root.theme-dark code.language-css .token.selector > .token.class, -:root.theme-dark code.language-css .token.selector > .token.attribute, -:root.theme-dark code.language-css .token.selector > .token.pseudo-class, -:root.theme-dark code.language-css .token.selector > .token.pseudo-element { - color: #ffc66d; -} - :root.theme-dark .language-plaintext .token { /* plaintext code should be colored as article text */ color: inherit !important; 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 1b38fae94f..ca7e7a2b43 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 @@ -2,9 +2,6 @@ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -@import url('./font-jb-sans-auto.css'); -@import url('https://fonts.googleapis.com/css?family=JetBrains+Mono'); - /* --- root styles --- */ :root { --default-gray: #f4f4f4; @@ -19,14 +16,14 @@ --background-color: var(--default-white); --dark-mode-and-search-icon-color: var(--default-white); --color-dark: #27282c; - --default-font-family: JetBrains Sans, Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Droid Sans, Helvetica Neue, Arial, sans-serif; + --default-font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Droid Sans, Helvetica Neue, Arial, sans-serif; --default-monospace-font-family: JetBrains Mono, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; --default-font-size: 16px; --average-color: var(--color-dark); --brief-color: var(--average-color); --copy-icon-color: rgba(39, 40, 44, .7); --copy-icon-hover-color: var(--color-dark); - --code-background: rgba(39, 40, 44, .05); + --blockquote-background: rgba(39, 40, 44, .05); --border-color: rgba(39, 40, 44, .2); --navigation-highlight-color: rgba(39, 40, 44, 0.05); --top-navigation-height: 73px; @@ -117,7 +114,7 @@ blockquote { .theme-dark blockquote { color: var(--default-font-color); - border-left-color: var(--code-background); + border-left-color: var(--blockquote-background); } pre { @@ -126,7 +123,6 @@ pre { dt { color: #444; - font-weight: 530; } img { @@ -193,7 +189,7 @@ td:first-child { --color-dark: #3d3d41; --default-font-color: rgba(255, 255, 255, 0.96); --border-color: hsla(0, 0%, 100%, 0.2); - --code-background: hsla(0, 0%, 100%, 0.05); + --blockquote-background: hsla(0, 0%, 100%, 0.05); --brief-color: hsla(0, 0%, 100%, 0.4); --copy-icon-color: hsla(0, 0%, 100%, 0.6); --copy-icon-hover-color: #fff; @@ -220,7 +216,7 @@ td:first-child { } .main-content :is(h1, h2) { - font-weight: 530; + font-weight: 600; } @@ -234,11 +230,6 @@ td:first-child { flex-direction: column; } -.cover .platform-hinted.with-platform-tabs .sourceset-dependent-content > .block ~ .symbol { - padding-top: 16px; - padding-left: 0; -} - .cover .sourceset-dependent-content > .block { padding: 16px 0; font-size: 18px; @@ -265,6 +256,10 @@ td:first-child { margin-top: 8px; } +/** +first block on a page +http://localhost:8001/jvm/org.jetbrains.dokka.uitest.internal/function-to-be-used-as-sample.html + */ blockquote, .content > .symbol:first-of-type, p.paragraph:first-child, @@ -298,16 +293,6 @@ p.paragraph:first-child, padding-top: 0; } -.sample-container, div.CodeMirror { - position: relative; - display: flex; - flex-direction: column; -} - -code.paragraph { - display: block; -} - .strikethrough { text-decoration: line-through; } @@ -336,52 +321,10 @@ code.paragraph { padding: 0; } -.symbol:not(.token), code.block { - display: block; - padding: 12px 32px 12px 12px; - border-radius: 8px; - position: relative; - background-color: var(--code-background); - box-sizing: border-box; - white-space: pre-wrap; - font-family: var(--default-monospace-font-family); - line-height: 24px; -} - -code.block { - overflow-x: auto; - max-width: 100%; -} - .copy-icon { cursor: pointer; } -.sample-container span.copy-icon { - display: none; -} - -.js .sample-container:hover span.copy-icon { - display: inline-block; -} - -.sample-container span.copy-icon::before { - width: 24px; - height: 24px; - display: inline-block; - content: ''; - /* masks are required if you want to change color of the icon dynamically instead of using those provided with the SVG */ - -webkit-mask: url("../images/copy-icon.svg") no-repeat 50% 50%; - mask: url("../images/copy-icon.svg") no-repeat 50% 50%; - -webkit-mask-size: cover; - mask-size: cover; - background-color: var(--copy-icon-color); -} - -.sample-container span.copy-icon:hover::before { - background-color: var(--copy-icon-hover-color); -} - .copy-popup-wrapper { display: none; align-items: center; @@ -484,9 +427,9 @@ p.paragraph img { } .deprecation-content { - margin: 20px 10px; + margin: 16px 0; border: 1px solid var(--border-color); - padding: 13px 15px 16px 15px; + padding: 16px; } .deprecation-content > h3 { @@ -496,19 +439,12 @@ p.paragraph img { .deprecation-content > h4 { font-size: 16px; - margin-top: 15px; + margin-top: 16px; margin-bottom: 0; } -.deprecation-content code.block { - padding: 5px 10px; - display: inline-block; -} - +/** https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.native.concurrent/atomic-lazy.html **/ .deprecation-content .footnote { - margin-left: 25px; - font-size: 13px; - font-weight: bold; display: block; } @@ -732,7 +668,7 @@ Just in case of possible performance degradation it excluding tabs with briefs o .filtered-message { margin: 25px; font-size: 20px; - font-weight: bolder; + font-weight: 600; } div.runnablesample { diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/copy-icon.svg b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/copy-icon.svg new file mode 100644 index 0000000000..abeb27e59d --- /dev/null +++ b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/assets/copy-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-italic.woff b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-italic.woff new file mode 100644 index 0000000000..131b25952c Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-italic.woff differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-italic.woff2 b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-italic.woff2 new file mode 100644 index 0000000000..ec07ef7dd6 Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-italic.woff2 differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-normal.woff b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-normal.woff new file mode 100644 index 0000000000..2468d6f027 Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-normal.woff differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-normal.woff2 b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-normal.woff2 new file mode 100644 index 0000000000..33002f1285 Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-400-normal.woff2 differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-600-normal.woff b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-600-normal.woff new file mode 100644 index 0000000000..71a902b548 Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-600-normal.woff differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-600-normal.woff2 b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-600-normal.woff2 new file mode 100644 index 0000000000..fb50a02b2a Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/inter-latin-600-normal.woff2 differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-400-normal.woff b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-400-normal.woff new file mode 100644 index 0000000000..2a9fff0e7c Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-400-normal.woff differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-400-normal.woff2 b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-400-normal.woff2 new file mode 100644 index 0000000000..585887339e Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-400-normal.woff2 differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-600-normal.woff b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-600-normal.woff new file mode 100644 index 0000000000..23e642dacc Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-600-normal.woff differ diff --git a/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-600-normal.woff2 b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-600-normal.woff2 new file mode 100644 index 0000000000..59c24e7cb8 Binary files /dev/null and b/dokka-subprojects/plugin-base/src/main/resources/dokka/ui-kit/fonts/jetbrains-mono-latin-600-normal.woff2 differ 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 b3388954f6..74a5048f7a 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 @@ -12,7 +12,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -30,21 +29,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -55,7 +47,7 @@ --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-default: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); @@ -63,7 +55,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -150,7 +142,7 @@ } .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: 400 14px/20px 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); @@ -203,7 +195,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -221,21 +212,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -246,7 +230,7 @@ --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-default: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); @@ -254,7 +238,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -313,7 +297,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -331,21 +314,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -356,7 +332,7 @@ --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-default: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); @@ -364,7 +340,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -457,7 +433,7 @@ 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: 400 16px/24px 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: -0.03em; list-style-type: none; @@ -578,7 +554,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -596,21 +571,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -621,7 +589,7 @@ --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-default: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); @@ -629,7 +597,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -699,7 +667,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -717,21 +684,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -742,7 +702,7 @@ --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-default: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); @@ -750,7 +710,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -760,7 +720,7 @@ background-color: var(--color-background-footer); color: rgba(0, 0, 0, 0.7); color: var(--color-text-light); - 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: 400 14px/20px 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: 0.15px; margin-top: auto; @@ -895,7 +855,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -913,21 +872,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -938,7 +890,7 @@ --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-default: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); @@ -946,7 +898,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1000,7 +952,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1018,21 +969,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1043,7 +987,7 @@ --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-default: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); @@ -1051,7 +995,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1108,7 +1052,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1126,21 +1069,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1151,7 +1087,7 @@ --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-default: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); @@ -1159,7 +1095,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1171,7 +1107,7 @@ color: hsla(0, 0%, 100%, 0.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: 600 16px/24px 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); @@ -1217,7 +1153,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1235,21 +1170,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1260,7 +1188,7 @@ --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-default: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); @@ -1268,7 +1196,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1277,7 +1205,7 @@ box-sizing: border-box; color: hsla(0, 0%, 100%, 0.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: 400 14px/20px 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; } @@ -1306,7 +1234,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1324,21 +1251,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1349,7 +1269,7 @@ --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-default: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); @@ -1357,7 +1277,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1409,7 +1329,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1427,21 +1346,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1452,7 +1364,7 @@ --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-default: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); @@ -1460,7 +1372,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1566,7 +1478,6 @@ --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1584,21 +1495,14 @@ --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1609,7 +1513,7 @@ --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-default: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); @@ -1617,7 +1521,7 @@ --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1627,7 +1531,7 @@ 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: 400 14px/20px 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; @@ -1723,7 +1627,6 @@ button.platform-tag:focus-visible { --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1741,21 +1644,14 @@ button.platform-tag:focus-visible { --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1766,7 +1662,7 @@ button.platform-tag:focus-visible { --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-default: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); @@ -1774,7 +1670,7 @@ button.platform-tag:focus-visible { --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1799,7 +1695,6 @@ button.platform-tag:focus-visible { --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1817,21 +1712,14 @@ button.platform-tag:focus-visible { --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1842,7 +1730,7 @@ button.platform-tag:focus-visible { --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-default: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); @@ -1850,7 +1738,7 @@ button.platform-tag:focus-visible { --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -1946,7 +1834,6 @@ button.platform-tag:focus-visible { --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -1964,21 +1851,14 @@ button.platform-tag:focus-visible { --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -1989,7 +1869,7 @@ button.platform-tag:focus-visible { --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-default: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); @@ -1997,7 +1877,7 @@ button.platform-tag:focus-visible { --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); + --font-code:400 15.5px/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); @@ -2019,7 +1899,7 @@ button.platform-tag:focus-visible { .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: 400 13px/24px 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); } @@ -2441,7 +2321,6 @@ button.platform-tag:focus-visible { --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -2459,21 +2338,14 @@ button.platform-tag:focus-visible { --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -2484,7 +2356,7 @@ button.platform-tag:focus-visible { --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-default: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); @@ -2492,7 +2364,7 @@ button.platform-tag:focus-visible { --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -2546,7 +2418,6 @@ a { --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -2564,21 +2435,14 @@ a { --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -2589,7 +2453,7 @@ a { --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-default: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); @@ -2597,7 +2461,7 @@ a { --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -2627,7 +2491,6 @@ a { --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -2645,21 +2508,14 @@ a { --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -2670,7 +2526,7 @@ a { --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-default: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); @@ -2678,24 +2534,149 @@ a { --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } code:not(.block) { - background: #e6e6e6; - background: var(--color-background-code); + background: rgba(0, 0, 0, 0.08); + background: var(--color-background-inline-code); border-radius: 2px; display: inline-block; - font: 400 16px/24px JetBrains Mono, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; + font: 400 15.5px/24px JetBrains Mono, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; font: var(--font-code); padding: 0 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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); + --color-generic:#539df3; + --color-jvm:#4dbb5f; + --color-js:#ffc700; + --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); + --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: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 15.5px/24px var(--font-family-mono); + --hover-transition:background-color 200ms ease-in-out; + --rotate-transition:transform 200ms ease-in-out; +} -.theme-dark code:not(.block) { - color: #000; - color: var(--color-text); +.symbol:not(.token):not(.wrapped), code.block { + background-color: rgba(25, 25, 28, 0.05); + background-color: var(--color-background-code-block); + border-radius: 4px; + border-radius: var(--size-s1); + box-sizing: border-box; + display: block; + font: 400 15.5px/24px JetBrains Mono, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; + font: var(--font-code); + overflow: scroll; + padding: 12px 16px; + position: relative; + white-space: pre-wrap; +} + +code.block { + max-width: 100%; + overflow-x: auto; +} + +.source-link-wrapper:after { + clear: both; + content: ""; + display: block; + height: 0; +} + +@media screen and (max-width: 759px) { + .source-link-wrapper { + display: block; + margin-top: 8px; + } +} +.source-link { + float: right; +} + +.sample-container, div.CodeMirror { + display: flex; + flex-direction: column; + position: relative; +} + +.sample-container span.copy-icon { + display: none; +} + +.sample-container span.copy-icon:before { + background-color: rgba(0, 0, 0, 0.5); + background-color: var(--copy-icon-color); + content: ""; + display: inline-block; + height: 24px; + -webkit-mask: url(assets/copy-icon.svg) no-repeat 50% 50%; + mask: url(assets/copy-icon.svg) no-repeat 50% 50%; + -webkit-mask-size: cover; + mask-size: cover; + width: 24px; +} + +.sample-container span.copy-icon:hover:before { + background-color: rgba(0, 0, 0, 0.7); + background-color: var(--copy-icon-hover-color); +} + +.js .sample-container:hover span.copy-icon { + display: inline-block; } :root { --breakpoint-desktop-min:900px; @@ -2711,7 +2692,6 @@ code:not(.block) { --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -2729,21 +2709,14 @@ code:not(.block) { --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -2754,7 +2727,7 @@ code:not(.block) { --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-default: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); @@ -2762,7 +2735,7 @@ code:not(.block) { --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); + --font-code:400 15.5px/24px var(--font-family-mono); --hover-transition:background-color 200ms ease-in-out; --rotate-transition:transform 200ms ease-in-out; } @@ -2791,7 +2764,6 @@ code:not(.block) { --color-background-page-dt:#262628; --color-background-footer:#ebebeb; --color-background-footer-dt:#323237; - --color-background-code:#e6e6e6; --color-text:#000; --color-text-dt:hsla(0,0%,100%,.96); --color-text-light:rgba(0,0,0,.7); @@ -2809,21 +2781,14 @@ code:not(.block) { --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-background-inline-code:var(--color-b08); + --color-background-code-block:rgba(25,25,28,.05); --color-generic:#539df3; --color-jvm:#4dbb5f; --color-js:#ffc700; --color-wasm:#fff; + --copy-icon-color:var(--color-b50); + --copy-icon-hover-color:var(--color-b70); --size-s1:4px; --size-s2:8px; --size-s3:16px; @@ -2834,7 +2799,7 @@ code:not(.block) { --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-default: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); @@ -2842,7 +2807,7 @@ code:not(.block) { --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); + --font-code:400 15.5px/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); @@ -2856,6 +2821,8 @@ code:not(.block) { --color-background:var(--color-background-page-dt); --text-color:var(--color-text-dt); --text-outline:var(--color-w16); + --color-background-inline-code:var(--color-w10); + --color-background-code-block:var(--color-w05); } body { @@ -2863,12 +2830,44 @@ body { background-color: var(--color-background); color: #000; color: var(--text-color); - 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: 400 16px/24px 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); margin: 0; } small { - 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: 400 14px/20px 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); } +/* inter-latin-400-normal */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 400; + src: url(fonts/inter-latin-400-normal.woff2) format('woff2'), url(fonts/inter-latin-400-normal.woff) format('woff'); +} +/* inter-latin-600-normal */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 600; + src: url(fonts/inter-latin-600-normal.woff2) format('woff2'), url(fonts/inter-latin-600-normal.woff) format('woff'); +} +/* jetbrains-mono-latin-400-normal */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-display: swap; + font-weight: 400; + src: url(fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2'), url(fonts/jetbrains-mono-latin-400-normal.woff) format('woff'); +} +/* jetbrains-mono-latin-600-normal */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-display: swap; + font-weight: 600; + src: url(fonts/jetbrains-mono-latin-600-normal.woff2) format('woff2'), url(fonts/jetbrains-mono-latin-600-normal.woff) format('woff'); +} 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 1e5ca211ee..c14dc1ccd5 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 +1 @@ -.button{align-items:center;background-color:transparent;border:none;border-radius:4px;border-radius:var(--size-s1);box-sizing:border-box;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)}.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)}.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;-webkit-transform:translateZ(0);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:100%;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}.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--option .checkbox:first-letter{text-transform:uppercase}.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}}@media(max-width:899px){.dropdown--header+:not(.sidebar--inner){margin-top:12px}}.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}.footer{background-color:#ebebeb;background-color:var(--color-background-footer);color:rgba(0,0,0,.7);color:var(--color-text-light);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:.15px;margin-top:auto;min-height:var(--footer-height);position:relative}.theme-dark .footer{background-color:#323237;background-color:var(--color-background-footer-dt);color:hsla(0,0%,100%,.7);color:var(--color-text-light-dt)}.footer--container{align-items:flex-start;box-sizing:border-box;display:flex;justify-content:space-between;margin-left:auto;margin-right:auto;max-width:var(--content-max-width);padding:0 48px;padding:0 var(--size-m3)}@media(max-width:439px){.footer--container{padding:0 16px;padding:0 var(--size-s3)}}.footer--button{align-items:center;background-color:transparent;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;filter:invert(1);flex-shrink:0;font-size:0;height:40px;justify-content:center;line-height:0;margin-bottom:12px;margin-top:12px;outline-color:#6c4a00!important;padding:0;width:40px;z-index:0}.theme-dark .footer--button{filter:none}@media(hover:hover){.footer--button:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}}.footer--button:active{background-color:hsla(0,0%,100%,.16);background-color:var(--color-w16)}.footer--button.focus-visible{outline:var(--focus-outline)}.footer--button:focus-visible{outline:var(--focus-outline)}.footer--button_go-to-top{background-image:url(assets/go-to-top-icon.svg)}.footer--link{border-bottom:1px solid rgba(0,0,0,.7);border-bottom:1px solid var(--color-text-light);color:inherit}.theme-dark .footer--link{border-bottom-color:hsla(0,0%,100%,.7);border-bottom-color:var(--color-text-light-dt)}.footer--link.focus-visible{outline:var(--focus-outline)}.footer--link:focus-visible{outline:var(--focus-outline)}.footer--link:hover{border-bottom-color:#000;border-bottom-color:var(--color-text)}.theme-dark .footer--link:hover{border-bottom-color:hsla(0,0%,100%,.96);border-bottom-color:var(--color-text-dt)}.footer--content{align-items:center;display:flex;margin:12px 0;min-height:40px;text-align:right}.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{display:flex;flex-direction:column;height:100%}#container{display:flex;flex:1 1 auto;min-height:0}#main{display:flex;flex:1 1 0;flex-direction:column;overflow:auto}.main-content{box-sizing:border-box;margin-left:auto;margin-right:auto;max-width:var(--content-max-width);padding:0 48px 72px;padding:0 var(--size-m3) var(--size-l2);width:100%;z-index:0}@media(max-width:439px){.main-content{padding-left:16px;padding-left:var(--size-s3);padding-right:16px;padding-right:var(--size-s3)}}.library-name--link{align-items:center;border-radius:4px;border-radius:var(--size-s1);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:min(var(--dokka-logo-height),120px) min(var(--dokka-logo-width),36px);content:"";height:var(--dokka-logo-height);margin-right:8px;margin-right:var(--size-s2);max-height:36px;max-width:120px;width:var(--dokka-logo-width)}.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}}.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}}.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:transparent;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;width:40px;z-index:0}@media(hover:hover){.navigation-controls--btn:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}}.navigation-controls--btn:active{background-color:hsla(0,0%,100%,.16);background-color:var(--color-w16)}.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}.navigation-controls--btn_go-to-top{background-image:url(assets/go-to-top-icon.svg)}.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}.platform-tags{display:flex;flex-wrap:wrap;margin-bottom:-8px;margin-left:-4px}.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{--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}.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 4px 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}}@media(max-width:899px){.sidebar .button{height:52px;min-width:52px}}.theme-dark .sidebar{border-right-color:#56565f}.no-js .sidebar{display:none}.sidebar--inner{padding-bottom:12px;padding-top:12px}a{text-decoration:none}.main-content a:not([data-name]){cursor:pointer;font-size:inherit;font-style:normal;line-height:inherit;outline:none;transition:color .2s,border-color .2s;word-wrap:break-word;border-bottom:1px solid var(--text-outline);padding-bottom:1px;word-break:break-word}.main-content a:not([data-name]),.main-content a:not([data-name]):active,.main-content a:not([data-name]):focus,.main-content a:not([data-name]):hover{color:var(--text-color);text-decoration:none}.main-content a:not([data-name]):hover{border-bottom-color:var(--text-color)}.main-content a:not([data-name]).focus-visible{box-shadow:0 0 0 4px rgba(48,127,255,.5);box-shadow:0 0 0 4px var(--color-key-blue-50)}.main-content a:not([data-name]):focus-visible{box-shadow:0 0 0 4px rgba(48,127,255,.5);box-shadow:0 0 0 4px var(--color-key-blue-50)}.breadcrumbs{--breadcrumb-size:24px;margin-top:var(--breadcrumb-size);min-height:var(--breadcrumb-size);word-wrap:break-word}.breadcrumbs .delimiter{color:var(--text-outline);margin:0 2px}code:not(.block){background:#e6e6e6;background:var(--color-background-code);border-radius:2px;display:inline-block;font:400 16px/24px JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font:var(--font-code);padding:0 4px}.theme-dark code:not(.block){color:#000;color:var(--color-text)}@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-background-code:#e6e6e6;--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,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);--content-max-width:1128px;--text-color:var(--color-text);--text-outline:var(--color-b20)}.theme-dark{--color-background:var(--color-background-page-dt);--text-color:var(--color-text-dt);--text-outline:var(--color-w16)}body{background-color:#fff;background-color:var(--color-background);color:#000;color:var(--text-color);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);margin:0}small{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)} \ No newline at end of file +.button{align-items:center;background-color:transparent;border:none;border-radius:4px;border-radius:var(--size-s1);box-sizing:border-box;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 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)}.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)}.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;-webkit-transform:translateZ(0);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:100%;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 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}.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--option .checkbox:first-letter{text-transform:uppercase}.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}}@media(max-width:899px){.dropdown--header+:not(.sidebar--inner){margin-top:12px}}.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}.footer{background-color:#ebebeb;background-color:var(--color-background-footer);color:rgba(0,0,0,.7);color:var(--color-text-light);font:400 14px/20px 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:.15px;margin-top:auto;min-height:var(--footer-height);position:relative}.theme-dark .footer{background-color:#323237;background-color:var(--color-background-footer-dt);color:hsla(0,0%,100%,.7);color:var(--color-text-light-dt)}.footer--container{align-items:flex-start;box-sizing:border-box;display:flex;justify-content:space-between;margin-left:auto;margin-right:auto;max-width:var(--content-max-width);padding:0 48px;padding:0 var(--size-m3)}@media(max-width:439px){.footer--container{padding:0 16px;padding:0 var(--size-s3)}}.footer--button{align-items:center;background-color:transparent;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;filter:invert(1);flex-shrink:0;font-size:0;height:40px;justify-content:center;line-height:0;margin-bottom:12px;margin-top:12px;outline-color:#6c4a00!important;padding:0;width:40px;z-index:0}.theme-dark .footer--button{filter:none}@media(hover:hover){.footer--button:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}}.footer--button:active{background-color:hsla(0,0%,100%,.16);background-color:var(--color-w16)}.footer--button.focus-visible{outline:var(--focus-outline)}.footer--button:focus-visible{outline:var(--focus-outline)}.footer--button_go-to-top{background-image:url(assets/go-to-top-icon.svg)}.footer--link{border-bottom:1px solid rgba(0,0,0,.7);border-bottom:1px solid var(--color-text-light);color:inherit}.theme-dark .footer--link{border-bottom-color:hsla(0,0%,100%,.7);border-bottom-color:var(--color-text-light-dt)}.footer--link.focus-visible{outline:var(--focus-outline)}.footer--link:focus-visible{outline:var(--focus-outline)}.footer--link:hover{border-bottom-color:#000;border-bottom-color:var(--color-text)}.theme-dark .footer--link:hover{border-bottom-color:hsla(0,0%,100%,.96);border-bottom-color:var(--color-text-dt)}.footer--content{align-items:center;display:flex;margin:12px 0;min-height:40px;text-align:right}.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{display:flex;flex-direction:column;height:100%}#container{display:flex;flex:1 1 auto;min-height:0}#main{display:flex;flex:1 1 0;flex-direction:column;overflow:auto}.main-content{box-sizing:border-box;margin-left:auto;margin-right:auto;max-width:var(--content-max-width);padding:0 48px 72px;padding:0 var(--size-m3) var(--size-l2);width:100%;z-index:0}@media(max-width:439px){.main-content{padding-left:16px;padding-left:var(--size-s3);padding-right:16px;padding-right:var(--size-s3)}}.library-name--link{align-items:center;border-radius:4px;border-radius:var(--size-s1);color:hsla(0,0%,100%,.96);color:var(--color-text-dt);display:flex;font:600 16px/24px 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:min(var(--dokka-logo-height),120px) min(var(--dokka-logo-width),36px);content:"";height:var(--dokka-logo-height);margin-right:8px;margin-right:var(--size-s2);max-height:36px;max-width:120px;width:var(--dokka-logo-width)}.library-version{box-sizing:border-box;color:hsla(0,0%,100%,.96);color:var(--color-text-dt);font:400 14px/20px 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}}.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}}.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:transparent;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;width:40px;z-index:0}@media(hover:hover){.navigation-controls--btn:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}}.navigation-controls--btn:active{background-color:hsla(0,0%,100%,.16);background-color:var(--color-w16)}.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}.navigation-controls--btn_go-to-top{background-image:url(assets/go-to-top-icon.svg)}.platform-tag{--platform-tag-color:#bababb;border:0;border-radius:4px;border-radius:var(--size-s1);font:400 14px/20px 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}.platform-tags{display:flex;flex-wrap:wrap;margin-bottom:-8px;margin-left:-4px}.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{--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 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}.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 4px 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}}@media(max-width:899px){.sidebar .button{height:52px;min-width:52px}}.theme-dark .sidebar{border-right-color:#56565f}.no-js .sidebar{display:none}.sidebar--inner{padding-bottom:12px;padding-top:12px}a{text-decoration:none}.main-content a:not([data-name]){cursor:pointer;font-size:inherit;font-style:normal;line-height:inherit;outline:none;transition:color .2s,border-color .2s;word-wrap:break-word;border-bottom:1px solid var(--text-outline);padding-bottom:1px;word-break:break-word}.main-content a:not([data-name]),.main-content a:not([data-name]):active,.main-content a:not([data-name]):focus,.main-content a:not([data-name]):hover{color:var(--text-color);text-decoration:none}.main-content a:not([data-name]):hover{border-bottom-color:var(--text-color)}.main-content a:not([data-name]).focus-visible{box-shadow:0 0 0 4px rgba(48,127,255,.5);box-shadow:0 0 0 4px var(--color-key-blue-50)}.main-content a:not([data-name]):focus-visible{box-shadow:0 0 0 4px rgba(48,127,255,.5);box-shadow:0 0 0 4px var(--color-key-blue-50)}.breadcrumbs{--breadcrumb-size:24px;margin-top:var(--breadcrumb-size);min-height:var(--breadcrumb-size);word-wrap:break-word}.breadcrumbs .delimiter{color:var(--text-outline);margin:0 2px}code:not(.block){background:rgba(0,0,0,.08);background:var(--color-background-inline-code);border-radius:2px;display:inline-block;padding:0 4px}.symbol:not(.token):not(.wrapped),code.block,code:not(.block){font:400 15.5px/24px JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font:var(--font-code)}.symbol:not(.token):not(.wrapped),code.block{background-color:rgba(25,25,28,.05);background-color:var(--color-background-code-block);border-radius:4px;border-radius:var(--size-s1);box-sizing:border-box;display:block;overflow:scroll;padding:12px 16px;position:relative;white-space:pre-wrap}code.block{max-width:100%;overflow-x:auto}.source-link-wrapper:after{clear:both;content:"";display:block;height:0}@media screen and (max-width:759px){.source-link-wrapper{display:block;margin-top:8px}}.source-link{float:right}.sample-container,div.CodeMirror{display:flex;flex-direction:column;position:relative}.sample-container span.copy-icon{display:none}.sample-container span.copy-icon:before{background-color:rgba(0,0,0,.5);background-color:var(--copy-icon-color);content:"";display:inline-block;height:24px;-webkit-mask:url(assets/copy-icon.svg) no-repeat 50% 50%;mask:url(assets/copy-icon.svg) no-repeat 50% 50%;-webkit-mask-size:cover;mask-size:cover;width:24px}.sample-container span.copy-icon:hover:before{background-color:rgba(0,0,0,.7);background-color:var(--copy-icon-hover-color)}.js .sample-container:hover span.copy-icon{display:inline-block}@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-background-inline-code:var(--color-b08);--color-background-code-block:rgba(25,25,28,.05);--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--copy-icon-color:var(--color-b50);--copy-icon-hover-color:var(--color-b70);--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:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,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 15.5px/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);--content-max-width:1128px;--text-color:var(--color-text);--text-outline:var(--color-b20)}.theme-dark{--color-background:var(--color-background-page-dt);--text-color:var(--color-text-dt);--text-outline:var(--color-w16);--color-background-inline-code:var(--color-w10);--color-background-code-block:var(--color-w05)}body{background-color:#fff;background-color:var(--color-background);color:#000;color:var(--text-color);font:400 16px/24px 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);margin:0}small{font:400 14px/20px 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)}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(fonts/inter-latin-400-normal.woff2) format("woff2"),url(fonts/inter-latin-400-normal.woff) format("woff")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(fonts/inter-latin-600-normal.woff2) format("woff2"),url(fonts/inter-latin-600-normal.woff) format("woff")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400;src:url(fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2"),url(fonts/jetbrains-mono-latin-400-normal.woff) format("woff")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:600;src:url(fonts/jetbrains-mono-latin-600-normal.woff2) format("woff2"),url(fonts/jetbrains-mono-latin-600-normal.woff) format("woff")} \ No newline at end of file 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 cc9938894d..678d89c429 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 @@ -(()=>{"use strict";function t(e,n){return!(!e||!e.classList.contains(n))||!!e.parentElement&&t(e.parentElement,n)}document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll("div.button").forEach((function(t){t.addEventListener("keyup",(function(e){var n=e.key;"Enter"!==n&&" "!==n||t.dispatchEvent(new MouseEvent("click"))}))}))}));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"]',r='[data-role="dropdown-toggle"]',i='[data-role="dropdown-listbox"]';function l(t){var e,n,o=t.querySelectorAll(r);null==o||o.forEach(a),e=t.querySelector(i),n=o[0].offsetWidth,e&&(e.classList.toggle("dropdown--list_expanded"),e.classList.contains("dropdown--list_expanded")?c(e,n):c(e,void 0))}function a(t){t.classList.contains("button_dropdown")&&t.classList.toggle("button_dropdown_active")}function c(t,e){if(e){var n=parseInt(getComputedStyle(t).minWidth,10),o=isNaN(n)?e:Math.max(n,e);t.style.minWidth="".concat(o,"px")}else t.style.minWidth=""}function d(e){var n=e.target;t(n,"dropdown")&&"dropdown--overlay"!==n.className||document.querySelectorAll(o).forEach((function(t){var e,n;null===(e=t.querySelectorAll(r))||void 0===e||e.forEach((function(t){t.classList.remove("button_dropdown_active")})),null===(n=t.querySelectorAll(i))||void 0===n||n.forEach((function(t){t.classList.remove("dropdown--list_expanded"),t.style.minWidth=""}))}))}function u(t){t.tag.removeAttribute("style"),t.option.setAttribute("style","display: none")}function s(t){t.tag.setAttribute("style","display: none"),t.option.removeAttribute("style")}function f(t){var e,n=null===(e=t.querySelector(".checkbox--input"))||void 0===e?void 0:e.getAttribute("data-filter");n&&(-1===filteringContext.activeFilters.findIndex((function(t){return t===n}))?unfilterSourceset(n):filterSourceset(n)),refreshFiltering()}document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll(o).forEach((function(t){var e;null===(e=t.querySelectorAll(r))||void 0===e||e.forEach((function(e){e.addEventListener("click",(function(){return l(t)}))})),function(t){new n(t),t.addEventListener("keyup",(function(e){var n;"Escape"===e.key&&(l(t),null===(n=t.querySelector(r))||void 0===n||n.focus())}))}(t)})),document.addEventListener("click",d)})),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 c=Array.from({length:a.length}).map((function(t,e){return{tag:a[e],option:l[e]}})),d=c.map((function(t){return t.tag.getBoundingClientRect().width})),v=e(),m=new ResizeObserver((function(){var n=e();v!==n&&(c.forEach(u),d=function(t){return t.map((function(t){return t.tag.getBoundingClientRect().width}))}(c)),v=n,y(),m.unobserve(t)})),g=function(){m.observe(t)};y(),g(),l.forEach((function(t){t.addEventListener("click",(function(t){f(t.target)})),t.addEventListener("keyup",(function(t){var e=t.key;"Enter"!==e&&" "!==e||f(t.target)}))})),window.addEventListener("resize",g)}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 c.forEach(s),void i.removeAttribute("style");var a=(n&&r?r.getBoundingClientRect().left-n.getBoundingClientRect().right:0)-44-10,f=0;i.removeAttribute("style");var v=!1;c.forEach((function(t,e){(f+=d[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.")},m=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 g(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=v(document.getElementsByClassName("tabs-section")),l=i.next();!l.done;l=i.next()){var a=l.value;try{for(var c=(o=void 0,v(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&&g(e)}(t),t.addEventListener("click",(function(t){var n=t.target,o=n?n.getAttribute("data-togglable"):null;o&&(m.setItem(e,JSON.stringify(o)),g(n))}))}));var n=m.getItem(e);if(n){var o=document.querySelector('div[tabs-section] > button[data-togglable="'+JSON.parse(n)+'"]');o&&g(o)}},window.toggleSections=g,document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll('[data-remove-style="true"]').forEach((function(t){t.removeAttribute("style")}))}))})(); \ No newline at end of file +(()=>{"use strict";function e(t,n){return!(!t||!t.classList.contains(n))||!!t.parentElement&&e(t.parentElement,n)}document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll("div.button").forEach((function(e){e.addEventListener("keyup",(function(t){var n=t.key;"Enter"!==n&&" "!==n||e.dispatchEvent(new MouseEvent("click"))}))}))}));function t(){return window.innerWidth<440?"mobile":window.innerWidth>=440&&window.innerWidth<900?"tablet":"desktop"}var n=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 t=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!==t.length){var n=t[0],o=t[t.length-1];if("ArrowUp"===e.key)if(document.activeElement===n)o.focus();else{var r=t.indexOf(document.activeElement);t[r-1].focus()}"ArrowDown"===e.key&&(document.activeElement===o?n.focus():(r=t.indexOf(document.activeElement),t[r+1].focus())),"Tab"===e.key&&(e.shiftKey?document.activeElement===n&&(o.focus(),e.preventDefault()):document.activeElement===o&&(n.focus(),e.preventDefault()))}},e.prototype.destroy=function(){this.trapElement.removeEventListener("keydown",this.handleKeyDown)},e}(),o='[data-role="dropdown"]',r='[data-role="dropdown-toggle"]',i='[data-role="dropdown-listbox"]';function a(e){var t,n,o=e.querySelectorAll(r);null==o||o.forEach(l),t=e.querySelector(i),n=o[0].offsetWidth,t&&(t.classList.toggle("dropdown--list_expanded"),t.classList.contains("dropdown--list_expanded")?c(t,n):c(t,void 0))}function l(e){e.classList.contains("button_dropdown")&&e.classList.toggle("button_dropdown_active")}function c(e,t){if(t){var n=parseInt(getComputedStyle(e).minWidth,10),o=isNaN(n)?t:Math.max(n,t);e.style.minWidth="".concat(o,"px")}else e.style.minWidth=""}function d(t){var n=t.target;e(n,"dropdown")&&"dropdown--overlay"!==n.className||document.querySelectorAll(o).forEach((function(e){var t,n;null===(t=e.querySelectorAll(r))||void 0===t||t.forEach((function(e){e.classList.remove("button_dropdown_active")})),null===(n=e.querySelectorAll(i))||void 0===n||n.forEach((function(e){e.classList.remove("dropdown--list_expanded"),e.style.minWidth=""}))}))}function u(e){e.tag.removeAttribute("style"),e.option.setAttribute("style","display: none")}function s(e){e.tag.setAttribute("style","display: none"),e.option.removeAttribute("style")}function f(e){var t,n=null===(t=e.querySelector(".checkbox--input"))||void 0===t?void 0:t.getAttribute("data-filter");n&&(-1===filteringContext.activeFilters.findIndex((function(e){return e===n}))?unfilterSourceset(n):filterSourceset(n)),refreshFiltering()}document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll(o).forEach((function(e){var t;null===(t=e.querySelectorAll(r))||void 0===t||t.forEach((function(t){t.addEventListener("click",(function(){return a(e)}))})),function(e){new n(e),e.addEventListener("keyup",(function(t){var n;"Escape"===t.key&&(a(e),null===(n=e.querySelector(r))||void 0===n||n.focus())}))}(e)})),document.addEventListener("click",d)})),document.addEventListener("DOMContentLoaded",(function(){var e=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(e&&n&&o&&r&&i){var a=null==o?void 0:o.querySelectorAll(".dropdown--option"),l=null==o?void 0:o.querySelectorAll(".platform-selector");if(l&&a)if(l.length===a.length){var c=Array.from({length:l.length}).map((function(e,t){return{tag:l[t],option:a[t]}})),d=c.map((function(e){return e.tag.getBoundingClientRect().width})),v=t(),m=new ResizeObserver((function(){var n=t();v!==n&&(c.forEach(u),d=function(e){return e.map((function(e){return e.tag.getBoundingClientRect().width}))}(c)),v=n,y(),m.unobserve(e)})),g=function(){m.observe(e)};y(),g(),a.forEach((function(e){e.addEventListener("click",(function(e){f(e.target)})),e.addEventListener("keyup",(function(e){var t=e.key;"Enter"!==t&&" "!==t||f(e.target)}))})),window.addEventListener("resize",g)}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 t,a;if(e&&i){if(e.getBoundingClientRect().width<900)return c.forEach(s),void i.removeAttribute("style");var l=(n&&r?r.getBoundingClientRect().left-n.getBoundingClientRect().right:0)-44-10,f=0;i.removeAttribute("style");var v=!1;c.forEach((function(e,t){(f+=d[t]+4)=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},m=function(){var e=!1;try{var t="__testLocalStorageKey__";localStorage.setItem(t,t),localStorage.removeItem(t),e=!0}catch(e){console.error("Local storage is not available",e)}return{getItem:function(t){return e?localStorage.getItem(t):null},setItem:function(t,n){e&&localStorage.setItem(t,n)}}}();function g(e){var t,n=null===(t=e.getAttribute("data-togglable"))||void 0===t?void 0:t.split(",");!function(){var t,n,o,r;try{for(var i=v(document.getElementsByClassName("tabs-section")),a=i.next();!a.done;a=i.next()){var l=a.value;try{for(var c=(o=void 0,v(l.children)),d=c.next();!d.done;d=c.next()){var u=d.value;u.getAttribute("data-togglable")===e.getAttribute("data-togglable")?u.setAttribute("data-active",""):u.removeAttribute("data-active")}}catch(e){o={error:e}}finally{try{d&&!d.done&&(r=c.return)&&r.call(c)}finally{if(o)throw o.error}}}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}}(),document.querySelectorAll(".tabs-section-body *[data-togglable]").forEach((function(e){var t=e.getAttribute("data-togglable");n&&t&&n.includes(t)?e.setAttribute("data-active",""):e.classList.contains("sourceset-dependent-content")||e.removeAttribute("data-active")}))}window.initTabs=function(){var e=document.querySelector(".main-content"),t="active-tab-"+(e?e.getAttribute("data-page-type"):null);document.querySelectorAll("div[tabs-section]").forEach((function(e){!function(e){var t=e.querySelector("button[data-active]");t&&g(t)}(e),e.addEventListener("click",(function(e){var n=e.target,o=n?n.getAttribute("data-togglable"):null;o&&(m.setItem(t,JSON.stringify(o)),g(n))}))}));var n=m.getItem(t);if(n){var o=document.querySelector('div[tabs-section] > button[data-togglable="'+JSON.parse(n)+'"]');o&&g(o)}},window.toggleSections=g;var y=new ResizeObserver((function(e){return e.forEach(w)}));function p(){document.querySelectorAll("div.symbol").forEach((function(e){return y.observe(e)}))}function w(e){var t,n=e.target,o=e.borderBoxSize&&e.borderBoxSize[0]&&e.borderBoxSize[0].inlineSize,r=(null===(t=n.querySelector('[data-element-type="source-link"]'))||void 0===t?void 0:t.getBoundingClientRect().width)||0;if(o>0){var i=n.querySelector(".parameters");i&&(i.classList.remove("wrapped"),i.querySelectorAll(".parameter .nbsp-indent").forEach((function(e){return e.remove()})),Array.from(n.children).filter((function(e){return!e.classList.contains("block")})).map((function(e){return e.getBoundingClientRect().width})).reduce((function(e,t){return e+t}),0)>o-32-r&&(i.classList.add("wrapped"),i.querySelectorAll(".parameter").forEach((function(e){var t;e.prepend(((t=document.createElement("span")).append(document.createTextNode("    ")),t.classList.add("nbsp-indent"),t))}))))}}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",p):p(),document.addEventListener("DOMContentLoaded",(function(){document.querySelectorAll('[data-remove-style="true"]').forEach((function(e){e.removeAttribute("style")}))}))})(); \ No newline at end of file diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/resourceLinks/ResourceLinksTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/resourceLinks/ResourceLinksTest.kt index e3cdf080e9..74e28a38ae 100644 --- a/dokka-subprojects/plugin-base/src/test/kotlin/resourceLinks/ResourceLinksTest.kt +++ b/dokka-subprojects/plugin-base/src/test/kotlin/resourceLinks/ResourceLinksTest.kt @@ -263,39 +263,4 @@ class ResourceLinksTest : BaseAbstractTest() { } } } - - @Test - fun `should load script as defer if name ending in _deferred`() { - val configuration = dokkaConfiguration { - sourceSets { - sourceSet { - sourceRoots = listOf("src/main/kotlin") - } - } - } - - val writerPlugin = TestOutputWriterPlugin() - testInline( - """ - |/src/main/kotlin/test/Test.kt - |package test - | - |class Test - """.trimMargin(), - configuration, - pluginOverrides = listOf(writerPlugin) - ) { - renderingStage = { _, _ -> - val generatedFiles = writerPlugin.writer.contents - - assertContains(generatedFiles.keys, "scripts/symbol-parameters-wrapper_deferred.js") - - val scripts = generatedFiles.getValue("root/test/-test/-test.html").let { Jsoup.parse(it) }.select("script") - val deferredScriptSources = scripts.filter { element -> element.hasAttr("defer") }.map { it.attr("src") } - - // important to check symbol-parameters-wrapper_deferred specifically since it might break some features - assertContains(deferredScriptSources, "../../../scripts/symbol-parameters-wrapper_deferred.js") - } - } - } }