@deot/docs-playground 1.1.3 → 1.1.4

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.
Files changed (27) hide show
  1. package/README.md +1 -0
  2. package/dist/{cdn-Czve5_9b.cjs → cdn-BoYKnGD3.cjs} +7 -0
  3. package/dist/{cdn-DEvdGJu2.js → cdn-DQoETju_.js} +2 -1
  4. package/dist/{compile-Bw7v7QE-.js → compile-BHD98Ttf.js} +24 -32
  5. package/dist/{compile-DSMuM8zl.cjs → compile-Da095AyM.cjs} +24 -32
  6. package/dist/{files-C5UMzYxA.js → files-BqucFldk.js} +33 -4
  7. package/dist/{files-D5LNOtjp.cjs → files-BsAOZiPN.cjs} +93 -18
  8. package/dist/index.cjs +35 -30
  9. package/dist/index.js +35 -30
  10. package/dist/index.style.css +1 -1
  11. package/dist/{linker-B--sjERT.cjs → linker-DIpEiean.cjs} +2 -2
  12. package/dist/{linker-JHdz37DK.js → linker-xqjVl0X0.js} +2 -2
  13. package/dist/{local-sandbox-DnkKrBhf.cjs → local-sandbox-0ojvBQPO.cjs} +12 -8
  14. package/dist/{local-sandbox-B8IJ5jWb.js → local-sandbox-DvcgaBOa.js} +14 -21
  15. package/dist/{modules-DlLJF_vd.js → modules-BGzPcoRR.js} +7 -1
  16. package/dist/{modules-CInmL-8h.cjs → modules-E6kK6ZJH.cjs} +7 -1
  17. package/dist/{remote-CKMzn1J3.cjs → remote-BG0E1Ugo.cjs} +67 -21
  18. package/dist/{remote-DfXAsO9n.js → remote-mq4zvrI1.js} +67 -21
  19. package/dist/script-BiCcpu3G.cjs +111 -0
  20. package/dist/script-DjUf9uWK.js +98 -0
  21. package/dist/{scss-DaIqB_qT.cjs → scss-B8OFbz1k.cjs} +23 -5
  22. package/dist/{scss-Co2it4vB.js → scss-DIh6971q.js} +18 -6
  23. package/dist/{store-D8vwi-HV.js → store-BOyC8F2y.js} +149 -6
  24. package/dist/{store-BF7z-oaO.cjs → store-DKawhFZu.cjs} +151 -6
  25. package/package.json +8 -7
  26. package/dist/script-5Xzzx7u5.cjs +0 -57
  27. package/dist/script-xKUjE8pf.js +0 -46
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
- import { a as DEFAULT_CDN_URL, i as normalizeCdnURL, n as createBuiltinImports, o as DEFAULT_ENTRY, r as createBuiltinStyles, s as NEW_SFC_CODE } from "./cdn-DEvdGJu2.js";
2
- import { A as PREVIEW_SCROLLER_USE_CODE, C as toErrorText, D as resolveSandboxMessageSource, E as resolveSandboxContainer, M as PREVIEW_SCROLL_HTML_CLASS, N as PREVIEW_SCROLL_RESET_CODE, O as useSandboxAutoHeight, S as formatSandboxRuntimeError, T as isSandboxMessage, _ as removePlaygroundStyleOverride, a as createRuntimeStore, b as setPlaygroundSiteStyles, c as applyPlaygroundImportMapOverride, d as getPlaygroundImportMapOverrides, f as getPlaygroundSiteModules, g as removePlaygroundImportMapOverride, h as isSafePlaygroundHref, i as createRuntimePreviewOptions, j as PREVIEW_SCROLL_CONTENT_CLASS, k as PREVIEW_SCROLLER_IMPORT_CODE, l as applyPlaygroundStyleOverride, m as getPlaygroundStyleOverrides, n as createReplFile, o as toReplFilename, p as getPlaygroundSiteStyles, s as PlaygroundService, t as PLAYGROUND_RUNTIME_CANVAS_BACKGROUND, u as clearPlaygroundMaps, v as setPlaygroundImportMapOverrides, w as useSandboxRuntimeErrorGuard, x as setPlaygroundStyleOverrides, y as setPlaygroundSiteModules } from "./store-D8vwi-HV.js";
3
- import { r as whenSassReady } from "./scss-Co2it4vB.js";
1
+ import { s as isIgnoredFilename } from "./files-BqucFldk.js";
2
+ import { c as NEW_SFC_CODE, i as normalizeCdnURL, n as createBuiltinImports, o as DEFAULT_CDN_URL, r as createBuiltinStyles, s as DEFAULT_ENTRY } from "./cdn-DQoETju_.js";
3
+ import { A as PREVIEW_SCROLLER_USE_CODE, C as toErrorText, D as resolveSandboxMessageSource, E as resolveSandboxContainer, M as PREVIEW_SCROLL_HTML_CLASS, N as PREVIEW_SCROLL_RESET_CODE, O as useSandboxAutoHeight, S as formatSandboxRuntimeError, T as isSandboxMessage, _ as removePlaygroundStyleOverride, a as createRuntimeStore, b as setPlaygroundSiteStyles, c as applyPlaygroundImportMapOverride, d as getPlaygroundImportMapOverrides, f as getPlaygroundSiteModules, g as removePlaygroundImportMapOverride, h as isSafePlaygroundHref, i as createRuntimePreviewOptions, j as PREVIEW_SCROLL_CONTENT_CLASS, k as PREVIEW_SCROLLER_IMPORT_CODE, l as applyPlaygroundStyleOverride, m as getPlaygroundStyleOverrides, n as createReplFile, o as toReplFilename, p as getPlaygroundSiteStyles, s as PlaygroundService, t as PLAYGROUND_RUNTIME_CANVAS_BACKGROUND, u as clearPlaygroundMaps, v as setPlaygroundImportMapOverrides, w as useSandboxRuntimeErrorGuard, x as setPlaygroundStyleOverrides, y as setPlaygroundSiteModules } from "./store-BOyC8F2y.js";
4
+ import { i as whenSassReady } from "./scss-DIh6971q.js";
4
5
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, toDisplayString, unref, vModelText, vShow, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
5
6
  import { Clipboard, Dropdown, DropdownItem, DropdownMenu, Message, Popconfirm, Portal, Scroller, TransitionFade } from "@deot/vc";
6
7
  import { provideLocale, useLocale } from "@deot/docs-locale";
@@ -436,7 +437,7 @@ var _hoisted_5$4 = ["onKeydown"];
436
437
  var _hoisted_6$3 = ["title"];
437
438
  var _hoisted_7$3 = ["title", "aria-label"];
438
439
  var _hoisted_8$2 = ["title", "aria-label"];
439
- var _hoisted_9$2 = { class: "docs-playground-editor__actions" };
440
+ var _hoisted_9$1 = { class: "docs-playground-editor__actions" };
440
441
  var _hoisted_10$1 = ["title"];
441
442
  var _hoisted_11$1 = ["title", "disabled"];
