@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # @deot/docs-markdown
2
2
 
3
- `@deot/docs-markdown` 提供 Vue 3 Markdown 渲染组件,内置文档指示器、标题锚点、链接识别、tip/warning 容器、代码高亮预览和按需加载的 Playground 容器。
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 reg = new RegExp(`^${PLAYGROUND}\\s*(.*)$`);
77
+ const playgroundReg = new RegExp(`^${PLAYGROUND}\\s*(.*)$`);
76
78
  $md.use(markdown_it_container.default, PLAYGROUND, { validate(params) {
77
- return params.trim().match(reg);
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
- md.core.ruler.after("block", "runtime-files", (state) => {
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
- for (let index = 0; index < tokens.length; index++) {
251
- const token = tokens[index];
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 = "pre, .docs-markdown-code-preview, [data-playground][data-code], [data-playground][data-files]";
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 reg = new RegExp(`^${PLAYGROUND}\\s*(.*)$`);
49
+ const playgroundReg = new RegExp(`^${PLAYGROUND}\\s*(.*)$`);
48
50
  $md.use(mdContainer, PLAYGROUND, { validate(params) {
49
- return params.trim().match(reg);
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
- md.core.ruler.after("block", "runtime-files", (state) => {
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
- for (let index = 0; index < tokens.length; index++) {
223
- const token = tokens[index];
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 = "pre, .docs-markdown-code-preview, [data-playground][data-code], [data-playground][data-files]";
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 };
@@ -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*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deot/docs-markdown",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "main": "dist/index.js",
5
5
  "style": "dist/index.style.css",
6
6
  "types": "dist/index.d.ts",