mirror of
https://github.com/google/adk-docs.git
synced 2026-09-14 16:16:59 +08:00
4505cb7e13
## Summary
The published Kotlin API reference has rendered **0.5.0** since it was
last
generated — four releases behind `main`, which is on 0.9.0. This
regenerates it
and fixes the generator that made it impossible.
It is not a forgotten manual step. `tools/kotlin-api-docs/generate.sh`
cannot
run against any adk-kotlin newer than **v0.6.0**.
## Why it was stuck
adk-kotlin moved from Dokka **1.9.20** to **2.2.0** at **v0.7.0**, and
Dokka 2
changed three things the script depends on:
1. **The task is gone.** `dokkaHtmlMultiModule` survives only as a
disabled
stub. Against a v0.9.0 clone, `./gradlew tasks --all` lists it verbatim
as:
```
dokkaHtmlMultiModule - [⚠ V1 tasks disabled] Runs all subprojects …
```
The build fails before generating anything.
2. **The output path moved** from `build/dokka/htmlMultiModule` to
`build/dokka/html`.
3. **Root aggregation is gone.** Dokka 1 inferred the unified
multi-module site
from the subprojects; Dokka 2 requires an explicit
`dependencies { dokka(project(...)) }` block, and adk-kotlin's root
build has
none. So even with the task name fixed there is no combined site to copy
—
only a dozen disconnected per-module ones.
## What this changes
**`tools/kotlin-api-docs/generate.sh`** — the three fixes above, plus a
post-generation check that `index.html` actually renders the requested
version.
Nothing verified that before, which is exactly how a 0.5.0 site sat in
the repo
looking freshly built.
The aggregation block is injected into the throwaway clone the script
already
makes, rather than sent upstream to adk-kotlin. That keeps the whole fix
inside
adk-docs — no second repo, no second review — and makes the module list
a docs
decision rather than an SDK one.
**`docs/api-reference/kotlin/`** — regenerated at 0.9.0. 2,462 files.
## Module coverage changes, and not purely additively
Please review this part specifically; it is the only judgement call
here.
| Module | Before | After | |
|---|---|---|---|
| `core`, `a2a`, `litertlm`, `processor`, `webserver` | ✅ | ✅ |
unchanged |
| `integrations` | ❌ | ✅ | **added** |
| `testing` | ❌ | ✅ | **added** |
| `examples` | ✅ | ❌ | **dropped** |
| `firebase`, `mlkit` | ❌ | ❌ | attempted, produce nothing |
- **`integrations` matters most.** It hosts
`BigQueryAgentAnalyticsPlugin`,
which `docs/integrations/bigquery-agent-analytics.md` documents and the
API
reference has never covered.
- **`examples` is dropped** because it is sample code rather than API
surface,
and it declares a JDK 21 toolchain that fails to auto-provision and
takes the
entire build down with it. Happy to restore it if you disagree, but it
needs
the toolchain problem solved first.
- **`firebase` and `mlkit` aggregate but emit empty directories** —
Dokka 2
generates no pages for their androidMain source sets. I left them out
rather
than shipping empty modules that imply coverage that is not there.
Making them
work needs a Dokka source-set fix in adk-kotlin, so it is out of scope
here.
## Verification
- A clean run of the committed script reproduces this exact tree.
- `index.html` renders `0.9.0`, and no file under
`docs/api-reference/kotlin/`
still contains `0.5.0`.
- The one deep link into the reference —
`docs/runtime/runconfig.md:364`, into
`google-adk-kotlin-core/com.google.adk.kt.agents/-run-config/` — still
resolves.
- The GA tag is injected exactly once per page. Eight files are skipped:
the
`navigation.html` fragments, which have no `<head>` to inject into.
- No temp-clone paths leaked into the generated HTML.
Built with **JDK 26** and Android SDK **platform 34**. adk-kotlin
declares a JDK
17 toolchain, but Dokka never needed to launch it for the aggregated
modules.
## Reviewing 2,462 files
Almost all of it is generated HTML. The only hand-written change is
`tools/kotlin-api-docs/generate.sh` (+57/-13); everything else is Dokka
output.
Reviewing the script and spot-checking a couple of rendered pages is the
useful
version of this review.
## Relationship to #2152
#2152 pins adk-docs to adk-kotlin 1.0.0 and lists regenerating this
reference on
its pre-merge checklist, blocked on a `v1.0.0` tag that does not exist
yet.
This PR deliberately does **not** wait for that. Doing it at 0.9.0 now
clears
four releases of staleness immediately and proves the toolchain works
while
there is no deadline, instead of discovering the generator is broken on
release
day. Once 1.0.0 ships, #2152 re-runs the same script with a different
argument.
1 line
45 KiB
CSS
1 line
45 KiB
CSS
.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 4px}.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(../images/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}@media(max-width:899px){.button_dropdown.search--close-button:after{background-image:url(../images/cross.svg)}}.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:#458cff;background-color:var(--color-key-blue-hover)}.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(../images/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(../images/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)}.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;font:400 15.5px/24px JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font:var(--font-code);overflow:auto;padding:12px 16px;position:relative;white-space:pre-wrap;word-break:break-word}code.block{max-width:100%;overflow-x:auto}.source-link-wrapper:after{clear:both;content:"";display:block;height:0}@media screen and (max-width:899px){.source-link-wrapper{display:block;margin-top:8px}}.source-link{float:right}.sample-container,div.CodeMirror{display:flex;flex-direction:column;position:relative}pre[runnable-code-sample]:after,pre[runnable-code-sample]:before{display:none}.copy-tooltip{align-items:center;display:flex;justify-content:center;position:absolute;right:4px;right:var(--size-s1);top:4px;top:var(--size-s1)}.copy-icon{border-radius:8px;border-radius:var(--size-s2);cursor:pointer;display:none;padding:8px;padding:var(--size-s2)}.copy-icon:hover{background:hsla(0,0%,100%,.5);background:var(--color-w50)}.copy-icon:before{background-color:var(--text-color);content:"";display:block;flex:0 0 auto;height:24px;-webkit-mask:url(../images/copy-icon.svg) no-repeat center/contain;mask:url(../images/copy-icon.svg) no-repeat center/contain;width:24px}.theme-dark .copy-icon:hover{background:hsla(0,0%,100%,.1);background:var(--color-w10)}.js .sample-container:hover .copy-icon,.js-touched .copy-icon{display:block}.copy-popup-wrapper{background-color:#262628;background-color:var(--color-background-page-dt);border:1px solid hsla(0,0%,100%,.16);border:1px solid var(--color-w16);border-radius:4px;border-radius:var(--size-s1);color:hsla(0,0%,100%,.96);color:var(--color-text-dt);cursor:default;display:none;padding:7px 16px 7px 8px;padding:7px var(--size-s3) 7px var(--size-s2);z-index:1}.copy-popup-wrapper>span{flex:0 0 auto}.copy-popup-wrapper.popup-to-left{margin-right:4px;margin-right:var(--size-s1)}.sample-container:hover .copy-popup-wrapper.active-popup,.table-row:hover .copy-popup-wrapper.active-popup{align-items:center;display:flex;justify-content:flex-start}.copy-popup-icon{background-image:url(../images/success-icon.svg);background-position:50%;background-repeat:no-repeat;background-size:contain;height:24px;width:24px}.anchor-wrapper{margin-left:4px;margin-left:var(--size-s1);position:relative}.anchor-wrapper .copy-popup-wrapper{left:100%;margin-left:4px;margin-left:var(--size-s1);position:absolute;top:-8px;width:-moz-max-content;width:max-content}.anchor-wrapper .copy-popup-wrapper_bottom{left:calc(100% - 36px);top:32px}.anchor-wrapper .copy-popup-wrapper_bottom-right{left:auto;right:calc(100% - 32px);top:32px}.anchor-icon{align-items:center;background:rgba(0,0,0,.08);background:var(--color-b08);border-radius:4px;border-radius:var(--size-s1);color:#000;color:var(--color-text);display:flex;justify-content:center;margin:-4px 0;opacity:0;padding:4px;padding:var(--size-s1);transition:opacity .2s ease-in-out}.anchor-icon:hover{cursor:pointer}.anchor-icon:before{background-color:#000;background-color:var(--color-text);content:"";display:block;height:24px;-webkit-mask:url(../images/anchor-copy-icon.svg) no-repeat center/contain;mask:url(../images/anchor-copy-icon.svg) no-repeat center/contain;width:24px}.theme-dark .anchor-icon{background:hsla(0,0%,100%,.1);background:var(--color-w10)}.theme-dark .anchor-icon:before{background-color:#fff;background-color:var(--color-w100)}.js .main-subrow:hover .anchor-icon{opacity:1}.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;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;min-width:min(360px,100vw);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{align-items:center;background-color:#323237;background-color:var(--color-background-nav-dt);border:none;color:var(--color-text-nav-dt);cursor:pointer;display:flex;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);gap:8px;letter-spacing:-.03em;list-style-type:none;padding:8px 12px;padding:var(--size-s2) 12px;position:relative}@media(max-width:899px){.dropdown--option{padding:14px 12px}}.dropdown--option:hover{background-color:#4a4a52}.dropdown--option.focus-visible{box-shadow:inset 4px 0 0 rgba(48,127,255,.5),inset -4px 0 0 rgba(48,127,255,.5);box-shadow:inset 4px 0 0 var(--color-key-blue-50),inset -4px 0 0 var(--color-key-blue-50);outline:var(--focus-outline);outline-offset:0;z-index:1}.dropdown--option:focus-visible{box-shadow:inset 4px 0 0 rgba(48,127,255,.5),inset -4px 0 0 rgba(48,127,255,.5);box-shadow:inset 4px 0 0 var(--color-key-blue-50),inset -4px 0 0 var(--color-key-blue-50);outline:var(--focus-outline);outline-offset:0;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:#458cff;background-color:var(--color-key-blue-hover)}.dropdown--option_link{color:var(--color-text-nav-dt);text-decoration:none}.dropdown--option_link.focus-visible{outline:var(--focus-outline);outline-offset:-4px}.dropdown--option_link:focus-visible{outline:var(--focus-outline);outline-offset:-4px}.dropdown--option .checkbox{pointer-events:none}.dropdown--option .checkbox:first-letter{text-transform:uppercase}.dropdown--option-icon{display:inline-block;flex-shrink:0;height:24px;height:var(--size-m1);width:24px;width:var(--size-m1)}.dropdown--option-icon_selected{background-image:url(../images/check.svg)}.dropdown--option-text{display:inline-block;overflow:hidden;text-overflow:ellipsis}.dropdown--overlay{background-color:rgba(0,0,0,.5);background-color:var(--color-b50);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}.dropdown--header .button{border-radius:0;outline-offset:-4px}}.dropdown--header .button:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}.dropdown--header .button:active{background-color:hsla(0,0%,100%,.16);background-color:var(--color-w16)}.filter-section{align-items:center;display:flex;flex-wrap:wrap;gap:2px;justify-content:flex-end;margin-right:12px;max-height:40px;padding-left:0;position:static;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(../images/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(../images/filter.svg);background-position:50% 50%;background-repeat:no-repeat;position:relative}.filter-section--dropdown-toggle:after{display:none}}@media(max-width:899px)and (max-width:899px){.filter-section--dropdown-toggle{border-radius:0;outline-offset:-4px}.filter-section--dropdown-toggle:hover{background-color:hsla(0,0%,100%,.16)!important;background-color:var(--color-w16)!important}.filter-section--dropdown-toggle:active{background-color:hsla(0,0%,100%,.21)!important;background-color:var(--color-w21)!important}}.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;outline-color:rgba(48,127,255,.5)!important;outline-color:var(--color-key-blue-50)!important}@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(../images/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(../images/arrow-down.svg)}.ui-kit-icon_placeholder{background-image:url(../images/placeholder.svg)}.ui-kit-icon_cross{background-image:url(../images/cross.svg)}code:not(.block){background:rgba(0,0,0,.08);background:var(--color-background-inline-code);border-radius:2px;display:inline-block;font:400 15.5px/24px JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font:var(--font-code);padding:0 4px}.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;margin-left:-5px;overflow:auto!important;scrollbar-gutter:stable}.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)}}.resizer{cursor:ew-resize;flex:0 0 5px!important;left:-3px;position:relative;z-index:1}.main-content .content>hr{border:none;border-top:3px double rgba(0,0,0,.5);border-top:3px double var(--color-b50);margin:24px 0;margin:var(--size-m1) 0}.theme-dark .main-content .content>hr{border-top:3px double hsla(0,0%,100%,.5);border-top:3px double var(--color-w50)}.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);position:relative;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{border-radius:0;height:52px;margin-left:12px;outline-offset:-4px}}.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 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);padding-top:1px}@media(max-width:899px){.library-version{align-items:center;background-color:#000;background-color:var(--color-b100);display:flex;flex-grow:100;height:52px;padding-top:0}}a{text-decoration:none}.main-content a:not([data-name]){border-bottom:1px solid var(--text-outline);cursor:pointer;font-size:inherit;font-style:normal;line-height:inherit;outline:none;padding-bottom:1px;transition:color .2s,border-color .2s;word-break:break-word;word-wrap: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)}.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}.navigation-controls--btn:hover{background-color:hsla(0,0%,100%,.1);background-color:var(--color-w10)}@media(max-width:899px){.navigation-controls .navigation-controls--btn:hover{background-color:hsla(0,0%,100%,.16);background-color:var(--color-w16)}.navigation-controls .navigation-controls--btn:active{background-color:hsla(0,0%,100%,.21);background-color:var(--color-w21)}}.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{border-radius:0;height:52px;outline-offset:-4px;width:52px}}.navigation-controls--break{flex-basis:100%}.navigation-controls--btn_theme{background-image:url(../images/theme-toggle.svg)}.navigation-controls--btn_homepage{background-image:url(../images/homepage.svg)}.navigation-controls--btn_toc{background-image:url(../images/burger.svg);margin-left:auto}.navigation-controls--btn_go-to-top{background-image:url(../images/go-to-top-icon.svg)}.platform-tags{display:flex;flex-wrap:wrap;margin-bottom:-6px;margin-left:-4px;position:relative;top:-2px}@media(max-width:439px){.platform-tags{margin-left:0;margin-top:0}.platform-tags--wrapper{flex-basis:100%;float:none;margin-left:-16px;margin-top:8px}}.platform-tag{--platform-tag-color:#bababb;border:0;border-radius:4px;border-radius:var(--size-s1);cursor:pointer;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;position:relative;text-transform:capitalize}.platform-tags .platform-tag{align-items:center;display:flex;font-size:13px;padding:5px 8px}button.platform-tag{cursor:pointer;position:relative}button.platform-tag.focus-visible{outline:var(--focus-outline);z-index:1}button.platform-tag:focus-visible{outline:var(--focus-outline);z-index:1}.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}.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-image:linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.08),rgba(0,0,0,.08));background-image:linear-gradient(var(--color-b08),var(--color-b08),var(--color-b08))}}.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:none}.filter-section .platform-tag:not([data-active]):hover{background-color:hsla(0,0%,100%,.16);background-color:var(--color-w16)}.filter-section .platform-tag:not([data-active]):after{background-color:currentColor;content:"";height:1px;left:12px;position:absolute;right:12px;top:20px;z-index:1}.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}.table-row .inline-comment{padding-bottom:8px;padding-top: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;margin-bottom:32px}.tableheader{background-color:rgba(25,25,28,.05);background-color:var(--color-background-code-block);border:1px rgba(0,0,0,.2);border-style:solid solid none;border:1px solid var(--color-b20);border-bottom:1px var(--color-b20);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-bottom:0;margin-top:0;padding:7px 16px}.theme-dark .tableheader{border-color:hsla(0,0%,100%,.16);border-color:var(--color-w16)}@media(max-width:439px){.tableheader{border-left:none;border-right:none;margin-left:-16px;margin-right:-16px}}h4.tableheader{margin-top:24px;margin-top:var(--size-m1)}.table-row{background-color:var(--color-background);border:1px rgba(0,0,0,.2);border-style:solid solid none;border:1px solid var(--color-b20);border-bottom:1px var(--color-b20);display:flex;flex-direction:column;padding:16px 16px 15px}.theme-dark .table-row{border-color:hsla(0,0%,100%,.16);border-color:var(--color-w16)}.table-row_multimodule,.table-row_platform-tagged{border-left:none;border-right:none;padding-left:0;padding-right:0}.table-row_multimodule:first-of-type,.table-row_platform-tagged:first-of-type{border-top:none}@media(max-width:439px){.table-row:not(.table-row_multimodule):not(.table-row_platform-tagged){border-left:none;border-right:none;margin-left:-16px;margin-right:-16px}}.table-row:last-of-type{border-bottom-style:solid;border-bottom-width:1px}.table-row_multimodule:last-of-type,.table-row_platform-tagged:last-of-type{border-bottom:none}.table-row .brief-comment{color:#27282c;color:var(--color-background-nav)}.theme-dark .table-row .brief-comment{color:hsla(0,0%,100%,.4)}td.content{display:flex;flex-direction:column;padding-left:24px;padding-top:16px}.main-subrow{display:flex;flex-direction:row;flex-wrap:wrap;padding:0}.title-row{display:grid;grid-template-columns:auto auto 7em;width:100%}@media (min-width:901px),print{.title-row{grid-template-columns:20% auto 7em}}.keyValue{display:grid;grid-gap:16px}@media (min-width:901px),print{.keyValue{grid-template-columns:1fr 4fr}.keyValue>div:first-child{word-break:break-word}}.table--container{overflow:auto}@media(max-width:439px){.table--container{margin-left:-16px;overflow:auto;width:calc(100% + 32px)}}table{border-collapse:collapse;margin-bottom:24px;margin-top:24px;width:100%}td,th{border:1px solid rgba(0,0,0,.2);border:1px solid var(--color-b20);min-width:40px;text-align:left;vertical-align:top}th{background-color:rgba(25,25,28,.05);background-color:var(--color-background-code-block);padding:7.5px 15.5px}td{padding:15.5px}.theme-dark td,.theme-dark th{border-color:hsla(0,0%,100%,.16);border-color:var(--color-w16)}@media(max-width:439px){td:first-child,th:first-child{border-left:none}td:last-child,th:last-child{border-right:none}}tbody>tr{min-height:56px}td:first-child{width:20vw}.platform-hinted>.platform-bookmarks-row,.tabs-section{border-bottom:1px solid var(--text-outline);margin-bottom:32px;margin-bottom:var(--size-m2)}.platform-hinted>.platform-bookmarks-row.tabs_wrapping,.tabs-section.tabs_wrapping{border-bottom:none}.platform-hinted>.platform-bookmarks-row>.platform-bookmark,.section-tab{background-color:transparent;border:0;border-bottom:4px solid transparent;border-top-left-radius:4px;border-top-right-radius:4px;color:var(--text-color);cursor:pointer;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 16px 6px;position:relative;top:1px}.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{background-color:var(--color-background-hover)}.section-tab.focus-visible{outline:var(--focus-outline);outline-offset:-4px}.section-tab:focus-visible{outline:var(--focus-outline);outline-offset:-4px}.section-tab[data-active=""]{border-bottom:4px solid var(--active-tab-border-color)}.tabs-section-body>div{margin-top:12px}.table .platform-bookmarks-row,.table .tabs-section{margin-bottom:16px;margin-bottom:var(--size-s3)}.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.focus-visible{outline:var(--focus-outline);outline-offset:-4px}.platform-hinted>.platform-bookmarks-row>.platform-bookmark:focus-visible{outline:var(--focus-outline);outline-offset:-4px}.platform-hinted>.platform-bookmarks-row>.platform-bookmark:hover{background-color:var(--color-background-hover)}.platform-hinted>.platform-bookmarks-row>.platform-bookmark[data-active=""]{border-bottom:4px solid var(--active-tab-border-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);--toc-link-hover-gradient:linear-gradient(90deg,hsla(0,0%,100%,.08),rgba(17,0,0,.08));--toc-button-hover-gradient:linear-gradient(270deg,transparent,rgba(0,0,0,.08));--toc-item-padding-left:8px;--toc-item-padding-right:4px;--toc-item-padding-top:8px;--toc-item-padding-bottom:8px;--toc-item-padding-left-mobile:8px;--toc-item-padding-right-mobile:4px;--toc-item-padding-top-mobile:14px;--toc-item-padding-bottom-mobile:14px;--toc-icon-size:24px;--toc-button-width:calc(var(--toc-icon-size) + var(--toc-item-padding-left)*2)}.theme-dark{--toc-hover-color:var(--color-w08);--toc-color:var(--color-text-dt);--toc-link-hover-gradient:linear-gradient(270deg,hsla(0,0%,100%,.08),rgba(17,0,0,0));--toc-button-hover-gradient:linear-gradient(90deg,hsla(0,0%,100%,.08),rgba(17,0,0,0))}@media(max-width:899px){.theme-dark_mobile{--toc-color:var(--color-text-dt);--toc-hover-color:var(--color-w08);--toc-link-hover-gradient:linear-gradient(270deg,hsla(0,0%,100%,.08),rgba(17,0,0,0));--toc-button-hover-gradient:linear-gradient(90deg,hsla(0,0%,100%,.08),rgba(17,0,0,0))}}.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;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toc--button{align-items:flex-start;background-color:inherit;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;height:100%;justify-content:flex-end;min-width:40px;min-width:var(--toc-button-width);padding:0 4px 0 0;padding:0 var(--toc-item-padding-right) 0 0;position:absolute}.toc--button:after{background-image:url(../images/arrow-down.svg);background-position:50%;background-repeat:no-repeat;background-size:24px 24px;content:" ";filter:invert(1);font-size:0;height:24px;height:var(--toc-icon-size);line-height:0;margin-top:-12px;margin-top:calc(var(--toc-icon-size)/-2);position:absolute;top:50%;transform:rotate(0deg);width:24px;width:var(--toc-icon-size)}.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)}}.toc--button:hover{background:linear-gradient(270deg,transparent,rgba(0,0,0,.08));background:var(--toc-button-hover-gradient)}.toc--button.focus-visible{box-shadow:inset 4px 0 0 rgba(48,127,255,.5);box-shadow:inset 4px 0 0 var(--color-key-blue-50);outline:var(--focus-outline)}.toc--button:focus-visible{box-shadow:inset 4px 0 0 rgba(48,127,255,.5);box-shadow:inset 4px 0 0 var(--color-key-blue-50);outline:var(--focus-outline)}.toc--link{box-sizing:border-box;color:inherit;padding:8px 4px 8px 0;padding:var(--toc-item-padding-top) var(--toc-item-padding-right) var(--toc-item-padding-bottom) 0;width:100%}@media(max-width:899px){.toc--link{padding:14px 4px 14px 0;padding:var(--toc-item-padding-top-mobile) var(--toc-item-padding-right-mobile) var(--toc-item-padding-bottom-mobile) 0}}.toc--link:hover{background:rgba(0,0,0,.08);background:var(--toc-hover-color)}.toc--link.focus-visible{box-shadow:inset 4px 0 0 rgba(48,127,255,.5),inset -4px 0 0 rgba(48,127,255,.5);box-shadow:inset 4px 0 0 var(--color-key-blue-50),inset -4px 0 0 var(--color-key-blue-50);outline:var(--focus-outline);outline-offset:0}.toc--link:focus-visible{box-shadow:inset 4px 0 0 rgba(48,127,255,.5),inset -4px 0 0 rgba(48,127,255,.5);box-shadow:inset 4px 0 0 var(--color-key-blue-50),inset -4px 0 0 var(--color-key-blue-50);outline:var(--focus-outline);outline-offset:0}.toc--button~.toc--link.focus-visible{box-shadow:inset -4px 0 0 rgba(48,127,255,.5);box-shadow:inset -4px 0 0 var(--color-key-blue-50)}.toc--button~.toc--link:focus-visible{box-shadow:inset -4px 0 0 rgba(48,127,255,.5);box-shadow:inset -4px 0 0 var(--color-key-blue-50)}.toc--skip-link{background-color:#458cff;background-color:var(--color-key-blue-hover);color:#fff;color:var(--color-w100);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);margin-top:36px;padding:1px;position:absolute;z-index:100}.toc--skip-link:not(:focus){overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;border:0!important;height:1px!important;padding:0!important;width:1px!important}.toc--skip-link:focus{outline:var(--focus-outline);outline-offset:0}.sidebar>.toc--skip-link{margin-top:0}.toc--part_hidden>.toc--row>.toc--button~.toc--skip-link{display:none}@media(max-width:899px){.toc--skip-link{display:none}}.toc--part[data-nesting-level="0"] .toc--row>.toc--link:first-child{padding-left:40px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*0)}.toc--part[data-nesting-level="0"] .toc--button+.toc--link{margin-left:40px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*0)}.toc--part[data-nesting-level="0"] .toc--button{width:40px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*0)}.toc--part[data-nesting-level="1"] .toc--row>.toc--link:first-child{padding-left:64px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*1)}.toc--part[data-nesting-level="1"] .toc--button+.toc--link{margin-left:64px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*1)}.toc--part[data-nesting-level="1"] .toc--button{width:64px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*1)}.toc--part[data-nesting-level="2"] .toc--row>.toc--link:first-child{padding-left:88px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*2)}.toc--part[data-nesting-level="2"] .toc--button+.toc--link{margin-left:88px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*2)}.toc--part[data-nesting-level="2"] .toc--button{width:88px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*2)}.toc--part[data-nesting-level="3"] .toc--row>.toc--link:first-child{padding-left:112px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*3)}.toc--part[data-nesting-level="3"] .toc--button+.toc--link{margin-left:112px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*3)}.toc--part[data-nesting-level="3"] .toc--button{width:112px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*3)}.toc--part[data-nesting-level="4"] .toc--row>.toc--link:first-child{padding-left:136px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*4)}.toc--part[data-nesting-level="4"] .toc--button+.toc--link{margin-left:136px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*4)}.toc--part[data-nesting-level="4"] .toc--button{width:136px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*4)}.toc--part[data-nesting-level="5"] .toc--row>.toc--link:first-child{padding-left:160px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*5)}.toc--part[data-nesting-level="5"] .toc--button+.toc--link{margin-left:160px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*5)}.toc--part[data-nesting-level="5"] .toc--button{width:160px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*5)}.toc--part[data-nesting-level="6"] .toc--row>.toc--link:first-child{padding-left:184px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*6)}.toc--part[data-nesting-level="6"] .toc--button+.toc--link{margin-left:184px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*6)}.toc--part[data-nesting-level="6"] .toc--button{width:184px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*6)}.toc--part[data-nesting-level="7"] .toc--row>.toc--link:first-child{padding-left:208px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*7)}.toc--part[data-nesting-level="7"] .toc--button+.toc--link{margin-left:208px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*7)}.toc--part[data-nesting-level="7"] .toc--button{width:208px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*7)}.toc--part[data-nesting-level="8"] .toc--row>.toc--link:first-child{padding-left:232px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*8)}.toc--part[data-nesting-level="8"] .toc--button+.toc--link{margin-left:232px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*8)}.toc--part[data-nesting-level="8"] .toc--button{width:232px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*8)}.toc--part[data-nesting-level="9"] .toc--row>.toc--link:first-child{padding-left:256px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*9)}.toc--part[data-nesting-level="9"] .toc--button+.toc--link{margin-left:256px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*9)}.toc--part[data-nesting-level="9"] .toc--button{width:256px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*9)}.toc--part[data-nesting-level="10"] .toc--row>.toc--link:first-child{padding-left:280px;padding-left:calc(var(--toc-button-width) + var(--toc-icon-size)*10)}.toc--part[data-nesting-level="10"] .toc--button+.toc--link{margin-left:280px;margin-left:calc(var(--toc-button-width) + var(--toc-icon-size)*10)}.toc--part[data-nesting-level="10"] .toc--button{width:280px;width:calc(var(--toc-button-width) + var(--toc-icon-size)*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}.toc--icon{height:16px;line-height:32px;width:16px}.toc--button+.toc--link:hover{background:linear-gradient(90deg,hsla(0,0%,100%,.08),rgba(17,0,0,.08));background:var(--toc-link-hover-gradient)}.toc--icon.class:before{content:url(../images/class.svg)}.toc--icon.class-kt:before{content:url(../images/class-kotlin.svg)}.toc--icon.function:before{content:url(../images/function.svg)}.toc--icon.enum-class:before{content:url(../images/enum.svg)}.toc--icon.enum-class-kt:before{content:url(../images/enum-kotlin.svg)}.toc--icon.annotation-class:before{content:url(../images/annotation.svg)}.toc--icon.annotation-class-kt:before{content:url(../images/annotation-kotlin.svg)}.toc--icon.abstract-class:before{content:url(../images/abstract-class.svg)}.toc--icon.abstract-class-kt:before{content:url(../images/abstract-class-kotlin.svg)}.toc--icon.exception-class:before{content:url(../images/exception-class.svg)}.toc--icon.interface:before{content:url(../images/interface.svg)}.toc--icon.interface-kt:before{content:url(../images/interface-kotlin.svg)}.toc--icon.object:before{content:url(../images/object.svg)}.toc--icon.typealias-kt:before{content:url(../images/typealias-kotlin.svg)}.toc--icon.val:before{content:url(../images/field-value.svg)}.toc--icon.var:before{content:url(../images/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:after,.toc--part[data-active]>.toc--row .toc--link:after{filter:invert(0)}.toc--part[data-active]>.toc--row .toc--link:hover{background-color:#458cff;background-color:var(--color-key-blue-hover)}.toc--part[data-active]>.toc--row .toc--button~.toc--link:hover{background:linear-gradient(270deg,hsla(0,0%,100%,.16),rgba(17,0,0,0)),#307fff;background:linear-gradient(270deg,hsla(0,0%,100%,.16) 0,rgba(17,0,0,0) 100%),var(--color-key-blue)}.toc--part[data-active]>.toc--row .toc--button:hover{background:linear-gradient(90deg,hsla(0,0%,100%,.16),rgba(17,0,0,0)),#307fff;background:linear-gradient(90deg,hsla(0,0%,100%,.16) 0,rgba(17,0,0,0) 100%),var(--color-key-blue)}.sidebar{border-right:1px solid rgba(39,40,44,.2);box-sizing:border-box;overflow:auto!important;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{min-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-hover:#458cff;--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-w21:hsla(0,0%,100%,.21);--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-b100:#000;--color-background-inline-code:var(--color-b08);--color-background-code-block:rgba(25,25,28,.05);--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-number:#871094;--color-cd-number-alternative:#6db9f3;--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);--color-background-hover:var(--color-b08);--focus-outline:4px solid var(--color-key-blue-50);--content-max-width:1128px;--text-color:var(--color-text);--text-outline:var(--color-b20);--sidebar-width:280px}.theme-dark{--color-background:var(--color-background-page-dt);--color-background-hover:var(--color-w10);--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")} |