442
443
  var _hoisted_12$1 = {
@@ -752,7 +753,7 @@ var Editor = new Portal(/* @__PURE__ */ defineComponent({
752
753
  ], 64))], 42, _hoisted_4$4);
753
754
  }), 128))]),
754
755
  _: 1
755
- }, 512), createElementVNode("div", _hoisted_9$2, [createElementVNode("button", {
756
+ }, 512), createElementVNode("div", _hoisted_9$1, [createElementVNode("button", {
756
757
  type: "button",
757
758
  title: unref(t)("playground.editor.createFile"),
758
759
  onClick: handleCreate
@@ -1181,7 +1182,7 @@ var _hoisted_8$1 = {
1181
1182
  class: "docs-playground__tool-divider",
1182
1183
  "aria-hidden": "true"
1183
1184
  };
1184
- var _hoisted_9$1 = ["aria-label"];
1185
+ var _hoisted_9 = ["aria-label"];
1185
1186
  var _hoisted_10 = [
1186
1187
  "title",
1187
1188
  "aria-label",
@@ -1354,7 +1355,7 @@ var toolbar_default = /* @__PURE__ */ defineComponent({
1354
1355
  "aria-pressed": item === __props.activeView,
1355
1356
  onClick: ($event) => emit("view-change", item)
1356
1357
  }, toDisplayString(getViewLabel(item)), 11, _hoisted_10);
1357
- }), 128))], 8, _hoisted_9$1)) : createCommentVNode("v-if", true),
1358
+ }), 128))], 8, _hoisted_9)) : createCommentVNode("v-if", true),
1358
1359
  __props.showClose && (__props.showRuntimeActions || showViews.value) ? (openBlock(), createElementBlock("span", _hoisted_11)) : createCommentVNode("v-if", true),
