t.node.posOpen&&(t.nodeStart=r,t.nodeStartPos=t.node.posOpen-t.pos),t.nodeStart&&t.pos+r.data.length>=t.node.posClose&&(t.nodeEnd=r,t.nodeEndPos=t.node.posClose-t.pos),t.pos+=r.data.length);if(t.nodeStart&&t.nodeEnd){var s=document.createRange();return s.setStart(t.nodeStart,t.nodeStartPos),s.setEnd(t.nodeEnd,t.nodeEndPos),t.node.element.innerHTML="",t.node.element.appendChild(s.extractContents()),s.insertNode(t.node.element),s.detach(),!1}}return!0};e.keepMarkup.forEach((function(t){n(e.element,{node:t,pos:0})})),e.highlightedCode=e.element.innerHTML}})));
+
+/*
+ * This is NOT part of the prism.js main script, it's specific to Dokka.
+ * Dokka generates
tags for new lines inside blocks and it works visually,
+ * but it causes prism.js to incorrectly parse some tags (such as inline comments)
+ *
+ * This can be removed if there are no `
` tags inside `` anymore, but
+ * if there still are - DO NOT remove this hook when upading prism.js to a newer version
+ */
+Prism.hooks.add('before-sanity-check', function (env){env.element.innerHTML = env.element.innerHTML.replace(/
/g, '\n');env.code = env.element.textContent;});
diff --git a/docs/scripts/sourceset_dependencies.js b/docs/scripts/sourceset_dependencies.js
new file mode 100644
index 0000000..2216d7b
--- /dev/null
+++ b/docs/scripts/sourceset_dependencies.js
@@ -0,0 +1 @@
+sourceset_dependencies='{":cryptolib:dokkaHtml/debug":[],":cryptolib:dokkaHtml/main":[],":cryptolib:dokkaHtml/release":[]}'
\ No newline at end of file
diff --git a/docs/scripts/symbol-parameters-wrapper_deferred.js b/docs/scripts/symbol-parameters-wrapper_deferred.js
new file mode 100644
index 0000000..31fbc2d
--- /dev/null
+++ b/docs/scripts/symbol-parameters-wrapper_deferred.js
@@ -0,0 +1,64 @@
+/*
+ * 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/docs/styles/font-jb-sans-auto.css b/docs/styles/font-jb-sans-auto.css
new file mode 100644
index 0000000..18d25d3
--- /dev/null
+++ b/docs/styles/font-jb-sans-auto.css
@@ -0,0 +1,40 @@
+/*
+ * 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/docs/styles/logo-styles.css b/docs/styles/logo-styles.css
new file mode 100644
index 0000000..8281d5c
--- /dev/null
+++ b/docs/styles/logo-styles.css
@@ -0,0 +1,9 @@
+/*
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+:root {
+ --dokka-logo-image-url: url('../images/logo-icon.svg');
+ --dokka-logo-height: 28px;
+ --dokka-logo-width: 28px;
+}
diff --git a/docs/styles/main.css b/docs/styles/main.css
new file mode 100644
index 0000000..2a0c8df
--- /dev/null
+++ b/docs/styles/main.css
@@ -0,0 +1,203 @@
+/*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ *//*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ *//*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */:root{--breakpoint-desktop-min: 900px;--breakpoint-tablet-max: 899px;--breakpoint-tablet-min: 440px;--breakpoint-mobile-max: 439px;--breakpoint-mobile-min: 360px}/*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */:root{--color-key-blue: rgb(48, 127, 255);--color-key-blue-50: rgb(48, 127, 255, 0.5);--color-background-nav: rgb(39, 40, 44);--color-background-nav-dt: rgb(50, 50, 55);--color-background-page: rgb(255, 255, 255);--color-background-page-dt: rgb(38, 38, 40);--color-background-footer: rgb(235, 235, 235);--color-background-footer-dt: rgb(50, 50, 55);--color-text: rgb(0, 0, 0);--color-text-dt: rgba(255, 255, 255, 0.96);--color-text-light: rgba(0, 0, 0, 0.7);--color-text-light-dt: rgba(255, 255, 255, 0.7);--color-w05: rgba(255, 255, 255, 0.05);--color-w08: rgba(255, 255, 255, 0.08);--color-w10: rgba(255, 255, 255, 0.1);--color-w16: rgba(255, 255, 255, 0.16);--color-w50: rgba(255, 255, 255, 0.5);--color-w70: rgba(255, 255, 255, 0.7);--color-w80: rgba(255, 255, 255, 0.8);--color-w100: rgba(255, 255, 255, 1);--color-b05: rgba(0, 0, 0, 0.05);--color-b08: rgba(0, 0, 0, 0.08);--color-b20: rgba(0, 0, 0, 0.2);--color-b50: rgba(0, 0, 0, 0.5);--color-b70: rgba(0, 0, 0, 0.7);--color-cd-punctuation: rgb(153, 153, 153);--color-cd-keyword: rgb(0, 51, 179);--color-cd-keyword-alternative: rgba(204, 120, 50);--color-cd-builtin: rgb(6, 125, 23);--color-cd-builtin-alternative: rgb(231, 191, 106);--color-cd-function: rgb(0, 98, 122);--color-cd-function-alternative: rgb(255, 198, 109);--color-cd-operator: rgb(154, 110, 58);--color-cd-operator-alternative: rgb(169, 183, 198);--color-cd-body: rgb(0, 0, 0);--color-cd-body-alternative: rgb(169, 183, 198);--color-generic: rgb(83, 157, 243);--color-jvm: rgb(77, 187, 95);--color-js: rgb(255, 199, 0);--color-wasm: rgb(255, 255, 255)}/*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */:root{--size-s1: 4px;--size-s2: 8px;--size-s3: 16px;--size-m1: 24px;--size-m2: 32px;--size-m3: 48px;--size-l1: 64px;--size-l2: 72px;--size-ta1: 40px;--size-ta2: 52px}/*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */:root{--font-family-default: JetBrains Sans, Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Droid Sans, Helvetica Neue, Arial, sans-serif;--font-family-mono: JetBrains Mono, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace;--font-h1: 600 44px/44px var(--font-family-default);--font-h2: 600 32px/32px var(--font-family-default);--font-h3: 600 24px/24px var(--font-family-default);--font-h4: 600 16px/24px var(--font-family-default);--font-text-m: 400 16px/24px var(--font-family-default);--font-text-s: 400 14px/20px var(--font-family-default);--font-code: 400 16px/24px var(--font-family-mono)}/*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */:root{--hover-transition: background-color 200ms ease-in-out;--rotate-transition: transform 200ms ease-in-out}#pages-search{width:40px;height:40px;padding:0;cursor:pointer;border:none;border-radius:var(--size-s1);background:rgba(0,0,0,0);font-size:0}#pages-search:focus-visible{outline:var(--focus-outline)}@media(width < 900px){#pages-search{width:52px;height:52px}}.search,.search [data-test=ring-select],.search [data-test=ring-tooltip],.search [data-test=ring-select_focus]{display:inline-block;margin:0;padding:0;font-size:0;line-height:0;tab-index:1}.search-hotkey-popup{padding:4px;background-color:var(--background-color) !important}.popup-wrapper{min-width:636px !important;color:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.2) !important;background-color:#27282c !important}.popup-wrapper [class^=filterWrapper]{border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:4px}.popup-wrapper input{height:40px;color:#fff;font-size:16px;font-weight:normal !important}.popup-wrapper span[data-test-custom=ring-select-popup-filter-icon]{color:#fff}.popup-wrapper button[data-test=ring-input-clear]{color:#fff !important;top:10px;right:6px}.popup-wrapper button[data-test=ring-input-clear] span{display:none}.popup-wrapper button[data-test=ring-input-clear]::after{content:"Clear"}@media screen and (width <= 759px){.popup-wrapper{min-width:100% !important}.search-hotkey-popup{display:none}}.template-wrapper{display:flex;overflow:hidden;flex-direction:column;height:auto;padding:4px 24px;grid-template-columns:auto auto}.template-wrapper strong{color:rgba(255,255,255,.96);background:rgba(48,127,255,.3)}.template-title{display:-webkit-box;overflow:hidden;white-space:normal;word-break:break-all;color:#fff;font-size:16px;font-weight:600;line-height:24px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.template-description{display:block;display:-webkit-box;overflow:hidden;white-space:normal;word-break:break-all;color:rgba(255,255,255,.7);font-size:14px;font-weight:normal;line-height:20px;justify-self:end;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media screen and (width <= 759px){.template-wrapper{display:flex;flex-direction:column;height:auto}.template-wrapper span{line-height:unset}.template-title{font-size:14px;line-height:20px}.template-description{font-size:14px;line-height:20px}}.template-name{justify-self:start}[class^=fade]{display:none}[class*=hover]{background-color:rgba(255,255,255,.1) !important}div[data-test=ring-select-popup-filter]{padding-left:40px}span[data-test-custom=ring-select-popup-filter-icon]{top:11px;left:14px}span[data-test-custom=ring-select-popup-filter-icon] svg{width:18px !important;height:18px !important}div[data-test=ring-popup]{border-radius:0}
+/* stylelint-disable color-no-hex */
+
+.light,
+:root {
+ --ring-unit: 8px;
+
+ /* Element */
+ --ring-line-components: 223, 229, 235;
+ --ring-line-color: rgb(var(--ring-line-components)); /* #dfe5eb */
+ --ring-borders-components: 197, 209, 219;
+ --ring-borders-color: rgb(var(--ring-borders-components)); /* #c5d1db */
+ --ring-icon-components: 184, 209, 229;
+ --ring-icon-color: rgb(var(--ring-icon-components)); /* #b8d1e5 */
+ --ring-icon-secondary-components: 153, 153, 153;
+ --ring-icon-secondary-color: rgb(var(--ring-icon-secondary-components)); /* #999 */
+ --ring-border-disabled-components: 232, 232, 232;
+ --ring-border-disabled-color: rgb(var(--ring-border-disabled-components)); /* #e8e8e8 */
+ --ring-border-selected-disabled-components: 212, 212, 212;
+ --ring-border-selected-disabled-color: rgb(var(--ring-border-selected-disabled-components)); /* #d4d4d4 */
+ --ring-border-unselected-disabled-components: 232, 232, 232;
+ --ring-border-unselected-disabled-color: rgb(var(--ring-border-unselected-disabled-components)); /* #e8e8e8 */ /* TODO remove in 6.0 */
+ --ring-icon-disabled-components: 212, 212, 212;
+ --ring-icon-disabled-color: rgb(var(--ring-icon-disabled-components)); /* #d4d4d4 */
+ --ring-border-hover-components: 128, 198, 255;
+ --ring-border-hover-color: rgb(var(--ring-border-hover-components)); /* #80c6ff */
+ --ring-icon-hover-components: var(--ring-link-hover-color);
+ --ring-icon-hover-color: var(--ring-link-hover-color);
+ --ring-main-components: 0, 128, 229;
+ --ring-main-color: rgb(var(--ring-main-components)); /* #0080e5 */
+ --ring-action-link-components: var(--ring-main-components);
+ --ring-action-link-color: rgb(var(--ring-main-components)); /* #0080e5 */
+ --ring-main-hover-components: 0, 112, 204;
+ --ring-main-hover-color: rgb(var(--ring-main-hover-components)); /* #0070cc */
+ --ring-icon-error-components: 219, 88, 96;
+ --ring-icon-error-color: rgb(var(--ring-icon-error-components)); /* #db5860 */
+ --ring-icon-warning-components: 237, 162, 0;
+ --ring-icon-warning-color: rgb(var(--ring-icon-warning-components)); /* #eda200 */
+ --ring-icon-success-components: 89, 168, 105;
+ --ring-icon-success-color: rgb(var(--ring-icon-success-components)); /* #59a869 */
+ --ring-pale-control-components: 207, 219, 229;
+ --ring-pale-control-color: rgb(var(--ring-pale-control-components)); /* #cfdbe5 */
+ --ring-popup-border-components: 0, 28, 54;
+ --ring-popup-border-color: var(--ring-line-color);
+ --ring-popup-shadow-components: rgba(var(--ring-popup-border-components), 0.1);
+ --ring-popup-shadow-color: rgba(var(--ring-popup-border-components), 0.1);
+ --ring-popup-secondary-shadow-color: rgba(var(--ring-popup-border-components), 0.04);
+ --ring-message-shadow-color: rgba(var(--ring-popup-border-components), 0.3);
+ --ring-pinned-shadow-components: 115, 117, 119;
+ --ring-pinned-shadow-color: rgb(var(--ring-pinned-shadow-components)); /* #737577 */
+ --ring-button-danger-hover-components: var(--ring-icon-error-color);
+ --ring-button-danger-hover-color: var(--ring-icon-error-color);
+ --ring-button-primary-border-components: 0, 98, 178;
+ --ring-button-primary-border-color: rgb(var(--ring-button-primary-border-components)); /* #0062b2 */
+ --ring-popup-shadow: 0 2px 8px var(--ring-popup-shadow-color), 0 1px 2px var(--ring-popup-secondary-shadow-color);
+ --ring-dialog-shadow: 0 4px 24px var(--ring-popup-shadow-color), 0 2px 6px var(--ring-popup-secondary-shadow-color);
+
+ /* Text */
+ --ring-search-components: 102, 158, 204;
+ --ring-search-color: rgb(var(--ring-search-components)); /* #669ecc */
+ --ring-hint-components: 64, 99, 128;
+ --ring-hint-color: rgb(var(--ring-hint-components)); /* #406380 */
+ --ring-link-components: 15, 91, 153;
+ --ring-link-color: rgb(var(--ring-link-components)); /* #0f5b99 */
+ --ring-link-hover-components: 255, 0, 140;
+ --ring-link-hover-color: rgb(var(--ring-link-hover-components)); /* #ff008c */
+ --ring-error-components: 169, 15, 26;
+ --ring-error-color: rgb(var(--ring-error-components)); /* #a90f1a */
+ --ring-warning-components: 178, 92, 0;
+ --ring-warning-color: rgb(var(--ring-warning-components)); /* #b25c00 */
+ --ring-success-components: 12, 117, 35;
+ --ring-success-color: rgb(var(--ring-success-components)); /* #0c7523 */
+ --ring-text-components: 31, 35, 38;
+ --ring-text-color: rgb(var(--ring-text-components)); /* #1f2326 */
+ --ring-active-text-color: var(--ring-text-color);
+ --ring-white-text-components: 255, 255, 255;
+ --ring-white-text-color: rgb(var(--ring-white-text-components)); /* #fff */
+ --ring-heading-color: var(--ring-text-color);
+ --ring-secondary-components: 115, 117, 119;
+ --ring-secondary-color: rgb(var(--ring-secondary-components)); /* #737577 */
+ --ring-disabled-components: 153, 153, 153;
+ --ring-disabled-color: rgb(var(--ring-disabled-components)); /* #999 */
+
+ /* Background */
+ --ring-content-background-components: 255, 255, 255;
+ --ring-content-background-color: rgb(var(--ring-content-background-components)); /* #fff */
+ --ring-popup-background-components: 255, 255, 255;
+ --ring-popup-background-color: rgb(var(--ring-popup-background-components)); /* #fff */
+ --ring-sidebar-background-components: 247, 249, 250;
+ --ring-sidebar-background-color: rgb(var(--ring-sidebar-background-components)); /* #f7f9fa */
+ --ring-selected-background-components: 212, 237, 255;
+ --ring-selected-background-color: rgb(var(--ring-selected-background-components)); /* #d4edff */
+ --ring-hover-background-components: 235, 246, 255;
+ --ring-hover-background-color: rgb(var(--ring-hover-background-components)); /* #ebf6ff */
+ --ring-navigation-background-components: 255, 255, 255;
+ --ring-navigation-background-color: rgb(var(--ring-navigation-background-components)); /* #fff */
+ --ring-tag-background-components: 230, 236, 242;
+ --ring-tag-background-color: rgb(var(--ring-tag-background-components)); /* #e6ecf2 */
+ --ring-tag-hover-background-components: 211, 218, 224;
+ --ring-tag-hover-background-color: rgb(var(--ring-tag-hover-background-components)); /* #d3dae0 */
+ --ring-removed-background-components: 255, 213, 203;
+ --ring-removed-background-color: rgb(var(--ring-removed-background-components)); /* #ffd5cb */
+ --ring-warning-background-components: 250, 236, 205;
+ --ring-warning-background-color: rgb(var(--ring-warning-background-components)); /* #faeccd */
+ --ring-added-background-components: 216, 240, 216;
+ --ring-added-background-color: rgb(var(--ring-added-background-components)); /* #d8f0d8 */
+ --ring-disabled-background-components: 245, 245, 245;
+ --ring-disabled-background-color: rgb(var(--ring-disabled-background-components)); /* #f5f5f5 */
+ --ring-disabled-selected-background-components: 232, 232, 232;
+ --ring-disabled-selected-background-color: rgb(var(--ring-disabled-selected-background-components)); /* #e8e8e8 */
+ --ring-button-danger-active-components: 255, 231, 232;
+ --ring-button-danger-active-color: rgb(var(--ring-button-danger-active-components)); /* #ffe7e8 */
+ --ring-button-loader-background-components: 51, 163, 255;
+ --ring-button-loader-background: rgb(var(--ring-button-loader-background-components)); /* #33a3ff */
+ --ring-button-primary-background-components: 26, 152, 255;
+ --ring-button-primary-background-color: rgb(var(--ring-button-primary-background-components)); /* #1a98ff */
+ --ring-table-loader-background-color: rgba(var(--ring-content-background-components), 0.5); /* #ffffff80 */
+
+ /* Code */
+ --ring-code-background-color: var(--ring-content-background-color);
+ --ring-code-components: 0, 0, 0;
+ --ring-code-color: rgb(var(--ring-code-components)); /* #000 */
+ --ring-code-comment-components: 112, 112, 112;
+ --ring-code-comment-color: rgb(var(--ring-code-comment-components)); /* #707070 */
+ --ring-code-meta-components: 112, 112, 112;
+ --ring-code-meta-color: rgb(var(--ring-code-meta-components)); /* #707070 */
+ --ring-code-keyword-components: 0, 0, 128;
+ --ring-code-keyword-color: rgb(var(--ring-code-keyword-components)); /* #000080 */
+ --ring-code-tag-background-components: 239, 239, 239;
+ --ring-code-tag-background-color: rgb(var(--ring-code-tag-background-components)); /* #efefef */
+ --ring-code-tag-color: var(--ring-code-keyword-color);
+ --ring-code-tag-font-weight: bold;
+ --ring-code-field-components: 102, 14, 122;
+ --ring-code-field-color: rgb(var(--ring-code-field-components)); /* #660e7a */
+ --ring-code-attribute-components: 0, 0, 255;
+ --ring-code-attribute-color: rgb(var(--ring-code-attribute-components)); /* #00f */
+ --ring-code-number-color: var(--ring-code-attribute-color);
+ --ring-code-string-components: 0, 122, 0;
+ --ring-code-string-color: rgb(var(--ring-code-string-components)); /* #007a00 */
+ --ring-code-addition-components: 170, 222, 170;
+ --ring-code-addition-color: rgb(var(--ring-code-addition-components)); /* #aadeaa */
+ --ring-code-deletion-components: 200, 200, 200;
+ --ring-code-deletion-color: rgb(var(--ring-code-deletion-components)); /* #c8c8c8 */
+
+ /* Metrics */
+ --ring-border-radius: 4px;
+ --ring-border-radius-small: 2px;
+ --ring-font-size-larger: 15px;
+ --ring-font-size: 14px;
+ --ring-font-size-smaller: 12px;
+ --ring-line-height-taller: 21px;
+ --ring-line-height: 20px;
+ --ring-line-height-lower: 18px;
+ --ring-line-height-lowest: 16px;
+ --ring-ease: 0.3s ease-out;
+ --ring-fast-ease: 0.15s ease-out;
+ --ring-font-family: system-ui, Arial, sans-serif;
+ --ring-font-family-monospace:
+ Menlo,
+ "Bitstream Vera Sans Mono",
+ "Ubuntu Mono",
+ Consolas,
+ "Courier New",
+ Courier,
+ monospace;
+
+ /* Common z-index-values */
+
+ /* Invisible element is an absolutely positioned element which should be below */
+ /* all other elements on the page */
+ --ring-invisible-element-z-index: -1;
+
+ /* z-index for position: fixed elements */
+ --ring-fixed-z-index: 1;
+
+ /* Elements that should overlay all other elements on the page */
+ --ring-overlay-z-index: 5;
+
+ /* Alerts should de displayed above overlays */
+ --ring-alert-z-index: 6;
+}
+
+/*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ *//*!
+ * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */html,.app-root{height:100%}.search-root{margin:0;padding:0;background:var(--ring-content-background-color);font-family:var(--ring-font-family);font-size:var(--ring-font-size);line-height:var(--ring-line-height)}.search-content{z-index:8}
+
+/*# sourceMappingURL=main.css.map*/
\ No newline at end of file
diff --git a/docs/styles/prism.css b/docs/styles/prism.css
new file mode 100644
index 0000000..4287f6d
--- /dev/null
+++ b/docs/styles/prism.css
@@ -0,0 +1,213 @@
+/*
+ * Custom Dokka styles
+ */
+code .token {
+ white-space: pre;
+}
+
+/**
+ * Styles based on webhelp's prism.js styles
+ * Changes:
+ * - Since webhelp's styles are in .pcss, they use nesting which is not achievable in native CSS
+ * so nested css blocks have been unrolled (like dark theme).
+ * - Webhelp uses "Custom Class" prism.js plugin, so all of their prism classes are prefixed with "--prism".
+ * Dokka doesn't seem to need this plugin at the moment, so all "--prism" prefixes have been removed.
+ * - Removed all styles related to `pre` and `code` tags. Kotlinlang's resulting styles are so spread out and complicated
+ * that it's difficult to gather in one place. Instead use code styles defined in the main Dokka styles,
+ * which at the moment looks fairly similar.
+ *
+ * Based on prism.js default theme
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: #8c8c8c;
+}
+
+.token.punctuation {
+ color: #999;
+}
+
+.token.namespace {
+ opacity: 0.7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+ color: #871094;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+ color: #067d17;
+}
+
+.token.operator,
+.token.entity,
+.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);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+ font-size: inherit; /* to override .keyword */
+ color: #0033b3;
+}
+
+.token.function {
+ color: #00627a;
+}
+
+.token.class-name {
+ color: #000000;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+ color: #871094;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ 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/docs/styles/style.css b/docs/styles/style.css
new file mode 100644
index 0000000..c64fa37
--- /dev/null
+++ b/docs/styles/style.css
@@ -0,0 +1,937 @@
+/*
+ * 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;
+ --default-font-color: rgb(0, 0, 0);
+ --header-font-color: var(--default-font-color);
+
+ --breadcrumb-font-color: #637282;
+ --breadcrumb-margin: 24px;
+ --hover-link-color: #5B5DEF;
+
+ --footer-height: 64px;
+ --footer-padding-top: 48px;
+ --footer-background: var(--default-gray);
+ --footer-font-color: var(--average-color);
+ --footer-go-to-top-color: white;
+
+ --horizontal-spacing-for-content: 16px;
+ --bottom-spacing: 16px;
+ --color-scrollbar: rgba(39, 40, 44, 0.40);
+ --color-scrollbar-track: var(--default-gray);
+ --default-white: #fff;
+ --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-monospace-font-family: JetBrains Mono, SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace;
+ --default-font-size: 15px;
+ --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);
+ --border-color: rgba(39, 40, 44, .2);
+ --navigation-highlight-color: rgba(39, 40, 44, 0.05);
+ --top-navigation-height: 73px;
+ --max-width: 1160px;
+ --white-10: hsla(0, 0%, 100%, .1);
+
+ --active-tab-border-color: #7F52FF;
+ --inactive-tab-border-color: rgba(164, 164, 170, 0.7);
+
+ --active-section-color: #7F52FF;
+ --inactive-section-color: rgba(25, 25, 28, .7);
+
+ --sidebar-width: 280px;
+ --sidemenu-section-active-color: #7F52FF;
+}
+
+html {
+ height: 100%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ scrollbar-color: rgba(39, 40, 44, 0.40) #F4F4F4;
+ scrollbar-color: var(--color-scrollbar) var(--color-scrollbar-track);
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ color: var(--default-font-color);
+}
+
+html ::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+
+html ::-webkit-scrollbar-track {
+ background-color: var(--color-scrollbar-track);
+}
+
+html ::-webkit-scrollbar-thumb {
+ width: 8px;
+ border-radius: 6px;
+ background: rgba(39, 40, 44, 0.40);
+ background: var(--color-scrollbar);
+}
+
+html, body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ width: 100%;
+}
+
+/* /--- root styles --- */
+
+/* --- global tags styles --- */
+body, table {
+ background: var(--background-color);
+ font-family: var(--default-font-family);
+ font-style: normal;
+ font-weight: normal;
+ font-size: var(--default-font-size);
+ line-height: 1.6;
+ margin: 0;
+}
+
+h1 {
+ font-size: 40px;
+ line-height: 48px;
+ letter-spacing: -1px;
+}
+
+h2 {
+ font-size: 31px;
+ line-height: 40px;
+ letter-spacing: -0.5px;
+}
+
+h3 {
+ font-size: 20px;
+ line-height: 28px;
+ letter-spacing: -0.2px;
+}
+
+p, ul, ol, table, pre, dl {
+ margin: 0;
+}
+
+a {
+ text-decoration: none;
+}
+
+u {
+ text-decoration: none;
+ padding-bottom: 2px;
+ border-bottom: 1px solid var(--border-color);
+}
+
+blockquote {
+ border-left: 1ch solid var(--default-gray);
+ margin: 0;
+ padding-left: 1ch;
+ font-style: italic;
+ color: var(--average-color);
+}
+
+.theme-dark blockquote {
+ color: var(--default-font-color);
+ border-left-color: var(--code-background);
+}
+
+pre {
+ display: block;
+}
+
+dt {
+ color: #444;
+ font-weight: 530;
+}
+
+img {
+ max-width: 100%;
+}
+
+small {
+ font-size: 11px;
+}
+
+table {
+ width: 100%;
+ border-collapse: collapse;
+ padding: 5px;
+}
+
+th, td {
+ padding: 12px 10px 11px;
+ text-align: left;
+ vertical-align: top;
+}
+
+tbody > tr {
+ min-height: 56px;
+}
+
+td:first-child {
+ width: 20vw;
+}
+
+/* /--- global tags styles --- */
+
+/* --- utils classes --- */
+.w-100 {
+ width: 100%;
+}
+
+.no-gutters {
+ margin: 0;
+ padding: 0;
+}
+
+.d-flex {
+ display: flex;
+}
+
+.floating-right {
+ float: right;
+}
+
+.pull-right {
+ float: right;
+ margin-left: auto
+}
+
+.clearfix::after {
+ display: block;
+ content: '';
+ clear: both;
+ height: 0;
+}
+
+/* /--- utils classes --- */
+
+/* ---dark theme --- */
+.theme-dark {
+ --background-color: #262628;
+ --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);
+ --breadcrumb-font-color: #8c8c8e;
+ --brief-color: hsla(0, 0%, 100%, 0.4);
+ --copy-icon-color: hsla(0, 0%, 100%, 0.6);
+ --copy-icon-hover-color: #fff;
+
+ --active-tab-border-color: var(--default-font-color);
+ --inactive-tab-border-color: hsla(0, 0%, 100%, 0.4);
+
+ --active-section-color: var(--default-font-color);
+ --inactive-section-color: hsla(0, 0%, 100%, 0.4);
+
+ --navigation-highlight-color: rgba(255, 255, 255, 0.05);
+ --footer-background: hsla(0, 0%, 100%, 0.05);
+ --footer-font-color: hsla(0, 0%, 100%, 0.6);
+ --footer-go-to-top-color: var(--footer-font-color);
+
+ --sidemenu-section-active-color: var(--color-dark);
+}
+
+/* /---dark theme --- */
+
+.root {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+}
+
+/* --- Layout styles --- */
+
+#container {
+ display: flex;
+ flex: 1 1 auto;
+ min-height: 0; /* full height exclude header */
+}
+
+#container > #main {
+ overflow: auto;
+}
+
+#main {
+ display: flex;
+ flex-direction: column;
+ flex: 1 1 0; /* full width, but no affects for sidebar */
+}
+
+/* /--- Layout styles --- */
+
+/* --- Main Content styles --- */
+.main-content {
+ padding-bottom: var(--bottom-spacing);
+ margin-left: auto;
+ margin-right: auto;
+ max-width: var(--max-width);
+ width: 100%;
+ z-index: 0;
+}
+
+.main-content > * {
+ margin-left: var(--horizontal-spacing-for-content);
+ margin-right: var(--horizontal-spacing-for-content);
+}
+
+.main-content .content > hr {
+ margin: 30px 0;
+ border-top: 3px double #8c8b8b;
+}
+
+.main-content :is(h1, h2) {
+ font-weight: 530;
+}
+
+/* /--- Main Content styles --- */
+
+/* /--- Breadcrumbs styles --- */
+.breadcrumbs, .breadcrumbs a, .breadcrumbs a:hover {
+ margin-top: var(--breadcrumb-margin);
+ color: var(--breadcrumb-font-color);
+ overflow-wrap: break-word;
+}
+
+.breadcrumbs .delimiter {
+ margin: auto 2px;
+}
+
+.breadcrumbs .current {
+ color: var(--default-font-color);
+}
+
+/* /--- Breadcrumbs styles --- */
+
+.cover > .platform-hinted {
+ padding-bottom: 12px;
+}
+
+.cover {
+ display: flex;
+ 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;
+ line-height: 28px;
+}
+
+.cover .platform-hinted.with-platform-tabs .sourceset-dependent-content > .block {
+ padding: 0;
+ font-size: var(--default-font-size);
+}
+
+.cover ~ .divergent-group {
+ margin-top: 24px;
+ padding: 24px 8px 8px 8px;
+}
+
+.cover ~ .divergent-group .main-subrow .symbol {
+ width: 100%;
+}
+
+.main-content p.paragraph,
+.sample-container, blockquote,
+.content > .symbol {
+ margin-top: 8px;
+}
+
+blockquote,
+.content > .symbol:first-of-type,
+p.paragraph:first-child,
+.brief p.paragraph {
+ margin-top: 0;
+}
+
+.content .kdoc-tag > p.paragraph {
+ margin-top: 0;
+}
+
+.content h4 {
+ margin-bottom: 0;
+}
+
+.divergent-group {
+ background-color: var(--background-color);
+ padding: 16px 0 8px 0;
+ margin-bottom: 2px;
+}
+
+.divergent-group .table-row, tbody > tr {
+ border-bottom: 1px solid var(--border-color);
+}
+
+.divergent-group .table-row:last-of-type, tbody > tr:last-of-type {
+ border-bottom: none;
+}
+
+.title > .divergent-group:first-of-type {
+ padding-top: 0;
+}
+
+.sample-container, div.CodeMirror {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+}
+
+code.paragraph {
+ display: block;
+}
+
+.strikethrough {
+ text-decoration: line-through;
+}
+
+/* Workaround for Firefox https://github.com/Kotlin/dokka/issues/3156 */
+@-moz-document url-prefix() {
+ .strikethrough {
+ position: relative;
+ text-decoration: none;
+ }
+
+ /* complex selectors here are required to handle multiline cases */
+ .strikethrough::after, .strikethrough span:after {
+ content: '';
+ position: absolute;
+ top: 7px;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background-color: currentColor;
+ z-index: 1;
+ }
+}
+
+.symbol:empty {
+ padding: 0;
+}
+
+.symbol:not(.token), code {
+ background-color: var(--code-background);
+ align-items: center;
+ box-sizing: border-box;
+ white-space: pre-wrap;
+ font-family: var(--default-monospace-font-family);
+ font-size: var(--default-font-size);
+}
+
+.symbol:not(.token), code.block {
+ display: block;
+ padding: 12px 32px 12px 12px;
+ border-radius: 8px;
+ line-height: 24px;
+ position: relative;
+}
+
+code {
+ overflow-x: auto;
+ max-width: 100%;
+}
+
+code:not(.block) {
+ display: inline-block;
+ vertical-align: bottom;
+}
+
+.symbol > a {
+ color: var(--hover-link-color);
+}
+
+.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;
+ position: absolute;
+ z-index: 1000;
+ background: var(--background-color);
+ font-weight: normal;
+ font-family: var(--default-font-family);
+ width: max-content;
+ font-size: var(--default-font-size);
+ cursor: default;
+ border: 1px solid #D8DCE1;
+ box-sizing: border-box;
+ box-shadow: 0 5px 10px var(--ring-popup-shadow-color);
+ border-radius: 3px;
+ color: var(--default-font-color);
+}
+
+.copy-popup-wrapper > .copy-popup-icon::before {
+ content: url("../images/copy-successful-icon.svg");
+ padding: 8px;
+}
+
+.copy-popup-wrapper > .copy-popup-icon {
+ position: relative;
+ top: 3px;
+}
+
+.copy-popup-wrapper.popup-to-left {
+ /* since it is in position absolute we can just move it to the left to make it always appear on the left side of the icon */
+ left: -15em;
+}
+
+.table-row:hover .copy-popup-wrapper.active-popup,
+.sample-container:hover .copy-popup-wrapper.active-popup {
+ display: flex !important;
+}
+
+.copy-popup-wrapper:hover {
+ font-weight: normal;
+}
+
+.copy-popup-wrapper > span:last-child {
+ padding-right: 14px;
+}
+
+.symbol .top-right-position, .sample-container .top-right-position {
+ /* it is important for a parent to have a position: relative */
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ overflow-wrap: break-word;
+ word-break: break-word;
+}
+
+.brief {
+ white-space: pre-wrap;
+ overflow: hidden;
+}
+
+h1.cover {
+ font-size: 52px;
+ line-height: 56px;
+ letter-spacing: -1.5px;
+ margin-bottom: 0;
+ padding-bottom: 32px;
+ display: block;
+}
+
+@media (max-width: 1119px) {
+ h1.cover {
+ font-size: 48px;
+ line-height: 48px;
+ padding-bottom: 8px;
+ }
+}
+
+@media (max-width: 759px) {
+ h1.cover {
+ font-size: 32px;
+ line-height: 32px;
+ }
+}
+
+.UnderCoverText {
+ font-size: 16px;
+ line-height: 28px;
+}
+
+.UnderCoverText code {
+ font-size: inherit;
+}
+
+.UnderCoverText table {
+ margin: 8px 0 8px 0;
+ word-break: break-word;
+}
+
+@media (max-width: 960px) {
+ .UnderCoverText table {
+ display: block;
+ word-break: normal;
+ overflow: auto;
+ }
+}
+
+.main-content a:not([data-name]) {
+ padding-bottom: 2px;
+ border-bottom: 1px solid var(--border-color);
+ cursor: pointer;
+ text-decoration: none;
+ color: inherit;
+ font-size: inherit;
+ line-height: inherit;
+ transition: color .1s, border-color .1s;
+ overflow-wrap: break-word;
+ word-break: break-word;
+}
+
+.main-content a:hover {
+ border-bottom-color: unset;
+ color: inherit
+}
+
+a small {
+ font-size: 11px;
+ margin-top: -0.6em;
+ display: block;
+}
+
+p.paragraph img {
+ display: block;
+}
+
+.deprecation-content {
+ margin: 20px 10px;
+ border: 1px solid var(--border-color);
+ padding: 13px 15px 16px 15px;
+}
+
+.deprecation-content > h3 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.deprecation-content > h4 {
+ font-size: 16px;
+ margin-top: 15px;
+ margin-bottom: 0;
+}
+
+.deprecation-content code.block {
+ padding: 5px 10px;
+ display: inline-block;
+}
+
+.deprecation-content .footnote {
+ margin-left: 25px;
+ font-size: 13px;
+ font-weight: bold;
+ display: block;
+}
+
+.deprecation-content .footnote > p {
+ margin: 0;
+}
+
+[data-filterable-current=''] {
+ display: none !important;
+}
+
+td.content {
+ padding-left: 24px;
+ padding-top: 16px;
+ display: flex;
+ flex-direction: column;
+}
+
+.main-subrow {
+ display: flex;
+ flex-direction: row;
+ padding: 0;
+ flex-wrap: wrap;
+}
+
+.main-subrow > div {
+ margin-bottom: 8px;
+}
+
+.main-subrow > div > span {
+ display: flex;
+ position: relative;
+}
+
+.js .main-subrow:hover .anchor-icon {
+ opacity: 1;
+ transition: 0.2s;
+}
+
+.main-subrow .anchor-icon {
+ opacity: 0;
+ transition: 0.2s 0.5s;
+}
+
+.main-subrow .anchor-icon::before {
+ content: url("../images/anchor-copy-button.svg");
+}
+
+.main-subrow .anchor-icon:hover {
+ cursor: pointer;
+}
+
+.main-subrow .anchor-icon:hover > svg path {
+ fill: var(--hover-link-color);
+}
+
+@media (hover: none) {
+ .main-subrow .anchor-icon {
+ display: none;
+ }
+}
+
+.main-subrow .anchor-wrapper {
+ position: relative;
+ width: 24px;
+ height: 16px;
+ margin-left: 3px;
+}
+
+.inline-flex {
+ display: inline-flex;
+}
+
+/* Work around an issue: https://github.com/JetBrains/kotlin-playground/issues/91
+Applies for main description blocks with platform tabs.
+Just in case of possible performance degradation it excluding tabs with briefs on classlike page */
+#content > div:not(.tabbedcontent) .sourceset-dependent-content:not([data-active]) {
+ display: block !important;
+ visibility: hidden;
+ height: 0;
+ position: fixed;
+ top: 0;
+}
+
+.with-platform-tags {
+ display: flex;
+}
+
+.with-platform-tags ~ .main-subrow {
+ padding-top: 8px;
+}
+
+.cover .with-platform-tabs {
+ font-size: var(--default-font-size);
+}
+
+.cover > .with-platform-tabs > .content {
+ padding: 8px 16px;
+ border: 1px solid var(--border-color);
+}
+
+.cover > .block {
+ padding-top: 48px;
+ padding-bottom: 24px;
+ font-size: 18px;
+ line-height: 28px;
+}
+
+.cover > .block:empty {
+ padding-bottom: 0;
+}
+
+.parameters.wrapped > .parameter {
+ display: block;
+}
+
+.table-row .inline-comment {
+ padding-top: 8px;
+ padding-bottom: 8px;
+}
+
+.table-row .platform-hinted .sourceset-dependent-content .brief,
+.table-row .platform-hinted .sourceset-dependent-content .inline-comment {
+ padding: 8px;
+}
+
+.table {
+ display: flex;
+ flex-direction: column;
+}
+
+.table-row {
+ display: flex;
+ flex-direction: column;
+ border-bottom: 1px solid var(--border-color);
+ padding: 11px 0 12px 0;
+ background-color: var(--background-color);
+}
+
+.table-row:last-of-type {
+ border-bottom: none;
+}
+
+.table-row .brief-comment {
+ color: var(--brief-color);
+}
+
+.platform-dependent-row {
+ display: grid;
+ padding-top: 8px;
+}
+
+.title-row {
+ display: grid;
+ grid-template-columns: auto auto 7em;
+ width: 100%;
+}
+
+@media print, (min-width: 960px) {
+ .title-row {
+ grid-template-columns: 20% auto 7em;
+ }
+}
+
+.keyValue {
+ display: grid;
+ grid-gap: 8px;
+}
+
+@media print, (min-width: 960px) {
+ .keyValue {
+ grid-template-columns: 20% 80%;
+ }
+
+ .keyValue > div:first-child {
+ word-break: break-word;
+ }
+}
+
+@media print, (max-width: 960px) {
+ div.wrapper {
+ width: auto;
+ margin: 0;
+ }
+
+ header, section, footer {
+ float: none;
+ position: static;
+ width: auto;
+ }
+
+ header {
+ padding-right: 320px;
+ }
+
+ section {
+ border: 1px solid #e5e5e5;
+ border-width: 1px 0;
+ padding: 20px 0;
+ margin: 0 0 20px;
+ }
+
+ header a small {
+ display: inline;
+ }
+
+ header ul {
+ position: absolute;
+ right: 50px;
+ top: 52px;
+ }
+}
+
+.anchor-highlight {
+ border: 1px solid var(--hover-link-color) !important;
+ box-shadow: 0 0 0 0.2em #c8e1ff;
+ margin-top: 0.2em;
+ margin-bottom: 0.2em;
+}
+
+.filtered-message {
+ margin: 25px;
+ font-size: 20px;
+ font-weight: bolder;
+}
+
+div.runnablesample {
+ height: fit-content;
+}
+
+/* --- footer --- */
+.footer {
+ clear: both;
+ display: flex;
+ align-items: center;
+ position: relative;
+ min-height: var(--footer-height);
+ font-size: 12px;
+ line-height: 16px;
+ letter-spacing: 0.2px;
+ color: var(--footer-font-color);
+ margin-top: auto;
+ background-color: var(--footer-background);
+}
+
+.footer--button {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+ background-color: var(--footer-go-to-top-color);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ padding: 0;
+ border: none;
+ cursor: pointer;
+ font-size: 0;
+ line-height: 0;
+ transition: background-color 200ms ease-in-out;
+ will-change: background-color;
+}
+
+.footer--button:hover {
+ opacity: 0.9;
+}
+
+.footer--button_go-to-top {
+ background-image: url("../images/go-to-top-icon.svg");
+ margin-left: var(--horizontal-spacing-for-content);
+ margin-right: 8px;
+}
+
+.footer--link {
+ display: inline-flex;
+ align-items: center;
+ color: var(--breadcrumb-font-color);
+}
+
+.footer--link_external:after {
+ content: '';
+ width: 12px;
+ height: 12px;
+ margin-left: 4px;
+ margin-right: var(--horizontal-spacing-for-content);
+ background-image: url("../images/footer-go-to-link.svg");
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+}
+
+/* /--- footer --- */
diff --git a/docs/ui-kit/assets/abstract-class-kotlin.svg b/docs/ui-kit/assets/abstract-class-kotlin.svg
new file mode 100644
index 0000000..97b7723
--- /dev/null
+++ b/docs/ui-kit/assets/abstract-class-kotlin.svg
@@ -0,0 +1,26 @@
+
+
+
diff --git a/docs/ui-kit/assets/abstract-class.svg b/docs/ui-kit/assets/abstract-class.svg
new file mode 100644
index 0000000..ead94b8
--- /dev/null
+++ b/docs/ui-kit/assets/abstract-class.svg
@@ -0,0 +1,22 @@
+
+
diff --git a/docs/ui-kit/assets/annotation-kotlin.svg b/docs/ui-kit/assets/annotation-kotlin.svg
new file mode 100644
index 0000000..b748242
--- /dev/null
+++ b/docs/ui-kit/assets/annotation-kotlin.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/docs/ui-kit/assets/annotation.svg b/docs/ui-kit/assets/annotation.svg
new file mode 100644
index 0000000..76c2f4b
--- /dev/null
+++ b/docs/ui-kit/assets/annotation.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/docs/ui-kit/assets/arrow-down.svg b/docs/ui-kit/assets/arrow-down.svg
new file mode 100644
index 0000000..ca54658
--- /dev/null
+++ b/docs/ui-kit/assets/arrow-down.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/ui-kit/assets/burger.svg b/docs/ui-kit/assets/burger.svg
new file mode 100644
index 0000000..a26f194
--- /dev/null
+++ b/docs/ui-kit/assets/burger.svg
@@ -0,0 +1,5 @@
+
diff --git a/docs/ui-kit/assets/checkbox-off.svg b/docs/ui-kit/assets/checkbox-off.svg
new file mode 100644
index 0000000..a5117e8
--- /dev/null
+++ b/docs/ui-kit/assets/checkbox-off.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/ui-kit/assets/checkbox-on.svg b/docs/ui-kit/assets/checkbox-on.svg
new file mode 100644
index 0000000..71891d5
--- /dev/null
+++ b/docs/ui-kit/assets/checkbox-on.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/ui-kit/assets/class-kotlin.svg b/docs/ui-kit/assets/class-kotlin.svg
new file mode 100644
index 0000000..dc23120
--- /dev/null
+++ b/docs/ui-kit/assets/class-kotlin.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/docs/ui-kit/assets/class.svg b/docs/ui-kit/assets/class.svg
new file mode 100644
index 0000000..2447cf7
--- /dev/null
+++ b/docs/ui-kit/assets/class.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/docs/ui-kit/assets/cross.svg b/docs/ui-kit/assets/cross.svg
new file mode 100644
index 0000000..232069f
--- /dev/null
+++ b/docs/ui-kit/assets/cross.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/ui-kit/assets/enum-kotlin.svg b/docs/ui-kit/assets/enum-kotlin.svg
new file mode 100644
index 0000000..207a0ef
--- /dev/null
+++ b/docs/ui-kit/assets/enum-kotlin.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/docs/ui-kit/assets/enum.svg b/docs/ui-kit/assets/enum.svg
new file mode 100644
index 0000000..2deba5f
--- /dev/null
+++ b/docs/ui-kit/assets/enum.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/docs/ui-kit/assets/exception-class.svg b/docs/ui-kit/assets/exception-class.svg
new file mode 100644
index 0000000..1bb4f88
--- /dev/null
+++ b/docs/ui-kit/assets/exception-class.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/docs/ui-kit/assets/field-value.svg b/docs/ui-kit/assets/field-value.svg
new file mode 100644
index 0000000..3aa75be
--- /dev/null
+++ b/docs/ui-kit/assets/field-value.svg
@@ -0,0 +1,10 @@
+
+
+
diff --git a/docs/ui-kit/assets/field-variable.svg b/docs/ui-kit/assets/field-variable.svg
new file mode 100644
index 0000000..7a8af50
--- /dev/null
+++ b/docs/ui-kit/assets/field-variable.svg
@@ -0,0 +1,10 @@
+
+
+
diff --git a/docs/ui-kit/assets/filter.svg b/docs/ui-kit/assets/filter.svg
new file mode 100644
index 0000000..be62ea5
--- /dev/null
+++ b/docs/ui-kit/assets/filter.svg
@@ -0,0 +1,8 @@
+
diff --git a/docs/ui-kit/assets/function.svg b/docs/ui-kit/assets/function.svg
new file mode 100644
index 0000000..e56a417
--- /dev/null
+++ b/docs/ui-kit/assets/function.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/docs/ui-kit/assets/homepage.svg b/docs/ui-kit/assets/homepage.svg
new file mode 100644
index 0000000..9a8927a
--- /dev/null
+++ b/docs/ui-kit/assets/homepage.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/ui-kit/assets/interface-kotlin.svg b/docs/ui-kit/assets/interface-kotlin.svg
new file mode 100644
index 0000000..e5273f0
--- /dev/null
+++ b/docs/ui-kit/assets/interface-kotlin.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/docs/ui-kit/assets/interface.svg b/docs/ui-kit/assets/interface.svg
new file mode 100644
index 0000000..0637028
--- /dev/null
+++ b/docs/ui-kit/assets/interface.svg
@@ -0,0 +1,9 @@
+
+
diff --git a/docs/ui-kit/assets/object.svg b/docs/ui-kit/assets/object.svg
new file mode 100644
index 0000000..5f960b7
--- /dev/null
+++ b/docs/ui-kit/assets/object.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/docs/ui-kit/assets/placeholder.svg b/docs/ui-kit/assets/placeholder.svg
new file mode 100644
index 0000000..e812962
--- /dev/null
+++ b/docs/ui-kit/assets/placeholder.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/ui-kit/assets/theme-toggle.svg b/docs/ui-kit/assets/theme-toggle.svg
new file mode 100644
index 0000000..490263f
--- /dev/null
+++ b/docs/ui-kit/assets/theme-toggle.svg
@@ -0,0 +1,3 @@
+
diff --git a/docs/ui-kit/assets/typealias-kotlin.svg b/docs/ui-kit/assets/typealias-kotlin.svg
new file mode 100644
index 0000000..73a0885
--- /dev/null
+++ b/docs/ui-kit/assets/typealias-kotlin.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/docs/ui-kit/ui-kit.min.css b/docs/ui-kit/ui-kit.min.css
new file mode 100644
index 0000000..2de5b3d
--- /dev/null
+++ b/docs/ui-kit/ui-kit.min.css
@@ -0,0 +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}.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)}.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:rgba(0,0,0,.08);background-color:var(--color-b08)}}.navigation-controls--btn:active{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}.navigation-controls--btn.focus-visible{outline:var(--focus-outline)}.navigation-controls--btn:focus-visible{outline:var(--focus-outline)}@media(max-width:899px){.navigation-controls--btn{height:52px;width:52px}}.navigation-controls--break{flex-basis:100%}.navigation-controls--btn_theme{background-image:url(assets/theme-toggle.svg)}.navigation-controls--btn_homepage{background-image:url(assets/homepage.svg)}.navigation-controls--btn_toc{background-image:url(assets/burger.svg);margin-left:auto}.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}@media(max-width:899px){.ui-kit_desktop-only{display:none}}@media(min-width:900px){.ui-kit_mobile-only{display:none}}:root{--breakpoint-desktop-min:900px;--breakpoint-tablet-max:899px;--breakpoint-tablet-min:440px;--breakpoint-mobile-max:439px;--breakpoint-mobile-min:360px;--color-key-blue:#307fff;--color-key-blue-50:rgba(48,127,255,.5);--color-background-nav:#27282c;--color-background-nav-dt:#323237;--color-background-page:#fff;--color-background-page-dt:#262628;--color-background-footer:#ebebeb;--color-background-footer-dt:#323237;--color-text:#000;--color-text-dt:hsla(0,0%,100%,.96);--color-text-light:rgba(0,0,0,.7);--color-text-light-dt:hsla(0,0%,100%,.7);--color-w05:hsla(0,0%,100%,.05);--color-w08:hsla(0,0%,100%,.08);--color-w10:hsla(0,0%,100%,.1);--color-w16:hsla(0,0%,100%,.16);--color-w50:hsla(0,0%,100%,.5);--color-w70:hsla(0,0%,100%,.7);--color-w80:hsla(0,0%,100%,.8);--color-w100:#fff;--color-b05:rgba(0,0,0,.05);--color-b08:rgba(0,0,0,.08);--color-b20:rgba(0,0,0,.2);--color-b50:rgba(0,0,0,.5);--color-b70:rgba(0,0,0,.7);--color-cd-punctuation:#999;--color-cd-keyword:#0033b3;--color-cd-keyword-alternative:#cc7832;--color-cd-builtin:#067d17;--color-cd-builtin-alternative:#e7bf6a;--color-cd-function:#00627a;--color-cd-function-alternative:#ffc66d;--color-cd-operator:#9a6e3a;--color-cd-operator-alternative:#a9b7c6;--color-cd-body:#000;--color-cd-body-alternative:#a9b7c6;--color-generic:#539df3;--color-jvm:#4dbb5f;--color-js:#ffc700;--color-wasm:#fff;--size-s1:4px;--size-s2:8px;--size-s3:16px;--size-m1:24px;--size-m2:32px;--size-m3:48px;--size-l1:64px;--size-l2:72px;--size-ta1:40px;--size-ta2:52px;--font-family-default:JetBrains Sans,Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Droid Sans,Helvetica Neue,Arial,sans-serif;--font-family-mono:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;--font-h1:600 44px/44px var(--font-family-default);--font-h2:600 32px/32px var(--font-family-default);--font-h3:600 24px/24px var(--font-family-default);--font-h4:600 16px/24px var(--font-family-default);--font-text-m:400 16px/24px var(--font-family-default);--font-text-s:400 14px/20px var(--font-family-default);--font-code:400 16px/24px var(--font-family-mono);--hover-transition:background-color 200ms ease-in-out;--rotate-transition:transform 200ms ease-in-out;--color-background:var(--color-background-page);--focus-outline:4px solid var(--color-key-blue-50)}.theme-dark{--color-background:var(--color-background-page-dt)}body,table{background-color:#fff;background-color:var(--color-background)}
\ No newline at end of file
diff --git a/docs/ui-kit/ui-kit.min.js b/docs/ui-kit/ui-kit.min.js
new file mode 100644
index 0000000..96b8d53
--- /dev/null
+++ b/docs/ui-kit/ui-kit.min.js
@@ -0,0 +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("keydown",(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("keydown",(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("keydown",(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
diff --git a/gradle.properties b/gradle.properties
index 85e52a2..0ce209e 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -26,4 +26,5 @@ kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
\ No newline at end of file
+android.nonTransitiveRClass=true
+dokkaHtml.enabled = true
\ No newline at end of file