@deot/docs-markdown 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -2
- package/dist/index.cjs +283 -28
- package/dist/index.d.ts +14 -0
- package/dist/index.js +282 -30
- package/dist/index.style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @deot/docs-markdown
|
|
2
2
|
|
|
3
|
-
`@deot/docs-markdown` 提供 Vue 3 Markdown 渲染组件,内置文档指示器、标题锚点、链接识别、tip/warning
|
|
3
|
+
`@deot/docs-markdown` 提供 Vue 3 Markdown 渲染组件,内置文档指示器、标题锚点、链接识别、tip/warning 容器、tabs 分栏、代码高亮预览和按需加载的 Playground 容器。
|
|
4
4
|
|
|
5
5
|
## 安装
|
|
6
6
|
|
|
@@ -73,6 +73,37 @@ const source = ref('# Hello @deot/docs');
|
|
|
73
73
|
:::
|
|
74
74
|
````
|
|
75
75
|
|
|
76
|
+
### Tabs 分栏
|
|
77
|
+
|
|
78
|
+
每一栏用 **4 个反引号** 的 fence(info 为 `markdown <标题>`),这样栏内还能写普通 ` ``` ` 代码块。切换时写入 `?tab=<id>`(标题小写、空白变 `-`;非 ASCII 与标题锚点一致做 `encodeURIComponent`)。
|
|
79
|
+
|
|
80
|
+
`````markdown
|
|
81
|
+
:::tabs
|
|
82
|
+
````markdown Linux
|
|
83
|
+
Linux 安装步骤,可含普通代码块:
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
const value = 1;
|
|
87
|
+
```
|
|
88
|
+
````
|
|
89
|
+
````markdown Android
|
|
90
|
+
Android 安装步骤。
|
|
91
|
+
````
|
|
92
|
+
:::
|
|
93
|
+
`````
|
|
94
|
+
|
|
95
|
+
栏内若再嵌套 `:::tip` / `:::playground` / `:::warning`,外层必须加长冒号(`::::tabs` … `::::`)。`markdown-it-container` 会按「足够长的纯 `:::` 行」闭合外层,内层结束标记会提前关掉 `:::tabs`。
|
|
96
|
+
|
|
97
|
+
``````markdown
|
|
98
|
+
::::tabs
|
|
99
|
+
````markdown Demo
|
|
100
|
+
:::tip
|
|
101
|
+
嵌套提示。
|
|
102
|
+
:::
|
|
103
|
+
````
|
|
104
|
+
::::
|
|
105
|
+
``````
|
|
106
|
+
|
|
76
107
|
### 单文件 Playground
|
|
77
108
|
|
|
78
109
|
````markdown
|
|
@@ -130,8 +161,10 @@ Playground 只在页面出现 fence 或 `:::playground` 时动态加载。使用
|
|
|
130
161
|
| --- | --- |
|
|
131
162
|
| `Markdown` | Vue Markdown 渲染组件。 |
|
|
132
163
|
| `parseMarkdownSearchSections(content)` | 使用渲染器相同的标题锚点规则提取文档标题、正文和小节,供搜索索引使用。 |
|
|
164
|
+
| `toMarkdownTabId(title)` | 将 Tab 标题转为 `?tab=` id。 |
|
|
165
|
+
| `markdownTabQueryKey` / `createHistoryTabQueryAdapter` | 文档壳可 `provide` Router 版适配器;独立预览回退 history。 |
|
|
133
166
|
|
|
134
|
-
类型:`MarkdownSearchDocument`、`MarkdownSearchSection`、`MarkdownIndicatorConfig`、`MarkdownIndicatorOptions`、`MarkdownPlaygroundConfig`、`MarkdownPlaygroundMountProps`。
|
|
167
|
+
类型:`MarkdownSearchDocument`、`MarkdownSearchSection`、`MarkdownIndicatorConfig`、`MarkdownIndicatorOptions`、`MarkdownPlaygroundConfig`、`MarkdownPlaygroundMountProps`、`MarkdownTabQueryAdapter`。
|
|
135
168
|
|
|
136
169
|
底层 markdown-it 实例和内部指令不是包入口的公共导出。搜索解析结果不会包含代码围栏和 HTML 内容。
|
|
137
170
|
|
package/dist/index.cjs
CHANGED
|
@@ -37,9 +37,11 @@ let _deot_helper_dom = require("@deot/helper-dom");
|
|
|
37
37
|
//#region packages/markdown/src/markdown.ts
|
|
38
38
|
var HTML_MD_SIGN = "md";
|
|
39
39
|
var PLAYGROUND = "playground";
|
|
40
|
+
var TABS = "tabs";
|
|
40
41
|
var TIP = "tip";
|
|
41
42
|
var WARNING = "warning";
|
|
42
43
|
var CALLOUT_FILLED_RE = /(^|\s)filled(\s|$)/;
|
|
44
|
+
var TAB_MARKDOWN_INFO_RE = /^markdown(?:\s+(.*))?$/i;
|
|
43
45
|
var CALLOUT_INFO_ICON = [
|
|
44
46
|
"<svg width=\"22\" height=\"28\" viewBox=\"0 0 22 28\" fill=\"none\" aria-hidden=\"true\">",
|
|
45
47
|
"<circle class=\"docs-markdown-callout-icon__fill\" cx=\"11\" cy=\"14\" r=\"11\"></circle>",
|
|
@@ -72,9 +74,13 @@ config.options.html(true).typographer(true).linkify(true).end().plugin("anchor")
|
|
|
72
74
|
placement: "before",
|
|
73
75
|
symbol: "#"
|
|
74
76
|
}) }]).end().plugin("container").use(($md) => {
|
|
75
|
-
const
|
|
77
|
+
const playgroundReg = new RegExp(`^${PLAYGROUND}\\s*(.*)$`);
|
|
76
78
|
$md.use(markdown_it_container.default, PLAYGROUND, { validate(params) {
|
|
77
|
-
return params.trim().match(
|
|
79
|
+
return params.trim().match(playgroundReg);
|
|
80
|
+
} });
|
|
81
|
+
const tabsReg = new RegExp(`^${TABS}\\s*$`);
|
|
82
|
+
$md.use(markdown_it_container.default, TABS, { validate(params) {
|
|
83
|
+
return tabsReg.test(params.trim());
|
|
78
84
|
} });
|
|
79
85
|
$md.use(markdown_it_container.default, TIP, { render: renderCallout(TIP, CALLOUT_INFO_ICON) });
|
|
80
86
|
$md.use(markdown_it_container.default, WARNING, { render: renderCallout(WARNING, CALLOUT_WARNING_ICON) });
|
|
@@ -82,9 +88,33 @@ config.options.html(true).typographer(true).linkify(true).end().plugin("anchor")
|
|
|
82
88
|
var md = config.toMd(markdown_it.default);
|
|
83
89
|
var playgroundOpen = `container_${PLAYGROUND}_open`;
|
|
84
90
|
var playgroundClose = `container_${PLAYGROUND}_close`;
|
|
91
|
+
var tabsOpen = `container_${TABS}_open`;
|
|
92
|
+
var tabsClose = `container_${TABS}_close`;
|
|
85
93
|
var htmlCommentRE = /<!--([\s\S]*?)-->/g;
|
|
86
94
|
var runtimeConfigRE = /<config\s+lang\s*=\s*["']json5["']\s*>([\s\S]*?)<\/config>/i;
|
|
87
95
|
var renderPlaygroundError = (message) => `<div class="docs-playground-error">PLAYGROUND: ${md.utils.escapeHtml(message)}</div>\n`;
|
|
96
|
+
var renderTabsError = (message) => `<div class="docs-markdown-tabs-error">TABS: ${md.utils.escapeHtml(message)}</div>\n`;
|
|
97
|
+
/**
|
|
98
|
+
* 从 fence info 解析 Tab 显示名:去掉可选的 `markdown` 语言前缀。
|
|
99
|
+
* @param info fence 的 info 字符串,如 `markdown Linux` 或 `Android`。
|
|
100
|
+
* @returns 显示标题(可能为空)。
|
|
101
|
+
*/
|
|
102
|
+
var parseTabFenceTitle = (info) => {
|
|
103
|
+
const trimmed = info.trim();
|
|
104
|
+
const match = trimmed.match(TAB_MARKDOWN_INFO_RE);
|
|
105
|
+
if (match) return (match[1] || "").trim();
|
|
106
|
+
return trimmed;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* 生成 `?tab=` 使用的 id:小写、空白变 `-`;含非 ASCII 时与标题锚点一致做 encodeURIComponent。
|
|
110
|
+
* @param title Tab 显示名。
|
|
111
|
+
* @returns 可写入 query 的 id;标题为空时返回空串。
|
|
112
|
+
*/
|
|
113
|
+
var toMarkdownTabId = (title) => {
|
|
114
|
+
const normalized = title.trim().toLowerCase().replace(/\s+/gu, "-");
|
|
115
|
+
if (!normalized) return "";
|
|
116
|
+
return /[^\x20-\x7E]/u.test(normalized) ? encodeURIComponent(normalized) : normalized;
|
|
117
|
+
};
|
|
88
118
|
var PLAYGROUND_VIEWS = ["runtime", "files"];
|
|
89
119
|
var isPlaygroundView = (value) => typeof value === "string" && PLAYGROUND_VIEWS.includes(value);
|
|
90
120
|
var isRuntimeViewport = (viewport) => {
|
|
@@ -162,7 +192,61 @@ var parseRuntimeProps = (tokens) => {
|
|
|
162
192
|
return {};
|
|
163
193
|
};
|
|
164
194
|
var renderPlaygroundAttrs = (propsData) => `data-props="${md.utils.escapeHtml(JSON.stringify(propsData))}"`;
|
|
165
|
-
|
|
195
|
+
var renderTabsHtml = (panels) => {
|
|
196
|
+
const parts = ["<div class=\"docs-markdown-tabs\" md data-tabs>", "<div class=\"docs-markdown-tabs__nav\" data-tabs-nav></div>"];
|
|
197
|
+
panels.forEach((panel, index) => {
|
|
198
|
+
const hidden = index === 0 ? "" : " hidden";
|
|
199
|
+
const id = md.utils.escapeHtml(panel.id);
|
|
200
|
+
const title = md.utils.escapeHtml(panel.title);
|
|
201
|
+
parts.push(`<div class="docs-markdown-tabs__panel" role="tabpanel" data-tab="${id}" data-tab-title="${title}"${hidden}>`, md.render(panel.content), "</div>");
|
|
202
|
+
});
|
|
203
|
+
parts.push("</div>\n");
|
|
204
|
+
return parts.join("");
|
|
205
|
+
};
|
|
206
|
+
md.core.ruler.after("block", "markdown-tabs", (state) => {
|
|
207
|
+
const panelSources = Array.isArray(state.env?.tabsPanelSources) ? state.env.tabsPanelSources : void 0;
|
|
208
|
+
for (let index = 0; index < state.tokens.length; index++) {
|
|
209
|
+
if (state.tokens[index].type !== tabsOpen) continue;
|
|
210
|
+
let depth = 1;
|
|
211
|
+
let closeIndex = index + 1;
|
|
212
|
+
for (; closeIndex < state.tokens.length; closeIndex++) {
|
|
213
|
+
if (state.tokens[closeIndex].type === tabsOpen) depth++;
|
|
214
|
+
if (state.tokens[closeIndex].type === tabsClose) depth--;
|
|
215
|
+
if (depth === 0) break;
|
|
216
|
+
}
|
|
217
|
+
const fences = state.tokens.slice(index + 1, closeIndex).filter((token) => token.type === "fence");
|
|
218
|
+
const placeholder = new state.Token("html_block", "", 0);
|
|
219
|
+
placeholder.block = true;
|
|
220
|
+
if (!fences.length) placeholder.content = renderTabsError("至少需要声明一个分栏");
|
|
221
|
+
else {
|
|
222
|
+
const panels = [];
|
|
223
|
+
const seen = /* @__PURE__ */ new Set();
|
|
224
|
+
let error = "";
|
|
225
|
+
for (const fence of fences) {
|
|
226
|
+
const title = parseTabFenceTitle(fence.info);
|
|
227
|
+
const id = toMarkdownTabId(title);
|
|
228
|
+
if (!title || !id) {
|
|
229
|
+
error = "每个分栏都必须声明标题";
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
if (seen.has(id)) {
|
|
233
|
+
error = `分栏 ${title} 的 id 重复`;
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
seen.add(id);
|
|
237
|
+
panels.push({
|
|
238
|
+
id,
|
|
239
|
+
title,
|
|
240
|
+
content: fence.content
|
|
241
|
+
});
|
|
242
|
+
panelSources?.push(fence.content);
|
|
243
|
+
}
|
|
244
|
+
placeholder.content = error ? renderTabsError(error) : renderTabsHtml(panels);
|
|
245
|
+
}
|
|
246
|
+
state.tokens.splice(index, closeIndex - index + 1, placeholder);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
md.core.ruler.after("markdown-tabs", "runtime-files", (state) => {
|
|
166
250
|
for (let index = 0; index < state.tokens.length; index++) {
|
|
167
251
|
if (state.tokens[index].type !== playgroundOpen) continue;
|
|
168
252
|
let depth = 1;
|
|
@@ -215,7 +299,7 @@ md.core.ruler.after("block", "runtime-files", (state) => {
|
|
|
215
299
|
});
|
|
216
300
|
var renderAttrs = md.renderer.renderAttrs;
|
|
217
301
|
md.renderer.renderAttrs = (token) => {
|
|
218
|
-
const reg = new RegExp(`container_${PLAYGROUND}|fence|text`);
|
|
302
|
+
const reg = new RegExp(`container_${PLAYGROUND}|container_${TABS}|fence|text`);
|
|
219
303
|
if (token.nesting !== -1 && token.type && !reg.test(token.type)) token.attrPush([HTML_MD_SIGN, ""]);
|
|
220
304
|
return renderAttrs(token);
|
|
221
305
|
};
|
|
@@ -243,32 +327,39 @@ var getInlineSearchText = (token) => {
|
|
|
243
327
|
* @returns 文档标题、正文和按标题划分的小节。
|
|
244
328
|
*/
|
|
245
329
|
var parseMarkdownSearchSections = (content) => {
|
|
246
|
-
const tokens = md.parse(content, {});
|
|
247
330
|
const sections = [];
|
|
248
331
|
const documentParts = [];
|
|
249
332
|
let activeSection;
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
if (token.type === "heading_open") {
|
|
253
|
-
const inline = tokens[index + 1];
|
|
254
|
-
if (inline?.type !== "inline") continue;
|
|
255
|
-
const title = getInlineSearchText(inline);
|
|
256
|
-
if (!title) continue;
|
|
257
|
-
activeSection = {
|
|
258
|
-
title,
|
|
259
|
-
anchor: token.attrGet("id") || "",
|
|
260
|
-
level: Number(token.tag.slice(1)) || 1,
|
|
261
|
-
text: ""
|
|
262
|
-
};
|
|
263
|
-
sections.push(activeSection);
|
|
264
|
-
continue;
|
|
265
|
-
}
|
|
266
|
-
if (token.type !== "inline" || tokens[index - 1]?.type === "heading_open") continue;
|
|
267
|
-
const text = getInlineSearchText(token);
|
|
268
|
-
if (!text) continue;
|
|
333
|
+
const consumeInline = (text) => {
|
|
334
|
+
if (!text) return;
|
|
269
335
|
documentParts.push(text);
|
|
270
336
|
if (activeSection) activeSection.text = normalizeSearchText(`${activeSection.text} ${text}`);
|
|
271
|
-
}
|
|
337
|
+
};
|
|
338
|
+
const walk = (source, withHeadings) => {
|
|
339
|
+
const tabsPanelSources = [];
|
|
340
|
+
const tokens = md.parse(source, { tabsPanelSources });
|
|
341
|
+
for (let index = 0; index < tokens.length; index++) {
|
|
342
|
+
const token = tokens[index];
|
|
343
|
+
if (withHeadings && token.type === "heading_open") {
|
|
344
|
+
const inline = tokens[index + 1];
|
|
345
|
+
if (inline?.type !== "inline") continue;
|
|
346
|
+
const title = getInlineSearchText(inline);
|
|
347
|
+
if (!title) continue;
|
|
348
|
+
activeSection = {
|
|
349
|
+
title,
|
|
350
|
+
anchor: token.attrGet("id") || "",
|
|
351
|
+
level: Number(token.tag.slice(1)) || 1,
|
|
352
|
+
text: ""
|
|
353
|
+
};
|
|
354
|
+
sections.push(activeSection);
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
if (token.type !== "inline" || tokens[index - 1]?.type === "heading_open") continue;
|
|
358
|
+
consumeInline(getInlineSearchText(token));
|
|
359
|
+
}
|
|
360
|
+
for (const panelSource of tabsPanelSources) walk(panelSource, false);
|
|
361
|
+
};
|
|
362
|
+
walk(content, true);
|
|
272
363
|
return {
|
|
273
364
|
title: sections.find((section) => section.level === 1)?.title || sections[0]?.title || "",
|
|
274
365
|
text: normalizeSearchText(documentParts.join(" ")),
|
|
@@ -276,11 +367,137 @@ var parseMarkdownSearchSections = (content) => {
|
|
|
276
367
|
};
|
|
277
368
|
};
|
|
278
369
|
//#endregion
|
|
370
|
+
//#region packages/markdown/src/tab-query.ts
|
|
371
|
+
var markdownTabQueryKey = Symbol("docs-markdown-tab-query");
|
|
372
|
+
var TAB_QUERY = "tab";
|
|
373
|
+
/**
|
|
374
|
+
* 不依赖 Vue Router 的默认适配器:读写 `location.search` 的 `tab`,
|
|
375
|
+
* 并用 `history.replaceState` 更新(供 examples / 单测使用)。
|
|
376
|
+
* @returns 可注入 TabsNav 的 get/set/subscribe 适配器。
|
|
377
|
+
*/
|
|
378
|
+
var createHistoryTabQueryAdapter = () => {
|
|
379
|
+
const read = () => {
|
|
380
|
+
try {
|
|
381
|
+
return new URLSearchParams(window.location.search).get(TAB_QUERY) || "";
|
|
382
|
+
} catch {
|
|
383
|
+
return "";
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
const write = (tab) => {
|
|
387
|
+
try {
|
|
388
|
+
const url = new URL(window.location.href);
|
|
389
|
+
if (tab) url.searchParams.set(TAB_QUERY, tab);
|
|
390
|
+
else url.searchParams.delete(TAB_QUERY);
|
|
391
|
+
window.history.replaceState(window.history.state, "", `${url.pathname}${url.search}${url.hash}`);
|
|
392
|
+
} catch {}
|
|
393
|
+
};
|
|
394
|
+
return {
|
|
395
|
+
get: read,
|
|
396
|
+
set: write,
|
|
397
|
+
subscribe: (listener) => {
|
|
398
|
+
const onPopState = () => listener();
|
|
399
|
+
window.addEventListener("popstate", onPopState);
|
|
400
|
+
return () => window.removeEventListener("popstate", onPopState);
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
};
|
|
404
|
+
//#endregion
|
|
405
|
+
//#region packages/markdown/src/tabs-nav.vue?vue&type=script&setup=true&lang.ts
|
|
406
|
+
var _hoisted_1$1 = ["aria-label"];
|
|
407
|
+
var _hoisted_2$1 = [
|
|
408
|
+
"id",
|
|
409
|
+
"aria-selected",
|
|
410
|
+
"aria-controls",
|
|
411
|
+
"tabindex",
|
|
412
|
+
"onClick"
|
|
413
|
+
];
|
|
414
|
+
//#endregion
|
|
415
|
+
//#region packages/markdown/src/tabs-nav.vue
|
|
416
|
+
var tabs_nav_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
417
|
+
__name: "tabs-nav",
|
|
418
|
+
props: {
|
|
419
|
+
items: {},
|
|
420
|
+
label: {},
|
|
421
|
+
adapter: {},
|
|
422
|
+
root: {},
|
|
423
|
+
groupId: {}
|
|
424
|
+
},
|
|
425
|
+
setup(__props) {
|
|
426
|
+
const props = __props;
|
|
427
|
+
const activeId = (0, vue.ref)("");
|
|
428
|
+
let unsubscribe;
|
|
429
|
+
const tabButtonId = (id) => `${props.groupId}-tab-${id}`;
|
|
430
|
+
const tabPanelId = (id) => `${props.groupId}-panel-${id}`;
|
|
431
|
+
const resolveActive = () => {
|
|
432
|
+
const fromQuery = props.adapter.get();
|
|
433
|
+
const matched = props.items.find((item) => item.id === fromQuery);
|
|
434
|
+
activeId.value = matched?.id || props.items[0]?.id || "";
|
|
435
|
+
};
|
|
436
|
+
const syncPanels = () => {
|
|
437
|
+
props.root.querySelectorAll(".docs-markdown-tabs__panel").forEach((panel) => {
|
|
438
|
+
const id = panel.dataset.tab || "";
|
|
439
|
+
const selected = id === activeId.value;
|
|
440
|
+
panel.hidden = !selected;
|
|
441
|
+
panel.setAttribute("aria-labelledby", tabButtonId(id));
|
|
442
|
+
if (selected) {
|
|
443
|
+
panel.removeAttribute("hidden");
|
|
444
|
+
panel.id = tabPanelId(id);
|
|
445
|
+
} else {
|
|
446
|
+
panel.setAttribute("hidden", "");
|
|
447
|
+
panel.id = tabPanelId(id);
|
|
448
|
+
}
|
|
449
|
+
});
|
|
450
|
+
};
|
|
451
|
+
const select = (id) => {
|
|
452
|
+
if (!id) return;
|
|
453
|
+
activeId.value = id;
|
|
454
|
+
props.adapter.set(id);
|
|
455
|
+
syncPanels();
|
|
456
|
+
};
|
|
457
|
+
(0, vue.onMounted)(() => {
|
|
458
|
+
resolveActive();
|
|
459
|
+
syncPanels();
|
|
460
|
+
unsubscribe = props.adapter.subscribe?.(() => {
|
|
461
|
+
resolveActive();
|
|
462
|
+
syncPanels();
|
|
463
|
+
});
|
|
464
|
+
});
|
|
465
|
+
(0, vue.onBeforeUnmount)(() => {
|
|
466
|
+
unsubscribe?.();
|
|
467
|
+
unsubscribe = void 0;
|
|
468
|
+
});
|
|
469
|
+
(0, vue.watch)(() => props.items.map((item) => item.id).join("\0"), () => {
|
|
470
|
+
resolveActive();
|
|
471
|
+
syncPanels();
|
|
472
|
+
});
|
|
473
|
+
return (_ctx, _cache) => {
|
|
474
|
+
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
475
|
+
class: "docs-markdown-tabs__list",
|
|
476
|
+
role: "tablist",
|
|
477
|
+
"aria-label": __props.label
|
|
478
|
+
}, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.items, (item) => {
|
|
479
|
+
return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", {
|
|
480
|
+
key: item.id,
|
|
481
|
+
type: "button",
|
|
482
|
+
class: (0, vue.normalizeClass)(["docs-markdown-tabs__tab", { "docs-markdown-tabs__tab--active": item.id === activeId.value }]),
|
|
483
|
+
role: "tab",
|
|
484
|
+
id: tabButtonId(item.id),
|
|
485
|
+
"aria-selected": item.id === activeId.value,
|
|
486
|
+
"aria-controls": tabPanelId(item.id),
|
|
487
|
+
tabindex: item.id === activeId.value ? 0 : -1,
|
|
488
|
+
onClick: ($event) => select(item.id)
|
|
489
|
+
}, (0, vue.toDisplayString)(item.title), 11, _hoisted_2$1);
|
|
490
|
+
}), 128))], 8, _hoisted_1$1);
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
});
|
|
494
|
+
//#endregion
|
|
279
495
|
//#region packages/markdown/src/directive.ts
|
|
280
496
|
var mountedApps = /* @__PURE__ */ new WeakMap();
|
|
281
497
|
var renderVersions = /* @__PURE__ */ new WeakMap();
|
|
282
498
|
var playgroundModule;
|
|
283
499
|
var loadPlayground = () => playgroundModule ||= import("@deot/docs-playground");
|
|
500
|
+
var defaultTabQuery = createHistoryTabQueryAdapter();
|
|
284
501
|
var cleanup = (el) => {
|
|
285
502
|
for (const app of mountedApps.get(el) || []) app.unmount();
|
|
286
503
|
mountedApps.delete(el);
|
|
@@ -289,12 +506,36 @@ var resolveBlockLanguage = (block) => {
|
|
|
289
506
|
return [...block.classList].find((className) => className.startsWith("language-"))?.slice(9) || "";
|
|
290
507
|
};
|
|
291
508
|
var serializePlaygroundDefaults = (value) => JSON.stringify(value || {});
|
|
509
|
+
var mountTabs = (el, apps, locale, adapter) => {
|
|
510
|
+
const label = locale.markdown?.tabs?.label || "Tabs";
|
|
511
|
+
el.querySelectorAll("[data-tabs]").forEach((root, index) => {
|
|
512
|
+
const nav = root.querySelector("[data-tabs-nav]");
|
|
513
|
+
if (!nav) return;
|
|
514
|
+
const items = [...root.querySelectorAll(".docs-markdown-tabs__panel")].map((panel) => ({
|
|
515
|
+
id: panel.dataset.tab || "",
|
|
516
|
+
title: panel.dataset.tabTitle || panel.dataset.tab || ""
|
|
517
|
+
})).filter((item) => item.id && item.title);
|
|
518
|
+
if (!items.length) return;
|
|
519
|
+
const groupId = `docs-markdown-tabs-${index}`;
|
|
520
|
+
const app = (0, vue.createApp)({ render: () => (0, vue.h)(tabs_nav_default, {
|
|
521
|
+
items,
|
|
522
|
+
label,
|
|
523
|
+
adapter,
|
|
524
|
+
root,
|
|
525
|
+
groupId
|
|
526
|
+
}) });
|
|
527
|
+
app.mount(nav);
|
|
528
|
+
apps.push(app);
|
|
529
|
+
});
|
|
530
|
+
};
|
|
292
531
|
var render = async (el, binding) => {
|
|
293
532
|
cleanup(el);
|
|
294
533
|
const version = (renderVersions.get(el) || 0) + 1;
|
|
295
534
|
renderVersions.set(el, version);
|
|
296
535
|
el.innerHTML = binding.value.source ? Markdown.render(binding.value.source) : "";
|
|
297
536
|
const apps = [];
|
|
537
|
+
const adapter = binding.value.tabQuery || defaultTabQuery;
|
|
538
|
+
mountTabs(el, apps, binding.value.locale, adapter);
|
|
298
539
|
const blocks = el.querySelectorAll("pre code");
|
|
299
540
|
const playgrounds = el.querySelectorAll("div[data-playground]");
|
|
300
541
|
if (!blocks.length && !playgrounds.length) {
|
|
@@ -344,7 +585,7 @@ var render = async (el, binding) => {
|
|
|
344
585
|
mountedApps.set(el, apps);
|
|
345
586
|
};
|
|
346
587
|
var update = (el, binding) => {
|
|
347
|
-
if (binding.value.source !== binding.oldValue?.source || binding.value.locale !== binding.oldValue?.locale || serializePlaygroundDefaults(binding.value.playground) !== serializePlaygroundDefaults(binding.oldValue?.playground)) render(el, binding);
|
|
588
|
+
if (binding.value.source !== binding.oldValue?.source || binding.value.locale !== binding.oldValue?.locale || binding.value.tabQuery !== binding.oldValue?.tabQuery || serializePlaygroundDefaults(binding.value.playground) !== serializePlaygroundDefaults(binding.oldValue?.playground)) render(el, binding);
|
|
348
589
|
};
|
|
349
590
|
var vMarkdown = {
|
|
350
591
|
mounted: (el, binding) => void render(el, binding),
|
|
@@ -455,7 +696,13 @@ var getIndicatorInlineOffset = (root, rail, side, viewportWidth) => {
|
|
|
455
696
|
//#endregion
|
|
456
697
|
//#region packages/markdown/src/headings.ts
|
|
457
698
|
var HEADING_SELECTOR = "h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]";
|
|
458
|
-
var SKIP_CLOSEST =
|
|
699
|
+
var SKIP_CLOSEST = [
|
|
700
|
+
"pre",
|
|
701
|
+
".docs-markdown-code-preview",
|
|
702
|
+
"[data-playground][data-code]",
|
|
703
|
+
"[data-playground][data-files]",
|
|
704
|
+
".docs-markdown-tabs__panel[hidden]"
|
|
705
|
+
].join(", ");
|
|
459
706
|
/**
|
|
460
707
|
* 去掉 markdown-it-anchor 的井号后,读取标题的可见文案。
|
|
461
708
|
* @param element 当前标题节点。
|
|
@@ -1000,6 +1247,7 @@ var wrapper_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
1000
1247
|
locale: {},
|
|
1001
1248
|
theme: { default: "default" },
|
|
1002
1249
|
playground: { default: () => ({}) },
|
|
1250
|
+
tabQuery: {},
|
|
1003
1251
|
modelValue: {},
|
|
1004
1252
|
value: {}
|
|
1005
1253
|
},
|
|
@@ -1015,11 +1263,15 @@ var wrapper_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
1015
1263
|
return typeof props.indicator === "object" ? props.indicator : {};
|
|
1016
1264
|
});
|
|
1017
1265
|
const resolvedTheme = (0, vue.computed)(() => props.theme === "traditional" ? "traditional" : "default");
|
|
1266
|
+
const injectedTabQuery = (0, vue.inject)(markdownTabQueryKey, null);
|
|
1267
|
+
const historyTabQuery = createHistoryTabQueryAdapter();
|
|
1268
|
+
const resolvedTabQuery = (0, vue.computed)(() => props.tabQuery || injectedTabQuery || historyTabQuery);
|
|
1018
1269
|
const source = (0, vue.computed)(() => typeof props.modelValue === "string" ? props.modelValue : props.value);
|
|
1019
1270
|
const markdownBinding = (0, vue.computed)(() => ({
|
|
1020
1271
|
source: source.value,
|
|
1021
1272
|
locale: locale.value,
|
|
1022
|
-
playground: props.playground
|
|
1273
|
+
playground: props.playground,
|
|
1274
|
+
tabQuery: resolvedTabQuery.value
|
|
1023
1275
|
}));
|
|
1024
1276
|
return (_ctx, _cache) => {
|
|
1025
1277
|
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(["docs-markdown", `docs-markdown--${resolvedTheme.value}`]) }, [indicatorOptions.value && content.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(indicator_default, {
|
|
@@ -1037,5 +1289,8 @@ var wrapper_default = /* @__PURE__ */ (0, vue.defineComponent)({
|
|
|
1037
1289
|
//#endregion
|
|
1038
1290
|
exports.Markdown = wrapper_default;
|
|
1039
1291
|
exports.collectMarkdownHeadings = collectMarkdownHeadings;
|
|
1292
|
+
exports.createHistoryTabQueryAdapter = createHistoryTabQueryAdapter;
|
|
1040
1293
|
exports.getMarkdownHeadingTitle = getMarkdownHeadingTitle;
|
|
1294
|
+
exports.markdownTabQueryKey = markdownTabQueryKey;
|
|
1041
1295
|
exports.parseMarkdownSearchSections = parseMarkdownSearchSections;
|
|
1296
|
+
exports.toMarkdownTabId = toMarkdownTabId;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ComponentOptionsMixin } from 'vue';
|
|
2
2
|
import { ComponentProvideOptions } from 'vue';
|
|
3
3
|
import { DefineComponent } from 'vue';
|
|
4
|
+
import type { InjectionKey } from 'vue';
|
|
4
5
|
import type { Language } from '@deot/docs-locale';
|
|
5
6
|
import type { PlaygroundExpandable } from '@deot/docs-playground';
|
|
6
7
|
import type { PlaygroundFiles } from '@deot/docs-playground';
|
|
@@ -28,12 +29,15 @@ declare type __VLS_Props = {
|
|
|
28
29
|
locale?: Language;
|
|
29
30
|
theme?: MarkdownTheme;
|
|
30
31
|
playground?: MarkdownPlaygroundConfig;
|
|
32
|
+
tabQuery?: MarkdownTabQueryAdapter;
|
|
31
33
|
modelValue?: string;
|
|
32
34
|
value?: string;
|
|
33
35
|
};
|
|
34
36
|
|
|
35
37
|
export declare const collectMarkdownHeadings: (root: ParentNode | null | undefined) => MarkdownHeading[];
|
|
36
38
|
|
|
39
|
+
export declare const createHistoryTabQueryAdapter: () => MarkdownTabQueryAdapter;
|
|
40
|
+
|
|
37
41
|
export declare const getMarkdownHeadingTitle: (element: HTMLElement) => string;
|
|
38
42
|
|
|
39
43
|
export declare const Markdown: typeof __VLS_export;
|
|
@@ -93,8 +97,18 @@ export declare interface MarkdownSearchSection {
|
|
|
93
97
|
text: string;
|
|
94
98
|
}
|
|
95
99
|
|
|
100
|
+
export declare interface MarkdownTabQueryAdapter {
|
|
101
|
+
get: () => string;
|
|
102
|
+
set: (tab: string) => void;
|
|
103
|
+
subscribe?: (listener: () => void) => () => void;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export declare const markdownTabQueryKey: InjectionKey<MarkdownTabQueryAdapter>;
|
|
107
|
+
|
|
96
108
|
export declare type MarkdownTheme = 'default' | 'traditional';
|
|
97
109
|
|
|
98
110
|
export declare const parseMarkdownSearchSections: (content: string) => MarkdownSearchDocument;
|
|
99
111
|
|
|
112
|
+
export declare const toMarkdownTabId: (title: string) => string;
|
|
113
|
+
|
|
100
114
|
export { }
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fragment, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, h, inject, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, openBlock, ref, renderList, shallowRef, toDisplayString, unref, watch, withDirectives } from "vue";
|
|
1
|
+
import { Fragment, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, h, inject, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, shallowRef, toDisplayString, unref, watch, withDirectives } from "vue";
|
|
2
2
|
import { provideLocale, useLocale } from "@deot/docs-locale";
|
|
3
3
|
import Config from "markdown-it-chain";
|
|
4
4
|
import anchor from "markdown-it-anchor";
|
|
@@ -9,9 +9,11 @@ import { getScroller } from "@deot/helper-dom";
|
|
|
9
9
|
//#region packages/markdown/src/markdown.ts
|
|
10
10
|
var HTML_MD_SIGN = "md";
|
|
11
11
|
var PLAYGROUND = "playground";
|
|
12
|
+
var TABS = "tabs";
|
|
12
13
|
var TIP = "tip";
|
|
13
14
|
var WARNING = "warning";
|
|
14
15
|
var CALLOUT_FILLED_RE = /(^|\s)filled(\s|$)/;
|
|
16
|
+
var TAB_MARKDOWN_INFO_RE = /^markdown(?:\s+(.*))?$/i;
|
|
15
17
|
var CALLOUT_INFO_ICON = [
|
|
16
18
|
"<svg width=\"22\" height=\"28\" viewBox=\"0 0 22 28\" fill=\"none\" aria-hidden=\"true\">",
|
|
17
19
|
"<circle class=\"docs-markdown-callout-icon__fill\" cx=\"11\" cy=\"14\" r=\"11\"></circle>",
|
|
@@ -44,9 +46,13 @@ config.options.html(true).typographer(true).linkify(true).end().plugin("anchor")
|
|
|
44
46
|
placement: "before",
|
|
45
47
|
symbol: "#"
|
|
46
48
|
}) }]).end().plugin("container").use(($md) => {
|
|
47
|
-
const
|
|
49
|
+
const playgroundReg = new RegExp(`^${PLAYGROUND}\\s*(.*)$`);
|
|
48
50
|
$md.use(mdContainer, PLAYGROUND, { validate(params) {
|
|
49
|
-
return params.trim().match(
|
|
51
|
+
return params.trim().match(playgroundReg);
|
|
52
|
+
} });
|
|
53
|
+
const tabsReg = new RegExp(`^${TABS}\\s*$`);
|
|
54
|
+
$md.use(mdContainer, TABS, { validate(params) {
|
|
55
|
+
return tabsReg.test(params.trim());
|
|
50
56
|
} });
|
|
51
57
|
$md.use(mdContainer, TIP, { render: renderCallout(TIP, CALLOUT_INFO_ICON) });
|
|
52
58
|
$md.use(mdContainer, WARNING, { render: renderCallout(WARNING, CALLOUT_WARNING_ICON) });
|
|
@@ -54,9 +60,33 @@ config.options.html(true).typographer(true).linkify(true).end().plugin("anchor")
|
|
|
54
60
|
var md = config.toMd(markdownIt);
|
|
55
61
|
var playgroundOpen = `container_${PLAYGROUND}_open`;
|
|
56
62
|
var playgroundClose = `container_${PLAYGROUND}_close`;
|
|
63
|
+
var tabsOpen = `container_${TABS}_open`;
|
|
64
|
+
var tabsClose = `container_${TABS}_close`;
|
|
57
65
|
var htmlCommentRE = /<!--([\s\S]*?)-->/g;
|
|
58
66
|
var runtimeConfigRE = /<config\s+lang\s*=\s*["']json5["']\s*>([\s\S]*?)<\/config>/i;
|
|
59
67
|
var renderPlaygroundError = (message) => `<div class="docs-playground-error">PLAYGROUND: ${md.utils.escapeHtml(message)}</div>\n`;
|
|
68
|
+
var renderTabsError = (message) => `<div class="docs-markdown-tabs-error">TABS: ${md.utils.escapeHtml(message)}</div>\n`;
|
|
69
|
+
/**
|
|
70
|
+
* 从 fence info 解析 Tab 显示名:去掉可选的 `markdown` 语言前缀。
|
|
71
|
+
* @param info fence 的 info 字符串,如 `markdown Linux` 或 `Android`。
|
|
72
|
+
* @returns 显示标题(可能为空)。
|
|
73
|
+
*/
|
|
74
|
+
var parseTabFenceTitle = (info) => {
|
|
75
|
+
const trimmed = info.trim();
|
|
76
|
+
const match = trimmed.match(TAB_MARKDOWN_INFO_RE);
|
|
77
|
+
if (match) return (match[1] || "").trim();
|
|
78
|
+
return trimmed;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* 生成 `?tab=` 使用的 id:小写、空白变 `-`;含非 ASCII 时与标题锚点一致做 encodeURIComponent。
|
|
82
|
+
* @param title Tab 显示名。
|
|
83
|
+
* @returns 可写入 query 的 id;标题为空时返回空串。
|
|
84
|
+
*/
|
|
85
|
+
var toMarkdownTabId = (title) => {
|
|
86
|
+
const normalized = title.trim().toLowerCase().replace(/\s+/gu, "-");
|
|
87
|
+
if (!normalized) return "";
|
|
88
|
+
return /[^\x20-\x7E]/u.test(normalized) ? encodeURIComponent(normalized) : normalized;
|
|
89
|
+
};
|
|
60
90
|
var PLAYGROUND_VIEWS = ["runtime", "files"];
|
|
61
91
|
var isPlaygroundView = (value) => typeof value === "string" && PLAYGROUND_VIEWS.includes(value);
|
|
62
92
|
var isRuntimeViewport = (viewport) => {
|
|
@@ -134,7 +164,61 @@ var parseRuntimeProps = (tokens) => {
|
|
|
134
164
|
return {};
|
|
135
165
|
};
|
|
136
166
|
var renderPlaygroundAttrs = (propsData) => `data-props="${md.utils.escapeHtml(JSON.stringify(propsData))}"`;
|
|
137
|
-
|
|
167
|
+
var renderTabsHtml = (panels) => {
|
|
168
|
+
const parts = ["<div class=\"docs-markdown-tabs\" md data-tabs>", "<div class=\"docs-markdown-tabs__nav\" data-tabs-nav></div>"];
|
|
169
|
+
panels.forEach((panel, index) => {
|
|
170
|
+
const hidden = index === 0 ? "" : " hidden";
|
|
171
|
+
const id = md.utils.escapeHtml(panel.id);
|
|
172
|
+
const title = md.utils.escapeHtml(panel.title);
|
|
173
|
+
parts.push(`<div class="docs-markdown-tabs__panel" role="tabpanel" data-tab="${id}" data-tab-title="${title}"${hidden}>`, md.render(panel.content), "</div>");
|
|
174
|
+
});
|
|
175
|
+
parts.push("</div>\n");
|
|
176
|
+
return parts.join("");
|
|
177
|
+
};
|
|
178
|
+
md.core.ruler.after("block", "markdown-tabs", (state) => {
|
|
179
|
+
const panelSources = Array.isArray(state.env?.tabsPanelSources) ? state.env.tabsPanelSources : void 0;
|
|
180
|
+
for (let index = 0; index < state.tokens.length; index++) {
|
|
181
|
+
if (state.tokens[index].type !== tabsOpen) continue;
|
|
182
|
+
let depth = 1;
|
|
183
|
+
let closeIndex = index + 1;
|
|
184
|
+
for (; closeIndex < state.tokens.length; closeIndex++) {
|
|
185
|
+
if (state.tokens[closeIndex].type === tabsOpen) depth++;
|
|
186
|
+
if (state.tokens[closeIndex].type === tabsClose) depth--;
|
|
187
|
+
if (depth === 0) break;
|
|
188
|
+
}
|
|
189
|
+
const fences = state.tokens.slice(index + 1, closeIndex).filter((token) => token.type === "fence");
|
|
190
|
+
const placeholder = new state.Token("html_block", "", 0);
|
|
191
|
+
placeholder.block = true;
|
|
192
|
+
if (!fences.length) placeholder.content = renderTabsError("至少需要声明一个分栏");
|
|
193
|
+
else {
|
|
194
|
+
const panels = [];
|
|
195
|
+
const seen = /* @__PURE__ */ new Set();
|
|
196
|
+
let error = "";
|
|
197
|
+
for (const fence of fences) {
|
|
198
|
+
const title = parseTabFenceTitle(fence.info);
|
|
199
|
+
const id = toMarkdownTabId(title);
|
|
200
|
+
if (!title || !id) {
|
|
201
|
+
error = "每个分栏都必须声明标题";
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
if (seen.has(id)) {
|
|
205
|
+
error = `分栏 ${title} 的 id 重复`;
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
seen.add(id);
|
|
209
|
+
panels.push({
|
|
210
|
+
id,
|
|
211
|
+
title,
|
|
212
|
+
content: fence.content
|
|
213
|
+
});
|
|
214
|
+
panelSources?.push(fence.content);
|
|
215
|
+
}
|
|
216
|
+
placeholder.content = error ? renderTabsError(error) : renderTabsHtml(panels);
|
|
217
|
+
}
|
|
218
|
+
state.tokens.splice(index, closeIndex - index + 1, placeholder);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
md.core.ruler.after("markdown-tabs", "runtime-files", (state) => {
|
|
138
222
|
for (let index = 0; index < state.tokens.length; index++) {
|
|
139
223
|
if (state.tokens[index].type !== playgroundOpen) continue;
|
|
140
224
|
let depth = 1;
|
|
@@ -187,7 +271,7 @@ md.core.ruler.after("block", "runtime-files", (state) => {
|
|
|
187
271
|
});
|
|
188
272
|
var renderAttrs = md.renderer.renderAttrs;
|
|
189
273
|
md.renderer.renderAttrs = (token) => {
|
|
190
|
-
const reg = new RegExp(`container_${PLAYGROUND}|fence|text`);
|
|
274
|
+
const reg = new RegExp(`container_${PLAYGROUND}|container_${TABS}|fence|text`);
|
|
191
275
|
if (token.nesting !== -1 && token.type && !reg.test(token.type)) token.attrPush([HTML_MD_SIGN, ""]);
|
|
192
276
|
return renderAttrs(token);
|
|
193
277
|
};
|
|
@@ -215,32 +299,39 @@ var getInlineSearchText = (token) => {
|
|
|
215
299
|
* @returns 文档标题、正文和按标题划分的小节。
|
|
216
300
|
*/
|
|
217
301
|
var parseMarkdownSearchSections = (content) => {
|
|
218
|
-
const tokens = md.parse(content, {});
|
|
219
302
|
const sections = [];
|
|
220
303
|
const documentParts = [];
|
|
221
304
|
let activeSection;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
if (token.type === "heading_open") {
|
|
225
|
-
const inline = tokens[index + 1];
|
|
226
|
-
if (inline?.type !== "inline") continue;
|
|
227
|
-
const title = getInlineSearchText(inline);
|
|
228
|
-
if (!title) continue;
|
|
229
|
-
activeSection = {
|
|
230
|
-
title,
|
|
231
|
-
anchor: token.attrGet("id") || "",
|
|
232
|
-
level: Number(token.tag.slice(1)) || 1,
|
|
233
|
-
text: ""
|
|
234
|
-
};
|
|
235
|
-
sections.push(activeSection);
|
|
236
|
-
continue;
|
|
237
|
-
}
|
|
238
|
-
if (token.type !== "inline" || tokens[index - 1]?.type === "heading_open") continue;
|
|
239
|
-
const text = getInlineSearchText(token);
|
|
240
|
-
if (!text) continue;
|
|
305
|
+
const consumeInline = (text) => {
|
|
306
|
+
if (!text) return;
|
|
241
307
|
documentParts.push(text);
|
|
242
308
|
if (activeSection) activeSection.text = normalizeSearchText(`${activeSection.text} ${text}`);
|
|
243
|
-
}
|
|
309
|
+
};
|
|
310
|
+
const walk = (source, withHeadings) => {
|
|
311
|
+
const tabsPanelSources = [];
|
|
312
|
+
const tokens = md.parse(source, { tabsPanelSources });
|
|
313
|
+
for (let index = 0; index < tokens.length; index++) {
|
|
314
|
+
const token = tokens[index];
|
|
315
|
+
if (withHeadings && token.type === "heading_open") {
|
|
316
|
+
const inline = tokens[index + 1];
|
|
317
|
+
if (inline?.type !== "inline") continue;
|
|
318
|
+
const title = getInlineSearchText(inline);
|
|
319
|
+
if (!title) continue;
|
|
320
|
+
activeSection = {
|
|
321
|
+
title,
|
|
322
|
+
anchor: token.attrGet("id") || "",
|
|
323
|
+
level: Number(token.tag.slice(1)) || 1,
|
|
324
|
+
text: ""
|
|
325
|
+
};
|
|
326
|
+
sections.push(activeSection);
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
if (token.type !== "inline" || tokens[index - 1]?.type === "heading_open") continue;
|
|
330
|
+
consumeInline(getInlineSearchText(token));
|
|
331
|
+
}
|
|
332
|
+
for (const panelSource of tabsPanelSources) walk(panelSource, false);
|
|
333
|
+
};
|
|
334
|
+
walk(content, true);
|
|
244
335
|
return {
|
|
245
336
|
title: sections.find((section) => section.level === 1)?.title || sections[0]?.title || "",
|
|
246
337
|
text: normalizeSearchText(documentParts.join(" ")),
|
|
@@ -248,11 +339,137 @@ var parseMarkdownSearchSections = (content) => {
|
|
|
248
339
|
};
|
|
249
340
|
};
|
|
250
341
|
//#endregion
|
|
342
|
+
//#region packages/markdown/src/tab-query.ts
|
|
343
|
+
var markdownTabQueryKey = Symbol("docs-markdown-tab-query");
|
|
344
|
+
var TAB_QUERY = "tab";
|
|
345
|
+
/**
|
|
346
|
+
* 不依赖 Vue Router 的默认适配器:读写 `location.search` 的 `tab`,
|
|
347
|
+
* 并用 `history.replaceState` 更新(供 examples / 单测使用)。
|
|
348
|
+
* @returns 可注入 TabsNav 的 get/set/subscribe 适配器。
|
|
349
|
+
*/
|
|
350
|
+
var createHistoryTabQueryAdapter = () => {
|
|
351
|
+
const read = () => {
|
|
352
|
+
try {
|
|
353
|
+
return new URLSearchParams(window.location.search).get(TAB_QUERY) || "";
|
|
354
|
+
} catch {
|
|
355
|
+
return "";
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
const write = (tab) => {
|
|
359
|
+
try {
|
|
360
|
+
const url = new URL(window.location.href);
|
|
361
|
+
if (tab) url.searchParams.set(TAB_QUERY, tab);
|
|
362
|
+
else url.searchParams.delete(TAB_QUERY);
|
|
363
|
+
window.history.replaceState(window.history.state, "", `${url.pathname}${url.search}${url.hash}`);
|
|
364
|
+
} catch {}
|
|
365
|
+
};
|
|
366
|
+
return {
|
|
367
|
+
get: read,
|
|
368
|
+
set: write,
|
|
369
|
+
subscribe: (listener) => {
|
|
370
|
+
const onPopState = () => listener();
|
|
371
|
+
window.addEventListener("popstate", onPopState);
|
|
372
|
+
return () => window.removeEventListener("popstate", onPopState);
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
//#endregion
|
|
377
|
+
//#region packages/markdown/src/tabs-nav.vue?vue&type=script&setup=true&lang.ts
|
|
378
|
+
var _hoisted_1$1 = ["aria-label"];
|
|
379
|
+
var _hoisted_2$1 = [
|
|
380
|
+
"id",
|
|
381
|
+
"aria-selected",
|
|
382
|
+
"aria-controls",
|
|
383
|
+
"tabindex",
|
|
384
|
+
"onClick"
|
|
385
|
+
];
|
|
386
|
+
//#endregion
|
|
387
|
+
//#region packages/markdown/src/tabs-nav.vue
|
|
388
|
+
var tabs_nav_default = /* @__PURE__ */ defineComponent({
|
|
389
|
+
__name: "tabs-nav",
|
|
390
|
+
props: {
|
|
391
|
+
items: {},
|
|
392
|
+
label: {},
|
|
393
|
+
adapter: {},
|
|
394
|
+
root: {},
|
|
395
|
+
groupId: {}
|
|
396
|
+
},
|
|
397
|
+
setup(__props) {
|
|
398
|
+
const props = __props;
|
|
399
|
+
const activeId = ref("");
|
|
400
|
+
let unsubscribe;
|
|
401
|
+
const tabButtonId = (id) => `${props.groupId}-tab-${id}`;
|
|
402
|
+
const tabPanelId = (id) => `${props.groupId}-panel-${id}`;
|
|
403
|
+
const resolveActive = () => {
|
|
404
|
+
const fromQuery = props.adapter.get();
|
|
405
|
+
const matched = props.items.find((item) => item.id === fromQuery);
|
|
406
|
+
activeId.value = matched?.id || props.items[0]?.id || "";
|
|
407
|
+
};
|
|
408
|
+
const syncPanels = () => {
|
|
409
|
+
props.root.querySelectorAll(".docs-markdown-tabs__panel").forEach((panel) => {
|
|
410
|
+
const id = panel.dataset.tab || "";
|
|
411
|
+
const selected = id === activeId.value;
|
|
412
|
+
panel.hidden = !selected;
|
|
413
|
+
panel.setAttribute("aria-labelledby", tabButtonId(id));
|
|
414
|
+
if (selected) {
|
|
415
|
+
panel.removeAttribute("hidden");
|
|
416
|
+
panel.id = tabPanelId(id);
|
|
417
|
+
} else {
|
|
418
|
+
panel.setAttribute("hidden", "");
|
|
419
|
+
panel.id = tabPanelId(id);
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
};
|
|
423
|
+
const select = (id) => {
|
|
424
|
+
if (!id) return;
|
|
425
|
+
activeId.value = id;
|
|
426
|
+
props.adapter.set(id);
|
|
427
|
+
syncPanels();
|
|
428
|
+
};
|
|
429
|
+
onMounted(() => {
|
|
430
|
+
resolveActive();
|
|
431
|
+
syncPanels();
|
|
432
|
+
unsubscribe = props.adapter.subscribe?.(() => {
|
|
433
|
+
resolveActive();
|
|
434
|
+
syncPanels();
|
|
435
|
+
});
|
|
436
|
+
});
|
|
437
|
+
onBeforeUnmount(() => {
|
|
438
|
+
unsubscribe?.();
|
|
439
|
+
unsubscribe = void 0;
|
|
440
|
+
});
|
|
441
|
+
watch(() => props.items.map((item) => item.id).join("\0"), () => {
|
|
442
|
+
resolveActive();
|
|
443
|
+
syncPanels();
|
|
444
|
+
});
|
|
445
|
+
return (_ctx, _cache) => {
|
|
446
|
+
return openBlock(), createElementBlock("div", {
|
|
447
|
+
class: "docs-markdown-tabs__list",
|
|
448
|
+
role: "tablist",
|
|
449
|
+
"aria-label": __props.label
|
|
450
|
+
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
|
|
451
|
+
return openBlock(), createElementBlock("button", {
|
|
452
|
+
key: item.id,
|
|
453
|
+
type: "button",
|
|
454
|
+
class: normalizeClass(["docs-markdown-tabs__tab", { "docs-markdown-tabs__tab--active": item.id === activeId.value }]),
|
|
455
|
+
role: "tab",
|
|
456
|
+
id: tabButtonId(item.id),
|
|
457
|
+
"aria-selected": item.id === activeId.value,
|
|
458
|
+
"aria-controls": tabPanelId(item.id),
|
|
459
|
+
tabindex: item.id === activeId.value ? 0 : -1,
|
|
460
|
+
onClick: ($event) => select(item.id)
|
|
461
|
+
}, toDisplayString(item.title), 11, _hoisted_2$1);
|
|
462
|
+
}), 128))], 8, _hoisted_1$1);
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
});
|
|
466
|
+
//#endregion
|
|
251
467
|
//#region packages/markdown/src/directive.ts
|
|
252
468
|
var mountedApps = /* @__PURE__ */ new WeakMap();
|
|
253
469
|
var renderVersions = /* @__PURE__ */ new WeakMap();
|
|
254
470
|
var playgroundModule;
|
|
255
471
|
var loadPlayground = () => playgroundModule ||= import("@deot/docs-playground");
|
|
472
|
+
var defaultTabQuery = createHistoryTabQueryAdapter();
|
|
256
473
|
var cleanup = (el) => {
|
|
257
474
|
for (const app of mountedApps.get(el) || []) app.unmount();
|
|
258
475
|
mountedApps.delete(el);
|
|
@@ -261,12 +478,36 @@ var resolveBlockLanguage = (block) => {
|
|
|
261
478
|
return [...block.classList].find((className) => className.startsWith("language-"))?.slice(9) || "";
|
|
262
479
|
};
|
|
263
480
|
var serializePlaygroundDefaults = (value) => JSON.stringify(value || {});
|
|
481
|
+
var mountTabs = (el, apps, locale, adapter) => {
|
|
482
|
+
const label = locale.markdown?.tabs?.label || "Tabs";
|
|
483
|
+
el.querySelectorAll("[data-tabs]").forEach((root, index) => {
|
|
484
|
+
const nav = root.querySelector("[data-tabs-nav]");
|
|
485
|
+
if (!nav) return;
|
|
486
|
+
const items = [...root.querySelectorAll(".docs-markdown-tabs__panel")].map((panel) => ({
|
|
487
|
+
id: panel.dataset.tab || "",
|
|
488
|
+
title: panel.dataset.tabTitle || panel.dataset.tab || ""
|
|
489
|
+
})).filter((item) => item.id && item.title);
|
|
490
|
+
if (!items.length) return;
|
|
491
|
+
const groupId = `docs-markdown-tabs-${index}`;
|
|
492
|
+
const app = createApp({ render: () => h(tabs_nav_default, {
|
|
493
|
+
items,
|
|
494
|
+
label,
|
|
495
|
+
adapter,
|
|
496
|
+
root,
|
|
497
|
+
groupId
|
|
498
|
+
}) });
|
|
499
|
+
app.mount(nav);
|
|
500
|
+
apps.push(app);
|
|
501
|
+
});
|
|
502
|
+
};
|
|
264
503
|
var render = async (el, binding) => {
|
|
265
504
|
cleanup(el);
|
|
266
505
|
const version = (renderVersions.get(el) || 0) + 1;
|
|
267
506
|
renderVersions.set(el, version);
|
|
268
507
|
el.innerHTML = binding.value.source ? Markdown.render(binding.value.source) : "";
|
|
269
508
|
const apps = [];
|
|
509
|
+
const adapter = binding.value.tabQuery || defaultTabQuery;
|
|
510
|
+
mountTabs(el, apps, binding.value.locale, adapter);
|
|
270
511
|
const blocks = el.querySelectorAll("pre code");
|
|
271
512
|
const playgrounds = el.querySelectorAll("div[data-playground]");
|
|
272
513
|
if (!blocks.length && !playgrounds.length) {
|
|
@@ -316,7 +557,7 @@ var render = async (el, binding) => {
|
|
|
316
557
|
mountedApps.set(el, apps);
|
|
317
558
|
};
|
|
318
559
|
var update = (el, binding) => {
|
|
319
|
-
if (binding.value.source !== binding.oldValue?.source || binding.value.locale !== binding.oldValue?.locale || serializePlaygroundDefaults(binding.value.playground) !== serializePlaygroundDefaults(binding.oldValue?.playground)) render(el, binding);
|
|
560
|
+
if (binding.value.source !== binding.oldValue?.source || binding.value.locale !== binding.oldValue?.locale || binding.value.tabQuery !== binding.oldValue?.tabQuery || serializePlaygroundDefaults(binding.value.playground) !== serializePlaygroundDefaults(binding.oldValue?.playground)) render(el, binding);
|
|
320
561
|
};
|
|
321
562
|
var vMarkdown = {
|
|
322
563
|
mounted: (el, binding) => void render(el, binding),
|
|
@@ -427,7 +668,13 @@ var getIndicatorInlineOffset = (root, rail, side, viewportWidth) => {
|
|
|
427
668
|
//#endregion
|
|
428
669
|
//#region packages/markdown/src/headings.ts
|
|
429
670
|
var HEADING_SELECTOR = "h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]";
|
|
430
|
-
var SKIP_CLOSEST =
|
|
671
|
+
var SKIP_CLOSEST = [
|
|
672
|
+
"pre",
|
|
673
|
+
".docs-markdown-code-preview",
|
|
674
|
+
"[data-playground][data-code]",
|
|
675
|
+
"[data-playground][data-files]",
|
|
676
|
+
".docs-markdown-tabs__panel[hidden]"
|
|
677
|
+
].join(", ");
|
|
431
678
|
/**
|
|
432
679
|
* 去掉 markdown-it-anchor 的井号后,读取标题的可见文案。
|
|
433
680
|
* @param element 当前标题节点。
|
|
@@ -972,6 +1219,7 @@ var wrapper_default = /* @__PURE__ */ defineComponent({
|
|
|
972
1219
|
locale: {},
|
|
973
1220
|
theme: { default: "default" },
|
|
974
1221
|
playground: { default: () => ({}) },
|
|
1222
|
+
tabQuery: {},
|
|
975
1223
|
modelValue: {},
|
|
976
1224
|
value: {}
|
|
977
1225
|
},
|
|
@@ -987,11 +1235,15 @@ var wrapper_default = /* @__PURE__ */ defineComponent({
|
|
|
987
1235
|
return typeof props.indicator === "object" ? props.indicator : {};
|
|
988
1236
|
});
|
|
989
1237
|
const resolvedTheme = computed(() => props.theme === "traditional" ? "traditional" : "default");
|
|
1238
|
+
const injectedTabQuery = inject(markdownTabQueryKey, null);
|
|
1239
|
+
const historyTabQuery = createHistoryTabQueryAdapter();
|
|
1240
|
+
const resolvedTabQuery = computed(() => props.tabQuery || injectedTabQuery || historyTabQuery);
|
|
990
1241
|
const source = computed(() => typeof props.modelValue === "string" ? props.modelValue : props.value);
|
|
991
1242
|
const markdownBinding = computed(() => ({
|
|
992
1243
|
source: source.value,
|
|
993
1244
|
locale: locale.value,
|
|
994
|
-
playground: props.playground
|
|
1245
|
+
playground: props.playground,
|
|
1246
|
+
tabQuery: resolvedTabQuery.value
|
|
995
1247
|
}));
|
|
996
1248
|
return (_ctx, _cache) => {
|
|
997
1249
|
return openBlock(), createElementBlock("div", { class: normalizeClass(["docs-markdown", `docs-markdown--${resolvedTheme.value}`]) }, [indicatorOptions.value && content.value ? (openBlock(), createBlock(indicator_default, {
|
|
@@ -1007,4 +1259,4 @@ var wrapper_default = /* @__PURE__ */ defineComponent({
|
|
|
1007
1259
|
}
|
|
1008
1260
|
});
|
|
1009
1261
|
//#endregion
|
|
1010
|
-
export { wrapper_default as Markdown, collectMarkdownHeadings, getMarkdownHeadingTitle, parseMarkdownSearchSections };
|
|
1262
|
+
export { wrapper_default as Markdown, collectMarkdownHeadings, createHistoryTabQueryAdapter, getMarkdownHeadingTitle, markdownTabQueryKey, parseMarkdownSearchSections, toMarkdownTabId };
|
package/dist/index.style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.docs-markdown-indicator{position:-webkit-sticky;position:sticky;top:var(--docs-markdown-indicator-top,0);z-index:4;height:0;pointer-events:none}.docs-markdown-indicator__rail{position:relative;width:100%;height:100%}.docs-markdown-indicator__viewport{position:absolute;top:0;width:40px;height:var(--docs-markdown-indicator-height);overflow:hidden;pointer-events:auto;cursor:ns-resize;-webkit-box-sizing:border-box;box-sizing:border-box;padding-block:40px 96px;-ms-touch-action:none;touch-action:none}.docs-markdown-indicator__viewport.is-dragging .docs-markdown-indicator__window,.docs-markdown-indicator__viewport:hover .docs-markdown-indicator__window{opacity:.16}.docs-markdown-indicator__window{position:absolute;left:0;width:20px;min-height:12px;pointer-events:none;background:var(--docs-foreground-color-light,var(--vc-color-dark-lighter,#515a6e));border-radius:6px;opacity:0;-webkit-transition:opacity .12s ease;transition:opacity .12s ease}.docs-markdown-indicator__marker{position:absolute;height:2px;pointer-events:none;background:var(--docs-border-color,var(--vc-color-light-deepest,#c5c8ce));border-radius:2px;opacity:.72;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:width .12s ease,background-color .12s ease,opacity .12s ease;transition:width .12s ease,background-color .12s ease,opacity .12s ease}.docs-markdown-indicator__marker.is-heading{height:3px;opacity:.9}.docs-markdown-indicator__marker.is-in-view{background:var(--docs-foreground-color-mute,var(--vc-color-dark-extralight,#808695));opacity:.92}.docs-markdown-indicator__marker.is-active,.docs-markdown-indicator__marker.is-hovered{background:var(--docs-foreground-color-light,var(--vc-color-dark-lighter,#515a6e));opacity:1}.docs-markdown-indicator__preview{position:absolute;width:220px;max-width:min(36vw,260px);padding:8px 10px;font-size:12px;line-height:1.5;color:var(--docs-foreground-color,var(--vc-foreground-color,#17233d));pointer-events:none;background:var(--docs-background-color,var(--vc-background-color-light,#fff));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#dcdee2));border-radius:8px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-box-shadow:0 2px 8px var(--docs-shadow-color,rgba(0,0,0,.1));box-shadow:0 2px 8px var(--docs-shadow-color,rgba(0,0,0,.1));overflow-wrap:anywhere}.docs-markdown-indicator__preview-title{overflow:hidden;font-weight:600;color:var(--docs-foreground-color,var(--vc-foreground-color,#17233d));text-overflow:ellipsis;white-space:nowrap}.docs-markdown-indicator__preview-content{display:-webkit-box;margin-top:4px;overflow:hidden;color:var(--docs-foreground-color-mute,var(--vc-color-dark-extralight,#808695));white-space:pre-line;-webkit-box-orient:vertical;-webkit-line-clamp:4}.docs-markdown-indicator.is-left .docs-markdown-indicator__viewport{right:calc(100% - 20px)}.docs-markdown-indicator.is-left .docs-markdown-indicator__marker{margin-inline:0 auto}.docs-markdown-indicator.is-left .docs-markdown-indicator__preview{left:24px}.docs-markdown-indicator.is-right .docs-markdown-indicator__viewport{left:calc(100% - 20px)}.docs-markdown-indicator.is-right .docs-markdown-indicator__window{right:0;left:auto}.docs-markdown-indicator.is-right .docs-markdown-indicator__marker{margin-inline:auto 0}.docs-markdown-indicator.is-right .docs-markdown-indicator__preview{right:24px}@media (prefers-reduced-motion:reduce){.docs-markdown-indicator__marker,.docs-markdown-indicator__window{-webkit-transition:none;transition:none}}@media (prefers-color-scheme:light){:root{--docs-background-color:#fff;--docs-background-color-soft:#f7f8fa;--docs-background-color-mute:#f2f3f5;--docs-foreground-color:#030712;--docs-foreground-color-light:#364153;--docs-foreground-color-mute:#4a5565;--docs-border-color:#e8eaec;--docs-border-color-light:#f0f1f2;--docs-primary-color:#873bf4;--docs-primary-color-light:#f2ebfe;--docs-link-color:#2d8cf0;--docs-mask-color:hsla(0,0%,100%,.72);--docs-shadow-color:rgba(0,0,0,.14);--docs-code-background:#f6f8fa;--docs-pattern-fg:rgba(3,7,18,.05);--docs-footer-background:#141313;--docs-footer-foreground:#364153;--docs-tip-background:#f9f0ff;--docs-warning-background:#fff6f7;--docs-error-color:#ed4014;--docs-error-background:#fef2f2}}@media (prefers-color-scheme:dark){:root{--docs-background-color:#171b24;--docs-background-color-soft:#252b3a;--docs-background-color-mute:#303748;--docs-foreground-color:#f8f8f8;--docs-foreground-color-light:#d1d5dc;--docs-foreground-color-mute:#b9b9b9;--docs-border-color:#3b4355;--docs-border-color-light:#303748;--docs-primary-color:#873bf4;--docs-primary-color-light:#35244d;--docs-link-color:#6daeff;--docs-mask-color:rgba(10,13,18,.76);--docs-shadow-color:rgba(0,0,0,.45);--docs-code-background:#202630;--docs-pattern-fg:hsla(0,0%,100%,.1);--docs-footer-background:#0d0f14;--docs-footer-foreground:#9ca3af;--docs-tip-background:#30223f;--docs-warning-background:#3d2529;--docs-error-color:#ff6b6b;--docs-error-background:#41272b}}[data-doc-theme=light],[data-vc-theme=light]{--docs-background-color:#fff;--docs-background-color-soft:#f7f8fa;--docs-background-color-mute:#f2f3f5;--docs-foreground-color:#030712;--docs-foreground-color-light:#364153;--docs-foreground-color-mute:#4a5565;--docs-border-color:#e8eaec;--docs-border-color-light:#f0f1f2;--docs-primary-color:#873bf4;--docs-primary-color-light:#f2ebfe;--docs-link-color:#2d8cf0;--docs-mask-color:hsla(0,0%,100%,.72);--docs-shadow-color:rgba(0,0,0,.14);--docs-code-background:#f6f8fa;--docs-pattern-fg:rgba(3,7,18,.05);--docs-footer-background:#141313;--docs-footer-foreground:#364153;--docs-tip-background:#f9f0ff;--docs-warning-background:#fff6f7;--docs-error-color:#ed4014;--docs-error-background:#fef2f2}[data-doc-theme=dark],[data-vc-theme=dark]{--docs-background-color:#171b24;--docs-background-color-soft:#252b3a;--docs-background-color-mute:#303748;--docs-foreground-color:#f8f8f8;--docs-foreground-color-light:#d1d5dc;--docs-foreground-color-mute:#b9b9b9;--docs-border-color:#3b4355;--docs-border-color-light:#303748;--docs-primary-color:#873bf4;--docs-primary-color-light:#35244d;--docs-link-color:#6daeff;--docs-mask-color:rgba(10,13,18,.76);--docs-shadow-color:rgba(0,0,0,.45);--docs-code-background:#202630;--docs-pattern-fg:hsla(0,0%,100%,.1);--docs-footer-background:#0d0f14;--docs-footer-foreground:#9ca3af;--docs-tip-background:#30223f;--docs-warning-background:#3d2529;--docs-error-color:#ff6b6b;--docs-error-background:#41272b}.docs-markdown--default *,.docs-markdown--default :after,.docs-markdown--default :before{-webkit-box-sizing:border-box;box-sizing:border-box}.docs-markdown--default a{color:var(--docs-foreground-color,var(--vc-foreground-color,#333));text-decoration:none}.docs-markdown--default li,.docs-markdown--default ul{padding:0;list-style:none}.docs-markdown--default h1 .header-anchor,.docs-markdown--default h2 .header-anchor,.docs-markdown--default h3 .header-anchor,.docs-markdown--default h4 .header-anchor,.docs-markdown--default h5 .header-anchor,.docs-markdown--default h6 .header-anchor{position:absolute;top:0;left:0;padding-right:4px;margin:0;line-height:inherit;color:inherit;text-decoration:none;opacity:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-markdown--default .header-anchor:focus-visible,.docs-markdown--default h1:hover .header-anchor,.docs-markdown--default h2:hover .header-anchor,.docs-markdown--default h3:hover .header-anchor,.docs-markdown--default h4:hover .header-anchor,.docs-markdown--default h5:hover .header-anchor,.docs-markdown--default h6:hover .header-anchor{opacity:1}.docs-markdown--default .docs-markdown-reset{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color emoji,Segoe UI emoji,Segoe UI Symbol;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:2;color:#364153;overflow-wrap:break-word}.docs-markdown--default .docs-markdown-code-preview{margin-bottom:24px}.docs-markdown--default .docs-markdown-reset li[md],.docs-markdown--default .docs-markdown-reset ol[md],.docs-markdown--default .docs-markdown-reset ul[md]{list-style:unset}.docs-markdown--default .docs-markdown-reset ul[md]{list-style-type:square}.docs-markdown--default .docs-markdown-reset ol[md]{list-style-type:decimal}.docs-markdown--default .docs-markdown-reset:before{display:table;content:""}.docs-markdown--default .docs-markdown-reset:after{display:table;clear:both;content:""}.docs-markdown--default .docs-markdown-reset>[md]:first-child{margin-top:0!important}.docs-markdown--default .docs-markdown-reset>[md]:last-child{margin-bottom:0!important}.docs-markdown--default .docs-markdown-reset a[md]:not([href]){color:inherit;text-decoration:none}.docs-markdown--default .docs-markdown-reset .absent[md]{color:var(--vc-color-error,#cb2431)}.docs-markdown--default .docs-markdown-reset .anchor[md]{position:absolute;top:0;left:0;padding-right:4px;margin:0;line-height:1;color:inherit;opacity:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-markdown--default .docs-markdown-reset .anchor i[md]{font-size:18px}.docs-markdown--default .docs-markdown-reset .anchor[md]:focus{outline:none}.docs-markdown--default .docs-markdown-reset blockquote[md],.docs-markdown--default .docs-markdown-reset dl[md],.docs-markdown--default .docs-markdown-reset ol[md],.docs-markdown--default .docs-markdown-reset p[md],.docs-markdown--default .docs-markdown-reset pre[md],.docs-markdown--default .docs-markdown-reset table[md],.docs-markdown--default .docs-markdown-reset ul[md]{margin-top:0;margin-bottom:24px}.docs-markdown--default .docs-markdown-reset hr[md]{height:1px;padding:0;margin-block:64px;background-color:color-mix(in srgb,#030712 5%,transparent);border:0}.docs-markdown--default .docs-markdown-reset blockquote[md]{padding:0;-webkit-padding-start:16px;padding-inline-start:16px;margin-right:0;margin-left:0;font-style:italic;color:inherit;background-color:transparent;border:0;-webkit-border-start:4px solid #d1d5dc;border-inline-start:4px solid #d1d5dc;quotes:auto}.docs-markdown--default .docs-markdown-reset blockquote[md]>:first-child{margin-top:0}.docs-markdown--default .docs-markdown-reset blockquote[md]>:last-child{margin-bottom:0}.docs-markdown--default .docs-markdown-reset blockquote[md] p[md]:first-of-type:before{content:open-quote}.docs-markdown--default .docs-markdown-reset blockquote[md] p[md]:last-of-type:after{content:close-quote}.docs-markdown--default .docs-markdown-reset kbd,.docs-markdown--default .docs-markdown-reset kbd[md]{display:inline-block;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:20px;color:var(--docs-foreground-color,#030712);vertical-align:middle;background-color:color-mix(in srgb,#030712 5%,transparent);border:1px solid color-mix(in srgb,#030712 10%,transparent);border-radius:4px;-webkit-box-shadow:none;box-shadow:none}.docs-markdown--default .docs-markdown-reset h1[md],.docs-markdown--default .docs-markdown-reset h2[md],.docs-markdown--default .docs-markdown-reset h3[md],.docs-markdown--default .docs-markdown-reset h4[md],.docs-markdown--default .docs-markdown-reset h5[md],.docs-markdown--default .docs-markdown-reset h6[md]{position:relative;margin-top:28px;margin-bottom:0;font-weight:600;line-height:1.5556;color:#030712;scroll-margin-top:80px}.docs-markdown--default .docs-markdown-reset h1[md],.docs-markdown--default .docs-markdown-reset h2[md],.docs-markdown--default .docs-markdown-reset h3[md]{text-wrap:balance}.docs-markdown--default .docs-markdown-reset h1 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h2 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h3 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h4 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h5 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h6 .octicon-link[md]{color:var(--docs-foreground-color,#1b1f23);vertical-align:middle;visibility:hidden}.docs-markdown--default .docs-markdown-reset h1:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h2:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h3:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h4:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h5:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h6:hover .anchor[md]{text-decoration:none;opacity:1}.docs-markdown--default .docs-markdown-reset h1:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h2:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h3:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h4:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h5:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h6:hover .anchor .octicon-link[md]{visibility:visible}.docs-markdown--default .docs-markdown-reset h1 code[md],.docs-markdown--default .docs-markdown-reset h1 tt[md],.docs-markdown--default .docs-markdown-reset h2 code[md],.docs-markdown--default .docs-markdown-reset h2 tt[md],.docs-markdown--default .docs-markdown-reset h3 code[md],.docs-markdown--default .docs-markdown-reset h3 tt[md],.docs-markdown--default .docs-markdown-reset h4 code[md],.docs-markdown--default .docs-markdown-reset h4 tt[md],.docs-markdown--default .docs-markdown-reset h5 code[md],.docs-markdown--default .docs-markdown-reset h5 tt[md],.docs-markdown--default .docs-markdown-reset h6 code[md],.docs-markdown--default .docs-markdown-reset h6 tt[md]{font-size:inherit}.docs-markdown--default .docs-markdown-reset h1[md]{margin-top:8px;font-size:30px;font-weight:500;line-height:36px;letter-spacing:-.025em}.docs-markdown--default .docs-markdown-reset h1[md]+p[md]{margin-top:24px;font-size:16px;line-height:28px}.docs-markdown--default .docs-markdown-reset h2[md]{margin-top:80px;font-size:18px;line-height:28px;letter-spacing:-.025em}.docs-markdown--default .docs-markdown-reset h2[md]:has(+h3[md]){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:500;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;line-height:24px;letter-spacing:.1em;color:#364153;text-transform:uppercase}.docs-markdown--default .docs-markdown-reset hr[md]+h2[md]{margin-top:64px}.docs-markdown--default .docs-markdown-reset h3[md]{margin-top:64px;font-size:16px}.docs-markdown--default .docs-markdown-reset h2[md]+h3[md]{margin-top:24px}.docs-markdown--default .docs-markdown-reset h4[md]{margin-top:48px;font-size:14px;line-height:2}.docs-markdown--default .docs-markdown-reset h5[md]{margin-top:40px;font-size:14px;line-height:2}.docs-markdown--default .docs-markdown-reset h6[md]{margin-top:32px;font-size:14px;font-weight:500;line-height:2}.docs-markdown--default .docs-markdown-reset :is(h1,h2,h3,h4,h5,h6)[md]+:not(h1,h2,h3,h4,h5,h6){margin-top:24px}.docs-markdown--default .docs-markdown-reset strong[md]{font-weight:600;color:#030712}.docs-markdown--default .docs-markdown-reset em[md],.docs-markdown--default .docs-markdown-reset i[md]{font-style:italic;font-weight:500}.docs-markdown--default .docs-markdown-reset del[md],.docs-markdown--default .docs-markdown-reset s[md]{opacity:.72}.docs-markdown--default .docs-markdown-reset ol[md],.docs-markdown--default .docs-markdown-reset ul[md]{padding-left:24px}.docs-markdown--default .docs-markdown-reset ol.no-list[md],.docs-markdown--default .docs-markdown-reset ul.no-list[md]{padding:0;list-style-type:none}.docs-markdown--default .docs-markdown-reset ol ol[md],.docs-markdown--default .docs-markdown-reset ol ul[md],.docs-markdown--default .docs-markdown-reset ul ol[md],.docs-markdown--default .docs-markdown-reset ul ul[md]{margin-top:0;margin-bottom:0}.docs-markdown--default .docs-markdown-reset ol ol[md]{list-style-type:decimal}.docs-markdown--default .docs-markdown-reset ol[md] li[md],.docs-markdown--default .docs-markdown-reset ul[md] li[md]{padding-left:12px;overflow-wrap:break-word}.docs-markdown--default .docs-markdown-reset ol[md] li+li[md],.docs-markdown--default .docs-markdown-reset ul[md] li+li[md]{margin-top:16px}.docs-markdown--default .docs-markdown-reset ul[md] li[md]::marker{font-weight:400;color:color-mix(in srgb,currentcolor 25%,transparent)}.docs-markdown--default .docs-markdown-reset ol[md] li[md]::marker{font-weight:600;color:#030712}.docs-markdown--default .docs-markdown-reset li>p[md]:not(:first-child){margin-top:16px}.docs-markdown--default .docs-markdown-reset dl[md]{padding:0}.docs-markdown--default .docs-markdown-reset dl dt[md]{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.docs-markdown--default .docs-markdown-reset dl dd[md]{padding:0 16px;margin-bottom:16px}.docs-markdown--default .docs-markdown-reset table[md]{display:table;width:100%;max-width:100%;overflow:auto;line-height:28px;border:0;border-collapse:collapse;border-spacing:0;border-radius:0;table-layout:auto}.docs-markdown--default .docs-markdown-reset table[md] thead{border-bottom:1px solid var(--docs-border-color,#e8eaec)}.docs-markdown--default .docs-markdown-reset table[md] th{padding:10px 8px;font-weight:600;line-height:28px;color:#030712;text-align:left;white-space:normal;vertical-align:middle;background-color:transparent}.docs-markdown--default .docs-markdown-reset table[md] tbody tr{background-color:transparent;border-bottom:1px solid var(--docs-border-color-light,#f0f1f2);-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.docs-markdown--default .docs-markdown-reset table[md] tbody tr:hover{background-color:color-mix(in srgb,var(--docs-primary-color,#873bf4) 7%,var(--docs-background-color,#fff))}.docs-markdown--default .docs-markdown-reset table[md] tbody tr:last-child{border-bottom:0}.docs-markdown--default .docs-markdown-reset table[md] td{padding:10px 8px;line-height:28px;text-align:left;vertical-align:middle;background-color:transparent}.docs-markdown--default .docs-markdown-reset table[md] td[align=center],.docs-markdown--default .docs-markdown-reset table[md] th[align=center]{text-align:center}.docs-markdown--default .docs-markdown-reset table[md] td[align=right],.docs-markdown--default .docs-markdown-reset table[md] th[align=right]{text-align:right}.docs-markdown--default .docs-markdown-reset table[md] code[md]:not(.hljs),.docs-markdown--default .docs-markdown-reset table[md] tt[md]{font-size:13px}.docs-markdown--default .docs-markdown-reset table img[md]{background-color:transparent}.docs-markdown--default .docs-markdown-reset figure,.docs-markdown--default .docs-markdown-reset figure[md]{display:block;width:100%;margin:24px 0;text-align:center}.docs-markdown--default .docs-markdown-reset figcaption,.docs-markdown--default .docs-markdown-reset figcaption[md]{margin-top:12px;font-size:14px;font-style:italic;line-height:1.5;color:color-mix(in srgb,currentcolor 75%,transparent);text-align:center}.docs-markdown--default .docs-markdown-reset img[md]{max-width:100%;background-color:var(--docs-background-color,#fff);border-radius:6px;-webkit-box-sizing:content-box;box-sizing:content-box}.docs-markdown--default .docs-markdown-reset figure img,.docs-markdown--default .docs-markdown-reset p[md]>img:only-child{display:block;max-width:100%;margin-inline:auto;background-color:var(--docs-background-color,#fff);border-radius:6px;-webkit-box-sizing:content-box;box-sizing:content-box}.docs-markdown--default .docs-markdown-reset img[align=right][md]{padding-left:20px}.docs-markdown--default .docs-markdown-reset img[align=left][md]{padding-right:20px}.docs-markdown--default .docs-markdown-reset .emoji[md]{max-width:none;vertical-align:text-top;background-color:transparent}.docs-markdown--default .docs-markdown-reset span.frame[md]{display:block;overflow:hidden}.docs-markdown--default .docs-markdown-reset span.frame>span[md]{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--docs-border-color,#dfe2e5)}.docs-markdown--default .docs-markdown-reset span.frame span img[md]{display:block;float:left}.docs-markdown--default .docs-markdown-reset span.frame span span[md]{display:block;padding:5px 0 0;clear:both;color:var(--docs-foreground-color,#24292e)}.docs-markdown--default .docs-markdown-reset span.align-center[md]{display:block;overflow:hidden;clear:both}.docs-markdown--default .docs-markdown-reset span.align-center>span[md]{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.docs-markdown--default .docs-markdown-reset span.align-center span img[md]{margin:0 auto;text-align:center}.docs-markdown--default .docs-markdown-reset span.align-right[md]{display:block;overflow:hidden;clear:both}.docs-markdown--default .docs-markdown-reset span.align-right>span[md]{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.docs-markdown--default .docs-markdown-reset span.align-right span img[md]{margin:0;text-align:right}.docs-markdown--default .docs-markdown-reset span.float-left[md]{display:block;float:left;margin-right:13px;overflow:hidden}.docs-markdown--default .docs-markdown-reset span.float-left span[md]{margin:13px 0 0}.docs-markdown--default .docs-markdown-reset span.float-right[md]{display:block;float:right;margin-left:13px;overflow:hidden}.docs-markdown--default .docs-markdown-reset span.float-right>span[md]{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.docs-markdown--default .docs-markdown-reset .csv-data td[md],.docs-markdown--default .docs-markdown-reset .csv-data th[md]{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.docs-markdown--default .docs-markdown-reset .csv-data .blob-num[md]{padding:10px 8px 9px;text-align:right;background:var(--docs-background-color,#fff);border:0}.docs-markdown--default .docs-markdown-reset .csv-data tr[md]{border-top:0}.docs-markdown--default .docs-markdown-reset .csv-data th[md]{font-weight:600;background:var(--docs-code-background,#f6f8fa);border-top:0}.docs-markdown--default .docs-markdown-reset code[md],.docs-markdown--default .docs-markdown-reset tt[md]{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em;border-radius:4px}.docs-markdown--default .docs-markdown-reset code br[md],.docs-markdown--default .docs-markdown-reset tt br[md]{display:none}.docs-markdown--default .docs-markdown-reset del code[md],.docs-markdown--default .docs-markdown-reset s code[md]{text-decoration:inherit}.docs-markdown--default .docs-markdown-reset pre[md]{overflow-wrap:normal}.docs-markdown--default .docs-markdown-reset .highlight[md]{margin-bottom:16px}.docs-markdown--default .docs-markdown-reset .highlight pre[md]{margin-bottom:0;word-break:normal;padding:16px 18px;overflow:auto;font-size:.9em;line-height:1.65;background-color:var(--docs-code-background,#f6f8fa);border:1px solid var(--docs-border-color,#eaeefb);border-radius:6px}.docs-markdown--default .docs-markdown-reset pre tt[md]{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;overflow-wrap:normal;background-color:transparent;border:0}.docs-markdown--default .docs-markdown-reset .tip[md],.docs-markdown--default .docs-markdown-reset .warning[md]{display:grid;grid-template-columns:22px minmax(0,1fr);-webkit-column-gap:12px;-moz-column-gap:12px;column-gap:12px;-webkit-box-align:start;-webkit-align-items:start;-ms-flex-align:start;align-items:start;padding:24px;margin:24px 0;background-color:transparent;border:1px solid #e5e7eb;border-radius:12px}.docs-markdown--default .docs-markdown-reset .tip[md]{--docs-callout-accent:var(--docs-primary-color,#873bf4)}.docs-markdown--default .docs-markdown-reset .warning[md]{--docs-callout-accent:#fe6c6f}.docs-markdown--default .docs-markdown-reset .tip[md].tip--filled{background-color:var(--docs-tip-background,#f9f0ff);border:0;border-left:4px solid var(--docs-callout-accent)}.docs-markdown--default .docs-markdown-reset .warning[md].warning--filled{background-color:var(--docs-warning-background,#fff6f7);border:0;border-left:4px solid var(--docs-callout-accent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon{display:block;width:22px;height:28px;line-height:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon svg{display:block}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon__fill{fill:color-mix(in srgb,var(--docs-callout-accent) 8%,transparent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon__ring{fill:none;stroke:color-mix(in srgb,var(--docs-callout-accent) 25%,transparent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon__mark{fill:none;stroke:var(--docs-callout-accent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-body{min-width:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-body>:first-child{margin-top:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-body>:last-child{margin-bottom:0}.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs),.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]{padding:0;font-size:inherit;font-weight:500;color:#030712;background-color:transparent;border:0}.docs-markdown--default .docs-markdown-reset :is(h1,h2,h3,h4,h5,h6)[md] code[md]:not(.hljs),.docs-markdown--default .docs-markdown-reset :is(h1,h2,h3,h4,h5,h6)[md] tt[md]{font-weight:600}.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs) b,.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs) strong,.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md] b,.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md] strong{font-size:inherit}.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):after,.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):before,.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:after,.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:before{font-size:inherit;font-weight:500;color:var(--docs-primary-color,#873bf4);content:"`"}.docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor){font-weight:600;color:var(--docs-foreground-color,var(--vc-foreground-color,#17233d));text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:#38bdf8;text-decoration-color:#38bdf8;text-underline-offset:3px;-webkit-transition:text-decoration-thickness .2s ease;transition:text-decoration-thickness .2s ease}.docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor):hover{text-decoration-thickness:2px}.docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor):focus-visible{border-radius:2px;outline:2px solid rgba(56,189,248,.55);outline-offset:2px}.docs-markdown--default .docs-markdown-reset details{padding:12px 24px;margin-bottom:24px;background-color:transparent;border:1px solid #e5e7eb;border-radius:12px}.docs-markdown--default .docs-markdown-reset details[open]{padding-bottom:20px}.docs-markdown--default .docs-markdown-reset details>summary{font-weight:500;line-height:28px;color:#030712;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.docs-markdown--default .docs-markdown-reset details>summary::marker{color:inherit}.docs-markdown--default .docs-markdown-reset details>summary+*,.docs-markdown--default .docs-markdown-reset details>summary+[md]{margin-top:24px}.docs-markdown--default .docs-markdown-reset details>:last-child{margin-bottom:0}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset{color:var(--docs-foreground-color-light,#d9d9d9)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset hr[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset hr[md]{background-color:color-mix(in srgb,#fff 10%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset blockquote[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset blockquote[md]{border-inline-start-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset details,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset details{background-color:transparent;border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset details>summary,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset details>summary{color:var(--docs-foreground-color,#f8f8f8)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .tip[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .warning[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .tip[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .warning[md]{border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .tip[md].tip--filled,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .warning[md].warning--filled,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .tip[md].tip--filled,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .warning[md].warning--filled{background-color:color-mix(in srgb,var(--docs-callout-accent) 16%,transparent);border-color:transparent;border-left-color:var(--docs-callout-accent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset kbd,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset kbd[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset kbd,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset kbd[md]{color:var(--docs-foreground-color,#f8f8f8);background-color:color-mix(in srgb,#fff 10%,transparent);border-color:color-mix(in srgb,#fff 15%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset figure img,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset img[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset p[md]>img:only-child,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset figure img,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset img[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset p[md]>img:only-child{background-color:var(--docs-background-color,#171b24)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset figcaption,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset figcaption[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset figcaption,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset figcaption[md]{color:color-mix(in srgb,var(--docs-foreground-color-light,#d9d9d9) 75%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h1[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h2[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h3[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h4[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h5[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h6[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset strong[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h1[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h2[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h3[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h4[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h5[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h6[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset strong[md]{color:var(--docs-foreground-color,#f8f8f8)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h2[md]:has(+h3[md]),[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h2[md]:has(+h3[md]){color:var(--docs-foreground-color-light,#d9d9d9)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset ol[md] li[md]::marker,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset ol[md] li[md]::marker{color:var(--docs-foreground-color,#f8f8f8)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset span.frame>span[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset span.frame>span[md]{border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] thead,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] thead{border-bottom-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] tbody tr,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] tbody tr{border-bottom-color:var(--docs-border-color-light,#303748)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] th,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] th{color:var(--docs-foreground-color,#f8f8f8)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] tbody tr:hover,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] tbody tr:hover{background-color:color-mix(in srgb,var(--docs-primary-color,#873bf4) 7%,var(--docs-background-color,#171b24))}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .csv-data th[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .csv-data th[md]{background-color:var(--docs-background-color-soft,#252b3a)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs),[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs),[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]{color:#f8fafc}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):after,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):before,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:after,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:before,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):after,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):before,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:after,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:before{color:var(--docs-primary-color,#873bf4)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor),[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor){color:var(--docs-foreground-color,#f8f8f8)}@media screen and (width <= 768px){.docs-markdown--default .docs-markdown-reset{font-size:14px}}@media (prefers-reduced-motion:reduce){.docs-markdown--default .docs-markdown-reset .anchor[md],.docs-markdown--default .docs-markdown-reset a[md][href],.docs-markdown--default .docs-markdown-reset table[md] tbody tr,.docs-markdown--default .header-anchor{-webkit-transition:none;transition:none}}.docs-markdown--traditional *,.docs-markdown--traditional :after,.docs-markdown--traditional :before{-webkit-box-sizing:border-box;box-sizing:border-box}.docs-markdown--traditional a{color:var(--docs-foreground-color,var(--vc-foreground-color,#333));text-decoration:none}.docs-markdown--traditional li,.docs-markdown--traditional ul{padding:0;list-style:none}.docs-markdown--traditional h1 .header-anchor,.docs-markdown--traditional h2 .header-anchor,.docs-markdown--traditional h3 .header-anchor,.docs-markdown--traditional h4 .header-anchor,.docs-markdown--traditional h5 .header-anchor,.docs-markdown--traditional h6 .header-anchor{float:left;margin-right:5px;margin-left:-15px;color:inherit;text-decoration:none;opacity:0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-markdown--traditional .header-anchor:focus-visible,.docs-markdown--traditional h1:hover .header-anchor,.docs-markdown--traditional h2:hover .header-anchor,.docs-markdown--traditional h3:hover .header-anchor,.docs-markdown--traditional h4:hover .header-anchor,.docs-markdown--traditional h5:hover .header-anchor,.docs-markdown--traditional h6:hover .header-anchor{opacity:1}.docs-markdown--traditional .docs-markdown-reset{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color emoji,Segoe UI emoji,Segoe UI Symbol;font-size:13px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter,#515a6e));overflow-wrap:break-word}.docs-markdown--traditional .docs-markdown-code-preview{margin-bottom:16px}.docs-markdown--traditional .docs-markdown-reset li[md],.docs-markdown--traditional .docs-markdown-reset ol[md],.docs-markdown--traditional .docs-markdown-reset ul[md]{list-style:unset}.docs-markdown--traditional .docs-markdown-reset ul[md]{list-style-type:disc}.docs-markdown--traditional .docs-markdown-reset ol[md]{list-style-type:decimal}.docs-markdown--traditional .docs-markdown-reset:before{display:table;content:""}.docs-markdown--traditional .docs-markdown-reset:after{display:table;clear:both;content:""}.docs-markdown--traditional .docs-markdown-reset>[md]:first-child{margin-top:0!important}.docs-markdown--traditional .docs-markdown-reset>[md]:last-child{margin-bottom:0!important}.docs-markdown--traditional .docs-markdown-reset a[md]:not([href]){color:inherit;text-decoration:none}.docs-markdown--traditional .docs-markdown-reset .absent[md]{color:var(--vc-color-error,#cb2431)}.docs-markdown--traditional .docs-markdown-reset .anchor[md]{float:left;padding-right:6px;margin-left:-20px;line-height:1;color:inherit;opacity:0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-markdown--traditional .docs-markdown-reset .anchor i[md]{font-size:18px}.docs-markdown--traditional .docs-markdown-reset .anchor[md]:focus{outline:none}.docs-markdown--traditional .docs-markdown-reset blockquote[md],.docs-markdown--traditional .docs-markdown-reset dl[md],.docs-markdown--traditional .docs-markdown-reset ol[md],.docs-markdown--traditional .docs-markdown-reset p[md],.docs-markdown--traditional .docs-markdown-reset pre[md],.docs-markdown--traditional .docs-markdown-reset table[md],.docs-markdown--traditional .docs-markdown-reset ul[md]{margin-top:0;margin-bottom:18px}.docs-markdown--traditional .docs-markdown-reset hr[md]{height:1px;padding:0;margin:28px 0;background-color:var(--docs-border-color,#e1e4e8);border:0}.docs-markdown--traditional .docs-markdown-reset blockquote[md]{padding:4px 0 4px 12px;margin-right:0;margin-left:0;color:var(--docs-foreground-color-mute,#6a737d);background-color:transparent;border-left:3px solid var(--docs-border-color,#dfe2e5)}.docs-markdown--traditional .docs-markdown-reset blockquote[md]>:first-child{margin-top:0}.docs-markdown--traditional .docs-markdown-reset blockquote[md]>:last-child{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset kbd[md]{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:var(--docs-foreground-color-light,#444d56);vertical-align:middle;background-color:var(--docs-background-color-soft,#fafbfc);border:1px solid var(--docs-border-color,#c6cbd1);border-bottom-color:var(--docs-foreground-color-mute,#959da5);border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 var(--docs-foreground-color-mute,#959da5);box-shadow:inset 0 -1px 0 var(--docs-foreground-color-mute,#959da5)}.docs-markdown--traditional .docs-markdown-reset h1[md],.docs-markdown--traditional .docs-markdown-reset h2[md],.docs-markdown--traditional .docs-markdown-reset h3[md],.docs-markdown--traditional .docs-markdown-reset h4[md],.docs-markdown--traditional .docs-markdown-reset h5[md],.docs-markdown--traditional .docs-markdown-reset h6[md]{margin-top:28px;margin-bottom:12px;font-weight:650;line-height:1.35;color:var(--docs-foreground-color,var(--vc-foreground-color,#24292f));scroll-margin-top:80px}.docs-markdown--traditional .docs-markdown-reset h1[md],.docs-markdown--traditional .docs-markdown-reset h2[md],.docs-markdown--traditional .docs-markdown-reset h3[md]{text-wrap:balance}.docs-markdown--traditional .docs-markdown-reset h1 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h2 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h3 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h4 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h5 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h6 .octicon-link[md]{color:var(--docs-foreground-color,#1b1f23);vertical-align:middle;visibility:hidden}.docs-markdown--traditional .docs-markdown-reset h1:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h2:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h3:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h4:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h5:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h6:hover .anchor[md]{text-decoration:none;opacity:1}.docs-markdown--traditional .docs-markdown-reset h1:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h2:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h3:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h4:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h5:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h6:hover .anchor .octicon-link[md]{visibility:visible}.docs-markdown--traditional .docs-markdown-reset h1 code[md],.docs-markdown--traditional .docs-markdown-reset h1 tt[md],.docs-markdown--traditional .docs-markdown-reset h2 code[md],.docs-markdown--traditional .docs-markdown-reset h2 tt[md],.docs-markdown--traditional .docs-markdown-reset h3 code[md],.docs-markdown--traditional .docs-markdown-reset h3 tt[md],.docs-markdown--traditional .docs-markdown-reset h4 code[md],.docs-markdown--traditional .docs-markdown-reset h4 tt[md],.docs-markdown--traditional .docs-markdown-reset h5 code[md],.docs-markdown--traditional .docs-markdown-reset h5 tt[md],.docs-markdown--traditional .docs-markdown-reset h6 code[md],.docs-markdown--traditional .docs-markdown-reset h6 tt[md]{font-size:inherit}.docs-markdown--traditional .docs-markdown-reset h1[md]{padding-bottom:.4em;font-size:2.05em;border-bottom:1px solid var(--docs-border-color,#eaecef)}.docs-markdown--traditional .docs-markdown-reset h2[md]{padding-bottom:.4em;font-size:1.6em;border-bottom:1px solid var(--docs-border-color,#eaecef)}.docs-markdown--traditional .docs-markdown-reset h3[md]{font-size:1.3em}.docs-markdown--traditional .docs-markdown-reset h4[md]{font-size:1.1em}.docs-markdown--traditional .docs-markdown-reset h5[md]{font-size:1em}.docs-markdown--traditional .docs-markdown-reset h6[md]{font-size:.9em;color:var(--docs-foreground-color-mute,#6a737d)}.docs-markdown--traditional .docs-markdown-reset strong[md]{font-weight:650;color:var(--docs-foreground-color,var(--vc-foreground-color,#24292f))}.docs-markdown--traditional .docs-markdown-reset del[md]{opacity:.72}.docs-markdown--traditional .docs-markdown-reset ol[md],.docs-markdown--traditional .docs-markdown-reset ul[md]{padding-left:1.75em}.docs-markdown--traditional .docs-markdown-reset ol.no-list[md],.docs-markdown--traditional .docs-markdown-reset ul.no-list[md]{padding:0;list-style-type:none}.docs-markdown--traditional .docs-markdown-reset ol ol[md],.docs-markdown--traditional .docs-markdown-reset ol ul[md],.docs-markdown--traditional .docs-markdown-reset ul ol[md],.docs-markdown--traditional .docs-markdown-reset ul ul[md]{margin-top:0;margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset li[md]{overflow-wrap:break-word}.docs-markdown--traditional .docs-markdown-reset li[md]::marker{font-weight:600;color:inherit}.docs-markdown--traditional .docs-markdown-reset li>p[md]{margin-top:16px}.docs-markdown--traditional .docs-markdown-reset li+li[md]{margin-top:.25em}.docs-markdown--traditional .docs-markdown-reset dl[md]{padding:0}.docs-markdown--traditional .docs-markdown-reset dl dt[md]{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.docs-markdown--traditional .docs-markdown-reset dl dd[md]{padding:0 16px;margin-bottom:16px}.docs-markdown--traditional .docs-markdown-reset table[md]{display:block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:100%;overflow:auto;border:1px solid var(--docs-border-color,#dfe2e5);border-collapse:separate;border-spacing:0;border-radius:8px}.docs-markdown--traditional .docs-markdown-reset table th[md]{font-weight:600;white-space:nowrap;background-color:var(--docs-background-color-soft,#f7f8fa)}.docs-markdown--traditional .docs-markdown-reset table td[md],.docs-markdown--traditional .docs-markdown-reset table th[md]{padding:8px 12px;text-align:left;vertical-align:top;border-right:1px solid var(--docs-border-color,#dfe2e5);border-bottom:1px solid var(--docs-border-color,#dfe2e5)}.docs-markdown--traditional .docs-markdown-reset table td[align=center][md],.docs-markdown--traditional .docs-markdown-reset table th[align=center][md]{text-align:center}.docs-markdown--traditional .docs-markdown-reset table td[align=right][md],.docs-markdown--traditional .docs-markdown-reset table th[align=right][md]{text-align:right}.docs-markdown--traditional .docs-markdown-reset table td[md]:last-child,.docs-markdown--traditional .docs-markdown-reset table th[md]:last-child{border-right:0}.docs-markdown--traditional .docs-markdown-reset table tbody tr:last-child td[md]{border-bottom:0}.docs-markdown--traditional .docs-markdown-reset table tr[md]{background-color:var(--docs-background-color,#fff)}.docs-markdown--traditional .docs-markdown-reset table tr[md]:nth-child(2n){background-color:var(--docs-code-background,#f6f8fa)}.docs-markdown--traditional .docs-markdown-reset table tbody tr[md]{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.docs-markdown--traditional .docs-markdown-reset table tbody tr[md]:hover{background-color:color-mix(in srgb,var(--docs-primary-color,#873bf4) 7%,var(--docs-background-color,#fff))}.docs-markdown--traditional .docs-markdown-reset table img[md]{background-color:transparent}.docs-markdown--traditional .docs-markdown-reset img[md]{max-width:100%;background-color:var(--docs-background-color,#fff);border-radius:6px;-webkit-box-sizing:content-box;box-sizing:content-box}.docs-markdown--traditional .docs-markdown-reset img[align=right][md]{padding-left:20px}.docs-markdown--traditional .docs-markdown-reset img[align=left][md]{padding-right:20px}.docs-markdown--traditional .docs-markdown-reset .emoji[md]{max-width:none;vertical-align:text-top;background-color:transparent}.docs-markdown--traditional .docs-markdown-reset span.frame[md]{display:block;overflow:hidden}.docs-markdown--traditional .docs-markdown-reset span.frame>span[md]{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--docs-border-color,#dfe2e5)}.docs-markdown--traditional .docs-markdown-reset span.frame span img[md]{display:block;float:left}.docs-markdown--traditional .docs-markdown-reset span.frame span span[md]{display:block;padding:5px 0 0;clear:both;color:var(--docs-foreground-color,#24292e)}.docs-markdown--traditional .docs-markdown-reset span.align-center[md]{display:block;overflow:hidden;clear:both}.docs-markdown--traditional .docs-markdown-reset span.align-center>span[md]{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.docs-markdown--traditional .docs-markdown-reset span.align-center span img[md]{margin:0 auto;text-align:center}.docs-markdown--traditional .docs-markdown-reset span.align-right[md]{display:block;overflow:hidden;clear:both}.docs-markdown--traditional .docs-markdown-reset span.align-right>span[md]{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.docs-markdown--traditional .docs-markdown-reset span.align-right span img[md]{margin:0;text-align:right}.docs-markdown--traditional .docs-markdown-reset span.float-left[md]{display:block;float:left;margin-right:13px;overflow:hidden}.docs-markdown--traditional .docs-markdown-reset span.float-left span[md]{margin:13px 0 0}.docs-markdown--traditional .docs-markdown-reset span.float-right[md]{display:block;float:right;margin-left:13px;overflow:hidden}.docs-markdown--traditional .docs-markdown-reset span.float-right>span[md]{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.docs-markdown--traditional .docs-markdown-reset .csv-data td[md],.docs-markdown--traditional .docs-markdown-reset .csv-data th[md]{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.docs-markdown--traditional .docs-markdown-reset .csv-data .blob-num[md]{padding:10px 8px 9px;text-align:right;background:var(--docs-background-color,#fff);border:0}.docs-markdown--traditional .docs-markdown-reset .csv-data tr[md]{border-top:0}.docs-markdown--traditional .docs-markdown-reset .csv-data th[md]{font-weight:600;background:var(--docs-code-background,#f6f8fa);border-top:0}.docs-markdown--traditional .docs-markdown-reset code[md],.docs-markdown--traditional .docs-markdown-reset tt[md]{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em;border-radius:4px}.docs-markdown--traditional .docs-markdown-reset code br[md],.docs-markdown--traditional .docs-markdown-reset tt br[md]{display:none}.docs-markdown--traditional .docs-markdown-reset del code[md]{text-decoration:inherit}.docs-markdown--traditional .docs-markdown-reset pre[md]{overflow-wrap:normal}.docs-markdown--traditional .docs-markdown-reset .highlight[md]{margin-bottom:16px}.docs-markdown--traditional .docs-markdown-reset .highlight pre[md]{margin-bottom:0;word-break:normal;padding:16px 18px;overflow:auto;font-size:.9em;line-height:1.65;background-color:var(--docs-code-background,#f6f8fa);border:1px solid var(--docs-border-color,#eaeefb);border-radius:6px}.docs-markdown--traditional .docs-markdown-reset pre tt[md]{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;overflow-wrap:normal;background-color:transparent;border:0}.docs-markdown--traditional .docs-markdown-reset .tip[md]{padding:10px 14px;margin:20px 0;background-color:var(--docs-tip-background,#f9f0ff);border-left:4px solid var(--docs-primary-color,#873bf4);border-radius:6px}.docs-markdown--traditional .docs-markdown-reset .tip[md] p{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset .warning[md]{padding:10px 14px;margin:20px 0;background-color:var(--docs-warning-background,#fff6f7);border-left:4px solid #fe6c6f;border-radius:6px}.docs-markdown--traditional .docs-markdown-reset .warning[md] p{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset code[md]:not(.hljs){padding:.15em .4em;color:var(--docs-primary-color,#873bf4);background-color:var(--docs-code-background,#f9fafc);border:1px solid var(--docs-border-color,#eaeefb);border-radius:4px}.docs-markdown--traditional .docs-markdown-reset .tip[md] code:not(.hljs){color:var(--docs-foreground-color-light,#445368);background-color:color-mix(in srgb,var(--docs-background-color,#fff) 70%,transparent)}.docs-markdown--traditional .docs-markdown-reset a[md][href]:not(.header-anchor){color:var(--docs-link-color,#2d8cf0);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,currentcolor 20%,transparent);text-decoration-color:color-mix(in srgb,currentcolor 20%,transparent);text-underline-offset:.2em;-webkit-transition:color .2s ease,-webkit-text-decoration-color .2s ease;transition:color .2s ease,-webkit-text-decoration-color .2s ease;transition:color .2s ease,text-decoration-color .2s ease;transition:color .2s ease,text-decoration-color .2s ease,-webkit-text-decoration-color .2s ease}.docs-markdown--traditional .docs-markdown-reset a[md][href]:not(.header-anchor):hover{color:var(--docs-link-hover-color,color-mix(in srgb,var(--docs-link-color,#2d8cf0) 82%,#000));-webkit-text-decoration-color:color-mix(in srgb,currentcolor 45%,transparent);text-decoration-color:color-mix(in srgb,currentcolor 45%,transparent)}.docs-markdown--traditional .docs-markdown-reset a[md][href]:not(.header-anchor):focus-visible{border-radius:2px;outline:2px solid color-mix(in srgb,var(--docs-link-color,#2d8cf0) 45%,transparent);outline-offset:2px}.docs-markdown--traditional .docs-markdown-reset>details{padding:10px 14px;margin-bottom:18px;background-color:var(--docs-background-color-soft,#f7f8fa);border:1px solid var(--docs-border-color,#e1e4e8);border-radius:6px}.docs-markdown--traditional .docs-markdown-reset>details>summary{font-weight:600;color:var(--docs-foreground-color,var(--vc-foreground-color,#24292f));cursor:pointer;-webkit-transition:color .2s ease;transition:color .2s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.docs-markdown--traditional .docs-markdown-reset>details>summary:hover{color:var(--docs-link-color,#2d8cf0)}.docs-markdown--traditional .docs-markdown-reset>details>summary::marker{color:var(--docs-foreground-color-mute,#6a737d)}.docs-markdown--traditional .docs-markdown-reset>details[open]>summary{margin-bottom:12px}.docs-markdown--traditional .docs-markdown-reset>details>:last-child{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-callout-icon{display:none}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-callout-body{display:contents}.docs-markdown--traditional .docs-markdown-reset .tip[md].tip--filled{padding:10px 14px;margin:20px 0;background-color:var(--docs-tip-background,#f9f0ff);border-left:4px solid var(--docs-primary-color,#873bf4);border-radius:6px}.docs-markdown--traditional .docs-markdown-reset .warning[md].warning--filled{padding:10px 14px;margin:20px 0;background-color:var(--docs-warning-background,#fff6f7);border-left:4px solid #fe6c6f;border-radius:6px}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset,[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset{color:var(--docs-foreground-color-light,#d9d9d9)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset hr[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset hr[md]{background-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset blockquote[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset blockquote[md]{color:var(--docs-foreground-color-mute,#b9b9b9);border-left-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset>details,[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset>details{background-color:var(--docs-background-color-soft,#252b3a);border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset img[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset kbd[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table tr[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset img[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset kbd[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table tr[md]{color:var(--docs-foreground-color-light,#d9d9d9);background-color:var(--docs-background-color,#171b24);border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset h1[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset h2[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset span.frame>span[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table td[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table th[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset h1[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset h2[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset span.frame>span[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table td[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table th[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table[md]{border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .csv-data th[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table tr[md]:nth-child(2n),[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .csv-data th[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table tr[md]:nth-child(2n){background-color:var(--docs-background-color-soft,#252b3a)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .tip[md] code:not(.hljs),[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .tip[md] code:not(.hljs){color:var(--docs-foreground-color-light,#d9d9d9);background-color:var(--docs-background-color-mute,#303748)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset code[md]:not(.hljs),[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset code[md]:not(.hljs){color:var(--docs-code-foreground,color-mix(in srgb,var(--docs-primary-color,#873bf4) 65%,#fff))}@media screen and (width <= 768px){.docs-markdown--traditional .docs-markdown-reset{font-size:13px}.docs-markdown--traditional .docs-markdown-reset h1[md]{font-size:1.7em}.docs-markdown--traditional .docs-markdown-reset h2[md]{font-size:1.35em}.docs-markdown--traditional .docs-markdown-reset .anchor[md],.docs-markdown--traditional .docs-markdown-reset .header-anchor[md]{margin-left:-12px}.docs-markdown--traditional .docs-markdown-reset table td[md],.docs-markdown--traditional .docs-markdown-reset table th[md]{padding:7px 10px}}@media (prefers-reduced-motion:reduce){.docs-markdown--traditional .docs-markdown-reset .anchor[md],.docs-markdown--traditional .docs-markdown-reset a[md][href],.docs-markdown--traditional .docs-markdown-reset table tbody tr[md],.docs-markdown--traditional .docs-markdown-reset>details>summary,.docs-markdown--traditional .header-anchor{-webkit-transition:none;transition:none}}.docs-markdown{position:relative}/*$vite$:1*/
|
|
1
|
+
.docs-markdown-indicator{position:-webkit-sticky;position:sticky;top:var(--docs-markdown-indicator-top,0);z-index:4;height:0;pointer-events:none}.docs-markdown-indicator__rail{position:relative;width:100%;height:100%}.docs-markdown-indicator__viewport{position:absolute;top:0;width:40px;height:var(--docs-markdown-indicator-height);overflow:hidden;pointer-events:auto;cursor:ns-resize;-webkit-box-sizing:border-box;box-sizing:border-box;padding-block:40px 96px;-ms-touch-action:none;touch-action:none}.docs-markdown-indicator__viewport.is-dragging .docs-markdown-indicator__window,.docs-markdown-indicator__viewport:hover .docs-markdown-indicator__window{opacity:.16}.docs-markdown-indicator__window{position:absolute;left:0;width:20px;min-height:12px;pointer-events:none;background:var(--docs-foreground-color-light,var(--vc-color-dark-lighter,#515a6e));border-radius:6px;opacity:0;-webkit-transition:opacity .12s ease;transition:opacity .12s ease}.docs-markdown-indicator__marker{position:absolute;height:2px;pointer-events:none;background:var(--docs-border-color,var(--vc-color-light-deepest,#c5c8ce));border-radius:2px;opacity:.72;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:width .12s ease,background-color .12s ease,opacity .12s ease;transition:width .12s ease,background-color .12s ease,opacity .12s ease}.docs-markdown-indicator__marker.is-heading{height:3px;opacity:.9}.docs-markdown-indicator__marker.is-in-view{background:var(--docs-foreground-color-mute,var(--vc-color-dark-extralight,#808695));opacity:.92}.docs-markdown-indicator__marker.is-active,.docs-markdown-indicator__marker.is-hovered{background:var(--docs-foreground-color-light,var(--vc-color-dark-lighter,#515a6e));opacity:1}.docs-markdown-indicator__preview{position:absolute;width:220px;max-width:min(36vw,260px);padding:8px 10px;font-size:12px;line-height:1.5;color:var(--docs-foreground-color,var(--vc-foreground-color,#17233d));pointer-events:none;background:var(--docs-background-color,var(--vc-background-color-light,#fff));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#dcdee2));border-radius:8px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-box-shadow:0 2px 8px var(--docs-shadow-color,rgba(0,0,0,.1));box-shadow:0 2px 8px var(--docs-shadow-color,rgba(0,0,0,.1));overflow-wrap:anywhere}.docs-markdown-indicator__preview-title{overflow:hidden;font-weight:600;color:var(--docs-foreground-color,var(--vc-foreground-color,#17233d));text-overflow:ellipsis;white-space:nowrap}.docs-markdown-indicator__preview-content{display:-webkit-box;margin-top:4px;overflow:hidden;color:var(--docs-foreground-color-mute,var(--vc-color-dark-extralight,#808695));white-space:pre-line;-webkit-box-orient:vertical;-webkit-line-clamp:4}.docs-markdown-indicator.is-left .docs-markdown-indicator__viewport{right:calc(100% - 20px)}.docs-markdown-indicator.is-left .docs-markdown-indicator__marker{margin-inline:0 auto}.docs-markdown-indicator.is-left .docs-markdown-indicator__preview{left:24px}.docs-markdown-indicator.is-right .docs-markdown-indicator__viewport{left:calc(100% - 20px)}.docs-markdown-indicator.is-right .docs-markdown-indicator__window{right:0;left:auto}.docs-markdown-indicator.is-right .docs-markdown-indicator__marker{margin-inline:auto 0}.docs-markdown-indicator.is-right .docs-markdown-indicator__preview{right:24px}@media (prefers-reduced-motion:reduce){.docs-markdown-indicator__marker,.docs-markdown-indicator__window{-webkit-transition:none;transition:none}}@media (prefers-color-scheme:light){:root{--docs-background-color:#fff;--docs-background-color-soft:#f7f8fa;--docs-background-color-mute:#f2f3f5;--docs-foreground-color:#030712;--docs-foreground-color-light:#364153;--docs-foreground-color-mute:#4a5565;--docs-border-color:#e8eaec;--docs-border-color-light:#f0f1f2;--docs-primary-color:#873bf4;--docs-primary-color-light:#f2ebfe;--docs-link-color:#2d8cf0;--docs-mask-color:hsla(0,0%,100%,.72);--docs-shadow-color:rgba(0,0,0,.14);--docs-code-background:#f6f8fa;--docs-pattern-fg:rgba(3,7,18,.05);--docs-footer-background:#141313;--docs-footer-foreground:#364153;--docs-tip-background:#f9f0ff;--docs-warning-background:#fff6f7;--docs-error-color:#ed4014;--docs-error-background:#fef2f2}}@media (prefers-color-scheme:dark){:root{--docs-background-color:#171b24;--docs-background-color-soft:#252b3a;--docs-background-color-mute:#303748;--docs-foreground-color:#f8f8f8;--docs-foreground-color-light:#d1d5dc;--docs-foreground-color-mute:#b9b9b9;--docs-border-color:#3b4355;--docs-border-color-light:#303748;--docs-primary-color:#873bf4;--docs-primary-color-light:#35244d;--docs-link-color:#6daeff;--docs-mask-color:rgba(10,13,18,.76);--docs-shadow-color:rgba(0,0,0,.45);--docs-code-background:#202630;--docs-pattern-fg:hsla(0,0%,100%,.1);--docs-footer-background:#0d0f14;--docs-footer-foreground:#9ca3af;--docs-tip-background:#30223f;--docs-warning-background:#3d2529;--docs-error-color:#ff6b6b;--docs-error-background:#41272b}}[data-doc-theme=light],[data-vc-theme=light]{--docs-background-color:#fff;--docs-background-color-soft:#f7f8fa;--docs-background-color-mute:#f2f3f5;--docs-foreground-color:#030712;--docs-foreground-color-light:#364153;--docs-foreground-color-mute:#4a5565;--docs-border-color:#e8eaec;--docs-border-color-light:#f0f1f2;--docs-primary-color:#873bf4;--docs-primary-color-light:#f2ebfe;--docs-link-color:#2d8cf0;--docs-mask-color:hsla(0,0%,100%,.72);--docs-shadow-color:rgba(0,0,0,.14);--docs-code-background:#f6f8fa;--docs-pattern-fg:rgba(3,7,18,.05);--docs-footer-background:#141313;--docs-footer-foreground:#364153;--docs-tip-background:#f9f0ff;--docs-warning-background:#fff6f7;--docs-error-color:#ed4014;--docs-error-background:#fef2f2}[data-doc-theme=dark],[data-vc-theme=dark]{--docs-background-color:#171b24;--docs-background-color-soft:#252b3a;--docs-background-color-mute:#303748;--docs-foreground-color:#f8f8f8;--docs-foreground-color-light:#d1d5dc;--docs-foreground-color-mute:#b9b9b9;--docs-border-color:#3b4355;--docs-border-color-light:#303748;--docs-primary-color:#873bf4;--docs-primary-color-light:#35244d;--docs-link-color:#6daeff;--docs-mask-color:rgba(10,13,18,.76);--docs-shadow-color:rgba(0,0,0,.45);--docs-code-background:#202630;--docs-pattern-fg:hsla(0,0%,100%,.1);--docs-footer-background:#0d0f14;--docs-footer-foreground:#9ca3af;--docs-tip-background:#30223f;--docs-warning-background:#3d2529;--docs-error-color:#ff6b6b;--docs-error-background:#41272b}.docs-markdown--default *,.docs-markdown--default :after,.docs-markdown--default :before{-webkit-box-sizing:border-box;box-sizing:border-box}.docs-markdown--default a{color:var(--docs-foreground-color,var(--vc-foreground-color,#333));text-decoration:none}.docs-markdown--default li,.docs-markdown--default ul{padding:0;list-style:none}.docs-markdown--default h1 .header-anchor,.docs-markdown--default h2 .header-anchor,.docs-markdown--default h3 .header-anchor,.docs-markdown--default h4 .header-anchor,.docs-markdown--default h5 .header-anchor,.docs-markdown--default h6 .header-anchor{position:absolute;top:0;left:0;padding-right:4px;margin:0;line-height:inherit;color:inherit;text-decoration:none;opacity:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-markdown--default .header-anchor:focus-visible,.docs-markdown--default h1:hover .header-anchor,.docs-markdown--default h2:hover .header-anchor,.docs-markdown--default h3:hover .header-anchor,.docs-markdown--default h4:hover .header-anchor,.docs-markdown--default h5:hover .header-anchor,.docs-markdown--default h6:hover .header-anchor{opacity:1}.docs-markdown--default .docs-markdown-reset{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color emoji,Segoe UI emoji,Segoe UI Symbol;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:2;color:#364153;overflow-wrap:break-word}.docs-markdown--default .docs-markdown-code-preview{margin-bottom:24px}.docs-markdown--default .docs-markdown-reset li[md],.docs-markdown--default .docs-markdown-reset ol[md],.docs-markdown--default .docs-markdown-reset ul[md]{list-style:unset}.docs-markdown--default .docs-markdown-reset ul[md]{list-style-type:square}.docs-markdown--default .docs-markdown-reset ol[md]{list-style-type:decimal}.docs-markdown--default .docs-markdown-reset:before{display:table;content:""}.docs-markdown--default .docs-markdown-reset:after{display:table;clear:both;content:""}.docs-markdown--default .docs-markdown-reset>[md]:first-child{margin-top:0!important}.docs-markdown--default .docs-markdown-reset>[md]:last-child{margin-bottom:0!important}.docs-markdown--default .docs-markdown-reset a[md]:not([href]){color:inherit;text-decoration:none}.docs-markdown--default .docs-markdown-reset .absent[md]{color:var(--vc-color-error,#cb2431)}.docs-markdown--default .docs-markdown-reset .anchor[md]{position:absolute;top:0;left:0;padding-right:4px;margin:0;line-height:1;color:inherit;opacity:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-markdown--default .docs-markdown-reset .anchor i[md]{font-size:18px}.docs-markdown--default .docs-markdown-reset .anchor[md]:focus{outline:none}.docs-markdown--default .docs-markdown-reset blockquote[md],.docs-markdown--default .docs-markdown-reset dl[md],.docs-markdown--default .docs-markdown-reset ol[md],.docs-markdown--default .docs-markdown-reset p[md],.docs-markdown--default .docs-markdown-reset pre[md],.docs-markdown--default .docs-markdown-reset table[md],.docs-markdown--default .docs-markdown-reset ul[md]{margin-top:0;margin-bottom:24px}.docs-markdown--default .docs-markdown-reset hr[md]{height:1px;padding:0;margin-block:64px;background-color:color-mix(in srgb,#030712 5%,transparent);border:0}.docs-markdown--default .docs-markdown-reset blockquote[md]{padding:0;-webkit-padding-start:16px;padding-inline-start:16px;margin-right:0;margin-left:0;font-style:italic;color:inherit;background-color:transparent;border:0;-webkit-border-start:4px solid #d1d5dc;border-inline-start:4px solid #d1d5dc;quotes:auto}.docs-markdown--default .docs-markdown-reset blockquote[md]>:first-child{margin-top:0}.docs-markdown--default .docs-markdown-reset blockquote[md]>:last-child{margin-bottom:0}.docs-markdown--default .docs-markdown-reset blockquote[md] p[md]:first-of-type:before{content:open-quote}.docs-markdown--default .docs-markdown-reset blockquote[md] p[md]:last-of-type:after{content:close-quote}.docs-markdown--default .docs-markdown-reset kbd,.docs-markdown--default .docs-markdown-reset kbd[md]{display:inline-block;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:20px;color:var(--docs-foreground-color,#030712);vertical-align:middle;background-color:color-mix(in srgb,#030712 5%,transparent);border:1px solid color-mix(in srgb,#030712 10%,transparent);border-radius:4px;-webkit-box-shadow:none;box-shadow:none}.docs-markdown--default .docs-markdown-reset h1[md],.docs-markdown--default .docs-markdown-reset h2[md],.docs-markdown--default .docs-markdown-reset h3[md],.docs-markdown--default .docs-markdown-reset h4[md],.docs-markdown--default .docs-markdown-reset h5[md],.docs-markdown--default .docs-markdown-reset h6[md]{position:relative;margin-top:28px;margin-bottom:0;font-weight:600;line-height:1.5556;color:#030712;scroll-margin-top:80px}.docs-markdown--default .docs-markdown-reset h1[md],.docs-markdown--default .docs-markdown-reset h2[md],.docs-markdown--default .docs-markdown-reset h3[md]{text-wrap:balance}.docs-markdown--default .docs-markdown-reset h1 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h2 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h3 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h4 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h5 .octicon-link[md],.docs-markdown--default .docs-markdown-reset h6 .octicon-link[md]{color:var(--docs-foreground-color,#1b1f23);vertical-align:middle;visibility:hidden}.docs-markdown--default .docs-markdown-reset h1:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h2:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h3:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h4:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h5:hover .anchor[md],.docs-markdown--default .docs-markdown-reset h6:hover .anchor[md]{text-decoration:none;opacity:1}.docs-markdown--default .docs-markdown-reset h1:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h2:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h3:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h4:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h5:hover .anchor .octicon-link[md],.docs-markdown--default .docs-markdown-reset h6:hover .anchor .octicon-link[md]{visibility:visible}.docs-markdown--default .docs-markdown-reset h1 code[md],.docs-markdown--default .docs-markdown-reset h1 tt[md],.docs-markdown--default .docs-markdown-reset h2 code[md],.docs-markdown--default .docs-markdown-reset h2 tt[md],.docs-markdown--default .docs-markdown-reset h3 code[md],.docs-markdown--default .docs-markdown-reset h3 tt[md],.docs-markdown--default .docs-markdown-reset h4 code[md],.docs-markdown--default .docs-markdown-reset h4 tt[md],.docs-markdown--default .docs-markdown-reset h5 code[md],.docs-markdown--default .docs-markdown-reset h5 tt[md],.docs-markdown--default .docs-markdown-reset h6 code[md],.docs-markdown--default .docs-markdown-reset h6 tt[md]{font-size:inherit}.docs-markdown--default .docs-markdown-reset h1[md]{margin-top:8px;font-size:30px;font-weight:500;line-height:36px;letter-spacing:-.025em}.docs-markdown--default .docs-markdown-reset h1[md]+p[md]{margin-top:24px;font-size:16px;line-height:28px}.docs-markdown--default .docs-markdown-reset h2[md]{margin-top:80px;font-size:18px;line-height:28px;letter-spacing:-.025em}.docs-markdown--default .docs-markdown-reset h2[md]:has(+h3[md]){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:500;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;line-height:24px;letter-spacing:.1em;color:#364153;text-transform:uppercase}.docs-markdown--default .docs-markdown-reset hr[md]+h2[md]{margin-top:64px}.docs-markdown--default .docs-markdown-reset h3[md]{margin-top:64px;font-size:16px}.docs-markdown--default .docs-markdown-reset h2[md]+h3[md]{margin-top:24px}.docs-markdown--default .docs-markdown-reset h4[md]{margin-top:48px;font-size:14px;line-height:2}.docs-markdown--default .docs-markdown-reset h5[md]{margin-top:40px;font-size:14px;line-height:2}.docs-markdown--default .docs-markdown-reset h6[md]{margin-top:32px;font-size:14px;font-weight:500;line-height:2}.docs-markdown--default .docs-markdown-reset :is(h1,h2,h3,h4,h5,h6)[md]+:not(h1,h2,h3,h4,h5,h6){margin-top:24px}.docs-markdown--default .docs-markdown-reset strong[md]{font-weight:600;color:#030712}.docs-markdown--default .docs-markdown-reset em[md],.docs-markdown--default .docs-markdown-reset i[md]{font-style:italic;font-weight:500}.docs-markdown--default .docs-markdown-reset del[md],.docs-markdown--default .docs-markdown-reset s[md]{opacity:.72}.docs-markdown--default .docs-markdown-reset ol[md],.docs-markdown--default .docs-markdown-reset ul[md]{padding-left:24px}.docs-markdown--default .docs-markdown-reset ol.no-list[md],.docs-markdown--default .docs-markdown-reset ul.no-list[md]{padding:0;list-style-type:none}.docs-markdown--default .docs-markdown-reset ol ol[md],.docs-markdown--default .docs-markdown-reset ol ul[md],.docs-markdown--default .docs-markdown-reset ul ol[md],.docs-markdown--default .docs-markdown-reset ul ul[md]{margin-top:0;margin-bottom:0}.docs-markdown--default .docs-markdown-reset ol ol[md]{list-style-type:decimal}.docs-markdown--default .docs-markdown-reset ol[md] li[md],.docs-markdown--default .docs-markdown-reset ul[md] li[md]{padding-left:12px;overflow-wrap:break-word}.docs-markdown--default .docs-markdown-reset ol[md] li+li[md],.docs-markdown--default .docs-markdown-reset ul[md] li+li[md]{margin-top:16px}.docs-markdown--default .docs-markdown-reset ul[md] li[md]::marker{font-weight:400;color:color-mix(in srgb,currentcolor 25%,transparent)}.docs-markdown--default .docs-markdown-reset ol[md] li[md]::marker{font-weight:600;color:#030712}.docs-markdown--default .docs-markdown-reset li>p[md]:not(:first-child){margin-top:16px}.docs-markdown--default .docs-markdown-reset dl[md]{padding:0}.docs-markdown--default .docs-markdown-reset dl dt[md]{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.docs-markdown--default .docs-markdown-reset dl dd[md]{padding:0 16px;margin-bottom:16px}.docs-markdown--default .docs-markdown-reset table[md]{display:table;width:100%;max-width:100%;overflow:auto;line-height:28px;border:0;border-collapse:collapse;border-spacing:0;border-radius:0;table-layout:auto}.docs-markdown--default .docs-markdown-reset table[md] thead{border-bottom:1px solid var(--docs-border-color,#e8eaec)}.docs-markdown--default .docs-markdown-reset table[md] th{padding:10px 8px;font-weight:600;line-height:28px;color:#030712;text-align:left;white-space:normal;vertical-align:middle;background-color:transparent}.docs-markdown--default .docs-markdown-reset table[md] tbody tr{background-color:transparent;border-bottom:1px solid var(--docs-border-color-light,#f0f1f2);-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.docs-markdown--default .docs-markdown-reset table[md] tbody tr:hover{background-color:color-mix(in srgb,var(--docs-primary-color,#873bf4) 7%,var(--docs-background-color,#fff))}.docs-markdown--default .docs-markdown-reset table[md] tbody tr:last-child{border-bottom:0}.docs-markdown--default .docs-markdown-reset table[md] td{padding:10px 8px;line-height:28px;text-align:left;vertical-align:middle;background-color:transparent}.docs-markdown--default .docs-markdown-reset table[md] td[align=center],.docs-markdown--default .docs-markdown-reset table[md] th[align=center]{text-align:center}.docs-markdown--default .docs-markdown-reset table[md] td[align=right],.docs-markdown--default .docs-markdown-reset table[md] th[align=right]{text-align:right}.docs-markdown--default .docs-markdown-reset table[md] code[md]:not(.hljs),.docs-markdown--default .docs-markdown-reset table[md] tt[md]{font-size:13px}.docs-markdown--default .docs-markdown-reset table img[md]{background-color:transparent}.docs-markdown--default .docs-markdown-reset figure,.docs-markdown--default .docs-markdown-reset figure[md]{display:block;width:100%;margin:24px 0;text-align:center}.docs-markdown--default .docs-markdown-reset figcaption,.docs-markdown--default .docs-markdown-reset figcaption[md]{margin-top:12px;font-size:14px;font-style:italic;line-height:1.5;color:color-mix(in srgb,currentcolor 75%,transparent);text-align:center}.docs-markdown--default .docs-markdown-reset img[md]{max-width:100%;background-color:var(--docs-background-color,#fff);border-radius:6px;-webkit-box-sizing:content-box;box-sizing:content-box}.docs-markdown--default .docs-markdown-reset figure img,.docs-markdown--default .docs-markdown-reset p[md]>img:only-child{display:block;max-width:100%;margin-inline:auto;background-color:var(--docs-background-color,#fff);border-radius:6px;-webkit-box-sizing:content-box;box-sizing:content-box}.docs-markdown--default .docs-markdown-reset img[align=right][md]{padding-left:20px}.docs-markdown--default .docs-markdown-reset img[align=left][md]{padding-right:20px}.docs-markdown--default .docs-markdown-reset .emoji[md]{max-width:none;vertical-align:text-top;background-color:transparent}.docs-markdown--default .docs-markdown-reset span.frame[md]{display:block;overflow:hidden}.docs-markdown--default .docs-markdown-reset span.frame>span[md]{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--docs-border-color,#dfe2e5)}.docs-markdown--default .docs-markdown-reset span.frame span img[md]{display:block;float:left}.docs-markdown--default .docs-markdown-reset span.frame span span[md]{display:block;padding:5px 0 0;clear:both;color:var(--docs-foreground-color,#24292e)}.docs-markdown--default .docs-markdown-reset span.align-center[md]{display:block;overflow:hidden;clear:both}.docs-markdown--default .docs-markdown-reset span.align-center>span[md]{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.docs-markdown--default .docs-markdown-reset span.align-center span img[md]{margin:0 auto;text-align:center}.docs-markdown--default .docs-markdown-reset span.align-right[md]{display:block;overflow:hidden;clear:both}.docs-markdown--default .docs-markdown-reset span.align-right>span[md]{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.docs-markdown--default .docs-markdown-reset span.align-right span img[md]{margin:0;text-align:right}.docs-markdown--default .docs-markdown-reset span.float-left[md]{display:block;float:left;margin-right:13px;overflow:hidden}.docs-markdown--default .docs-markdown-reset span.float-left span[md]{margin:13px 0 0}.docs-markdown--default .docs-markdown-reset span.float-right[md]{display:block;float:right;margin-left:13px;overflow:hidden}.docs-markdown--default .docs-markdown-reset span.float-right>span[md]{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.docs-markdown--default .docs-markdown-reset .csv-data td[md],.docs-markdown--default .docs-markdown-reset .csv-data th[md]{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.docs-markdown--default .docs-markdown-reset .csv-data .blob-num[md]{padding:10px 8px 9px;text-align:right;background:var(--docs-background-color,#fff);border:0}.docs-markdown--default .docs-markdown-reset .csv-data tr[md]{border-top:0}.docs-markdown--default .docs-markdown-reset .csv-data th[md]{font-weight:600;background:var(--docs-code-background,#f6f8fa);border-top:0}.docs-markdown--default .docs-markdown-reset code[md],.docs-markdown--default .docs-markdown-reset tt[md]{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em;border-radius:4px}.docs-markdown--default .docs-markdown-reset code br[md],.docs-markdown--default .docs-markdown-reset tt br[md]{display:none}.docs-markdown--default .docs-markdown-reset del code[md],.docs-markdown--default .docs-markdown-reset s code[md]{text-decoration:inherit}.docs-markdown--default .docs-markdown-reset pre[md]{overflow-wrap:normal}.docs-markdown--default .docs-markdown-reset .highlight[md]{margin-bottom:16px}.docs-markdown--default .docs-markdown-reset .highlight pre[md]{margin-bottom:0;word-break:normal;padding:16px 18px;overflow:auto;font-size:.9em;line-height:1.65;background-color:var(--docs-code-background,#f6f8fa);border:1px solid var(--docs-border-color,#eaeefb);border-radius:6px}.docs-markdown--default .docs-markdown-reset pre tt[md]{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;overflow-wrap:normal;background-color:transparent;border:0}.docs-markdown--default .docs-markdown-reset .tip[md],.docs-markdown--default .docs-markdown-reset .warning[md]{display:grid;grid-template-columns:22px minmax(0,1fr);-webkit-column-gap:12px;-moz-column-gap:12px;column-gap:12px;-webkit-box-align:start;-webkit-align-items:start;-ms-flex-align:start;align-items:start;padding:24px;margin:24px 0;background-color:transparent;border:1px solid #e5e7eb;border-radius:12px}.docs-markdown--default .docs-markdown-reset .tip[md]{--docs-callout-accent:var(--docs-primary-color,#873bf4)}.docs-markdown--default .docs-markdown-reset .warning[md]{--docs-callout-accent:#fe6c6f}.docs-markdown--default .docs-markdown-reset .tip[md].tip--filled{background-color:var(--docs-tip-background,#f9f0ff);border:0;border-left:4px solid var(--docs-callout-accent)}.docs-markdown--default .docs-markdown-reset .warning[md].warning--filled{background-color:var(--docs-warning-background,#fff6f7);border:0;border-left:4px solid var(--docs-callout-accent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon{display:block;width:22px;height:28px;line-height:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon svg{display:block}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon__fill{fill:color-mix(in srgb,var(--docs-callout-accent) 8%,transparent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon__ring{fill:none;stroke:color-mix(in srgb,var(--docs-callout-accent) 25%,transparent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-icon__mark{fill:none;stroke:var(--docs-callout-accent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-body{min-width:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-body>:first-child{margin-top:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-callout-body>:last-child{margin-bottom:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs,.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs[md]{margin:24px 0}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__nav{min-width:0;overflow-x:auto;-webkit-box-shadow:inset 0 -1px 0 color-mix(in srgb,#030712 5%,transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb,#030712 5%,transparent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:24px;margin:0;white-space:nowrap}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 0 8px;font-size:14px;font-weight:500;line-height:1.75;color:#364153;cursor:pointer;background:transparent;border:0;-webkit-box-shadow:inset 0 -1px 0 transparent;box-shadow:inset 0 -1px 0 transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab:hover{-webkit-box-shadow:inset 0 -1px 0 color-mix(in srgb,#030712 25%,transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb,#030712 25%,transparent)}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab--active,.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab[aria-selected=true]{color:#030712;-webkit-box-shadow:inset 0 -2px 0 currentcolor;box-shadow:inset 0 -2px 0 currentcolor}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__panel{padding-top:24px}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__panel>:first-child{margin-top:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__panel>:last-child{margin-bottom:0}.docs-markdown--default .docs-markdown-reset .docs-markdown-tabs-error{padding:12px 16px;margin:24px 0;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs),.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]{padding:0;font-size:inherit;font-weight:500;color:#030712;background-color:transparent;border:0}.docs-markdown--default .docs-markdown-reset :is(h1,h2,h3,h4,h5,h6)[md] code[md]:not(.hljs),.docs-markdown--default .docs-markdown-reset :is(h1,h2,h3,h4,h5,h6)[md] tt[md]{font-weight:600}.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs) b,.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs) strong,.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md] b,.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md] strong{font-size:inherit}.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):after,.docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):before,.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:after,.docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:before{font-size:inherit;font-weight:500;color:var(--docs-primary-color,#873bf4);content:"`"}.docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor){font-weight:600;color:var(--docs-foreground-color,var(--vc-foreground-color,#17233d));text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:#38bdf8;text-decoration-color:#38bdf8;text-underline-offset:3px;-webkit-transition:text-decoration-thickness .2s ease;transition:text-decoration-thickness .2s ease}.docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor):hover{text-decoration-thickness:2px}.docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor):focus-visible{border-radius:2px;outline:2px solid rgba(56,189,248,.55);outline-offset:2px}.docs-markdown--default .docs-markdown-reset details{padding:12px 24px;margin-bottom:24px;background-color:transparent;border:1px solid #e5e7eb;border-radius:12px}.docs-markdown--default .docs-markdown-reset details[open]{padding-bottom:20px}.docs-markdown--default .docs-markdown-reset details>summary{font-weight:500;line-height:28px;color:#030712;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.docs-markdown--default .docs-markdown-reset details>summary::marker{color:inherit}.docs-markdown--default .docs-markdown-reset details>summary+*,.docs-markdown--default .docs-markdown-reset details>summary+[md]{margin-top:24px}.docs-markdown--default .docs-markdown-reset details>:last-child{margin-bottom:0}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset{color:var(--docs-foreground-color-light,#d9d9d9)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset hr[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset hr[md]{background-color:color-mix(in srgb,#fff 10%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset blockquote[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset blockquote[md]{border-inline-start-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset details,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset details{background-color:transparent;border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset details>summary,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset details>summary{color:var(--docs-foreground-color,#f8f8f8)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .tip[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .warning[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .tip[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .warning[md]{border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__nav,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__nav{-webkit-box-shadow:inset 0 -1px 0 color-mix(in srgb,#fff 10%,transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb,#fff 10%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab{color:var(--docs-foreground-color-light,#d9d9d9)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab:hover,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab:hover{-webkit-box-shadow:inset 0 -1px 0 color-mix(in srgb,#fff 25%,transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb,#fff 25%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab--active,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab[aria-selected=true],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab--active,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs__tab[aria-selected=true]{color:var(--docs-foreground-color,#f8f8f8);-webkit-box-shadow:inset 0 -2px 0 currentcolor;box-shadow:inset 0 -2px 0 currentcolor}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs-error,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .docs-markdown-tabs-error{color:#fecaca;background:color-mix(in srgb,#991b1b 24%,transparent);border-color:color-mix(in srgb,#fecaca 35%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .tip[md].tip--filled,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .warning[md].warning--filled,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .tip[md].tip--filled,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .warning[md].warning--filled{background-color:color-mix(in srgb,var(--docs-callout-accent) 16%,transparent);border-color:transparent;border-left-color:var(--docs-callout-accent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset kbd,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset kbd[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset kbd,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset kbd[md]{color:var(--docs-foreground-color,#f8f8f8);background-color:color-mix(in srgb,#fff 10%,transparent);border-color:color-mix(in srgb,#fff 15%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset figure img,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset img[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset p[md]>img:only-child,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset figure img,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset img[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset p[md]>img:only-child{background-color:var(--docs-background-color,#171b24)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset figcaption,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset figcaption[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset figcaption,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset figcaption[md]{color:color-mix(in srgb,var(--docs-foreground-color-light,#d9d9d9) 75%,transparent)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h1[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h2[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h3[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h4[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h5[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h6[md],[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset strong[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h1[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h2[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h3[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h4[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h5[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h6[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset strong[md]{color:var(--docs-foreground-color,#f8f8f8)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset h2[md]:has(+h3[md]),[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset h2[md]:has(+h3[md]){color:var(--docs-foreground-color-light,#d9d9d9)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset ol[md] li[md]::marker,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset ol[md] li[md]::marker{color:var(--docs-foreground-color,#f8f8f8)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset span.frame>span[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset span.frame>span[md]{border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] thead,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] thead{border-bottom-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] tbody tr,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] tbody tr{border-bottom-color:var(--docs-border-color-light,#303748)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] th,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] th{color:var(--docs-foreground-color,#f8f8f8)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] tbody tr:hover,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset table[md] tbody tr:hover{background-color:color-mix(in srgb,var(--docs-primary-color,#873bf4) 7%,var(--docs-background-color,#171b24))}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset .csv-data th[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset .csv-data th[md]{background-color:var(--docs-background-color-soft,#252b3a)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs),[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md],[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs),[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]{color:#f8fafc}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):after,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):before,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:after,[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:before,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):after,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>code[md]:not(.hljs):before,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:after,[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset :not(pre)>tt[md]:before{color:var(--docs-primary-color,#873bf4)}[data-doc-theme=dark] .docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor),[data-vc-theme=dark] .docs-markdown--default .docs-markdown-reset a[md][href]:not(.header-anchor){color:var(--docs-foreground-color,#f8f8f8)}@media screen and (width <= 768px){.docs-markdown--default .docs-markdown-reset{font-size:14px}}@media (prefers-reduced-motion:reduce){.docs-markdown--default .docs-markdown-reset .anchor[md],.docs-markdown--default .docs-markdown-reset a[md][href],.docs-markdown--default .docs-markdown-reset table[md] tbody tr,.docs-markdown--default .header-anchor{-webkit-transition:none;transition:none}}.docs-markdown--traditional *,.docs-markdown--traditional :after,.docs-markdown--traditional :before{-webkit-box-sizing:border-box;box-sizing:border-box}.docs-markdown--traditional a{color:var(--docs-foreground-color,var(--vc-foreground-color,#333));text-decoration:none}.docs-markdown--traditional li,.docs-markdown--traditional ul{padding:0;list-style:none}.docs-markdown--traditional h1 .header-anchor,.docs-markdown--traditional h2 .header-anchor,.docs-markdown--traditional h3 .header-anchor,.docs-markdown--traditional h4 .header-anchor,.docs-markdown--traditional h5 .header-anchor,.docs-markdown--traditional h6 .header-anchor{float:left;margin-right:5px;margin-left:-15px;color:inherit;text-decoration:none;opacity:0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-markdown--traditional .header-anchor:focus-visible,.docs-markdown--traditional h1:hover .header-anchor,.docs-markdown--traditional h2:hover .header-anchor,.docs-markdown--traditional h3:hover .header-anchor,.docs-markdown--traditional h4:hover .header-anchor,.docs-markdown--traditional h5:hover .header-anchor,.docs-markdown--traditional h6:hover .header-anchor{opacity:1}.docs-markdown--traditional .docs-markdown-reset{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color emoji,Segoe UI emoji,Segoe UI Symbol;font-size:13px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter,#515a6e));overflow-wrap:break-word}.docs-markdown--traditional .docs-markdown-code-preview{margin-bottom:16px}.docs-markdown--traditional .docs-markdown-reset li[md],.docs-markdown--traditional .docs-markdown-reset ol[md],.docs-markdown--traditional .docs-markdown-reset ul[md]{list-style:unset}.docs-markdown--traditional .docs-markdown-reset ul[md]{list-style-type:disc}.docs-markdown--traditional .docs-markdown-reset ol[md]{list-style-type:decimal}.docs-markdown--traditional .docs-markdown-reset:before{display:table;content:""}.docs-markdown--traditional .docs-markdown-reset:after{display:table;clear:both;content:""}.docs-markdown--traditional .docs-markdown-reset>[md]:first-child{margin-top:0!important}.docs-markdown--traditional .docs-markdown-reset>[md]:last-child{margin-bottom:0!important}.docs-markdown--traditional .docs-markdown-reset a[md]:not([href]){color:inherit;text-decoration:none}.docs-markdown--traditional .docs-markdown-reset .absent[md]{color:var(--vc-color-error,#cb2431)}.docs-markdown--traditional .docs-markdown-reset .anchor[md]{float:left;padding-right:6px;margin-left:-20px;line-height:1;color:inherit;opacity:0;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-markdown--traditional .docs-markdown-reset .anchor i[md]{font-size:18px}.docs-markdown--traditional .docs-markdown-reset .anchor[md]:focus{outline:none}.docs-markdown--traditional .docs-markdown-reset blockquote[md],.docs-markdown--traditional .docs-markdown-reset dl[md],.docs-markdown--traditional .docs-markdown-reset ol[md],.docs-markdown--traditional .docs-markdown-reset p[md],.docs-markdown--traditional .docs-markdown-reset pre[md],.docs-markdown--traditional .docs-markdown-reset table[md],.docs-markdown--traditional .docs-markdown-reset ul[md]{margin-top:0;margin-bottom:18px}.docs-markdown--traditional .docs-markdown-reset hr[md]{height:1px;padding:0;margin:28px 0;background-color:var(--docs-border-color,#e1e4e8);border:0}.docs-markdown--traditional .docs-markdown-reset blockquote[md]{padding:4px 0 4px 12px;margin-right:0;margin-left:0;color:var(--docs-foreground-color-mute,#6a737d);background-color:transparent;border-left:3px solid var(--docs-border-color,#dfe2e5)}.docs-markdown--traditional .docs-markdown-reset blockquote[md]>:first-child{margin-top:0}.docs-markdown--traditional .docs-markdown-reset blockquote[md]>:last-child{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset kbd[md]{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:var(--docs-foreground-color-light,#444d56);vertical-align:middle;background-color:var(--docs-background-color-soft,#fafbfc);border:1px solid var(--docs-border-color,#c6cbd1);border-bottom-color:var(--docs-foreground-color-mute,#959da5);border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 var(--docs-foreground-color-mute,#959da5);box-shadow:inset 0 -1px 0 var(--docs-foreground-color-mute,#959da5)}.docs-markdown--traditional .docs-markdown-reset h1[md],.docs-markdown--traditional .docs-markdown-reset h2[md],.docs-markdown--traditional .docs-markdown-reset h3[md],.docs-markdown--traditional .docs-markdown-reset h4[md],.docs-markdown--traditional .docs-markdown-reset h5[md],.docs-markdown--traditional .docs-markdown-reset h6[md]{margin-top:28px;margin-bottom:12px;font-weight:650;line-height:1.35;color:var(--docs-foreground-color,var(--vc-foreground-color,#24292f));scroll-margin-top:80px}.docs-markdown--traditional .docs-markdown-reset h1[md],.docs-markdown--traditional .docs-markdown-reset h2[md],.docs-markdown--traditional .docs-markdown-reset h3[md]{text-wrap:balance}.docs-markdown--traditional .docs-markdown-reset h1 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h2 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h3 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h4 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h5 .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h6 .octicon-link[md]{color:var(--docs-foreground-color,#1b1f23);vertical-align:middle;visibility:hidden}.docs-markdown--traditional .docs-markdown-reset h1:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h2:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h3:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h4:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h5:hover .anchor[md],.docs-markdown--traditional .docs-markdown-reset h6:hover .anchor[md]{text-decoration:none;opacity:1}.docs-markdown--traditional .docs-markdown-reset h1:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h2:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h3:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h4:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h5:hover .anchor .octicon-link[md],.docs-markdown--traditional .docs-markdown-reset h6:hover .anchor .octicon-link[md]{visibility:visible}.docs-markdown--traditional .docs-markdown-reset h1 code[md],.docs-markdown--traditional .docs-markdown-reset h1 tt[md],.docs-markdown--traditional .docs-markdown-reset h2 code[md],.docs-markdown--traditional .docs-markdown-reset h2 tt[md],.docs-markdown--traditional .docs-markdown-reset h3 code[md],.docs-markdown--traditional .docs-markdown-reset h3 tt[md],.docs-markdown--traditional .docs-markdown-reset h4 code[md],.docs-markdown--traditional .docs-markdown-reset h4 tt[md],.docs-markdown--traditional .docs-markdown-reset h5 code[md],.docs-markdown--traditional .docs-markdown-reset h5 tt[md],.docs-markdown--traditional .docs-markdown-reset h6 code[md],.docs-markdown--traditional .docs-markdown-reset h6 tt[md]{font-size:inherit}.docs-markdown--traditional .docs-markdown-reset h1[md]{padding-bottom:.4em;font-size:2.05em;border-bottom:1px solid var(--docs-border-color,#eaecef)}.docs-markdown--traditional .docs-markdown-reset h2[md]{padding-bottom:.4em;font-size:1.6em;border-bottom:1px solid var(--docs-border-color,#eaecef)}.docs-markdown--traditional .docs-markdown-reset h3[md]{font-size:1.3em}.docs-markdown--traditional .docs-markdown-reset h4[md]{font-size:1.1em}.docs-markdown--traditional .docs-markdown-reset h5[md]{font-size:1em}.docs-markdown--traditional .docs-markdown-reset h6[md]{font-size:.9em;color:var(--docs-foreground-color-mute,#6a737d)}.docs-markdown--traditional .docs-markdown-reset strong[md]{font-weight:650;color:var(--docs-foreground-color,var(--vc-foreground-color,#24292f))}.docs-markdown--traditional .docs-markdown-reset del[md]{opacity:.72}.docs-markdown--traditional .docs-markdown-reset ol[md],.docs-markdown--traditional .docs-markdown-reset ul[md]{padding-left:1.75em}.docs-markdown--traditional .docs-markdown-reset ol.no-list[md],.docs-markdown--traditional .docs-markdown-reset ul.no-list[md]{padding:0;list-style-type:none}.docs-markdown--traditional .docs-markdown-reset ol ol[md],.docs-markdown--traditional .docs-markdown-reset ol ul[md],.docs-markdown--traditional .docs-markdown-reset ul ol[md],.docs-markdown--traditional .docs-markdown-reset ul ul[md]{margin-top:0;margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset li[md]{overflow-wrap:break-word}.docs-markdown--traditional .docs-markdown-reset li[md]::marker{font-weight:600;color:inherit}.docs-markdown--traditional .docs-markdown-reset li>p[md]{margin-top:16px}.docs-markdown--traditional .docs-markdown-reset li+li[md]{margin-top:.25em}.docs-markdown--traditional .docs-markdown-reset dl[md]{padding:0}.docs-markdown--traditional .docs-markdown-reset dl dt[md]{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.docs-markdown--traditional .docs-markdown-reset dl dd[md]{padding:0 16px;margin-bottom:16px}.docs-markdown--traditional .docs-markdown-reset table[md]{display:block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:100%;overflow:auto;border:1px solid var(--docs-border-color,#dfe2e5);border-collapse:separate;border-spacing:0;border-radius:8px}.docs-markdown--traditional .docs-markdown-reset table th[md]{font-weight:600;white-space:nowrap;background-color:var(--docs-background-color-soft,#f7f8fa)}.docs-markdown--traditional .docs-markdown-reset table td[md],.docs-markdown--traditional .docs-markdown-reset table th[md]{padding:8px 12px;text-align:left;vertical-align:top;border-right:1px solid var(--docs-border-color,#dfe2e5);border-bottom:1px solid var(--docs-border-color,#dfe2e5)}.docs-markdown--traditional .docs-markdown-reset table td[align=center][md],.docs-markdown--traditional .docs-markdown-reset table th[align=center][md]{text-align:center}.docs-markdown--traditional .docs-markdown-reset table td[align=right][md],.docs-markdown--traditional .docs-markdown-reset table th[align=right][md]{text-align:right}.docs-markdown--traditional .docs-markdown-reset table td[md]:last-child,.docs-markdown--traditional .docs-markdown-reset table th[md]:last-child{border-right:0}.docs-markdown--traditional .docs-markdown-reset table tbody tr:last-child td[md]{border-bottom:0}.docs-markdown--traditional .docs-markdown-reset table tr[md]{background-color:var(--docs-background-color,#fff)}.docs-markdown--traditional .docs-markdown-reset table tr[md]:nth-child(2n){background-color:var(--docs-code-background,#f6f8fa)}.docs-markdown--traditional .docs-markdown-reset table tbody tr[md]{-webkit-transition:background-color .15s ease;transition:background-color .15s ease}.docs-markdown--traditional .docs-markdown-reset table tbody tr[md]:hover{background-color:color-mix(in srgb,var(--docs-primary-color,#873bf4) 7%,var(--docs-background-color,#fff))}.docs-markdown--traditional .docs-markdown-reset table img[md]{background-color:transparent}.docs-markdown--traditional .docs-markdown-reset img[md]{max-width:100%;background-color:var(--docs-background-color,#fff);border-radius:6px;-webkit-box-sizing:content-box;box-sizing:content-box}.docs-markdown--traditional .docs-markdown-reset img[align=right][md]{padding-left:20px}.docs-markdown--traditional .docs-markdown-reset img[align=left][md]{padding-right:20px}.docs-markdown--traditional .docs-markdown-reset .emoji[md]{max-width:none;vertical-align:text-top;background-color:transparent}.docs-markdown--traditional .docs-markdown-reset span.frame[md]{display:block;overflow:hidden}.docs-markdown--traditional .docs-markdown-reset span.frame>span[md]{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--docs-border-color,#dfe2e5)}.docs-markdown--traditional .docs-markdown-reset span.frame span img[md]{display:block;float:left}.docs-markdown--traditional .docs-markdown-reset span.frame span span[md]{display:block;padding:5px 0 0;clear:both;color:var(--docs-foreground-color,#24292e)}.docs-markdown--traditional .docs-markdown-reset span.align-center[md]{display:block;overflow:hidden;clear:both}.docs-markdown--traditional .docs-markdown-reset span.align-center>span[md]{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.docs-markdown--traditional .docs-markdown-reset span.align-center span img[md]{margin:0 auto;text-align:center}.docs-markdown--traditional .docs-markdown-reset span.align-right[md]{display:block;overflow:hidden;clear:both}.docs-markdown--traditional .docs-markdown-reset span.align-right>span[md]{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.docs-markdown--traditional .docs-markdown-reset span.align-right span img[md]{margin:0;text-align:right}.docs-markdown--traditional .docs-markdown-reset span.float-left[md]{display:block;float:left;margin-right:13px;overflow:hidden}.docs-markdown--traditional .docs-markdown-reset span.float-left span[md]{margin:13px 0 0}.docs-markdown--traditional .docs-markdown-reset span.float-right[md]{display:block;float:right;margin-left:13px;overflow:hidden}.docs-markdown--traditional .docs-markdown-reset span.float-right>span[md]{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.docs-markdown--traditional .docs-markdown-reset .csv-data td[md],.docs-markdown--traditional .docs-markdown-reset .csv-data th[md]{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.docs-markdown--traditional .docs-markdown-reset .csv-data .blob-num[md]{padding:10px 8px 9px;text-align:right;background:var(--docs-background-color,#fff);border:0}.docs-markdown--traditional .docs-markdown-reset .csv-data tr[md]{border-top:0}.docs-markdown--traditional .docs-markdown-reset .csv-data th[md]{font-weight:600;background:var(--docs-code-background,#f6f8fa);border-top:0}.docs-markdown--traditional .docs-markdown-reset code[md],.docs-markdown--traditional .docs-markdown-reset tt[md]{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em;border-radius:4px}.docs-markdown--traditional .docs-markdown-reset code br[md],.docs-markdown--traditional .docs-markdown-reset tt br[md]{display:none}.docs-markdown--traditional .docs-markdown-reset del code[md]{text-decoration:inherit}.docs-markdown--traditional .docs-markdown-reset pre[md]{overflow-wrap:normal}.docs-markdown--traditional .docs-markdown-reset .highlight[md]{margin-bottom:16px}.docs-markdown--traditional .docs-markdown-reset .highlight pre[md]{margin-bottom:0;word-break:normal;padding:16px 18px;overflow:auto;font-size:.9em;line-height:1.65;background-color:var(--docs-code-background,#f6f8fa);border:1px solid var(--docs-border-color,#eaeefb);border-radius:6px}.docs-markdown--traditional .docs-markdown-reset pre tt[md]{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;overflow-wrap:normal;background-color:transparent;border:0}.docs-markdown--traditional .docs-markdown-reset .tip[md]{padding:10px 14px;margin:20px 0;background-color:var(--docs-tip-background,#f9f0ff);border-left:4px solid var(--docs-primary-color,#873bf4);border-radius:6px}.docs-markdown--traditional .docs-markdown-reset .tip[md] p{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset .warning[md]{padding:10px 14px;margin:20px 0;background-color:var(--docs-warning-background,#fff6f7);border-left:4px solid #fe6c6f;border-radius:6px}.docs-markdown--traditional .docs-markdown-reset .warning[md] p{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs,.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs[md]{margin:20px 0}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__nav{min-width:0;overflow-x:auto;-webkit-box-shadow:inset 0 -1px 0 color-mix(in srgb,currentcolor 10%,transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb,currentcolor 10%,transparent)}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:24px;margin:0;white-space:nowrap}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 0 8px;font-size:14px;font-weight:500;line-height:1.75;color:var(--docs-foreground-color-light,#445368);cursor:pointer;background:transparent;border:0;-webkit-box-shadow:inset 0 -1px 0 transparent;box-shadow:inset 0 -1px 0 transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab:hover{-webkit-box-shadow:inset 0 -1px 0 color-mix(in srgb,currentcolor 25%,transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb,currentcolor 25%,transparent)}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab--active,.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab[aria-selected=true]{color:var(--docs-foreground-color,#24292f);-webkit-box-shadow:inset 0 -2px 0 currentcolor;box-shadow:inset 0 -2px 0 currentcolor}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__panel{padding-top:20px}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__panel>:first-child{margin-top:0}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__panel>:last-child{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs-error{padding:10px 14px;margin:20px 0;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px}.docs-markdown--traditional .docs-markdown-reset code[md]:not(.hljs){padding:.15em .4em;color:var(--docs-primary-color,#873bf4);background-color:var(--docs-code-background,#f9fafc);border:1px solid var(--docs-border-color,#eaeefb);border-radius:4px}.docs-markdown--traditional .docs-markdown-reset .tip[md] code:not(.hljs){color:var(--docs-foreground-color-light,#445368);background-color:color-mix(in srgb,var(--docs-background-color,#fff) 70%,transparent)}.docs-markdown--traditional .docs-markdown-reset a[md][href]:not(.header-anchor){color:var(--docs-link-color,#2d8cf0);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,currentcolor 20%,transparent);text-decoration-color:color-mix(in srgb,currentcolor 20%,transparent);text-underline-offset:.2em;-webkit-transition:color .2s ease,-webkit-text-decoration-color .2s ease;transition:color .2s ease,-webkit-text-decoration-color .2s ease;transition:color .2s ease,text-decoration-color .2s ease;transition:color .2s ease,text-decoration-color .2s ease,-webkit-text-decoration-color .2s ease}.docs-markdown--traditional .docs-markdown-reset a[md][href]:not(.header-anchor):hover{color:var(--docs-link-hover-color,color-mix(in srgb,var(--docs-link-color,#2d8cf0) 82%,#000));-webkit-text-decoration-color:color-mix(in srgb,currentcolor 45%,transparent);text-decoration-color:color-mix(in srgb,currentcolor 45%,transparent)}.docs-markdown--traditional .docs-markdown-reset a[md][href]:not(.header-anchor):focus-visible{border-radius:2px;outline:2px solid color-mix(in srgb,var(--docs-link-color,#2d8cf0) 45%,transparent);outline-offset:2px}.docs-markdown--traditional .docs-markdown-reset>details{padding:10px 14px;margin-bottom:18px;background-color:var(--docs-background-color-soft,#f7f8fa);border:1px solid var(--docs-border-color,#e1e4e8);border-radius:6px}.docs-markdown--traditional .docs-markdown-reset>details>summary{font-weight:600;color:var(--docs-foreground-color,var(--vc-foreground-color,#24292f));cursor:pointer;-webkit-transition:color .2s ease;transition:color .2s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.docs-markdown--traditional .docs-markdown-reset>details>summary:hover{color:var(--docs-link-color,#2d8cf0)}.docs-markdown--traditional .docs-markdown-reset>details>summary::marker{color:var(--docs-foreground-color-mute,#6a737d)}.docs-markdown--traditional .docs-markdown-reset>details[open]>summary{margin-bottom:12px}.docs-markdown--traditional .docs-markdown-reset>details>:last-child{margin-bottom:0}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-callout-icon{display:none}.docs-markdown--traditional .docs-markdown-reset .docs-markdown-callout-body{display:contents}.docs-markdown--traditional .docs-markdown-reset .tip[md].tip--filled{padding:10px 14px;margin:20px 0;background-color:var(--docs-tip-background,#f9f0ff);border-left:4px solid var(--docs-primary-color,#873bf4);border-radius:6px}.docs-markdown--traditional .docs-markdown-reset .warning[md].warning--filled{padding:10px 14px;margin:20px 0;background-color:var(--docs-warning-background,#fff6f7);border-left:4px solid #fe6c6f;border-radius:6px}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset,[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset{color:var(--docs-foreground-color-light,#d9d9d9)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset hr[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset hr[md]{background-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset blockquote[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset blockquote[md]{color:var(--docs-foreground-color-mute,#b9b9b9);border-left-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset>details,[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset>details{background-color:var(--docs-background-color-soft,#252b3a);border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__nav,[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__nav{-webkit-box-shadow:inset 0 -1px 0 color-mix(in srgb,#fff 12%,transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb,#fff 12%,transparent)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab,[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab{color:var(--docs-foreground-color-light,#d9d9d9)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab--active,[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab[aria-selected=true],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab--active,[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs__tab[aria-selected=true]{color:var(--docs-foreground-color,#f8f8f8);-webkit-box-shadow:inset 0 -2px 0 currentcolor;box-shadow:inset 0 -2px 0 currentcolor}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs-error,[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .docs-markdown-tabs-error{color:#fecaca;background:color-mix(in srgb,#991b1b 24%,transparent);border-color:color-mix(in srgb,#fecaca 35%,transparent)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset img[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset kbd[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table tr[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset img[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset kbd[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table tr[md]{color:var(--docs-foreground-color-light,#d9d9d9);background-color:var(--docs-background-color,#171b24);border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset h1[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset h2[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset span.frame>span[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table td[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table th[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset h1[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset h2[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset span.frame>span[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table td[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table th[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table[md]{border-color:var(--docs-border-color,#3b4355)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .csv-data th[md],[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table tr[md]:nth-child(2n),[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .csv-data th[md],[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset table tr[md]:nth-child(2n){background-color:var(--docs-background-color-soft,#252b3a)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .tip[md] code:not(.hljs),[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset .tip[md] code:not(.hljs){color:var(--docs-foreground-color-light,#d9d9d9);background-color:var(--docs-background-color-mute,#303748)}[data-doc-theme=dark] .docs-markdown--traditional .docs-markdown-reset code[md]:not(.hljs),[data-vc-theme=dark] .docs-markdown--traditional .docs-markdown-reset code[md]:not(.hljs){color:var(--docs-code-foreground,color-mix(in srgb,var(--docs-primary-color,#873bf4) 65%,#fff))}@media screen and (width <= 768px){.docs-markdown--traditional .docs-markdown-reset{font-size:13px}.docs-markdown--traditional .docs-markdown-reset h1[md]{font-size:1.7em}.docs-markdown--traditional .docs-markdown-reset h2[md]{font-size:1.35em}.docs-markdown--traditional .docs-markdown-reset .anchor[md],.docs-markdown--traditional .docs-markdown-reset .header-anchor[md]{margin-left:-12px}.docs-markdown--traditional .docs-markdown-reset table td[md],.docs-markdown--traditional .docs-markdown-reset table th[md]{padding:7px 10px}}@media (prefers-reduced-motion:reduce){.docs-markdown--traditional .docs-markdown-reset .anchor[md],.docs-markdown--traditional .docs-markdown-reset a[md][href],.docs-markdown--traditional .docs-markdown-reset table tbody tr[md],.docs-markdown--traditional .docs-markdown-reset>details>summary,.docs-markdown--traditional .header-anchor{-webkit-transition:none;transition:none}}.docs-markdown{position:relative}/*$vite$:1*/
|