1359
1360
  __props.showClose ? (openBlock(), createElementBlock("button", {
1360
1361
  key: 3,
@@ -1419,7 +1420,7 @@ var Alone = new Portal(/* @__PURE__ */ defineComponent({
1419
1420
  "portal-fulfilled"
1420
1421
  ],
1421
1422
  setup(__props, { emit: __emit }) {
1422
- const LocalSandbox = defineAsyncComponent(() => import("./local-sandbox-B8IJ5jWb.js").then((n) => n.t));
1423
+ const LocalSandbox = defineAsyncComponent(() => import("./local-sandbox-DvcgaBOa.js").then((n) => n.t));
1423
1424
  const props = __props;
1424
1425
  const emit = __emit;
1425
1426
  const { t } = useLocale();
@@ -1598,26 +1599,25 @@ var Alone = new Portal(/* @__PURE__ */ defineComponent({
1598
1599
  });
1599
1600
  //#endregion
1600
1601
  //#region packages/playground/src/core/runtime/runtime.vue?vue&type=script&setup=true&lang.ts
1601
- var _hoisted_1$1 = { class: "docs-playground-runtime-host" };
1602
- var _hoisted_2$1 = {
1602
+ var _hoisted_1$1 = {
1603
1603
  key: 0,
1604
1604
  class: "docs-playground__runtime-error",
1605
1605
  role: "alert"
1606
1606
  };
1607
- var _hoisted_3$1 = {
1607
+ var _hoisted_2$1 = {
1608
1608
  key: 0,
1609
1609
  class: "docs-playground__header"
1610
1610
  };
1611
- var _hoisted_4$1 = ["id", "title"];
1612
- var _hoisted_5$1 = ["href"];
1613
- var _hoisted_6 = { class: "docs-playground__title-text" };
1614
- var _hoisted_7 = {
1611
+ var _hoisted_3$1 = ["id", "title"];
1612
+ var _hoisted_4$1 = ["href"];
1613
+ var _hoisted_5$1 = { class: "docs-playground__title-text" };
1614
+ var _hoisted_6 = {
1615
1615
  key: 1,
1616
1616
  class: "docs-playground__runtime-error",
1617
1617
  role: "alert"
1618
1618
  };
1619
- var _hoisted_8 = { class: "docs-playground-runtime__viewport-stage" };
1620
- var _hoisted_9 = [
1619
+ var _hoisted_7 = { class: "docs-playground-runtime__viewport-stage" };
1620
+ var _hoisted_8 = [
1621
1621
  "aria-expanded",
1622
1622
  "title",
1623
1623
  "aria-label"
@@ -1663,7 +1663,7 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1663
1663
  "navigate"
1664
1664
  ],
1665
1665
  setup(__props, { expose: __expose, emit: __emit }) {
1666
- const LocalSandbox = defineAsyncComponent(() => import("./local-sandbox-B8IJ5jWb.js").then((n) => n.t));
1666
+ const LocalSandbox = defineAsyncComponent(() => import("./local-sandbox-DvcgaBOa.js").then((n) => n.t));
1667
1667
  const props = __props;
1668
1668
  const { locale, t } = useLocale();
1669
1669
  const displayTitle = computed(() => props.title.trim());
@@ -1702,6 +1702,7 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1702
1702
  }.MODE !== "development";
1703
1703
  const copyValue = computed(() => props.files[props.entry] || "");
1704
1704
  const store = props.local ? null : createRuntimeStore(props.files, props.entry, props.options);
1705
+ const storeReady = computed(() => store && !store.loading && Object.values(store.files).every((file) => isIgnoredFilename(file.filename) || !/\.(?:vue|[jt]sx?|json|s[ac]ss)$/.test(file.filename) || !file.code.trim() || !!file.compiled.js));
1705
1706
  const sandboxRef = ref(null);
1706
1707
  const localError = ref({
1707
1708
  compile: "",
@@ -1928,13 +1929,13 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1928
1929
  openPopup: handleOpenPopup
1929
1930
  });
1930
1931
  return (_ctx, _cache) => {
1931
- return openBlock(), createElementBlock("div", _hoisted_1$1, [__props.styleless ? (openBlock(), createElementBlock("div", {
1932
+ return openBlock(), createElementBlock("div", { class: normalizeClass(["docs-playground-runtime-host", { "docs-playground-runtime-host--direct": __props.local && __props.styleless }]) }, [__props.styleless ? (openBlock(), createElementBlock("div", {
1932
1933
  key: 0,
1933
1934
  ref_key: "runtimeRoot",
1934
1935
  ref: runtimeRoot,
1935
1936
  class: "docs-playground-runtime--styleless",
1936
1937
  style: normalizeStyle(stylelessStyle.value)
1937
- }, [errorText.value ? (openBlock(), createElementBlock("pre", _hoisted_2$1, toDisplayString(errorText.value), 1)) : createCommentVNode("v-if", true), createElementVNode("div", {
1938
+ }, [errorText.value ? (openBlock(), createElementBlock("pre", _hoisted_1$1, toDisplayString(errorText.value), 1)) : createCommentVNode("v-if", true), createElementVNode("div", {
1938
1939
  class: "docs-playground-runtime__viewport",
1939
1940
  style: normalizeStyle(viewportStyle.value)
1940
1941
  }, [__props.local ? (openBlock(), createBlock(unref(LocalSandbox), {
@@ -1946,13 +1947,15 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1946
1947
  options: __props.options,
1947
1948
  "preview-scroller": __props.previewScroller,
1948
1949
  "clear-console": clearConsole,
1950
+ "auto-height": !unref(getViewportHeight)(__props.viewport),
1949
1951
  onError: handleLocalError
1950
1952
  }, null, 8, [
1951
1953
  "files",
1952
1954
  "entry",
1953
1955
  "options",
1954
- "preview-scroller"
1955
- ])) : unref(store) ? (openBlock(), createBlock(unref(Sandbox), {
1956
+ "preview-scroller",
1957
+ "auto-height"
1958
+ ])) : unref(store) && storeReady.value ? (openBlock(), createBlock(unref(Sandbox), {
1956
1959
  key: 1,
1957
1960
  ref_key: "sandboxRef",
1958
1961
  ref: sandboxRef,
@@ -1965,7 +1968,7 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1965
1968
  ref: runtimeRoot,
1966
1969
  class: "docs-playground-runtime"
1967
1970
  }, [
1968
- !__props.hideChrome ? (openBlock(), createElementBlock("div", _hoisted_3$1, [displayTitle.value ? (openBlock(), createElementBlock("span", {
1971
+ !__props.hideChrome ? (openBlock(), createElementBlock("div", _hoisted_2$1, [displayTitle.value ? (openBlock(), createElementBlock("span", {
1969
1972
  key: 0,
1970
1973
  ref_key: "titleEl",
1971
1974
  ref: titleEl,
@@ -1976,7 +1979,7 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1976
1979
  }, [createElementVNode("a", {
1977
1980
  class: "docs-playground__title-anchor",
1978
1981
  href: `#${titleId.value}`
1979
- }, "#", 8, _hoisted_5$1), createElementVNode("span", _hoisted_6, toDisplayString(displayTitle.value), 1)], 8, _hoisted_4$1)) : createCommentVNode("v-if", true), createVNode(toolbar_default, {
1982
+ }, "#", 8, _hoisted_4$1), createElementVNode("span", _hoisted_5$1, toDisplayString(displayTitle.value), 1)], 8, _hoisted_3$1)) : createCommentVNode("v-if", true), createVNode(toolbar_default, {
1980
1983
  "copy-value": copyValue.value,
1981
1984
  viewport: __props.viewport,
1982
1985
  "viewport-options": __props.viewportOptions,
@@ -1990,11 +1993,11 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1990
1993
  "viewport",
1991
1994
  "viewport-options"
1992
1995
  ])])) : createCommentVNode("v-if", true),
1993
- errorText.value ? (openBlock(), createElementBlock("pre", _hoisted_7, toDisplayString(errorText.value), 1)) : createCommentVNode("v-if", true),
1996
+ errorText.value ? (openBlock(), createElementBlock("pre", _hoisted_6, toDisplayString(errorText.value), 1)) : createCommentVNode("v-if", true),
1994
1997
  createElementVNode("section", {
1995
1998
  class: normalizeClass(["docs-playground__preview", { "is-expanded": previewExpanded.value }]),
1996
1999
  style: normalizeStyle(previewStyle.value)
1997
- }, [createElementVNode("div", _hoisted_8, [createElementVNode("div", {
2000
+ }, [createElementVNode("div", _hoisted_7, [createElementVNode("div", {
1998
2001
  class: "docs-playground-runtime__viewport",
1999
2002
  style: normalizeStyle(viewportStyle.value)
2000
2003
  }, [__props.local ? (openBlock(), createBlock(unref(LocalSandbox), {
@@ -2006,13 +2009,15 @@ var runtime_default = /* @__PURE__ */ defineComponent({
2006
2009
  options: __props.options,
2007
2010
  "preview-scroller": __props.previewScroller,
2008
2011
  "clear-console": clearConsole,
2012
+ "auto-height": !unref(getViewportHeight)(__props.viewport),
2009
2013
  onError: handleLocalError
2010
2014
  }, null, 8, [
2011
2015
  "files",
2012
2016
  "entry",
2013
2017
  "options",
2014
- "preview-scroller"
2015
- ])) : unref(store) ? (openBlock(), createBlock(unref(Sandbox), {
2018
+ "preview-scroller",
2019
+ "auto-height"
2020
+ ])) : unref(store) && storeReady.value ? (openBlock(), createBlock(unref(Sandbox), {
2016
2021
  key: sandboxKey.value,
2017
2022
  ref_key: "sandboxRef",
2018
2023
  ref: sandboxRef,
@@ -2029,8 +2034,8 @@ var runtime_default = /* @__PURE__ */ defineComponent({
2029
2034
  title: expandLabel.value,
2030
2035
  "aria-label": expandLabel.value,
2031
2036
  onClick: handleTogglePreviewExpand
2032
- }, [createVNode(unref(icon_default), { name: "expand" })], 10, _hoisted_9)) : createCommentVNode("v-if", true)], 6)
2033
- ], 512))]);
2037
+ }, [createVNode(unref(icon_default), { name: "expand" })], 10, _hoisted_8)) : createCommentVNode("v-if", true)], 6)
2038
+ ], 512))], 2);
2034
2039
  };
2035
2040
  }
2036
2041
  });
@@ -1 +1 @@
1
- .docs-playground-icon{display:block;width:18px;height:18px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.docs-playground-files{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;max-height:100%;min-height:0;overflow:hidden;background:var(--docs-code-background,var(--vc-background-color,#f6f8fa));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e2e8f0));border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-files__tabs-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;background:transparent;border-bottom:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e2e8f0));-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 40px;-ms-flex:0 0 40px;flex:0 0 40px}.docs-playground-files__scroller{width:0;height:40px;min-width:0;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;scrollbar-width:none}.docs-playground-files__scroller::-webkit-scrollbar{display:none}.docs-playground-files__scroller .vc-scroller-track.is-vertical{display:none!important}.docs-playground-files__tabs{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:40px;min-width:100%;padding:0 10px;-webkit-box-sizing:border-box;box-sizing:border-box;gap:4px}.docs-playground-files__tab{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:40px;padding:0 12px;font:inherit;font-size:13px;font-weight:500;line-height:40px;color:var(--docs-foreground-color-mute,var(--vc-color-dark-extralight,#71717a));white-space:nowrap;cursor:pointer;background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;gap:5px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-files__tab.is-active{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b))}.docs-playground-files__tab.is-active:after{position:absolute;right:8px;bottom:0;left:8px;height:3px;background:var(--docs-primary-color,var(--vc-color-primary,#5495f6));border-radius:2px 2px 0 0;content:""}.docs-playground-files__entry{font-size:10px;line-height:16px;color:var(--docs-foreground-color-mute,var(--vc-color-dark-extralight,#71717a))}.docs-playground-files__body{min-height:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground-editor button{padding:3px 7px;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter));white-space:nowrap;cursor:pointer;background:var(--docs-background-color,var(--vc-background-color-light));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper));border-radius:8px}.docs-playground-editor button:disabled{cursor:not-allowed;opacity:.5}.docs-playground-editor__wrapper{position:fixed;right:10px;bottom:10px;z-index:1001;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:680px;max-height:calc(100vh - 20px);overflow:hidden;font-size:13px;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter));background:var(--docs-background-color,var(--vc-background-color-light));border-radius:8px;opacity:1;-webkit-box-shadow:0 0 50px rgba(0,0,0,.2);box-shadow:0 0 50px rgba(0,0,0,.2);-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-editor__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:10px;font-size:20px;line-height:20px;cursor:move;background:var(--docs-background-color-soft,var(--vc-background-color))!important;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.docs-playground-editor__files{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;min-width:0;padding:6px 8px;overflow:hidden;background:var(--docs-background-color-soft,var(--vc-background-color));border-top:1px solid var(--docs-border-color,var(--vc-color-light-deeper));border-bottom:1px solid var(--docs-border-color,var(--vc-color-light-deeper));-webkit-box-sizing:border-box;box-sizing:border-box;gap:8px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.docs-playground-editor__actions{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;gap:4px}.docs-playground-editor__scroller{width:0;min-width:0;-webkit-box-flex:1;-webkit-flex:1 1;-ms-flex:1 1;flex:1 1;scrollbar-width:none}.docs-playground-editor__scroller::-webkit-scrollbar{display:none}.docs-playground-editor__tabs{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;min-width:100%;padding:6px 6px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box;gap:8px}.docs-playground-editor__tab{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:26px;padding:3px 12px 3px 7px;line-height:18px;white-space:nowrap;cursor:pointer;background:var(--docs-background-color,var(--vc-background-color-light));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper));border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;gap:5px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-editor__tab.is-active{color:#fff;background:#2563eb;border-color:#2563eb}.docs-playground-editor__filename{width:100px;height:18px;padding:0 3px;font:inherit;line-height:16px;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter));background:var(--docs-background-color,var(--vc-background-color-light));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper));-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground-editor__close{position:absolute;top:-6px;right:-6px;z-index:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:14px;height:14px;padding:0;font-size:0;line-height:0;color:#fff;background-color:#5495f6!important;border:0;border-radius:7px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-editor__close:after,.docs-playground-editor__close:before{position:absolute;top:50%;left:50%;width:8px;height:1px;background-color:currentcolor;content:""}.docs-playground-editor__close:before{-webkit-transform:translate(-50%,-50%) rotate(45deg);-ms-transform:translate(-50%,-50%) rotate(45deg);transform:translate(-50%,-50%) rotate(45deg)}.docs-playground-editor__close:after{-webkit-transform:translate(-50%,-50%) rotate(-45deg);-ms-transform:translate(-50%,-50%) rotate(-45deg);transform:translate(-50%,-50%) rotate(-45deg)}.docs-playground-editor__delete{position:static!important}.docs-playground-editor__error{max-height:min(160px,25vh);padding:5px 10px;overflow:auto;color:var(--vc-color-error,#b91c1c);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--docs-error-background,#fef2f2);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.docs-playground-editor__body{min-width:0;min-height:240px;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.docs-playground-editor__editor{min-height:240px;padding:1px;background:var(--docs-code-background,var(--vc-background-color))!important}.docs-playground-editor__editor .cm-editor{height:auto}.docs-playground-editor__editor .cm-scroller{overflow:visible!important}.docs-playground-popup{position:fixed;inset:0;z-index:1000;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:20px 40px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-popup__mask{position:absolute;inset:0;background:rgba(15,23,42,.45)}.docs-playground-popup__shell{position:relative;z-index:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:100%;max-height:100%;overflow:hidden;background:var(--docs-background-color,var(--vc-background-color-light,#fff));border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground-popup__frame{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-popup__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 4px 0 0;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;gap:12px;-webkit-box-flex:0;-webkit-flex:0 0 44px;-ms-flex:0 0 44px;flex:0 0 44px}.docs-playground-popup__body{min-width:0;min-height:0;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground-popup__scroller{width:100%;height:100%}.docs-playground-popup__scroller-content{min-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground-popup__canvas{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground-popup__canvas .iframe-container,.docs-playground-popup__canvas .iframe-container iframe,.docs-playground-popup__canvas .sandbox{display:block;width:100%;height:100%;min-height:100%;background:var(--vc-background-color-light,var(--docs-background-color,#fff))!important}.docs-playground-popup__canvas .iframe-container iframe{border:0}.docs-playground-runtime,.docs-playground-runtime-host{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;min-height:0;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-runtime--styleless{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;min-height:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-runtime--styleless .docs-playground__runtime-error{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.docs-playground-runtime__viewport-stage{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:100%;min-width:0;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.docs-playground-runtime__viewport{position:relative;height:100%;min-width:0;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.docs-playground .iframe-container,.docs-playground .iframe-container iframe{width:100%;height:100%;background:var(--vc-background-color-light,var(--docs-background-color,#fff))!important}.docs-playground .iframe-container iframe{display:block;border:0}.docs-playground__preview{position:relative;min-height:0;overflow:hidden;border:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e2e8f0));border-radius:12px;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground__expand,.docs-playground__preview{background:var(--vc-background-color-light,var(--docs-background-color,#fff));-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground__expand{position:absolute;bottom:2px;left:50%;z-index:2;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;width:32px;height:24px;min-width:24px;min-height:24px;padding:0;color:var(--docs-foreground-color-mute,var(--vc-color-dark-lightest,#64748b));cursor:pointer;border:0;border-radius:8px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:color .15s ease,background-color .15s ease;transition:color .15s ease,background-color .15s ease;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__expand .docs-playground-icon{width:14px;height:14px;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease, -webkit-transform .15s ease}.docs-playground__expand:hover{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b))}.docs-playground__expand:focus-visible{outline:2px solid var(--docs-primary-color,var(--vc-color-primary,#2563eb));outline-offset:1px}.docs-playground__expand.is-expanded .docs-playground-icon{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.docs-playground__runtime-error{max-height:240px;padding:12px 16px;margin:0 0 8px;overflow:auto;font:inherit;font-size:13px;line-height:1.6;color:var(--vc-color-error,#b91c1c);white-space:pre-wrap;background:var(--docs-error-background,#fef2f2);border:1px solid #f5c2c2;border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow-wrap:anywhere}@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-playground{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:16px;overflow:hidden;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px}.docs-playground--files{height:100%;min-height:0;overflow:hidden}.docs-playground__error{height:100%;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.docs-playground__error,.docs-playground__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__header{padding:0 4px 0 0;background:transparent;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;gap:12px;-webkit-box-flex:0;-webkit-flex:0 0 44px;-ms-flex:0 0 44px;flex:0 0 44px}.docs-playground__title{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;min-width:0;padding-right:12px;overflow:hidden;font-size:14px;font-weight:600;line-height:20px;color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b));-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__title-anchor{position:absolute;top:50%;right:100%;width:14px;font-size:12px;line-height:1;color:inherit;text-align:center;text-decoration:none;opacity:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-playground__title-anchor:focus-visible{outline:2px solid var(--docs-primary-color,var(--vc-color-primary,#2563eb));outline-offset:1px;opacity:1}.docs-playground__title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-playground .docs-playground__title:hover .docs-playground__title-anchor{opacity:1}.docs-playground__tools{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:auto;font-size:13px;line-height:20px;gap:8px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.docs-playground__tool-group{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;padding:2px;background:var(--docs-background-color-soft,var(--vc-background-color,#f1f5f9));border-radius:999px;gap:0;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__tool-divider{display:inline-block;width:1px;height:16px;background:var(--docs-border-color,var(--vc-color-light-deeper,#e2e8f0));-webkit-box-flex:0;-webkit-flex:0 0 1px;-ms-flex:0 0 1px;flex:0 0 1px}.docs-playground__views{padding:2px;background:var(--docs-background-color-soft,var(--vc-background-color,#f1f5f9));gap:0}.docs-playground__view,.docs-playground__views{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:999px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__view{height:28px;padding:0 12px;font:inherit;font-size:13px;font-weight:500;line-height:20px;color:var(--docs-foreground-color-mute,var(--vc-color-dark-lightest,#64748b));cursor:pointer;background:transparent;border:0;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:color .15s ease,background-color .15s ease,-webkit-box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,-webkit-box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease,-webkit-box-shadow .15s ease}.docs-playground__view:hover{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b))}.docs-playground__view:focus-visible{outline:2px solid var(--docs-primary-color,var(--vc-color-primary,#2563eb));outline-offset:1px}.docs-playground__view.is-active{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b));background:var(--docs-background-color,var(--vc-background-color-light,#fff));-webkit-box-shadow:0 1px 2px rgba(15,23,42,.08);box-shadow:0 1px 2px rgba(15,23,42,.08)}.docs-playground__tool{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;width:28px;height:28px;padding:0;font:inherit;color:var(--docs-foreground-color-mute,var(--vc-color-dark-lightest,#64748b));cursor:pointer;background:transparent;border:0;border-radius:999px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-transition:color .15s ease,background-color .15s ease,-webkit-box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,-webkit-box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease,-webkit-box-shadow .15s ease}.docs-playground__tool .docs-playground-icon{width:16px;height:16px}.docs-playground__tool:hover{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b))}.docs-playground__tool:focus-visible{outline:2px solid var(--docs-primary-color,var(--vc-color-primary,#2563eb));outline-offset:1px}.docs-playground__tool.is-active{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b));background:var(--docs-background-color,var(--vc-background-color-light,#fff));-webkit-box-shadow:0 1px 2px rgba(15,23,42,.08);box-shadow:0 1px 2px rgba(15,23,42,.08)}.docs-playground__viewport-menu{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.docs-playground__viewport-trigger .docs-playground-icon{width:16px;height:16px}.docs-playground__viewport-options{min-width:136px}.docs-playground__viewport-option{white-space:nowrap}.docs-playground__editor .docs-playground-icon{width:16px;height:16px}.docs-playground__popup-close-mark{font-size:16px;line-height:1}.docs-playground-local{position:relative;width:100%;height:100%;min-width:0;min-height:0}.docs-playground-local__bridge{position:absolute;width:100%;height:100%;pointer-events:none;border:0;opacity:0;inset:0}.docs-playground-local__mount{position:relative;width:100%;height:100%;min-width:0;min-height:0}/*$vite$:1*/
1
+ .docs-playground-icon{display:block;width:18px;height:18px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.docs-playground-files{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;max-height:100%;min-height:0;overflow:hidden;background:var(--docs-code-background,var(--vc-background-color,#f6f8fa));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e2e8f0));border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-files__tabs-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;background:transparent;border-bottom:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e2e8f0));-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 40px;-ms-flex:0 0 40px;flex:0 0 40px}.docs-playground-files__scroller{width:0;height:40px;min-width:0;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;scrollbar-width:none}.docs-playground-files__scroller::-webkit-scrollbar{display:none}.docs-playground-files__scroller .vc-scroller-track.is-vertical{display:none!important}.docs-playground-files__tabs{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:40px;min-width:100%;padding:0 10px;-webkit-box-sizing:border-box;box-sizing:border-box;gap:4px}.docs-playground-files__tab{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:40px;padding:0 12px;font:inherit;font-size:13px;font-weight:500;line-height:40px;color:var(--docs-foreground-color-mute,var(--vc-color-dark-extralight,#71717a));white-space:nowrap;cursor:pointer;background:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;gap:5px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-files__tab.is-active{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b))}.docs-playground-files__tab.is-active:after{position:absolute;right:8px;bottom:0;left:8px;height:3px;background:var(--docs-primary-color,var(--vc-color-primary,#5495f6));border-radius:2px 2px 0 0;content:""}.docs-playground-files__entry{font-size:10px;line-height:16px;color:var(--docs-foreground-color-mute,var(--vc-color-dark-extralight,#71717a))}.docs-playground-files__body{min-height:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground-editor button{padding:3px 7px;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter));white-space:nowrap;cursor:pointer;background:var(--docs-background-color,var(--vc-background-color-light));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper));border-radius:8px}.docs-playground-editor button:disabled{cursor:not-allowed;opacity:.5}.docs-playground-editor__wrapper{position:fixed;right:10px;bottom:10px;z-index:1001;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:680px;max-height:calc(100vh - 20px);overflow:hidden;font-size:13px;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter));background:var(--docs-background-color,var(--vc-background-color-light));border-radius:8px;opacity:1;-webkit-box-shadow:0 0 50px rgba(0,0,0,.2);box-shadow:0 0 50px rgba(0,0,0,.2);-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-editor__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:10px;font-size:20px;line-height:20px;cursor:move;background:var(--docs-background-color-soft,var(--vc-background-color))!important;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.docs-playground-editor__files{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;min-width:0;padding:6px 8px;overflow:hidden;background:var(--docs-background-color-soft,var(--vc-background-color));border-top:1px solid var(--docs-border-color,var(--vc-color-light-deeper));border-bottom:1px solid var(--docs-border-color,var(--vc-color-light-deeper));-webkit-box-sizing:border-box;box-sizing:border-box;gap:8px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.docs-playground-editor__actions{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;gap:4px}.docs-playground-editor__scroller{width:0;min-width:0;-webkit-box-flex:1;-webkit-flex:1 1;-ms-flex:1 1;flex:1 1;scrollbar-width:none}.docs-playground-editor__scroller::-webkit-scrollbar{display:none}.docs-playground-editor__tabs{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;min-width:100%;padding:6px 6px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box;gap:8px}.docs-playground-editor__tab{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:26px;padding:3px 12px 3px 7px;line-height:18px;white-space:nowrap;cursor:pointer;background:var(--docs-background-color,var(--vc-background-color-light));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper));border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;gap:5px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-editor__tab.is-active{color:#fff;background:#2563eb;border-color:#2563eb}.docs-playground-editor__filename{width:100px;height:18px;padding:0 3px;font:inherit;line-height:16px;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter));background:var(--docs-background-color,var(--vc-background-color-light));border:1px solid var(--docs-border-color,var(--vc-color-light-deeper));-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground-editor__close{position:absolute;top:-6px;right:-6px;z-index:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:14px;height:14px;padding:0;font-size:0;line-height:0;color:#fff;background-color:#5495f6!important;border:0;border-radius:7px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-editor__close:after,.docs-playground-editor__close:before{position:absolute;top:50%;left:50%;width:8px;height:1px;background-color:currentcolor;content:""}.docs-playground-editor__close:before{-webkit-transform:translate(-50%,-50%) rotate(45deg);-ms-transform:translate(-50%,-50%) rotate(45deg);transform:translate(-50%,-50%) rotate(45deg)}.docs-playground-editor__close:after{-webkit-transform:translate(-50%,-50%) rotate(-45deg);-ms-transform:translate(-50%,-50%) rotate(-45deg);transform:translate(-50%,-50%) rotate(-45deg)}.docs-playground-editor__delete{position:static!important}.docs-playground-editor__error{max-height:min(160px,25vh);padding:5px 10px;overflow:auto;color:var(--vc-color-error,#b91c1c);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--docs-error-background,#fef2f2);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.docs-playground-editor__body{min-width:0;min-height:240px;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.docs-playground-editor__editor{min-height:240px;padding:1px;background:var(--docs-code-background,var(--vc-background-color))!important}.docs-playground-editor__editor .cm-editor{height:auto}.docs-playground-editor__editor .cm-scroller{overflow:visible!important}.docs-playground-popup{position:fixed;inset:0;z-index:1000;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:20px 40px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-popup__mask{position:absolute;inset:0;background:rgba(15,23,42,.45)}.docs-playground-popup__shell{position:relative;z-index:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:100%;max-height:100%;overflow:hidden;background:var(--docs-background-color,var(--vc-background-color-light,#fff));border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground-popup__frame{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-popup__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 4px 0 0;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;gap:12px;-webkit-box-flex:0;-webkit-flex:0 0 44px;-ms-flex:0 0 44px;flex:0 0 44px}.docs-playground-popup__body{min-width:0;min-height:0;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground-popup__scroller{width:100%;height:100%}.docs-playground-popup__scroller-content{min-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground-popup__canvas{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground-popup__canvas .iframe-container,.docs-playground-popup__canvas .iframe-container iframe,.docs-playground-popup__canvas .sandbox{display:block;width:100%;height:100%;min-height:100%;background:var(--vc-background-color-light,var(--docs-background-color,#fff))!important}.docs-playground-popup__canvas .iframe-container iframe{border:0}.docs-playground-runtime-host{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;min-height:0;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-runtime-host--direct,.docs-playground-runtime-host--direct .docs-playground-runtime--styleless,.docs-playground-runtime-host--direct .docs-playground-runtime__viewport{overflow:visible}.docs-playground-runtime{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground-runtime,.docs-playground-runtime--styleless{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;min-height:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.docs-playground-runtime--styleless{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground-runtime--styleless .docs-playground__runtime-error{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.docs-playground-runtime__viewport-stage{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:100%;min-width:0;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.docs-playground-runtime__viewport{position:relative;height:100%;min-width:0;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.docs-playground .iframe-container,.docs-playground .iframe-container iframe{width:100%;height:100%;background:var(--vc-background-color-light,var(--docs-background-color,#fff))!important}.docs-playground .iframe-container iframe{display:block;border:0}.docs-playground__preview{position:relative;min-height:0;overflow:hidden;border:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e2e8f0));border-radius:12px;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground__expand,.docs-playground__preview{background:var(--vc-background-color-light,var(--docs-background-color,#fff));-webkit-box-sizing:border-box;box-sizing:border-box}.docs-playground__expand{position:absolute;bottom:2px;left:50%;z-index:2;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;width:32px;height:24px;min-width:24px;min-height:24px;padding:0;color:var(--docs-foreground-color-mute,var(--vc-color-dark-lightest,#64748b));cursor:pointer;border:0;border-radius:8px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:color .15s ease,background-color .15s ease;transition:color .15s ease,background-color .15s ease;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__expand .docs-playground-icon{width:14px;height:14px;-webkit-transition:-webkit-transform .15s ease;transition:-webkit-transform .15s ease;transition:transform .15s ease;transition:transform .15s ease, -webkit-transform .15s ease}.docs-playground__expand:hover{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b))}.docs-playground__expand:focus-visible{outline:2px solid var(--docs-primary-color,var(--vc-color-primary,#2563eb));outline-offset:1px}.docs-playground__expand.is-expanded .docs-playground-icon{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.docs-playground__runtime-error{max-height:240px;padding:12px 16px;margin:0 0 8px;overflow:auto;font:inherit;font-size:13px;line-height:1.6;color:var(--vc-color-error,#b91c1c);white-space:pre-wrap;background:var(--docs-error-background,#fef2f2);border:1px solid #f5c2c2;border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow-wrap:anywhere}@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-playground{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:16px;overflow:hidden;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:8px}.docs-playground--files{height:100%;min-height:0;overflow:hidden}.docs-playground__error{height:100%;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.docs-playground__error,.docs-playground__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__header{padding:0 4px 0 0;background:transparent;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;gap:12px;-webkit-box-flex:0;-webkit-flex:0 0 44px;-ms-flex:0 0 44px;flex:0 0 44px}.docs-playground__title{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;min-width:0;padding-right:12px;overflow:hidden;font-size:14px;font-weight:600;line-height:20px;color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b));-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__title-anchor{position:absolute;top:50%;right:100%;width:14px;font-size:12px;line-height:1;color:inherit;text-align:center;text-decoration:none;opacity:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.docs-playground__title-anchor:focus-visible{outline:2px solid var(--docs-primary-color,var(--vc-color-primary,#2563eb));outline-offset:1px;opacity:1}.docs-playground__title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-playground .docs-playground__title:hover .docs-playground__title-anchor{opacity:1}.docs-playground__tools{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:auto;font-size:13px;line-height:20px;gap:8px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.docs-playground__tool-group{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;padding:2px;background:var(--docs-background-color-soft,var(--vc-background-color,#f1f5f9));border-radius:999px;gap:0;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__tool-divider{display:inline-block;width:1px;height:16px;background:var(--docs-border-color,var(--vc-color-light-deeper,#e2e8f0));-webkit-box-flex:0;-webkit-flex:0 0 1px;-ms-flex:0 0 1px;flex:0 0 1px}.docs-playground__views{padding:2px;background:var(--docs-background-color-soft,var(--vc-background-color,#f1f5f9));gap:0}.docs-playground__view,.docs-playground__views{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:999px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__view{height:28px;padding:0 12px;font:inherit;font-size:13px;font-weight:500;line-height:20px;color:var(--docs-foreground-color-mute,var(--vc-color-dark-lightest,#64748b));cursor:pointer;background:transparent;border:0;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-transition:color .15s ease,background-color .15s ease,-webkit-box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,-webkit-box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease,-webkit-box-shadow .15s ease}.docs-playground__view:hover{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b))}.docs-playground__view:focus-visible{outline:2px solid var(--docs-primary-color,var(--vc-color-primary,#2563eb));outline-offset:1px}.docs-playground__view.is-active{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b));background:var(--docs-background-color,var(--vc-background-color-light,#fff));-webkit-box-shadow:0 1px 2px rgba(15,23,42,.08);box-shadow:0 1px 2px rgba(15,23,42,.08)}.docs-playground__tool{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;width:28px;height:28px;padding:0;font:inherit;color:var(--docs-foreground-color-mute,var(--vc-color-dark-lightest,#64748b));cursor:pointer;background:transparent;border:0;border-radius:999px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-transition:color .15s ease,background-color .15s ease,-webkit-box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,-webkit-box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease,-webkit-box-shadow .15s ease}.docs-playground__tool .docs-playground-icon{width:16px;height:16px}.docs-playground__tool:hover{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b))}.docs-playground__tool:focus-visible{outline:2px solid var(--docs-primary-color,var(--vc-color-primary,#2563eb));outline-offset:1px}.docs-playground__tool.is-active{color:var(--docs-foreground-color,var(--vc-foreground-color,#18181b));background:var(--docs-background-color,var(--vc-background-color-light,#fff));-webkit-box-shadow:0 1px 2px rgba(15,23,42,.08);box-shadow:0 1px 2px rgba(15,23,42,.08)}.docs-playground__viewport-menu{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.docs-playground__viewport-trigger .docs-playground-icon{width:16px;height:16px}.docs-playground__viewport-options{min-width:136px}.docs-playground__viewport-option{white-space:nowrap}.docs-playground__editor .docs-playground-icon{width:16px;height:16px}.docs-playground__popup-close-mark{font-size:16px;line-height:1}.docs-playground-local{position:relative;width:100%;height:100%;min-width:0;min-height:0}.docs-playground-local__bridge{position:absolute;width:100%;height:100%;pointer-events:none;border:0;opacity:0;inset:0}.docs-playground-local__mount{position:relative;width:100%;height:100%;min-width:0;min-height:0}.docs-playground-local__mount--auto{display:flow-root;height:auto}/*$vite$:1*/
@@ -1,6 +1,6 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
2
- const require_files = require("./files-D5LNOtjp.cjs");
3
- const require_modules = require("./modules-CInmL-8h.cjs");
2
+ const require_files = require("./files-BsAOZiPN.cjs");
3
+ const require_modules = require("./modules-E6kK6ZJH.cjs");
4
4
  let vue = require("vue");
5
5
  vue = require_rolldown_runtime.__toESM(vue);
6
6
  //#region packages/playground/src/core/runtime/local/vue-guard.ts
@@ -1,5 +1,5 @@
1
- import { createFileIndex, getCommonRoot, isInsideRoot, isRelativeSpecifier, normalizeVirtualPath, resolveModulePath } from "./files-C5UMzYxA.js";
2
- import { resolveHostModule } from "./modules-DlLJF_vd.js";
1
+ import { a as getCommonRoot, c as isInsideRoot, f as resolveModulePath, l as isRelativeSpecifier, r as createFileIndex, u as normalizeVirtualPath } from "./files-BqucFldk.js";
2
+ import { resolveHostModule } from "./modules-BGzPcoRR.js";
3
3
  import * as Vue from "vue";
4
4
  import { defineComponent, h, provide } from "vue";
5
5
  //#region packages/playground/src/core/runtime/local/vue-guard.ts
@@ -1,5 +1,5 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
2
- const require_store = require("./store-BF7z-oaO.cjs");
2
+ const require_store = require("./store-DKawhFZu.cjs");
3
3
  let vue = require("vue");
4
4
  vue = require_rolldown_runtime.__toESM(vue);
5
5
  let _deot_vc = require("@deot/vc");
@@ -182,6 +182,10 @@ var local_sandbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0
182
182
  clearConsole: {
183
183
  type: Boolean,
184
184
  default: false
185
+ },
186
+ autoHeight: {
187
+ type: Boolean,
188
+ default: false
185
189
  }
186
190
  },
187
191
  emits: ["error"],
@@ -307,10 +311,10 @@ var local_sandbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0
307
311
  destroyPreview();
308
312
  try {
309
313
  const [{ compilePlayground }, { linkPlayground }, modulesApi, fileApi] = await Promise.all([
310
- Promise.resolve().then(() => require("./compile-DSMuM8zl.cjs")),
311
- Promise.resolve().then(() => require("./linker-B--sjERT.cjs")),
312
- Promise.resolve().then(() => require("./modules-CInmL-8h.cjs")),
313
- Promise.resolve().then(() => require("./files-D5LNOtjp.cjs"))
314
+ Promise.resolve().then(() => require("./compile-Da095AyM.cjs")),
315
+ Promise.resolve().then(() => require("./linker-DIpEiean.cjs")),
316
+ Promise.resolve().then(() => require("./modules-E6kK6ZJH.cjs")),
317
+ Promise.resolve().then(() => require("./files-BsAOZiPN.cjs")).then((n) => n.files_exports)
314
318
  ]);
315
319
  /* istanbul ignore if -- 并发编译时只保留最后一次 */
316
320
  if (current !== version) return;
@@ -324,7 +328,7 @@ var local_sandbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0
324
328
  }
325
329
  const imports = require_store.createRuntimeImports(props.options.cdnURL, props.options.builtinImportMap);
326
330
  const specifiers = fileApi.collectBareSpecifiers(props.files, fileApi.collectReachableFilenames(props.files, compiled.entry));
327
- const { createRemoteLoader } = await Promise.resolve().then(() => require("./remote-CKMzn1J3.cjs"));
331
+ const { createRemoteLoader } = await Promise.resolve().then(() => require("./remote-BG0E1Ugo.cjs"));
328
332
  const remote = createRemoteLoader(imports, {
329
333
  vue,
330
334
  vueRouter: vue_router
@@ -408,8 +412,8 @@ var local_sandbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0
408
412
  }, null, 40, _hoisted_1), (0, vue.createElementVNode)("div", {
409
413
  ref_key: "mountEl",
410
414
  ref: mountEl,
411
- class: "docs-playground-local__mount"
412
- }, null, 512)], 512);
415
+ class: (0, vue.normalizeClass)(["docs-playground-local__mount", { "docs-playground-local__mount--auto": __props.autoHeight }])
416
+ }, null, 2)], 512);
413
417
  };
414
418
  }
415
419
  });
@@ -1,20 +1,9 @@
1
- import { j as PREVIEW_SCROLL_CONTENT_CLASS, r as createRuntimeImports } from "./store-D8vwi-HV.js";
1
+ import { p as __exportAll } from "./files-BqucFldk.js";
2
+ import { j as PREVIEW_SCROLL_CONTENT_CLASS, r as createRuntimeImports } from "./store-BOyC8F2y.js";
2
3
  import * as Vue from "vue";
3
- import { createElementBlock, createElementVNode, defineComponent, h, nextTick, onBeforeUnmount, onErrorCaptured, onMounted, openBlock, provide, ref, shallowRef, unref, watch } from "vue";
4
+ import { createElementBlock, createElementVNode, defineComponent, h, nextTick, normalizeClass, onBeforeUnmount, onErrorCaptured, onMounted, openBlock, provide, ref, shallowRef, unref, watch } from "vue";
4
5
  import { Scroller } from "@deot/vc";
5
6
  import * as VueRouter from "vue-router";
6
- //#region \0rolldown/runtime.js
7
- var __defProp = Object.defineProperty;
8
- var __exportAll = (all, no_symbols) => {
9
- let target = {};
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: true
13
- });
14
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
15
- return target;
16
- };
17
- //#endregion
18
7
  //#region packages/playground/src/core/runtime/local/compile/css.ts
19
8
  var collectCss = (chunks) => {
20
9
  const result = [];
@@ -192,6 +181,10 @@ var local_sandbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
192
181
  clearConsole: {
193
182
  type: Boolean,
194
183
  default: false
184
+ },
185
+ autoHeight: {
186
+ type: Boolean,
187
+ default: false
195
188
  }
196
189
  },
197
190
  emits: ["error"],
@@ -317,10 +310,10 @@ var local_sandbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
317
310
  destroyPreview();
318
311
  try {
319
312
  const [{ compilePlayground }, { linkPlayground }, modulesApi, fileApi] = await Promise.all([
320
- import("./compile-Bw7v7QE-.js"),
321
- import("./linker-JHdz37DK.js"),
322
- import("./modules-DlLJF_vd.js"),
323
- import("./files-C5UMzYxA.js")
313
+ import("./compile-BHD98Ttf.js"),
314
+ import("./linker-xqjVl0X0.js"),
315
+ import("./modules-BGzPcoRR.js"),
316
+ import("./files-BqucFldk.js").then((n) => n.i)
324
317
  ]);
325
318
  /* istanbul ignore if -- 并发编译时只保留最后一次 */
326
319
  if (current !== version) return;
@@ -334,7 +327,7 @@ var local_sandbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
334
327
  }
335
328
  const imports = createRuntimeImports(props.options.cdnURL, props.options.builtinImportMap);
336
329
  const specifiers = fileApi.collectBareSpecifiers(props.files, fileApi.collectReachableFilenames(props.files, compiled.entry));
337
- const { createRemoteLoader } = await import("./remote-DfXAsO9n.js");
330
+ const { createRemoteLoader } = await import("./remote-mq4zvrI1.js");
338
331
  const remote = createRemoteLoader(imports, {
339
332
  vue: Vue,
340
333
  vueRouter: VueRouter
@@ -418,8 +411,8 @@ var local_sandbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
418
411
  }, null, 40, _hoisted_1), createElementVNode("div", {
419
412
  ref_key: "mountEl",
420
413
  ref: mountEl,
421
- class: "docs-playground-local__mount"
422
- }, null, 512)], 512);
414
+ class: normalizeClass(["docs-playground-local__mount", { "docs-playground-local__mount--auto": __props.autoHeight }])
415
+ }, null, 2)], 512);
423
416
  };
424
417
  }
425
418
  });
@@ -1,4 +1,4 @@
1
- import { n as createBuiltinImports } from "./cdn-DEvdGJu2.js";
1
+ import { a as resolveNpmImport, n as createBuiltinImports } from "./cdn-DQoETju_.js";
2
2
  //#region packages/playground/src/core/runtime/local/builtins.ts
3
3
  var loaders = {
4
4
  "vue": () => import("vue"),
@@ -163,6 +163,7 @@ var loadLocalModules = async (specifiers, imports, builtins, loader, cdnURL) =>
163
163
  const targets = /* @__PURE__ */ new Set();
164
164
  const localIds = /* @__PURE__ */ new Set();
165
165
  specifiers.forEach((specifier) => {
166
+ let local = false;
166
167
  if (prefersLocalBuiltin(specifier, imports, cdnURL)) localIds.add(specifier);
167
168
  else {
168
169
  let cursor = specifier;
@@ -172,6 +173,7 @@ var loadLocalModules = async (specifiers, imports, builtins, loader, cdnURL) =>
172
173
  const parent = cursor.slice(0, slash);
173
174
  if (prefersLocalBuiltin(parent, imports, cdnURL)) {
174
175
  localIds.add(parent);
176
+ local = true;
175
177
  break;
176
178
  }
177
179
  cursor = parent;
@@ -184,6 +186,10 @@ var loadLocalModules = async (specifiers, imports, builtins, loader, cdnURL) =>
184
186
  const target = resolveImportTarget(specifier, imports);
185
187
  if (target && prefersLocalBuiltin(target, imports, cdnURL)) localIds.add(target);
186
188
  else if (target) targets.add(target);
189
+ else if (!local && !localIds.has(specifier)) {
190
+ imports[specifier] = resolveNpmImport(specifier);
191
+ targets.add(specifier);
192
+ }
187
193
  });
188
194
  await Promise.all([...localIds].map(async (id) => {
189
195
  if (id === "vue" || id === "vue-router") return;
@@ -1,4 +1,4 @@
1
- const require_cdn = require("./cdn-Czve5_9b.cjs");
1
+ const require_cdn = require("./cdn-BoYKnGD3.cjs");
2
2
  //#region packages/playground/src/core/runtime/local/builtins.ts
3
3
  var loaders = {
4
4
  "vue": () => import("vue"),
@@ -163,6 +163,7 @@ var loadLocalModules = async (specifiers, imports, builtins, loader, cdnURL) =>
163
163
  const targets = /* @__PURE__ */ new Set();
164
164
  const localIds = /* @__PURE__ */ new Set();
165
165
  specifiers.forEach((specifier) => {
166
+ let local = false;
166
167
  if (prefersLocalBuiltin(specifier, imports, cdnURL)) localIds.add(specifier);
167
168
  else {
168
169
  let cursor = specifier;
@@ -172,6 +173,7 @@ var loadLocalModules = async (specifiers, imports, builtins, loader, cdnURL) =>
172
173
  const parent = cursor.slice(0, slash);
173
174
  if (prefersLocalBuiltin(parent, imports, cdnURL)) {
174
175
  localIds.add(parent);
176
+ local = true;
175
177
  break;
176
178
  }
177
179
  cursor = parent;
@@ -184,6 +186,10 @@ var loadLocalModules = async (specifiers, imports, builtins, loader, cdnURL) =>
184
186
  const target = resolveImportTarget(specifier, imports);
185
187
  if (target && prefersLocalBuiltin(target, imports, cdnURL)) localIds.add(target);
186
188
  else if (target) targets.add(target);
189
+ else if (!local && !localIds.has(specifier)) {
190
+ imports[specifier] = require_cdn.resolveNpmImport(specifier);
191
+ targets.add(specifier);
192
+ }
187
193
  });
188
194
  await Promise.all([...localIds].map(async (id) => {
189
195
  if (id === "vue" || id === "vue-router") return;